Класс CExpert

Класс CExpert является базовым классом для реализации торговых стратегий.

В него уже заложены элементарные "навыки" торговли. Класс имеет встроенные механизмы для работы с таймсериями и индикаторами и набор виртуальных методов, определяющих торговую стратегию.

Для того чтобы ваш эксперт заработал по-другому, нужно:

1. Определиться с алгоритмами стратегии;

2. Создать свой класс, унаследовав его от CExpert;

3. Переопределить в своем классе виртуальные методы базового, заложив в них соответствующие алгоритмы.

Описание

Класс CExpert предоставляет набор виртуальных методов для реализации торговых стратегий.

Примечание

Позиция определяется принадлежащей эксперту и управляемой экспертом по паре свойств m_symbol и m_magic. В режиме "хеджинга" на счете одновременно может существовать несколько позиций по одному и тому же символу, поэтому особое внимание следует уделять значению m_magic.

Декларация

   class CExpert : public CExpertBase

Заголовок

   #include <Expert\Expert.mqh>

Иерархия наследования

  CObject

      CExpertBase

          CExpert

Методы класса по группам

Инициализация

 

Init

Инициализирует экземпляр класса

virtual InitSignal

Инициализирует объект торговых сигналов

virtual InitTrailing

Инициализирует объект трейлинга

virtual InitMoney

Инициализирует объект управления капиталом

virtual InitTrade

Инициализирует объект торговли

virtual ValidationSettings

Проверяет корректность настроек

virtual InitIndicators

Инициализирует необходимые индикаторы и таймсерии

virtual InitParameters

Инициализирует параметры эксперта

virtual Deinit

Деинициализирует экземпляр класса

virtual DeinitSignal

Деинициализирует объект торговых сигналов

virtual DeinitTrailing

Деинициализирует объект трейлинга

virtual DeinitMoney

Деинициализирует объект управления капиталом

virtual DeinitTrade

Деинициализирует объект торговли

virtual DeinitIndicators

Деинициализирует индикаторы и таймсерии

Установка параметров

 

Magic

Устанавливает идентификатор эксперта

MaxOrders

Получает/Устанавливает максимально допустимое количество ордеров

OnTickProcess

Устанавливает флаг обработки события "OnTick"

OnTradeProcess

Устанавливает флаг обработки события "OnTrade"

OnTimerProcess

Устанавливает флаг обработки события "OnTimer"

OnChartEventProcess

Устанавливает флаг обработки события "OnChartEvent"

OnBookEventProcess

Устанавливает флаг обработки события "OnBookEvent"

Обработчики событий

 

OnTick

Обработчик события OnTick

OnTrade

Обработчик события OnTrade

OnTimer

Обработчик события OnTimer

OnChartEvent

Обработчик события OnChartEvent

OnBookEvent

Обработчик события OnBookEvent

Обновление

 

Refresh

Обновляет все необходимые данные

Основной метод обработки

 

Processing

Реализует основной алгоритм

Методы входа в рынок

 

CheckOpen

Проверяет необходимость и возможность входа в рынок

CheckOpenLong

Проверяет необходимость и возможность входа в длинную позицию

CheckOpenShort

Проверяет необходимость и возможность входа в короткую позицию

OpenLong

Выполняет операции для открытия длинной позиции

OpenShort

Выполняет операции для открытия короткой позиции

Методы выхода из рынка

 

CheckClose

Проверяет необходимость выхода из рынка

CheckCloseLong

Проверяет необходимость выхода из длинной позиции

CheckCloseShort

Проверяет необходимость выхода из короткой позиции

CloseAll

Выходит из рынка полностью

Close

Выходит из рынка

CloseLong

Выходит из длинной позиции

CloseShort

Выходит из короткой позиции

Методы разворота позиции

 

CheckReverse

Проверяет необходимость разворота позиции

CheckReverseLong

Проверяет необходимость разворота длинной позиции

CheckReverseShort

Проверяет необходимость разворота короткой позиции

ReverseLong

Производит разворот длинной позиции

ReverseShort

Производит разворот короткой позиции

Методы сопровождения позиций/ордеров

 

CheckTrailingStop

Проверяет необходимость модификации параметров позиции

CheckTrailingStopLong

Проверяет необходимость модификации параметров длинной позиции

CheckTrailingStopShort

Проверяет необходимость модификации параметров короткой позиции

TrailingStopLong

Модифицирует параметры длинной позиции

TrailingStopShort

Модифицирует параметры короткой позиции

CheckTrailingOrderLong

Проверяет необходимость модификации параметров ордера на покупку

CheckTrailingOrderShort

Проверяет необходимость модификации параметров ордера на продажу

TrailingOrderLong

Модифицирует параметры ордера на покупку

TrailingOrderShort

Модифицирует параметры ордера на продажу

Методы удаления ордеров

 

CheckDeleteOrderLong

Проверяет необходимость удаления ордеров на покупку

CheckDeleteOrderShort

Проверяет необходимость удаления ордеров на продажу

DeleteOrders

Удаляет все ордеры

DeleteOrder

Удаляет ордер

DeleteOrderLong

Удаляет ордер на покупку

DeleteOrderShort

Удаляет ордер на продажу

Методы определения объема

 

LotOpenLong

Определяет объем торговой операции на покупку

LotOpenShort

Определяет объем торговой операции на продажу

LotReverse

Определяет объем торговой операции разворота позиции

Методы работы с торговой историей

 

PrepareHistoryDate

Устанавливает начальную дату контролируемой истории торговли

HistoryPoint

Создает контрольную точку истории торговли

CheckTradeState

Обрабатывает изменение истории торговли

Методы работы с флагами торговых событий

 

WaitEvent

Устанавливает флаг ожидания торгового события

NoWaitEvent

Сбрасывает флаг ожидания торгового события

Методы обработки торговых событий

 

TradeEventPositionStopTake

Обработчик события "Срабатывание Stop Loss/Take Profit"

TradeEventOrderTriggered

Обработчик события "Отложенный ордер сработал"

TradeEventPositionOpened

Обработчик события "Открытие позиции"

TradeEventPositionVolumeChanged

Обработчик события "Добавление/уменьшение позиции"

TradeEventPositionModified

Обработчик события "Модификация параметров позиции"

TradeEventPositionClosed

Обработчик события "Закрытие позиции"

TradeEventOrderPlaced

Обработчик события "Отложенный ордер установлен"

TradeEventOrderModified

Обработчик события "Отложенный ордер модифицирован"

TradeEventOrderDeleted

Обработчик события "Отложенный ордер удален"

TradeEventNotIdentified

Обработчик неидентифицированного события

Служебные методы

 

TimeframeAdd

Добавляет таймфрейм для контроля

TimeframesFlags

Формирует флаги таймфреймов

SelectPosition

Выбор позиции для последующей работы с ней.

Методы унаследованные от CObject

Prev, Prev, Next, Next, Save, Load, Type, Compare

Методы унаследованные от CExpertBase

InitPhase, TrendType, UsedSeries, EveryTick, Open, High, Low, Close, Spread, Time, TickVolume, RealVolume, Symbol, Period, Magic, SetMarginMode, SetPriceSeries, SetOtherSeries