Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Используй MQL5 Cloud Network. Это безопасно!
o_O
Модератор
23407
o_O 2016.10.20 15:59 
сабж
fxsaber
3500
fxsaber 2016.10.20 16:03  
Посмотрите SlipPage. Он находит эти числа для каждой из позиций и умножает их на соответствующий TickValue.
Andrey Dik
10643
Andrey Dik 2016.10.20 16:03  
o_O:
сабж
Наверное нужно искать цепь сделок по истории, вначале цепи которой in а в конце out или in/out. В начале цена открытия - в конце цена закрытия. Геморно, но вроде больше никак.
Vasiliy Sokolov
20240
Vasiliy Sokolov 2016.10.20 16:09  
o_O:
сабж

Если все делать тру, тогда без ордерной арифметики не обойтись: https://www.mql5.com/ru/articles/1297#c3_8

Более простой вариант: (усредненный Out - усредненный In)/Vol, но тогда быть готовым к числам вроде 170.99999999999999999... и округлению.

o_O
Модератор
23407
o_O 2016.10.20 16:19  

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

только надо правильно соотносить точки входа и выхода по порядку появления.

Alexey Viktorov
5487
Alexey Viktorov 2016.10.20 16:26  
o_O:

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

только надо правильно соотносить точки входа и выхода по порядку появления.

Наверное вот это поможет

ENUM_DEAL_ENTRY in_out = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(ticket, DEAL_ENTRY); // ticket сделки из списка HistorySelectByPosition()
если DEAL_ENTRY_IN то это сделка открытия позиции, а DEAL_ENTRY_OUT сделка закрытия позиции. Разница цен этих сделок будет искомое значение.
Vasiliy Sokolov
20240
Vasiliy Sokolov 2016.10.20 16:31  
o_O:

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

Свой алгоритм я публиковал. Проще сделать навряд ли получиться, но оно того стоит.

o_O:

только надо правильно соотносить точки входа и выхода по порядку появления.

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

Andrey Dik
10643
Andrey Dik 2016.10.20 16:31  
Alexey Viktorov:

Наверное вот это поможет

ENUM_DEAL_ENTRY in_out = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(ticket, DEAL_ENTRY); // ticket сделки из списка HistorySelectByPosition()
если DEAL_ENTRY_IN то это сделка открытия позиции, а DEAL_ENTRY_OUT сделка закрытия позиции. Разница цен этих сделок будет искомое значение.
не только out но и in/out означают закрытие.
Vasiliy Sokolov
20240
Vasiliy Sokolov 2016.10.20 16:33  
Alexey Viktorov:

если DEAL_ENTRY_IN то это сделка открытия позиции, а DEAL_ENTRY_OUT сделка закрытия позиции. Разница цен этих сделок будет искомое значение.

Улыбнуло:))
Alexey Viktorov
5487
Alexey Viktorov 2016.10.20 16:34  
Andrey Dik:
не только out но и in/out означают закрытие.

Я дал не полный ответ. Надеюсь дальше мало кто не разберётся.

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

Выход из рынка

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_OUT_BY

Закрытие встречной позицией

Alexey Viktorov
5487
Alexey Viktorov 2016.10.20 16:34  
Vasiliy Sokolov:
Улыбнуло:))
Почему?
/ /1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий