Job finished
Specification
Описание алгоритма работы советника для МТ5
1. TimeTable - строка суточного расписания торговых сессий (по времени терминала) с интервалом в одну минуту: 00:00-01:00, 01:00-01:59; 01:00-02:00, 02:00-02:59; и т.п. до 23:00-00:00, 00:00-00:59. Где 00:00-01:00 (или 01:00-02:00 и т.п.) - временной диапазон фиксации уровней максимума и минимума цены; 01:00-01:59 (или 02:00-02:59 и т.п.) - период торговой сессии. Начиная с 00:00 обозначить на графике все временные диапазоны фиксации уровней максимума и минимума цены прямоугольниками, ограниченными по периметру тонкой сплошной линией (цвет "blue"). Обозначить прямоугольники как индикатор (даже при выключенной Авто-торговле).
2. TimeFrame - период графика, напр., М1.
3. Lots - начальный объем позиции, напр., 0,01 лота.
4. Позиция на покупку.
4.1. Если нет открытой позиции, сигнал на открытие позиции на покупку рыночным ордером происходит после времени диапазона фиксации уровней максимума и минимума цены, когда цена закрытой свечи больше верхней границы диапазона.
4.2. LimitSignals - количество сигналов на открытие позиций на покупку, напр., 2.
4.3. Сигнал на усреднение открытой позиции на покупку рыночным ордером происходит после снижения цены, когда на закрытой свече MACD пересек сигнальную снизу и расстояние в процентах между ценой предыдущей сделки и ценой закрытия сигнальной свечи больше DistanceAvr, напр., 0,1. Объем сделки на усреднение равен объему предыдущей сделки умноженному на LotsFactor, напр., 2. Объем сделки на усреднение округлить по примеру:
Lots=0,01, LotsFactor=1,1:
0,01*1,1=0,011 - 0,01 (объем следующей сделки). 0,011 округляется до 0,01, так как 0,011 меньше 0,015,
0,011*1,1=0,0121 - 0,01 (объем следующей сделки),
0,0121*1,1=0,01331 - 0,01 (объем следующей сделки),
0,01331*1,1=0,014641 - 0,01 (объем следующей сделки),
0,014641*1,1=0,016105 - 0,02 (объем следующей сделки). 0,016105 округляется до 0,02, так как 0,016105 больше 0,015,
0,016105*1,1=0,017716 - 0,02 (объем следующей сделки),
0,017716*1,1=0,019487 - 0,02 (объем следующей сделки),
0,019487*1,1=0,021436 - 0,02 (объем следующей сделки),
0,021436*1,1=0,023579 - 0,02 (объем следующей сделки),
0,023579*1,1=0,025937 - 0,03 (объем следующей сделки). 0,025937 округляется до 0,03, так как 0,025937 больше 0,025,
0,025937*1,1=0,028531 - 0,03 (объем следующей сделки) и т.д.
С множителем меньше 1, напр., 0,95, объем следующей сделки изменяется в меньшую сторону с тем же алгоритмом.
LimitAvr - количество усреднений, напр., 2. При 0 усреднений нет.
4.4. UseCloseMacdZero (false/true) - при "true" закрыть позицию на покупку рыночным ордером, когда на закрытой свече MACD пересек сигнальную сверху и пересечение выше нулевого уровня. При "false" пересечение может быть выше или ниже нулевого уровня.
4.5. LevelProfit - закрыть позицию на покупку по сигналу UseCloseMacdZero если прибыль в процентах больше установленной, напр., 0,02%. При 0 функция отключена.
4.6. UseLevelProfitLastAvr (false/true) - при "true" закрыть позицию на покупку после последнего усреднения по сигналу UseCloseMacdZero с учетом LevelProfit. При "false" функция отключена.
4.7.1. StopLoss - убыток позиции на покупку в процентах, напр., 0,24. При 0 функция отключена.
4.7.2. UseVirtualStopLoss (false/true) - при "true" уровень реального StopLoss становится виртуальным и позиция на покупку закрывается рыночным ордером если свеча закрылась ниже этого уровня. Уровень обозначить на графике тонкой сплошной линией (цвет "blue"). При "false" функция отключена.
4.8.1. TakeProfit - прибыль позиции на покупку в процентах, напр., 0,24. При 0 функция отключена.
4.8.2. TakeProfitAvr - новое значение тейк-профита, который устанавливается после первого усреднения позиции в процентах, напр., 0,02%. При 0 функция отключена.
4.9.1. TrailingStart - прибыль позиции на покупку в процентах при которой подается сигнал на установку трала, напр., 0,12. При 0 функция отключена.
4.9.2. TrailingDistance - расстояние от цены до установки трала в процентах, напр., 0,1.
4.9.3. UseTrailingWithoutMoving (false/true) - при "true" после установки трала движение за ценой запрещено (безубыток). При "false" функция отключена.
4.10. UseCloseTimeEnd (false/true) - при "true" закрыть позицию на покупку после окончания торговой сессии. При "false" функция отключена.
5. Позиция на продажу зеркально позиции на покупку.
6. LimitRecovery - если произошло закрытие позиции с убытком, то начальный объем следующей позиции должен быть равен объему закрытой позиции с убытком. Количество таких открытий позиции не должно превышать установленное, напр., 2. Пример: Lots - 0,01, LimitAvr - 2, LotsFactor - 2, LimitRecovery - 2. Если с убытком закрылась позиция объемом 0,07 лота (0,01 (нач. объем)+0,02 (первое усреднение с множ. 2)+0,04 (второе усреднение с множ. 2)), то начальный объем следующей позиции должен быть 0,07 лота, а полный объем первой восстановительной позиции ограничен 0,07+0,14+0,28=0,49 лотами. Если первая восстановительная позиция закрылась с убытком, то начальный объем следующей позиции должен быть 0,49 лота, а полный объем второй (последней) восстановительной позиции ограничен 0,49+0,98+1,96=3,43 лотами. Далее начальный объем следующей позиции снова будет 0,01 лота. При 0 функция отключена.
7. Risk - минимальный уровень маржи (указан в процентах во вкладке "Торговля" МТ5), ниже которого открывать сделки запрещено, напр., 250. При 0 функция отключена.
8. UseAlert (false/true) - при "true" подавать звуковой сигнал alert.wav при появлении сигнала на сделку. При "false" функция отключена.
9. Slippage - проскальзывание. Открывать или закрывать позицию рыночным ордером при условии, что цена сделки не превышает установленное количество пунктов (напр., 0,00020 при пятизначных котировках после запятой или 0,0002 при четырехзначных котировках после запятой). Повторять попытку открытия или закрытия сделки с лимитом проскальзывания пока сделка не будет открыта или закрыта. При 0 функция отключена.
10. Советник должен работать у разных брокеров (с разными методами исполнения ордера), быть с открытым кодом и содержать логи на английском языке.
Список внешних параметров советника с настройками для примера
1. TimeTable - 00:00-01:00, 01:00-01:59; 01:00-02:00, 02:00-02:59; и т.п. до 23:00-00:00, 00:00-00:59
2. TimeFrame - М1
3. Lots - 0,01
4. LimitSignals - 2
5. LimitAvr - 2
6. DistanceAvr - 0,1
7. LotsFactor - 2
8. UseCloseMacdZero - true
9. LevelProfit - 0,02
10. UseLevelProfitLastAvr - false
11. StopLoss - 0,24
12. UseVirtualStopLoss - true
13. TakeProfit - 0,24
14. TakeProfitAvr - 0,02
15. TrailingStart - 0,12
16. TrailingDistance - 0,1
17. UseTrailingWithoutMoving - false
18. UseCloseTimeEnd - false
19. LimitRecovery - 2
20. Risk - 250
21. UseAlert - true
22. Slippage - 0,00020