Не плохо было бы ввести структуру состояния заполняемую событием Trade - страница 3

 
Я понимаю, узнать что сработал TakeProfit или StopLoss можно по комментарию. Но в том то и дело, что для моей мультисистемной модели этого не достаточно. Допустим мой эксперт одновременно торгует по трем стратегиям на 19 таймфреймах одного инструмента. Соответственно возникает 19 тайфремов * 3 стратегии * 1 инструмент = 57 независимых решений, каждое из которых представлено динамически созданной моделью. После срабатывания TakeProfit или StopLoss нужно определить, какой конкретной модели он принадлежит. В данном случае по комментарию мы определили: Да, сработал стоп-лосс. Теперь осталось определить, какой из 57 моделей он принадлежит, а сделать этого как раз и нельзя. Вся загвоздка именно в этом. Я думаю, что оптимальным решением был бы полный отказ от использования стоп-лоссов и тейк-профитов. По сути и те и другие ордера есть суррогаты обычных StopLimit и Stop ордеров.
 
C-4:
Я понимаю, узнать что сработал TakeProfit или StopLoss можно по комментарию. Но в том то и дело, что для моей мультисистемной модели этого не достаточно. Допустим мой эксперт одновременно торгует по трем стратегиям на 19 таймфреймах одного инструмента. Соответственно возникает 19 тайфремов * 3 стратегии * 1 инструмент = 57 независимых решений, каждое из которых представлено динамически созданной моделью. После срабатывания TakeProfit или StopLoss нужно определить, какой конкретной модели он принадлежит. В данном случае по комментарию мы определили: Да, сработал стоп-лосс. Теперь осталось определить, какой из 57 моделей он принадлежит, а сделать этого как раз и нельзя. Вся загвоздка именно в этом. Я думаю, что оптимальным решением был бы полный отказ от использования стоп-лоссов и тейк-профитов. По сути и те и другие ордера есть суррогаты обычных StopLimit и Stop ордеров.

Отказ? Не, я на такое не подписывался.

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

 
C-4:
Я понимаю, узнать что сработал TakeProfit или StopLoss можно по комментарию. Но в том то и дело, что для моей мультисистемной модели этого не достаточно. Допустим мой эксперт одновременно торгует по трем стратегиям на 19 таймфреймах одного инструмента. Соответственно возникает 19 тайфремов * 3 стратегии * 1 инструмент = 57 независимых решений, каждое из которых представлено динамически созданной моделью. После срабатывания TakeProfit или StopLoss нужно определить, какой конкретной модели он принадлежит. В данном случае по комментарию мы определили: Да, сработал стоп-лосс. Теперь осталось определить, какой из 57 моделей он принадлежит, а сделать этого как раз и нельзя. Вся загвоздка именно в этом. Я думаю, что оптимальным решением был бы полный отказ от использования стоп-лоссов и тейк-профитов. По сути и те и другие ордера есть суррогаты обычных StopLimit и Stop ордеров.
а кто вам мешает их не использовать, не хотите не используйте.
 
Interesting:

Отказ? Не, я на такое не подписывался.

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

Хорошо, ваше решение? В том же VOM фактически отказались от тейк-профитов и стоп-лоссов, перенеся их в виртуальную среду, думаю разработчик VOM пошел на это из за банальной невозможности следить, какой стоп-лосс, какой модели принадлежит. Ничего страшного в этом нет. Просто вместо одного ордера будет целых три, два из которых должны выставляться (да и то не обязательно) только после срабатывания основного. Если основной ордер будет допустим BUY_STOP и он сработает, то вместо тейк-профита выставиться ордер SellLimit, а вместо стоп-лосса - ордер SellStop. 
 
C-4:
Хорошо, ваше решение? В том же VOM фактически отказались от тейк-профитов и стоп-лоссов, перенеся их в виртуальную среду, думаю разработчик VOM пошел на это из за банальной невозможности следить, какой стоп-лосс, какой модели принадлежит. Ничего страшного в этом нет. Просто вместо одного ордера будет целых три, два из которых должны выставляться (да и то не обязательно) только после срабатывания основного. Если основной ордер будет допустим BUY_STOP и он сработает, то вместо тейк-профита выставиться ордер SellLimit, а вместо стоп-лосса - ордер SellStop. 

