Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1853
- Рейтинг:
- Опубликован:
- 2021.05.02 07:12
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Торговая стратегия
Советник выполнен по мотивам ветки Requests & Ideas (MQL5 only!).
В момент рождения нового бара проверяется условие на открытие или закрытия позиции. Открытие позиции производится по индикатору iMACD (Moving Average Convergence/Divergence, MACD) и индикатору iSAR (Parabolic SAR, SAR), а закрытие - или при срабатывании Стоп лосс или при срабатывании Тейк профит или по сигналу индикатора iSAR (Parabolic SAR, SAR).
Уточнения:
Сигнал на открытие ограничивается фильтрами по дням недели ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday') - можно запретить поиск сигнала для целого дня недели. Например при выставлении 'Monday' в 'false' поиск торгового сигнала на открытие позиции будет запрещён на протяжении всего понедельника.
Также есть общий фильтр торгового диапазона - время между которым МОЖНО проводить поиск торгового приказа на открытие позиции ('Start Hour'::'Start Minute' - 'End Hour'::'End Minute'). Это общая настройка и она одинаково действует на все дни недели.
Торговые сигналы (блок кода SearchTradingSignals)
сигнал на открытие BUY: MACD пересекает свою сигнальную линию снизу-вверх и при это iSAR находиться под ценой
//--- Open BUY Signal if(main[m_bar_current+1]<signl[m_bar_current+1] && main[m_bar_current]>signl[m_bar_current] && sar[m_bar_current]<rates[m_bar_current].low)
сигнал на закрытие BUY: iSAR находится над ценой
//--- Close BUY Signal if(sar[m_bar_current]>rates[m_bar_current].high)
сигналы SELL зеркальные для BUY.
Рис. 1. Open by iMACD Close by iSAR
Особенности:
- Советник можно оптимизировать по рабочему таймфрейму ('Working timeframe')
- На баре может быть только одна сделка 'вход в рынок' (это внутренний параметр, он не вынесен во входные параметры и это не имеет отношения к параметру 'Only one positions')
- Параметр 'Use time control' - временной интервал поиска торговых сигналов от 'Start Hour'::'Start Minute' до 'End Hour'::'End Minute'. Временной диапазон можно задавать как внутри дня, так и с переходом через сутки. Параметр нельзя отключить, он работает всегда
- Параметр 'Pips Or Points: ' задаёт стандарт расчёта Стоп лосс, Тейк профит и Трейлинга
Теперь подробнее по каждой группе параметров:
Trading settings:
'Working timeframe' - рабочий таймфрейм. Таймфрейм на котором создаются индикаторы и на котором ищется новый бар.
'Pips Or Points: ' задаёт стандарт расчёта Стоп лосс, Тейк профит, Трейлинга и Отступа. Может быть 'Pips (1.00045-1.00055=1 pips)' или 'Points (1.00045-1.00055=10 points)'. Любой из параметров ('Stop Loss', 'Take Profit', 'Trailing Stop') можно отключить - для этого выбранный параметр установите в '0.0'.
Интервал между трейлингом и интервал между поиском сигналов задаются в 'Trailing, in seconds' и 'Search signals, in seconds' соответственно. Для этих двух параметров общее правило: если интервал задать меньше, чем "10" - это означает работу ТОЛЬКО в момент рождения нового бара, если же интервал задать ровно или более "10" - это означает работу каждые "N" секунд.
Как работает трейлинг показано в картинках в коде TrailingStop.
Position size management (lot calculation)
Лот может быть как постоянный ('Money management' установить в 'Constant lot' и задать размер лота в 'The value for "Money management"') и динамический - в процентах риска на сделку ('Money management' установить в 'Risk in percent for a deal' и задать процент риска в 'The value for "Money management"'). Также можно задать постоянный лот равный минимальному лоту - 'Money management' установить в 'Lots Min'.
Time control:
В данном разделе задаётся временной диапазон для поиска торговых сигналов. Временной диапазон включается через 'Use time control' и задаёт временной интервал поиска сигналов от 'Start Hour'::'Start Minute' до 'End Hour'::'End Minute'. Временной диапазон можно задавать как внутри дня, так и с переходом через сутки. Не влияет на трейлинг. Включён всегда
MACD и SAR:
Параметры индикаторов MACD и SAR.
Trade by days:
Разрешение (запрет) торговли по дням недели.
Additional features:
Флаг 'Positions: Only one' выставленный в 'true' разрешает советнику иметь в рынке не более одной позиции.
ВНИМАНИЕ: 'Positions: Only one' выставленный в 'true' не отменяет действие 'Positions: Close opposite' выставленный в 'true'! Другими словами: сначала будет закрыта противоположная позиция(позиции)
Интересный флаг 'Positions: Close opposite' - при выставлении его в 'true' перед открытием позиции гарантированно удаляет противоположные позиции. 'Print log' выводит расширенное логирование всех операций. Параметр 'Freeze and StopsLevels Coefficient' задаёт коэффициент для уровней стопов и заморозки для случаев, когда эти уровни для символа равны нулю. Рекомендуется применять значение '3'.
![Bid Ask Strength Histogram](https://c.mql5.com/i/code/indicator.png)
Берет все тики на свече. Вычисляет количество bid на каждое значение цены. Вычисляет количество ask на каждое значение цены. Выбирает из них самые большие значения. Сравнивает их и отображает на гистограмме.
![Line through two fractals 2](https://c.mql5.com/i/code/indicator.png)
Индикатор строит трендовые линии по двум последним фракталам.
![MA horizontal line](https://c.mql5.com/i/code/indicator.png)
Горизонтальная линия по текущей цене индикатора iMA (Moving Average, MA)
![SAR Color Filling](https://c.mql5.com/i/code/indicator.png)
Индикатор iSAR (Parabolic SAR, SAR) с заливкой областей между индикатором и ценой