Обсуждение статьи "Создаем простой мультивалютный советник с использованием MQL5 (Часть 2): Сигналы индикатора - мультитаймфреймовый Parabolic SAR"

 

Опубликована статья Создаем простой мультивалютный советник с использованием MQL5 (Часть 2): Сигналы индикатора - мультитаймфреймовый Parabolic SAR:

Под мультивалютным советником в этой статье понимается советник, или торговый робот, который может торговать (открывать/закрывать ордера, управлять ордерами, например, трейлинг-стоп-лоссом и трейлинг-профитом) более чем одной парой символов с одного графика. На этот раз мы будем использовать только один индикатор, а именно Parabolic SAR или iSAR на нескольких таймфреймах, начиная с PERIOD_M15 и заканчивая PERIOD_D1.

Мультивалютный советник будет использовать 1 сигнал индикатора на 5 таймфреймах, начиная с PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4 и PERIOD_D1.

В этом советнике не используется фиксированный таймфрейм для расчета сигналов индикатора, поэтому нет необходимости определять таймфрейм расчета сигнала.

Это означает, что советник FXSAR_MTF_MCEA можно использовать на любом таймфрейме от PERIOD_M1 до PERIOD_MN1, а FXSAR_MTF_MCEA по-прежнему будет рассчитывать сигналы на основе iSAR PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4 и PERIOD_D1.

Эти пять таймфреймов Parabolic SAR будут определять сигнал для открытия ордеров.

Между тем, чтобы закрывать ордера при ослаблении сигнала, мы используем индикатор iSAR PERIOD_M15 при условии, что ордер находится в состоянии прибыли.

Чтобы использовать трейлинг-стоп и трейлинг-профит, используем iSAR PERIOD_H1.


Формула стратегии состояния сигналов iSAR:

UP (вверх)   = (PRICE_LOW[0] больше линии iSAR) или PRICE_LOW[0] > iSAR[0]

DOWN (вниз) = (PRICE-HIGH[0] меньше линии iSAR) или PRICE-HIGH[0] < iSAR[0]

Где получить сигнал на ПОКУПКУ или ПРОДАЖУ:

Пять таймфреймов индикатора iSAR должны в сумме составлять 5 x UP для ПОКУПКИ и 5 x DOWN для ПРОДАЖИ.

На рисунке 1 показан индикатор iSAR.

iSAR_Signal_Buy и Sell

Автор: Roberto Jacobs

 

Босс, я узнал некоторые идеи о множественных сортах и множественных циклах, а также некоторые методы построения графиков. Очень практично.

спасибо за вашу статью

 
cloudchina #:

Босс, я узнал некоторые идеи о множественных сортах и множественных циклах, а также о некоторых методах построения графиков. Очень практично.

спасибо за вашу статью

Пожалуйста.

 
Не могли бы вы подробнее описать результаты оптимизации на разных парах... будет ли она возвращать лучшие результаты для каждой пары? или лучшие результаты среди всех пар?
 
Camilo Mora #:
Не могли бы вы подробнее описать результаты оптимизации по разным парам... будет ли она показывать лучшие результаты по каждой паре? или лучшие результаты среди всех пар?

Данный советник торгует не только одной парой, но и мультивалютными или мультипарами. Таким образом, результат тестирования - по всем парам (предоставлено 30 пар).

 
Сравнивали ли вы время, необходимое для запуска, скажем, 1 цикла всего советника с 30 парами? Сравните с тем, если бы на каждом графике было 30 советников для одной валюты? И еще вопрос: если запускать этот советник на каждом тике или баре, будет ли операция полного цикла выполняться до того, как наступит следующий тик или бар? Скорость бэктестирования этого советника показалась мне медленной, учитывая, как быстро работают другие советники.
 

Конечно, он медленный! Он выполняет в 30 раз больше вычислений, чем "быстрые советники". Попробуйте запустить 30 быстрых советников одновременно и посмотрите, что получится. Готов поспорить, что этот советник намного быстрее. Если процент выигрышей в тестовом режиме 75+% сохранится, то кого волнует скорость, когда вы выигрываете 3 из 4 сделок? Просто купите более быстрые машины.

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

Чтобы обойти проблему префикса-суффикса символа, рассмотрите возможность использования двух переменных для каждого символа: пары для 6-числового имени и кавычек для полного имени с префиксом и суффиксом. Либо исследуйте имя с помощью строковой функции, чтобы установить две переменные.

Возможно, вы захотите создать адаптивный параболический стоп-лосс, который будет более точно отслеживать бары, я думаю, есть несколько адаптивных индикаторов PSAR, которые можно использовать в качестве руководства.

