Возможно ли реализовать в MT5 НАДЕЖНЫЙ учет структуры совокупной позиции?

 

Данная тема неоднократно поднималась:

Svinozavr писал(а) >>

Господа! Оторвитесь на мгновение от вашей сладострастной полемики и вникните в предложение:

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

Это позволит разрешить ВСЕ ваши споры, конца коим, по всему, не будет никогда. Просто нужно будет прогнать два варианта одного советника - один с локами, другой с сформированной из локов нетто позицией.

Подумайте, пожалуйста, в этом направлении. Это - конструктивно. (А то перессоримся все тут к такой-то матери!)))

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

Лок - это не проблема. Здесь описаны причины ненадежности самой концепции MT5. И логичное частное следствие:

с текущим опубликованным MT5-функционалом написание НАДЕЖНОГО советника на MQL5 для одновременной с ним ручной торговли на том же торговом инструменте не возможно!

P.S Здесь и здесь спрашивал бета-тестеров, как они видят решение этой проблемы в MT5... на задававшиеcя разработчикам подобные вопросы ответ тоже не был получен.

 
Выдох вдох хорошо дышать
Чёрный горох да нелегко глотать
Пуля и ствол нажал и разошлись
Где добро где зло попробуй разберись
А что мне надо да только свет в оконце
А что мне снится что кончилась война
Куда иду я туда где светит солнце
Вот только братцы добраться до темна
Шаг другой до счастья долеко
Эй брат постой я знаю не легко
Вымой лицо побрейся улыбнись
Выйди на крыльцо свободе поклонись
А что мне надо да только свет в оконце
А что мне снится что кончилась война
Куда иду я туда где светит солнце
Вот только братцы добраться до темна
А что нам надо да только свет в оконце
А что нам снится что кончилась война
Куда идём мы туда где светит солнце
Вот только братцы добраться до темна

Галанин С.  
 
getch писал(а) >>

Данная тема неоднократно поднималась:

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

Лок - это не проблема. Здесь описаны причины ненадежности самой концепции MT5. И логичное частное следствие:

с текущим опубликованным MT5-функционалом написание НАДЕЖНОГО советника на MQL5 для одновременной с ним ручной торговли на том же торговом инструменте не возможно!

P.S Здесь и здесь спрашивал бета-тестеров, как они видят решение этой проблемы в MT5... на задававшиеcя разработчикам подобные вопросы ответ тоже не был получен.

Честно говоря не вижу такой уж великой проблемы, особенно с советником.

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

А вот для ручной торговли желательно, чтобы этот комент можно было наблюдать на экране(в отличие от МТ4 на закладке истории счета), и тогда вообще задумываться неочем, кроме как о надежности хранения информации в коменте.

 
Вы слабо представляете себе проблему. Если кто-то предложит хотя бы идею НАДЕЖНОГО учета структуры совокупной позиции, то ветка умрет, значит и у меня примитивное узколобое мышление. Если же нет, то это серьезная проблема, которую надо будет решать уже разработчикам.
 

Здесь предлагался один из методов реализации, но он не надежен:

Renat писал(а) >>

Вы делаете неверные выводы. И меджики и комментарии работают также как и в МТ4.

Дождитесь выпуска, пожалуйста, чтобы самостоятельно все проверить.

Мэджики и комментарии храняться в истории исполнения ордеров, но не в совокупной позиции.

Вы предлагаете анализировать историю, чтобы решить вышеназванную проблему?

Повторюсь, сейчас в MT4 элементарно любой стратегии подхватить информацию по текущему положению дел и продолжить свою работу, будто она и не прерывалась. Эта информация доступна из открытых позиций. В MT5 этого не сделать, т.к. есть скудная инфа по совокупной позиции и все. Можно анализировать историю FILLED-ордеров, но опять же повторюсь, это крайне не надежно, т.к. история может быть не вся доступна для анализа (а можно ли средствами MQL5 подкачивать историю FILLED-ордеров по фильтру мэджика?), она может быть огромной и время на ее анализ может быть затрачено существенное.

Т.е. вы в MT5 предлагаете на основании истории FILLED-ордеров восстанавливать вклад стратегии в совокупную позицию?

 
Integer >>:

Эта проблема поднималась и с МТ4 - надежный способ маркировки родеров, но как видим в ее решении нет сдвигов, а наоборот еще дальше ушли.

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

 
getch писал(а) >>

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

Да суть проблемы ясна и прозрачна, поскольку в нескольких прог. продуктах такого рода приходилось работать. Например, пресловутый Румус или ИДсистем у ФК. Как это будет реализовано в МТ5 я затредняюсь ответить, т.к. пока не пользовался, все не дождусь. А выход искать придется, по крайней мере подобный подход, хоть как то идентифицирует действия советников, это все же лучше, чем ничего.

С появлением МТ5, будем пробовать и искать более надежные варианты.

 

Еще один способ реализации через высокоуровневый API на MQL5, но снова ненадежно:

nen писал(а) >>

Это неверное утверждение. Сначала надо попробовать MQL5, потом уже говорить о порядке усложнения.

