Управление советниками через глобальный алгоритм

 

Добрый день.

Сорри за терминологию т.к. тема для меня совсем новая, только разбираюсь. Описываю своё видение вопроса, прошу направить в нужное русло.

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

Как бы я хотел сделать в идеале всю "систему" взаимодействия.

1. У меня есть некоторые торгуемые модели, которые реализованы в отдельных советниках.

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

3. Есть главный советник, которому скармливаю эту CSV.

4. Главный советник, согласно входной таблице запускает соответствующих торговых советников, "развешивая" их по соответствующим чартам, передавай им входящие параметры (всё это главный берет из CSV).

5. Во время торговой сессии главный советник контролирует открытые сделки и определяет параметры риска, например, сколько осталось риска на день или наоборот - факт достижения целевой прибыли. Текущие данные риска должны быть общими для всех - глобальными переменными, к которым могут обращаться торговые советники, развешанные по чартам. Это нужно чтобы торговые советники руководствовались параметрами общего риска, при принятии решения о входе в сделку.

Вопросы:

а. Такая система в принципе решаема? Логична? Или я не в том направлении иду?

б. В каком виде должен существовать и как запустить глобальный алгоритм, который не привязан к чартам? Я не понял как это сделать, вижу только вариант вешать его на какой-нибудь незадействованный чарт.

в. У меня не получилось с первого раза работать с глобальными переменными (чтобы разные советники видели одинаковые переменные). Я что-то не так делаю или это не возможно?

г. Как заставить одни советник запустить другой, передав ему параметры для запуска? Что читать/где искать?

Спасибо!

 

Делал что-то подобное с помощью запуска bat-файлов и TerminalClose(). Читайте про шаблоны

 
Totosha16:

б. В каком виде должен существовать и как запустить глобальный алгоритм, который не привязан к чартам? Я не понял как это сделать, вижу только вариант вешать его на какой-нибудь незадействованный чарт.

Скоро будут Сервисы - новый вид MQL-программ, который не будет требовать чартов.

г. Как заставить одни советник запустить другой, передав ему параметры для запуска? Что читать/где искать?

https://www.mql5.com/ru/code/19003

Expert
Expert
  • голосов: 26
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это...
 
Totosha16:

Добрый день.

Сорри за терминологию т.к. тема для меня совсем новая, только разбираюсь. Описываю своё видение вопроса, прошу направить в нужное русло.

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

Как бы я хотел сделать в идеале всю "систему" взаимодействия.

1. У меня есть некоторые торгуемые модели, которые реализованы в отдельных советниках.

...

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

- "одинаковыми торговыми алгоритмами" и "некоторые торгуемые модели" - несколько странно. Неясно, одинаковы ли модели, если их торговые алгоритмы совпадают... Пусть даже требуемые алгоритмы вовсе не одинаковы, это не мешает их реализовать в одном объединяющем советнике или скрипте;

- когда макропрограмма (скрипт или советник) станет одна, исчезнет большая часть заданных вопросов.

P.S. Если бы речь шла о MQL4, потребность в нескольких макропрограммах можно было бы обосновать необходимостью "параллельного" исполнения торговых запросов к серверу. В MQL5 и так режим их исполнения асинхронный.

 
fxsaber:

<...>


То, что нужно! Буду изучать. Большое спасибо!

 
Totosha16:

Добрый день.

Сорри за терминологию т.к. тема для меня совсем новая, только разбираюсь. Описываю своё видение вопроса, прошу направить в нужное русло.

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

Как бы я хотел сделать в идеале всю "систему" взаимодействия.

1. У меня есть некоторые торгуемые модели, которые реализованы в отдельных советниках.

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

3. Есть главный советник, которому скармливаю эту CSV.

4. Главный советник, согласно входной таблице запускает соответствующих торговых советников, "развешивая" их по соответствующим чартам, передавай им входящие параметры (всё это главный берет из CSV).

5. Во время торговой сессии главный советник контролирует открытые сделки и определяет параметры риска, например, сколько осталось риска на день или наоборот - факт достижения целевой прибыли. Текущие данные риска должны быть общими для всех - глобальными переменными, к которым могут обращаться торговые советники, развешанные по чартам. Это нужно чтобы торговые советники руководствовались параметрами общего риска, при принятии решения о входе в сделку.

Вопросы:

а. Такая система в принципе решаема? Логична? Или я не в том направлении иду?

б. В каком виде должен существовать и как запустить глобальный алгоритм, который не привязан к чартам? Я не понял как это сделать, вижу только вариант вешать его на какой-нибудь незадействованный чарт.

в. У меня не получилось с первого раза работать с глобальными переменными (чтобы разные советники видели одинаковые переменные). Я что-то не так делаю или это не возможно?

г. Как заставить одни советник запустить другой, передав ему параметры для запуска? Что читать/где искать?

Спасибо!


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

Из главного советника создайте чарт примените к нему сохранённый шаблон, и так по очереди чарт-шаблон по каждому советнику.

Все функции найдёте в хелпе, в разделе "Операции с графиками".

И будет вам счастье.

 
Nikolay Demko:

Запустите каждый из советников на чарте, сохраните в виде шаблона. После чего чарт можно закрыть. И перейти к созданию следующего шаблона.
Из главного советника создайте чарт примените к нему сохранённый шаблон, и так по очереди чарт-шаблон по каждому советнику.
Все функции найдёте в хелпе, в разделе "Операции с графиками".
И будет вам счастье.
Вы совершенно правы. Именно это и имел в виду
 
Vladimir:

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

- "одинаковыми торговыми алгоритмами" и "некоторые торгуемые модели" - несколько странно. Неясно, одинаковы ли модели, если их торговые алгоритмы совпадают... Пусть даже требуемые алгоритмы вовсе не одинаковы, это не мешает их реализовать в одном объединяющем советнике или скрипте;

- когда макропрограмма (скрипт или советник) станет одна, исчезнет большая часть заданных вопросов.

P.S. Если бы речь шла о MQL4, потребность в нескольких макропрограммах можно было бы обосновать необходимостью "параллельного" исполнения торговых запросов к серверу. В MQL5 и так режим их исполнения асинхронный.


Я полностью согласен. Вы слишком углубились в эту проблему и создаете себе ее сами. Тут может работать один советник с разными условиями, только на каждое такое условие должен быть свой магический номер и все. К примеру: валюта EUR/USD торгуется по Magic_1, валюта GBP/USD торгуется по Magic_2, валюта USD/JPY торгуется по другому Magic_3 и вот в условиях, где Вы хотите сделать общее действие или совсем не прописываете магик-номер и условие будет выполняться для всех параметров, или если Вы захотите для каждого в отдельности что-либо прописать, то в условиях прописываете для какого магика будет произведено то, или иное действие. Как-то так?!

 

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

 

Я в обще-то сталкивался с аналогичной проблемой и вот через библиотеку я ее решил: Мне нужны были данные, о тренде. происходящие на D1 графике, советнику, который работал на графике H1, и вот этим экспортом и импортом проблема, вроде как, была решена, но советник работал и терял доход.

 
Юра куксов:

Я в обще-то сталкивался с аналогичной проблемой и вот через библиотеку я ее решил: Мне нужны были данные, о тренде. происходящие на D1 графике, советнику, который работал на графике H1, и вот этим экспортом и импортом проблема, вроде как, была решена, но советник работал и терял доход.

Юра, извини за прямоту, но для таких высказываний есть специальная ветка форума.

Причина обращения: