Скачать MetaTrader 5

Обсуждение статьи "Рецепты MQL5 - Торговые сигналы скользящих каналов"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Продавай свои разработки в Маркете. Это безопасно!
MetaQuotes Software Corp.
Модератор
181419
MetaQuotes Software Corp. 2016.09.06 12:31 

Опубликована статья Рецепты MQL5 - Торговые сигналы скользящих каналов:

В статье представлен процесс разработки и реализации класса-сигнальщика на основе скользящих каналов. За каждой из версий сигнала следует торговая стратегия с результатами тестирования. Используются классы Стандартной библиотеки для создания производных классов.

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

Эта стратегия будет рассматривать достаточно простые правила торговли. Вход в рынок производится от границ канала. При касании ценой нижней границы открываем покупку, а верхней – продажу. На Рис.1 цена коснулась нижней границы, поэтому робот купил некоторый объём. Торговые уровни (стоп-лосс и тейк-профит) имеют фиксированный размер и были выставлены автоматически. Если позиция открыта, повторные сигналы на вход игнорируем.

Рис.1 Сигнал на вход

Рис.1 Сигнал на вход

Автор: Dennis Kirichenko

Must1980
22
Must1980 2016.09.08 19:43  
Как Вы полагаете, что нужно добавить/оптимизировать/убрать для того что бы начать пользоваться на рельном счете. Или же это чисто демонстрационный вариант?
fxsaber
4541
fxsaber 2016.09.08 21:16  

Спасибо за статью! У Вас на видео строятся каналы в виде двух отрезков. А почему Вы не делаете следующее

  • на каждом текущем баре (самом правом) запоминаете верхнюю границу и нижнюю границу, приходящиеся на время данного бара.
  • теперь для всех баров строим две линии - соответствующие верхние значения и нижние.
  • получили канал, который очень удобно визуально уже оценивать.
Еще вариант для оптимизации

Avg = (Channel.High + Channel.Low) / 2;
Size = (Channel.High - Channel.Low) / 2;
NewSize = Size * InputKoef + InputDelta;
NewChannel.High = Avg + NewSize;
NewChannel.Low = Avg - NewSize;
Dennis Kirichenko
11331
Dennis Kirichenko 2016.09.14 15:25  
Must1980:
Как Вы полагаете, что нужно добавить/оптимизировать/убрать для того что бы начать пользоваться на рельном счете. Или же это чисто демонстрационный вариант?

По коду. Обычно торговую операцию я для реала зацикливаю, т.е. делаю несколько попыток, чтобы снизить вероятность не!открытия позиции, когда пришёл сигнал. Ну и там ещё некоторые мелкие проверки...

По самой стратегии. По-хорошему, нужна более глубокая история, на которой делается бэктестинг. Особенно хорошо, когда есть разные участки (тренд\флэт). Ну и по классике, не хватает форвардного тестирования...

Dennis Kirichenko
11331
Dennis Kirichenko 2016.09.14 15:27  
fxsaber:

...на видео строятся каналы в виде двух отрезков. А почему Вы не делаете следующее

  • на каждом текущем баре (самом правом) запоминаете верхнюю границу и нижнюю границу, приходящиеся на время данного бара.
  • теперь для всех баров строим две линии - соответствующие верхние значения и нижние.
  • получили канал, который очень удобно визуально уже оценивать.

А в чём цимес?
fxsaber
4541
fxsaber 2016.09.14 15:46  
Dennis Kirichenko:
А в чём цимес?
Видеть канал на протяжении всей истории.
Dennis Kirichenko
11331
Dennis Kirichenko 2016.09.14 15:52  
fxsaber:
Видеть канал на протяжении всей истории.
Чтобы прошлые каналы не пропадали при появлении нового?
fxsaber
4541
fxsaber 2016.09.14 15:54  
Dennis Kirichenko:
Чтобы прошлые каналы не пропадали при появлении нового?
Чтобы видеть на истории, где бы по краям канала располагались отложенники, в случае его торговли.
Dennis Kirichenko
11331
Dennis Kirichenko 2016.09.14 15:56  
fxsaber:
Чтобы видеть на истории, где бы по краям канала располагались отложенники, в случае его торговли.
Ну да, можно усложнить это дело, согласен. Правда в моих примерах отложек не было :-))
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий