Советник на основе MACD

Buldakov

Местный житель
Предлагаю в данной ветке обсудить советник на основе индикатора MACD. Описание индикатора взято по ссылке:


Я являюсь автором советника. Выкладываю для обсуждения открытый код.
Приложенные файлы:
MACD++ файл индикатора по ссылке приведенной выше.
MACD_v01i файл индикатора.
MACD_v01s файл советника.

Тестирование проводил по паре Евро доллар на М15. за последние 2 года. Результаты вроде неплохие. У кого есть какие идеи просьба дополнить.
 

Вложения

  • MACD++.mq4
    5,7 КБ · Просмотры: 131
  • MACD_v01i.mq4
    38,9 КБ · Просмотры: 121
  • MACD_v01s.mq4
    61 КБ · Просмотры: 139

Юлия

Главный редактор
Тестирование проводил по паре Евро доллар на М15. за последние 2 года. Результаты вроде неплохие. У кого есть какие идеи просьба дополнить.
А можно посмотреть на ваши тесты и результаты? И, если можно, для тех, кто не умеет прочить код, напишите правила вашей ТС.
 

instantt

Местный житель
Ну что закинул в тестер прогнал за 2 года. Все на графике красиво. Параметры оптимизированы под м15. Ставим м5 или н1 и график уже и близко не похож. Тобиш стабильности в торговле 0. Расскажите стратегию раз вы автор, пробовали в ручную по ней торговать ?
 

Юлия

Главный редактор
Ну что закинул в тестер прогнал за 2 года. Все на графике красиво. Параметры оптимизированы под м15. Ставим м5 или н1 и график уже и близко не похож. Тобиш стабильности в торговле 0. Расскажите стратегию раз вы автор, пробовали в ручную по ней торговать ?
Ну вы бы хоть картинку тестера показали :)
 

Buldakov

Местный житель
На М5 и М1 настройки будут другие. "Параметры MACD" увеличьте значение в 15 раз и ставьте на минутки. Остальные параметры не менять. Но количество сделок поменяться не должно. Ну и считать будет дольше.
Открытие сделок происходит по ценам открытия не чаще 1 раза в 15 минут. Закрытие сделок происходит по TP или SL. Или по времени. Или по сигналу в противоположную сторону.
Прикладываю отчет тестирования.

Кратенько конечно попробую описать алгоритм. Но он возможно будет подвержен изменениям в дальнейшем. Опишу пока то, что выложено:
Советник использует данные цены открытия для каждого бара. В течении бара значения индикаторов не изменяется.
В блоке 6 мы находим значение Верхней и нижней полос Болинжера. И значение скользящей средней.
В блоке 7. считаем переменную (буфер1) как разность между двумя скользящими средними с периодами FastEMA и SlowEMA. Затем находим переменные Буф2 и Буф3. Которые стоятся на основе переменной Буффер1 , но с разными периодами сглаживания. (SignalSMA1 SignalSMA2) И находим Буффер 2 как разность переменных Буф2 и Буф3.
Далее определяем угол наклона скользящей средей и ее знак. На основании этого определяем наличие флета, тренда вверх или тренда вниз.
Формируем сигнал signal_up - Если Буфер 2 на 0 баре больше нуля, а на предыдущем баре меньше 0. и цена закрытия больше нижней полосы Болинджера. И Буфер2 растет со скоростью больше заданной. Аналогично формируется сигнал signal_dn.

Условия открытия Buy: 1- Если сделок по паре нет и у нас тренд вверх или флет. 2-Если нижняя полоса Болинджера ускоряется вверх. 3- Есть сигнал signal_up.

Условия открытия Sell: 1- Если сделок по паре нет и у нас тренд вниз или флет. 2-Если верхняя полоса Болинджера ускоряется вниз. 3- Есть сигнал signal_dn.

