Торговый конструктор TradeBuilderMT5 - руководство пользователя.

31 октября 2018, 17:12
Sergey Deev
0
402

Торговый конструктор TradeBuilderMT5 - советник, предназначенный для построения торговых систем на базе произвольных наборов технических индикаторов.

Работа советника основана на формировании и обработке следующих сигналов:

  • OpenBuy/ OpenSell - открытие позиций;
  • StopBuy/ StopSell - закрытие позиций;
  • TakeProfitBuy/ TakeProfitSell - получение уровней TP;
  • StopLossBuy/ StopLossSell - получение уровней SL;
  • NoLossBuy/ NoLossSell - перевод в состояние безубытка;
  • MinProfitBuy/ MinProfitSell - закрытие части позиции;
  • CancelBuy/ CancelSell - разрешение повторного сигнала на открытие;
  • DeleteBuy/DeleteSell - удаление отложенных ордеров.

Сигналы формируется из нескольких последовательных шагов (для Open - 10 шагов, для остальных - по 2 шага), задаваемых через входные параметры. Каждый шаг содержит следующие поля:

  • indicator (выпадающий список) - выбор индикатора из перечня MT5, включая CUSTOM, а так же, дополнительно цены Open, Close, High, Low, текущие цены Bid и Ask, наименьшее Low и наибольшее High указанного интервала (Lowest, Highest);
  • tf (выпадающий список) - выбор временного периода;
  • action (выпадающий список) - функция шага;
  • param - строка параметров через запятую (для индикатора CUSTOM первый параметр должен быть строковый с именем индикатора);
  • bar - индекс бара;
  • line - индекс буфера;
  • arg - аргумент шага( double);
  • freeze - признак запоминания результата шага на заданное количество баров

Во входных параметрах название шагов кодируется текстом с разделителями: <имя сигнала>_<шаг>_<параметр>, например, OpenBuySignal_0_indicator - параметр, задающий тип индикатора шага 0 сигнала OpenBuy.

Каждый шаг имеет результат выполнения (true/false) и значение, используемое для дальнейшей обработки. Список функций с описанием приведен в таблице ниже. 

Функция Описание
EmptyAction Пустое действие (используется, например, для получения значения индикатора в определенной точке). Результат выполнения функции всегда true.
Above Сравнение значения, полученного на текущем шаге с предыдущим. Если значение текущего шага выше предыдущего, то результат true, в противном случае - false.
Below Сравнение значения, полученного на текущем шаге с предыдущим. Если значение текущего шага ниже предыдущего, то результат true, в противном случае - false.
AboveArg Сравнение значения, полученного на текущем шаге с значением, заданным в поле arg. Если значение текущего шага выше заданного, то результат true, в противном случае - false.
BelowArg Сравнение значения, полученного на текущем шаге с значением, заданным в поле arg. Если значение текущего шага ниже заданного, то результат true, в противном случае - false.
AddPoint Добавление к значению, полученному на текущем шаге количества пунктов, заданного в поле arg. Результат выполнения функции всегда true.
Empty Проверка значения, полученного на текущем шаге с 0 или EMPTY_VALUE. Результат выполнения выполнения устанавливается в true при нулевом значении текущего шага.
NotEmpty Проверка значения, полученного на текущем шаге с 0 или EMPTY_VALUE. Результат выполнения выполнения устанавливается в true при ненулевом значении текущего шага.
CrossUp Проверка пересечения вверх линий индикаторов, заданных на текущем и предыдущем шаге. Результат устанавливается в true когда новая точка индикатора, заданного на текущем шаге выше предыдущего, а прошлые точки - наоборот.
CrossDown Проверка пересечения вниз линий индикаторов, заданных на текущем и предыдущем шаге. Результат устанавливается в true когда новая точка индикатора, заданного на текущем шаге ниже предыдущего, а прошлые точки - наоборот.
MoveUp Проверка движения линии, заданной на текущем шаге вверх. Результат устанавливается в true когда новая точка индикатора выше предыдущей.
MoveDown Проверка движения линии, заданной на текущем шаге вниз. Результат устанавливается в true когда новая точка индикатора ниже предыдущей. 
CrossArgUp Проверка пересечения линией вверх, значения, заданного в параметре arg. Результат устанавливается в true, когда условие выполняется.  
CrossArgDown  Проверка пересечения линией вниз, значения, заданного в параметре arg. Результат устанавливается в true, когда условие выполняется. 
EqualArg  Проверка значения на равенство заданному в параметре arg. Результат устанавливается в true, когда условие выполняется.
NotEqualArg  Проверка значения на неравенство заданному в параметре arg. Результат устанавливается в true при неравенстве. 
Equal Проверка на равенство значений текущего и предыдущего шагов. Результат устанавливается в true, когда условие выполняется. 
NotEqual  Проверка на равенство значений текущего и предыдущего шагов. Результат устанавливается в true при неравенстве.  
AddToPrice  Значение индикатора добавляется к текущей цене. Используется множитель, заданный в поле arg. Может использоваться, например, для вычисления уровня SL или TP по значению ATR.

