
MindTheGap
Год выпуска: 2015
Валютные пары: Все мажоры
Таймфрейм: М5
Версия: 1.17
Описание:
Простенький советник на тему гэпов. Алгоритм наипростейший.
1. В понедельник в 00:05, на открытии рынка советник смотрит на свечи и ищет гэп с определенными параметрами:
а) Расстояние от Low пятничной свечи до Open понедельника должно быть не меньше MinGap и не больше MaxGap пунктов для покупок и от High до Open - для продаж.
Если не находит нужного гэпа и бог с ним, ждем следующего понедельника.
2. Если используется трендовый фильтр UseTrendFilter=true, Close последней закрытой свечи (00:05) будет сравниваться с МА с периодом MAPeriod. Если цена Close выше МА, рассматриваются только продажи и наоборот для покупок. Если фильтр не прошли - до следующего понедельника.
3. С этого момента все отсеивающие фильтры пройдены, сделка скорее всего будет. Вопрос - когда?
4. Проверяем расстояние от текщей цены до Low или High последней свечи пятницы. Оно должно быть также не меньше MinGap. Если меньше, переходим в режим ожидания.
5. Если гэп найден, фильтр пройден, советник смотрит, куда закрылась первая понедельниковая свеча. Далее я буду рассматривать пример для покупок.
6. Свеча закрылась вниз.
6.1. Ищем возможность поставить отложку на цену открытия понедельника. Если маловато расстояние, переходим к пункту 6.2.
6.2. Проверим, можем ли войти по рынку. Для этого у нас есть три осциллятора, включаются UseWPREnter=true, UseCCIEnter=true, UseDeMEnter=true. Если все три выключены - советник просто не будет проверять их показания, и в случае невозможности поставить отложку будет входить по рынку. Если же хотя бы один из осцилляторных фильтров включен, осуществляется проверка по уровням WPREnterLevel, CCIEnterLevel, DeMEnterLevel.
Если фильтры не пройдены - переходим в режим ожидания.
6.2.1. Сразу после осцилляторных фильтров мы проверяем спред. Если текущий спред меньше MaxSpread, происходит вход по рынку, если больше - переход в режим ожидания. Кстати, сравнивается текущее среднее значение спреда на периоде 100 свечек.
6.3. Если запороли все проверки (хотя бы одну), переходим в режим ожидания.
7. Свеча закрылась вверх.
7.1. Тут у нас отложки не предусмотрены, только проверки осцилляторами и на максимальный спред.
7.2. Если что-то не прошли, переходим в режим ожидания.
8. Работа в режиме ожидания. В данном режиме советник на каждом тике проверяет следующие условия:
8.1. Осцилляторный фильтр, разобранный выше.
8.2. Проверка на спред.
8.3. Режим ожидания сигнала работает ровно CandlesToWait свечей. При превышении количества свечей ожидания забиваем на сигнал.
9. При входе по рынку отложки удаляются. При активации отложки режим ожидания отменяется.
10. При открытых по рынку позициях на каждом тике происходит проверка условий для выхода по тем же осцилляторам. При этом если UseSeparateExit=true, достаточно, чтобы хотя бы один из индикаторов достиг уровня DeMExitLevel, CCIExitLevel или WPRExitLevel соответственно. Если false - все они одновременно должны дойти до нужных уровней. При этом, если включен ExitInLoss, советник будет выходить из сделки при появлении условий на выход даже в убытке!. Если ExitInLoss выключен, для выхода в сделке должна быть накоплена определенная минимальная прибыль, которая должна быть не меньше, чем MinExitTP от тейк профита ордера.
11. Тейк профит ордера вычисляется просто:
11.1. У нас есть TP в пунктах, оно по умолчанию и используется.
11.2. Но если вдруг ТП меньше, чем MinTP от гэпа (например, 0.5 от гэпа), то для ТП используем MinTP от гэпа.
11.3. Если так получилось, что ТП больше, чем MaxTP от гэпа (например, 2.5 от гэпа), то для ТП используем MaxTP от гэпа.
12. Стоп тупо задан в пунктах переменной SL.
13. ММ переключается переменной LotVariant, выбор невелик - либо фиклированный лот FixLot, либо фиксированный же риск Risk в процентах от депозита.
14. В ордерах используется контроль проскальзывания slippage, для всех ордеров выставляются Magic. Если Magic=0, советник сгенерирует уникальный мэджик для конкретной пары конкретного графика конктретного терминала конкретного счета конкретного брокера - ну, короче, вы поняли. Ордера будут открываться NumOfTry раз в случае каких-то неполадок - пропал интернет, брокер заглючил и т.д. и т.п.
15. Все позиции тралятся простым тралом (включается TralOnPips), на расстоянии TrailingStop от текущей цены.
При этом если включена TrailingFromBE, тралить будет только из безубытка, если выключена - от стоплосса.
Все настройки вводятся в старых пунктах, далее советник со "значностью" разберется сам.
Сет в принципе более менее годится для всех пар, но оптимизировался под GBPUSD. Поэтому думаю стоит пооптить каждую пару в отдельности. Оптимизировал я с 2007 по 2014, с 2000 по 2007 - бэквард тест, с 2014 по 2016 - форвард тест. Как видите, результаты неплохие. Сэт для оптимизации прилагаю.
Версия 1.07
1. Добавлена поддержка ECN счетов. ECNAccount - включить/выключить.
2. Выключаемые комментарии UseComments.
3. Добавлена возможность снимать скриншот UseSnapShot
4. Добавлена возможность отсылки сообщений на почту UseSendMail
5. Добавлена возможность отсылки Push-уведомлений UseSendPush
6. Теперь ММ адаптируется соответственно валюте депозита (лот рассчитывается правильно для йен, евро, рублей, фунтов, австралийских долларов).
7. Добавлен вход при просадке уменьшенным лотом Allow_Second_Open_Trade
8. Добавлена информационная панель на график UsePanel:
9. Вместо сравнения с максимальным спредом можно использовать сравнение со средним спредом UseMedianSpread
10. Выведено время ожидания между попытками открыть/закрыть/модифицировать позицию: SleepTime - минимум, SleepMaximum - максимум, в секундах.
11. Добавлены попытки для закрытия ордера (проглядел).
12. Добавлено логирование: LogSpread - спреда, LogSlippage - проскальзывания. Файлы хранятся в папке каталог данных/MQL4/files для работы в реальном времени и каталог данных/tester/files - для тестов. Открываются в экселе. LogToSeperateFile - писать логи в файл, false - только в журнал
Версия 1.08
1. Комментарии поправлены
2. Логирование исправлено
3. Проблемы с тикетами исправлены
4. Добавлены повторы в трейлинг стоп
5. Исправлены некоторые мелкие ошибки
6. Добавлен безубыток UseBE, на уровне BELevel пунктов выставляется стоп в +BEPlusPips пунктов.
7. Для ярых экспериментаторов добавлена опция не фильтровать гэпы по времени, а брать все UseAllGaps.
Версия 1.09
1. Исправлен реконнект при обрыве связи с сервером.
2. Улучшена функция обработки ошибок (взял из бота, выложенного Oll в этой теме и подкорректировал под себя).
3. Добавил стоплевел. Если стоплевел брокер присылает нулевой, используется ручной стоплевел StopLevelManual. Если же и он нулевой, тогда используется 0.
По функционалу от лайт 1.08 не отличается, просто более подготовлена для реала.
Лайт 1.08 будет применяться для тестов и оптимизации - в ней вырезано все, что не нужно для тестов.
Версия 1.09 - для установки на реал.
Версия 1.10.
1. Убрал индикатор DeMarker совсем.
2. Вход осуществляется по WPR и CCI вместе. Без вариантов.
3. Выход - по WPR или CCI. Без вариантов.
4. При выходе в убытке добавил фильтр по М1 свечам. Последняя М1 свеча должна быть в сторону, противоположную ордеру.
5. Добавил в настройки цвета панели.
Тесты версии 1.17, 2000-2016 год:

ММ
Мониторинг в Роботесте (v1.17):

Я вообще ни разу не обижусь, если мне кто нибудь скажет спасибо, которое булькает: R192371619200 или Z164579536516 (Silentspec)