Работу, которую Роберто вложил в этот советник, нельзя недооценивать, она очень значительна.

 
CapeCoddah параболический стоп-лосс, который будет более точно отслеживать бары, думаю, есть несколько адаптивных индикаторов PSAR, которые можно использовать в качестве руководства.

Не стоит недооценивать работу, которую Роберто проделал над этим советником, она очень значительна.

Спасибо за поддержку. Я создам статью, чтобы добавить автоматическое обнаружение и обработку брокеров со специальными названиями символов, префиксами и/или суффиксами.

 

Роберто,

Плохие новости, я запускал ваш советник на EURUSD H4 с 1/1/2023 по 11/1/2023 с начальным балансом $1,000. Советник обанкротил счет менее чем за 3 месяца. С $10,000 он работал полностью, но потерял $8,250. График показывает последовательные потери от начала до конца, без резких пиков или долин.

Во-первых, не отчаивайтесь! Торговля на валютном рынке сложна, и еще сложнее разработать мультивалютный советник. Я знаю, я сам сейчас занимаюсь преобразованием одного из них из MQ4 в MQ5.

Возможно, настало время реализовать возможность переменной пары, позволяющей задавать пары, чтобы обеспечить возможность тестирования только на одной паре. Самый простой способ - сделать строку пар элементом ввода и использовать STRSPLIT для разделения каждой пары в строке, чтобы обеспечить загрузку пар. Лучший подход - использовать дисплей с 30 парами, чтобы позволить пользователю выбирать пары для запуска, нажимая на них и меняя цвет. Есть две недавние статьи о графическом интерфейсе, GUI: Tips and Tricks...... Я использую последнюю, но думаю, что "Советы и рекомендации" могут быть лучше и полнее. Вам также следует использовать графические интерфейсы для отображения ваших данных, которые я считаю превосходными, вместо того чтобы использовать функцию комментариев.

Я твердо верю в закон Парето: 80 % признака дает 20 % элементов. Это означает, что 80 % общей прибыли дают 6 пар и, соответственно, 6 пар дают 80 % убытков.

Расширенная статистика Strategy Tester по отдельным парам в мультивалютном тесте обязательна для выявления проблемных зон и закона Парето. Элементы вкладки BackTest необходимы на уровне пары, т. е. чистая прибыль, валовая прибыль, валовые убытки и т. д. и т. п.

Я все еще думаю, что адаптивный процесс для SAR обеспечит улучшение вашей прибыли. Если вы посмотрите на ваш график покупки/продажи в тексте выше, адаптивная функция, которая увеличивает скорость ускорения SAR на основе увеличения размера бара, заставит SAR увеличить прибыль на первых 4 иллюстрациях покупки/продажи на графике. Это адаптивное сгибание обеспечит два преимущества:

он обеспечит увеличение прибыли, возможно, на $5-$10 за счет более раннего закрытия сделки. Что еще более важно, он позволит следующей сделке открыться на $5-$10 раньше. Таким образом, влияние флекса может составить $10-$20 в целом для каждой сделки. Однако это также может привести к размещению большого количества дополнительных убыточных сделок с соответствующим снижением общей прибыли.

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

 
CapeCoddah #:
Я твердо верю в закон Парето: 80 % характеристики получается из 20 % элементов. Это означает, что 80 % общей прибыли дают 6 пар и, соответственно, 6 пар дают 80 % убытков.

Спасибо за ваш вклад.

Как я уже сказал в выводах 4 и 5:

Данный мультивалютный советник FXSAR_MTF_MCEA является лишь примером для изучения и развития идей.

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

Таким образом, вам предстоит модернизировать, используя, как вы говорите, адаптивную функцию, чтобы получить лучшие результаты.

 

Здравствуйте, Роберто,

Очень интересно, мне нравятся мультитаймфреймовые системы.

Извините, но я не понимаю, как я могу менять таймфреймы одного SAR и если SAR имеет фиксированный расчет стоимости.
Есть ли способ покупать и продавать на каждом таймфрейме (вместо того, чтобы ждать, пока все будут на одной стороне)?

В этом случае я мог бы продавать на 1 минуте, покупать на 5 и т.д., предполагая, что на 0.1 у меня будет переменное количество длинных и коротких позиций.

Я пробовал тестировать на GOLD с версии 1.1.24, но ничего не происходит, никаких сделок.

Есть какие-нибудь предложения? Вы можете написать мне в приват.


Большое спасибо.

Марко