Сложно будет менять наработанную с годами логику процесса программирования. Но программы на MQL5 можно создавать более сложные, чем на MQL4, с меньшеми затратами времени. И возможностей добавилось столько, что сейчас просто трудно представить весь объем новшеств. Полезных новшеств.

-------

Плохо, что придется ВСЕ переписывать с MQL4 на MQL5.

Конечно, можно! Но при портировании MQL4->MQL5 это в большиснтве случаев далеко не так.

nen, прошу сообщить свое видение реализации на MQL5 стратегии, допускающей запуска на одном торговом инструменте нескольких независимых стратегий.

Возьмите любую простецкую стратегию из стандартной поставки MT4 и сделайте ее универсальной (независимой) стратегией.

На MQL4 - это 10 строчек кода и меньше 5 минут работы.

На MQL5 - это ... даже не представить.

Я вижу решение этой проблемы через создание средствами MQL5 более высокого уровня API, чем сам MQL5. В этом API будут реализованы торговые функции с возможностью работы с виртуальными позициями, у которых будут все свойства, какие есть у MT4-позиций. Уверен (пророчество просто), различные версии таких API появятся в CodeBase MQL5, со временем в них будут устраняться ошибки, и все доводиться до идеала. Трейдеры будут просто подключать этот API и тогда решение вышеназванной задачи и подобных будет занимать тоже меньше 5 минут.

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

P.S. Также через это API мощными средствами MQL5 будет создан интерфейс для работы с этими виртуальными позициями руками - аналог MT4.

 
getch писал(а) >>

Здесь предлагался один из методов реализации, но он не надежен:

Renat писал(а) >>

Вы делаете неверные выводы. И меджики и комментарии работают также как и в МТ4.

Дождитесь выпуска, пожалуйста, чтобы самостоятельно все проверить.

Мэджики и комментарии храняться в истории исполнения ордеров, но не в совокупной позиции.

OrderMagicNumber() по крайней мере в справке по МТ5, я не нашел, поэтому где и как хранится мэджик в МТ5, не понятно.

 
fwiq >>:

OrderMagicNumber() по крайней мере в справке по МТ5, я не нашел, поэтому где и как хранится мэджик в МТ5, не понятно.

struct MqlTradeRequest
  {
   ENUM_TRADE_REQUEST_ACTIONS    action;           // Тип выполняемого действия
   ulong                         expert;           // Штамп эксперта (идентификатор)
   ulong                         order;            // Тикет ордера
   string                        symbol;           // Имя торгового инструмента
   double                        volume;           // Запрашиваемый объем сделки в лотах
   double                        price;            // Цена 
   double                        stoplimit;        // Уровень StopLimit ордера
   double                        sl;               // Уровень Stop Loss ордера
   double                        tp;               // Уровень Take Profit ордера
   ulong                         deviation;        // Максимально приемлемое отклонение от запрашиваемой цены
   ENUM_ORDER_TYPE               type;             // Тип ордера
   ENUM_ORDER_TYPE_FILLING       type_filling;     // Тип ордера по исполнению
   ENUM_ORDER_TYPE_TIME          type_time;        // Тип ордера по времени действия
   datetime                      expiration;       // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)
   string                        comment;          // Комментарий к ордеру
   char                          reserved[128];    // Зарезервировано
  };
 
getch писал(а) >>

Еще один способ реализации через высокоуровневый API на MQL5, но снова ненадежно:

nen писал(а) >>

Это неверное утверждение. Сначала надо попробовать MQL5, потом уже говорить о порядке усложнения.

Сложно будет менять наработанную с годами логику процесса программирования. Но программы на MQL5 можно создавать более сложные, чем на MQL4, с меньшеми затратами времени. И возможностей добавилось столько, что сейчас просто трудно представить весь объем новшеств. Полезных новшеств.

-------

Плохо, что придется ВСЕ переписывать с MQL4 на MQL5.

Конечно, можно! Но при портировании MQL4->MQL5 это в большиснтве случаев далеко не так.

nen, прошу сообщить свое видение реализации на MQL5 стратегии, допускающей запуска на одном торговом инструменте нескольких независимых стратегий.

Возьмите любую простецкую стратегию из стандартной поставки MT4 и сделайте ее универсальной (независимой) стратегией.

На MQL4 - это 10 строчек кода и меньше 5 минут работы.

На MQL5 - это ... даже не представить.

Я вижу решение этой проблемы через создание средствами MQL5 более высокого уровня API, чем сам MQL5. В этом API будут реализованы торговые функции с возможностью работы с виртуальными позициями, у которых будут все свойства, какие есть у MT4-позиций. Уверен (пророчество просто), различные версии таких API появятся в CodeBase MQL5, со временем в них будут устраняться ошибки, и все доводиться до идеала. Трейдеры будут просто подключать этот API и тогда решение вышеназванной задачи и подобных будет занимать тоже меньше 5 минут.

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

P.S. Также через это API мощными средствами MQL5 будет создан интерфейс для работы с этими виртуальными позициями руками - аналог MT4.

Это уж слишком сложно, да и не к чему столько ненужной работы. Скорее всего можно обойтись и простым набором классов, разработанных для подобного учета, работающих на самой платформе без сильных эксцессов. Но тут ИМХО полное.

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