Сигнал возвращает значение true, если таковое получено на каждой функции сигнала.

Ниже приводится пример настройки сигнала при пересечении вверх скользящих средних с периодами 10 и 20. Цифрами на скриншоте обозначено:

  1. выбран индикатор MA
  2. текущий тайм-фрейм
  3. пустое действие
  4. параметры MA
  5. бар 1
  6. линия 0
  7. индикатор MA на следующем шаге
  8. функция пересечения вверх
  9. параметры второй MA
  10. EmptyIndicator на последующем шаге - признак завершения сигнала


Для определения строки параметров необходимо обратиться к документации по техническим индикаторам mql5. Здесь, выбрав требуемый индикатор, мы получим описание, типа ниже следующего:

int  iMA( 
   string               symbol,            // имя символа 
   ENUM_TIMEFRAMES      period,            // период 
   int                  ma_period,         // период усреднения 
   int                  ma_shift,          // смещение индикатора по горизонтали 
   ENUM_MA_METHOD       ma_method,         // тип сглаживания 
   ENUM_APPLIED_PRICE   applied_price      // тип цены или handle 
   );

Необходимо через запятую ввести числовые значения всех параметров, кроме symbol и period. В данном случае, для индикатора MA - 4 параметра. Ниже приводят строки параметров по-умолчанию для каждого индикатора и номера линий.

Индикатор Строка параметров Номера линий, комментарий
AC

AD

ADX 14 0 - MAIN_LINE, 1 - PLUSDI_LINE, 2 - MINUSDI_LINE
ADXW 14 0 - MAIN_LINE, 1 - PLUSDI_LINE, 2 - MINUSDI_LINE
ALLIGATOR 13,8,8,5,5,3,2,4 0 - GATORJAW_LINE, 1 - GATORTEETH_LINE, 2 - GATORLIPS_LINE
AMA 15,2,30,0,0
AO