Условия закрытия сделок:
1 - Если сработал уровень TP или SL.
2- Если сформирован сигнал signal_dn при открытой покупке или сигнал signal_up при открытой продаже.
3- Если время открытия позиции больше заданного.
Ну и последее - сделки не открываются в понедельник первый час начала торгов. и в пятницу после 16. В пятницу после 23-45 все сделки закрываются.

Вот кратенько описание алгоритма без подробностей. Торговать вручную вряд ли получится.
 

Вложения

  • StrategyTester.gif
    StrategyTester.gif
    8,3 КБ · Просмотры: 171
  • test.zip
    24,6 КБ · Просмотры: 36
Последнее редактирование:

Buldakov

Местный житель
Если будут пожелания - на индикатор могу нарисовать стрелочки на открытие позиции. Поскольку алгоритм довольно сложный для ручной торговли. Стрелочки будут аналогично условиям , которые прописаны в советнике.
 

yenne

Прохожий
[QUOTE = "Buldakov, message: 1484411, membre: 4425"]
Si vous le souhaitez, je peux dessiner des flèches sur l'indicateur pour ouvrir une position. Puisque l'algorithme est assez compliqué pour le trading manuel. Les flèches seront similaires aux conditions prescrites par le conseiller.
[/ DEVIS]
 

Buldakov

Местный житель
Пока не надо. Я в течении пары дней попробую нарисовать стрелки. Если что то не смогу Я напишу об этом. Стрелки на открытие будут точно. Будет цена открытия и уровни SL, TP. Поскольку 5 индикаторных буферов уже задействовано, а всего их возможно 8. То вероятно сигнал на закрытие будет только один. По противоположному сигналу. Проблема возможно будет только с ограничением максимального времени сделки.
И сразу вопрос. Если есть сигнал закрытия и нет сигнала на открытие - все понятно. Мы рисуем сигнал на закрытие. А если одновременно есть сигнал на закрытие и открытие - то надо ли рисовать оба сигнала(Например один сигнал выше, другой ниже)? Или сигнал на открытие должен закрывать сигнал на закрытие?
 

instantt

Местный житель
Закинул в тестер с визуализацией. Пытаюсь разобраться как он торгует. Есть ли смысл в болинджере, если у нас и так два трендовых индикатора? Очень часто визуально в тестере открывает по окончании тренда. когда уже не надо. Есть мысль или допилить мартина в ступенией 3-5 или добавить фильтр какой нибудь типо стохастика.
 

Вложения

  • 33548-clip-96kb.png
    33548-clip-96kb.png
    95,8 КБ · Просмотры: 182

Buldakov

Местный житель
Написал индикатор по советнику. Показаны индикаторы и стрелочки на открытие позиций. Вроде условия должны совпадать с советником (но хотя не проверял). Индикатор рисуется на всей истории. Если у кого то считает долго можно ограничить количество дней отображения на индикаторе переменной Days.
На индикаторе присутствуют лишние стрелки, когда советник не торгует по времени. Стрелок не должно быть с 23-00 до 24-00 каждого дня. В понедельник с 0-00 до 01-30 и в пятницу с 16-00.
 

Вложения

  • MACD_v02i.mq4
    53 КБ · Просмотры: 50
  • MACD_v02s.mq4
    64 КБ · Просмотры: 48
Последнее редактирование:

olgert

Местный знаток
Написал индикатор по советнику. Показаны индикаторы и стрелочки на открытие позиций. Вроде условия должны совпадать с советником (но хотя не проверял). Индикатор рисуется на всей истории. Если у кого то считает долго можно ограничить количество дней отображения на индикаторе переменной Days.
На индикаторе присутствуют лишние стрелки, когда советник не торгует по времени. Стрелок не должно быть с 23-00 до 24-00 каждого дня. В понедельник с 0-00 до 01-30 и в пятницу с 16-00.
Извините, но пунктуация - отсутствует. Трудно понять. А потом, все стараются написать советника сладкого.
 

instantt

