Запуск 10-30 советников на 1-3 инструментах - страница 2

 
Dmitry Fedoseev:


50 терминалов устанавливать.

Способ - считать вклад каждого советника в совокупную позицию.  Есть парочка статей - https://www.mql5.com/ru/articles/125, https://www.mql5.com/ru/articles/112. Но это замороченность невероятная уже все давно решили никогда такое не делать.


Я вас понял, ну да, этот способ нам не подходит. Странно, что разработчики МТ5 не продумали данный вариант и приходится, скорее всего, устанавливать до 50 версий программы ради всего лишь 50 советников. Хоть от ТсЛаба я ушел в МТ5, но там намного лаконичнее всё выполняется.
 
Fresto:

Я вас понял, ну да, этот способ нам не подходит. Странно, что разработчики МТ5 не продумали данный вариант и приходится, скорее всего, устанавливать до 50 версий программы ради всего лишь 50 советников. Хоть от ТсЛаба я ушел в МТ5, но там намного лаконичнее всё выполняется.


Лаконичнее?

Не говорите ерунду!!!

На бирже один инструмент - ОДНА позиция, и какое бы ПО Вы не взяли - резульат один.

Лучше подумайте над алгоритмом своего советника....

 
prostotrader:


Лаконичнее?

Не говорите ерунду!!!

На бирже один инструмент - ОДНА позиция, и какое бы ПО Вы не взяли - резульат один.

Лучше подумайте над алгоритмом своего советника....


Так есть же для этого субсчета, для того, чтобы можно было на 1 инструменте совершать различные виды позиций.
 
Так, почитал я, поспрашивал еще где. Понял, что всё же логичнее делать с совокупной позицией, по сути это и есть торговля портфелем, чем разные 50 советников на разных программах. Буду тогда читать статьи про это и как это вообще реализовывать. Если есть у кого пример файла mql5 может по 2 или более советникам на 1 инструменте с совокупной позицией, можете показать, пожалуйста. 

Всем спасибо за объяснения, у меня просто было в корне неправильное представление обо всем этом.
 
Fresto:
Необходимо запустить до 50 советников на 2-3 инструментах.
Возможно, использовать вот эту штуку. Не конкретно ее, а API
Торговую утилиту HedgeTerminalDemo
Торговую утилиту HedgeTerminalDemo
  • отзывов: 1
  • 2014.08.13
  • Vasiliy Sokolov
  • www.mql5.com
Торгуйте разнонаправленно вместе с HedgeTerminalHedgeTerminalDemo - это ознакомительная версия HedgeTerminalUltimate. HedgeTerminalDemo можно...
 

да что вы тут парите! можно запустить советников всех в одном терминале. но надо открыть соответственно 50 чартов. 
Но есть одно НО! каждый советник должен принимать во внимание открытую позицию
К примеру один советник открыл позу в бай на 2 лота, другой на в бай на 3 лота. Четвертый, хочет продать 1,5 лота и при продаже общая позиция уменьшается. так вот третий советник должен в нужное время соответственно закрыть свою позицию, т.е. купить 1,5 лота. ВСЕ !

В MQL5 так же есть магик номер, чтобы видеть свои ордера, которые участвуют в формировании общей позиции.  

 
#property strict

#include <Tools\DateTime.mqh>
#include <Expert\ExpertBase.mqh>
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\DealInfo.mqh>


input const int mag1 = 111; // уникальный идентификатор ордера к советнику 
input const int mag2 = 222;

CDateTime   tm;
CExpertBase ex;
CTrade tr;
CPositionInfo po;
CDealInfo de;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   tr.SetExpertMagicNumber(mag1);
   tr.Buy(0.1);
   tr.SetExpertMagicNumber(mag2);
   tr.Buy(0.2);
   tr.Sell(0.05);
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   string mag = "";
   po.Select(_Symbol);
   po.Identifier();
   mag = (string)po.Identifier()+ "   ";
   HistorySelectByPosition(po.Identifier());
   
   for (int i=HistoryDealsTotal()-1;i>=0; i--)
   {     
      de.SelectByIndex(i);
      mag += (string) de.Magic()+"   ";
    }
        
   Print (mag);
   
  }
//+------------------------------------------------------------------+
В логах увидите какие магики участвовали в текущей позиции. А далее можно получить всю информацию об ордерах которые привели к текущей позиции.
 
Dmitiry Ananiev:

да что вы тут парите! можно запустить советников всех в одном терминале. но надо открыть соответственно 50 чартов.

Ну конечно, здесь все парят.

Только за столько лет существования 5ки нормального решения разделения советников на инструменте для неттинг счетов так и не появилось.

 
Я же привел пример кода как это можно реализовать. 
Было бы желание.
 
Dmitiry Ananiev:
Я же привел пример кода как это можно реализовать. 
Было бы желание.


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

"Нормальные герои всегда идут в обход" © Айболит 66

10-30 советников на 1-3 символе, это 10 терминалов всего, вовсе не проблема.  

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