ATR 14
BANDS 20,0,2.0,0 0 - BASE_LINE, 1 - UPPER_BAND, 2 - LOWER_BAND
BEARS 13  
BULLS 13   
BWMFI 0  
CCI 14,5  
CHAIKIN 3,10,1,0  
CUSTOM имя_индикатора ***  
DEMA 14,0,0   
DEMARKER 14  
ENVELOPES 14,0,0,0,0.1 0 - UPPER_LINE, 1 - LOWER_LINE
FORCE  13,0,0   
FRACTALS   0 - UPPER_LINE, 1 - LOWER_LINE
FRAMA 14,0,0  
GATOR 13,8,8,5,5,3,2,4 0 - UPPER_HISTOGRAM, 1- цвет верхней гистограммы, 2 - LOWER_HISTOGRAM, 3- цвет нижней гистограммы
ICHIMOKU 9,26,52 0 - TENKANSEN_LINE, 1 - KIJUNSEN_LINE, 2 - SENKOUSPANA_LINE, 3 - SENKOUSPANB_LINE, 4 - CHIKOUSPAN_LINE
MA 10,0,0,0  
MACD 12,26,9,0 0 - MAIN_LINE, 1 - SIGNAL_LINE 
MFI 14,0  
MOMENTUM 14,0   
OBV 0  
OSMA 12,26,9,0   
RSI 14,0   
RVI 10   
SAR 0.02,0.2  
STDDEV 20,0,0,0  
STOCHASTIC 5,3,3,0,0 0 - MAIN_LINE, 1 - SIGNAL_LINE
TEMA 14,0,0  
TRIX 14,0   
VIDYA 15,12,0,0  
VOLUMES  
BITMAP,
TREND,
TEXT
  Проверка графического объекта OBJ_BITMAP, OBJ_TREND, OBJ_TEXT в позиции, заданной в поде bar.
Btn_BUY,
Btn_SELL,
Btn_CloseBUY,
Btn_CloseSELL 
  Открытие сделок на покупку/продажу или их закрытие при нажатии на соответствующую кнопку (советник сам размещает кнопки на графике).

*** Пользовательский индикатор CUSTOM в качестве параметров должен содержать минимально один параметр - его имя. Все параметры вводится одной строкой, с разделителем - запятая. Советник выделяет из строки значения следующих типов: string (обрамлено одиночными кавычками); int (содержит только символы 0..9); double (символы 0..9 и точка); bool (true или false). Параметры других типов должны быть приведены к перечисленным форматам.

Пример настройки сигнала на пользовательском индикаторе из маркета приведен на скриншоте ниже.

Ниже приводится пример конфигурации сигнала StopLossBuy для получения уровня SL по наименьшему значению цены за последние 6 баров. Цифрами на скриншоте обозначено:

  1. выбран индикатор Lowest
  2. начальный бар
  3. счетчик баров
  4. EmptyIndicator, как признак завершения сигнала



Перечень параметров для настройки торговли:

  • startLot - фиксированный объем сделок;
  • riskPercent - процент для расчета объема от остатка свободных средств (при ненулевом SL);
  • takeProfit - фиксированный TP;
  • takeProfit_factor - расчет TP но уровню SL
  • stopLoss - фиксированный SL;
  • noLoss - фиксированный уровень перевода в безубыток;
  • noLoss_factor - уровень перевода в безубыток в процентах от свободных средств;
  • minProfit - фиксированный уровень частичного закрытия;
  • minProfit_percent - уровень частичного закрытия в процентах от от свободных средств;
  • minProfit_factor - размер частичного закрытия
  • trailStop - фиксированный уровень трейлинга;
  • trailStop_factor - уровень трейлинга от уровня TP;
  • trailStep - шаг трейлинга;
  • numOrders - количество сделок в одном направлении;
  • bothOrdersDir - разрешение сделок Buy при наличии Sell и наоборот;
  • GridDistance - минимальное расстояние между ордерами сетки;
  • GridFactor - коэффициент изменения объема сетки;
  • autoGrid - разрешение автоматического открытия сделок;
  • useVirtual_SL_TP, color_SL, color_TP - использование виртуальных SL и TP, цвета линий;
  • AverageClose_percent, AverageClose_price - процент и сумма закрытия однонаправленных сделок;
  • DiffClose_percent, DiffClose_price - процент и сумма закрытия разнонаправленных сделок;
  • martin_factor - коэффициент изменения объема после получения убытка;
  • tradeMon, tradeTue, tradeWed, tradeThu, tradeFri - время торговли по дням недели;
  • orderTypes - тип открываемых ордеров (рыночные, limit, stop).





Поделитесь с друзьями: