Исходники
Каждый советник подключается к мультисоветнику через макросы + инклуд.
Далее прописываются однотипные On-функции. Любой советник подключается к мультисоветнику за минуту.
Сильно желательно, чтобы глобальные функции и переменные не пересекались.
EX5
Пишется один советник, который открывает нужное количество чартов и запускает на каждом нужного советника. При удалении мультисоветника все делается в обратном порядке - закрываются чарты.
Исходники
Каждый советник подключается к мультисоветнику через макросы + инклуд.
Далее прописываются однотипные On-функции. Любой советник подключается к мультисоветнику за минуту.
Сильно желательно, чтобы глобальные функции и переменные не пересекались.
EX5
Пишется один советник, который открывает нужное количество чартов и запускает на каждом нужного советника. При удалении мультисоветника все делается в обратном порядке - закрываются чарты.
Да, как вариант! А если все объединить несколько в один код, через триггеры?
Да, как вариант! А если все объединить несколько в один код, через триггеры?
В один код - см. "Исходники".
В один код - см. "Исходники".
Опять же на примере того же N-_Candles . Как правильно можно соединить два одинаковых советника чтобы каждый фрагмент торговал по своей валютной паре? Смотрел на примере MQL4 с примером кода
// Список внешних переменных обоих экспертов ......... extern bool Expert_1 = true; extern bool Expert_2 = true; //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if (Expert_1) Expert_1(//Список фактических параметров эксперта 1); if (Expert_2) Expert_2(//Список фактических параметров эксперта 2); return(0); } //+------------------------------------------------------------------+ void Expert_1(//Список формальных параметров эксперта 1) { // Код эксперта 1 ......... return(0); } void Expert_2(//Список формальных параметров эксперта 2) { // Код эксперта 2 ......... return(0); }
Опять же на примере того же N-_Candles . Как правильно можно соединить два одинаковых советника чтобы каждый фрагмент торговал по своей валютной паре? Смотрел на примере MQL4 с примером кода
Извините, не интересно.
"Прямое" объединение советников в код - нереально. Как минимум потому, что в каждом из них есть функции обработки событий.
Однако, сама идея - вполне реализуема.
То есть, имеется один шаблон, содержащий все необходимые функции, и способный подключать к себе модули, отрабатывающие правила ТС.
Скажем, вот код моего советника, содержащего 4 ТС:
#include <MyLib\DebugOrRelease\DebugSupport.mqh> #include <MyLib\Common\CurSymEnum.mq5> #include <MyLib\Factories\ForTrade\EURJPY\EURJPY_FactoriesIncludes.mqh> CTrendSAR_EURJPY_01_EPF epfFact_1(NULL); CTrendSP_EURJPY_01_EPF epfFact_2(NULL); CFlatSP_EURJPY_01_EPF epfFact_3(NULL); CFlatSAR_EURJPY_01_EPF epfFact_4(NULL); // Файл шаблона советника #include <MyLib\TSTemplate\ExpertAdvisorT.mq5>
В данном случае - 4 ТС предназначены для работы на евроиене, две трендовых ТС, две флетовых ТС.
Подключение ТС состоит чисто в объявлении класса этой ТС - все необходимые действия содержатся внутри самих классов. Каждый класс описан в своей паре файлов mqh-mq5, и все эти 8 файлов - подключаются через общий файл EURJPY_FactoriesIncludes.mqh
Функции же обработки сообщений - содержатся в шаблоне ExpertAdvisorT.mq5
- 2016.02.03
- Vasiliy Sokolov
- www.mql5.com
Все элементарно делается на плагинах. Техника плагинов давно отработана, см. по ссылке
В гугле вбить "c++ система плагинов"
"Прямое" объединение советников в код - нереально. Как минимум потому, что в каждом из них есть функции обработки событий.
Однако, сама идея - вполне реализуема.
То есть, имеется один шаблон, содержащий все необходимые функции, и способный подключать к себе модули, отрабатывающие правила ТС.
Скажем, вот код моего советника, содержащего 4 ТС:
В данном случае - 4 ТС предназначены для работы на евроиене, две трендовых ТС, две флетовых ТС.
Подключение ТС состоит чисто в объявлении класса этой ТС - все необходимые действия содержатся внутри самих классов. Каждый класс описан в своей паре файлов mqh-mq5, и все эти 8 файлов - подключаются через общий файл EURJPY_FactoriesIncludes.mqh
Функции же обработки сообщений - содержатся в шаблоне ExpertAdvisorT.mq5
а как реализовано переключение трендовой от флетовой стратегий?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собственно вопрос как заголовок темы: какие существуют способы объединения двух или более советников в один на MQL5?
Первый вариант я знаю! Но все же!