Chart Strategies. Основы

Функционал Chart Strategies позволяет получать и обрабатывать весь перечень данных, доступных в индикаторах, а также совершать торговые операции на основе этих данных.

Класс ChartStrategy унаследован от класса Indicator. Таким образом, стратегии имеют полный функционал индикаторов.

Помимо функционала индикаторов, в стратегиях имеются дополнительные свойства и методы, отвечающие за торговый функционал:

Свойства:

  • Security - торговый инструмент
  • Portfolio - выбранный портфель
  • Connector - торговое подключение
  • MyTrades - список сделок
  • Orders - список ордеров
  • CurrentPosition - объем текущей позиции стратегии
  • AveragePrice - средняя цена текущей позиции стратегии
  • State - состояние стратегии(может быть Stopped, Started,Suspended)

Основные публичные методы стратегии:

  • OpenOrder - метод открытия нового ордера
  • ModifyOrder - метод изменения ордера
  • CancelOrder - метод отмены ордера
  • ShrinkPrice - округление передаваемой цены к размеру тика торгового инструмента
  • RaiseShowNotification - метод, позволяющий отображать нотификации в платформе

Виртуальные методы стратегии, которые при необходимости необходимо переопределить в создаваемой стратегии:

  • OnStarted - вызывается при старте стратегии
  • OnSuspended - вызывается при приостановке стратегии(например в ситуациях, когда график со стратегией был закрыт)
  • OnStopping - вызывается перед остановкой стратегии
  • OnStopped - вызывается при остановке стратегии
  • OnCurrentPositionChanged - вызывается при изменении текущей позиции стратегии
  • CanProcess - возвращает можно ли торговать в данный момент. По умолчанию метод проверяет, что стратегия была запущена и в данный момент обсчитывается последний бар.

Позиции стратегий.

Каждая стратегия внутри себя хранит свою позицию. Эта позиция может отличаться от общей позиции на счете.

Общую позицию счета можно получить через свойство TradingManager.Position.

Внутреннюю позицию стратегии можно получить через свойство CurrentPosition и AveragePrice.

Важно! При остановке стратегии, внутренняя позиция стратегии обнуляется. Крайне желательно переопределять метод OnStopping, в котором реализовывать логику закрытия внутренних позиций, отмены выставленных ордеров.