Тут нужно подумать, слишком мудреная у Вас стратегия.

В любом случае я так полагаю что как минимум при таком подходе нужно создавать виртуального менеджера (на все пары или на каждую в отдельности).

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

PS

В любом случае я считаю что вопрос закрытия или урезки части позиции не достаточно проработан. Про переворот я и думать боюсь...

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
 
papaklass:
А разве закрытие позиции уже не считается изменением объема? Была позиция 1 лот, стала 0 лотов. Вопрос: изменился ли объем позиции? Ответьте на этот вопрос и мой предыдущий пост Вам станет более понятным.

А бывает ли позиция в 0 лотов?

И, если сначала была позиция в N лотов, а потом позиции не стало, то можно ли говорить об изменении объёма позиции?

Вот об изменении количества позиций "в некоторой локальной области пространства", говорить, наверное, можно...

Я имею ввиду, - можно ли говорить о значении некоторого свойства (объема) уже несуществующего объекта (ликвидированной позиции)?

Что-то много я вопросов задаю, - ещё за'ban'ят за занудство...

 

А бывает ли позиция в 0 лотов?

В MetaTrader 5 бывает все.

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

 
C-4:

В MetaTrader 5 бывает все.

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

Не понятен ваш максимализм, не получается учитывать не пользуйтесь лосями(ставьте отложки с ними проблем с учётом нет,

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

сейчас есть куча ДЦ МТ-4 которые используют подобную процедуру(сначало ставишь ордер потом доставляешь следующим приказом ему лось и профит).

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

Всё идёт от того что ваше мышление не приспособилось к неттинговому учёту и вы просто не улавливаете что лось и профит теперь не на конкретный трейд,

а на всю позицию один профит-уровень и один лосс-уровень.


 
Urain:

Не понятен ваш максимализм, не получается учитывать не пользуйтесь лосями(ставьте отложки с ними проблем с учётом нет,

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

сейчас есть куча ДЦ МТ-4 которые используют подобную процедуру(сначало ставишь ордер потом доставляешь следующим приказом ему лось и профит).

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

Всё идёт от того что ваше мышление не приспособилось к неттинговому учёту и вы просто не улавливаете что лось и профит теперь не на конкретный трейд,

а на всю позицию один профит-уровень и один лосс-уровень.


Я требую лишить всех возможности ставить лоси и тейки?!! Вовсе нет. Просто раз лось и тейк приписан к конкретному ордеру а не к позиции, то стало быть должен быть удобный механизм определить, что лось или тейк был инициирован благодаря конкретному ордеру, тому самому, который и установил изначально эти тейк и лось. А этого нет. И вот это мне не понятно.

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

 
C-4:

Я требую лишить всех возможности ставить лоси и тейки?!! Вовсе нет. Просто раз лось и тейк приписан к конкретному ордеру а не к позиции, то стало быть должен быть удобный механизм определить, что лось или тейк был инициирован благодаря конкретному ордеру, тому самому, который и установил изначально эти тейк и лось. А этого нет. И вот это мне не понятно.

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

Ага понял откуда ноги растут. Проблема в том что ордер это приказ серверу на проведение транзакции (результатом транзакции есть сделка),

а профит и лось принадлежат как раз позиции а не сделке.

ENUM_POSITION_PROPERTY_DOUBLE
   POSITION_SL            Уровень Stop Loss для открытой позиции                  double
   POSITION_TP            Уровень Take Profit для открытой позиции                double

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

Выставляя второй ордер вы так же можете выставить новый уровень лося и и результатом будет транзакция которая изменит вашу позицию как в объёме так и задаст новые уровни лося и профита. Но всё равно они принадлежат позицие а не проведённой сделке(транзакцие).

Если вы к примеру откроете позицию на 0.1 лота, а потом сделаете доливку ещё 9 раз по 0.1 лота то при срабатывании лося вы будете иметь сделку направлением out  и объёмом на 1.0 лота те произойдёт закрытие позиции.

Стоплосс или Тейкпрофит закрывают позицию целиком а не конкретную сделку в отдельности.

Ps сделку посути теперь вообще не нужно закрывать тк это просто  история транзакции.

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