Местный житель
В следующих сообщениях постараюсь это учесть.
можете прокомментировать работу советника? Было согласно индикатора 2 сигнала (стрелки) на покупку но сделки не открыты и открыты уже на много позже
 

Вложения

  • Clip2net_200105193507.png
    Clip2net_200105193507.png
    33,8 КБ · Просмотры: 123

Buldakov

Местный житель
Да ошибка была в настройке параметров MACD. В советнике были одни циферки , а в индикаторе другие. Сейчас все сделал одинаковыми.

Проверил несколько десятков сигналов вроде совпадают. Только возможна такая ситуация: Советник открыл сигнал на покупку. Сделка не закрыта. А индикатор дает еще один сигнал на покупку. В данном случае этот сигнал индикатора нужно игнорировать.

И в советнике убрал время торговли. Теперь советник торгует без ограничения по времени.
 

Вложения

  • MACD_v03i.mq4
    53 КБ · Просмотры: 71
  • MACD_v03s.mq4
    62,6 КБ · Просмотры: 67

Юлия

Главный редактор
Посмотрела работу советника 1 версии дальше 2 лет, сливает, а потом в сентябре 17 начинается рост. Надо следить за этим.
И да, сделки довольно стабильно растут, хочется увеличение лотности при этом.

TesterGraph.gif
 

Buldakov

Местный житель
Данный советник тестовый. Лотность =0.01. Для того чтобы результаты не зависели от размера лота. Если кто хочет в тексте советника в блоке 1 есть переменная Risk. Сейчас там 1%. Сделайте ее равной 100 или 200% и размер лота увеличится.

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

Например: версия 3 советника на интервале 2 года имеет Прибыльность около 2.24. Максимальную прибыль 247 дол. При просадке 16 дол. Мы меняем алгоритм работы советника и индикатора таким образом, чтобы значения параметров прибыльность и отношение прибыли к убыткам увеличивалось. Если это значение увеличилось - мы оставляем его в алгоритме вместо чего то старого. Если значение параметров ухудшается - значит этот параметр не подходит к алгоритму и мы возвращаемся к предыдущей версии. Итого методом последовательных приближений мы получим прибыльный алгоритм.
 

Юлия

Главный редактор
У меня прибыльность 3 версии получилась 1.8. И просадка - 29$. Вы, может, показывайте, свои результаты тестирования тоже?
 

Вложения

  • Strategy Tester_ MACD_v03s — Яндекс.Браузер 2020-0.png
    Strategy Tester_ MACD_v03s — Яндекс.Браузер 2020-0.png
    62,8 КБ · Просмотры: 97

Buldakov

Местный житель
Вот мои результаты.
 

Вложения

  • foto_07_07_2020.jpg
    foto_07_07_2020.jpg
    327,3 КБ · Просмотры: 88

Юлия

Главный редактор
А, у нас с вами просто разные даты теста. Окей.
 

instantt

Местный житель
Посмотрела работу советника 1 версии дальше 2 лет, сливает, а потом в сентябре 17 начинается рост. Надо следить за этим.
И да, сделки довольно стабильно растут, хочется увеличение лотности при этом.

Посмотреть вложение 360416
Давайте разбираться по факту, я так понимаю автор по умолчанию поставил оптимизированные параметры советника. Оптимизировал под последние 2 года, берем старше период - сливает. Что нам нужно если хотим добиться, хотя бы попробовать: ставим стандартные параметры стоп лос и тейк профит. (не нужно делать 245 итд. это уже подгонка под историю) нужно ставить в зависимости от стратегии, допустим ТП -60 пп. и СЛ - 20 пп. или на оборот. Если так не работает то по другому уже не будет. Оптимизировать я считаю нужно параметры индикатора. значит он дает не точные сигналы на вход. далее если и это не помогает фильтровать входы доп фильтрами. Стохастик. Время работы итд.
 
Последнее редактирование:
Верх