Если нужно переделать логику работы с ордерами из МТ4 в МТ5 максимально приближенно, то лучше это делать следующим образом:
1. Позиция не должна оперировать SL и TP, т. к. считаем, что она образована несколькими ордерами, каждый из которых может иметь свой SL и TP.
2. В качестве "указателя" количества ордеров по текущему символу выступает пара отложенных ордеров: один стоповый (эквивалент SL), второй - лимитный (эквивалент ТР). Эти ордера имеют одинаковый объем. За соответствием этих ордеров, придется следить (при срабатывании одного ордера соответствующий необходимо удалить). Были бы ОСО-ордера, тогда дело существенно упростилось бы.
В итоге открытие ордера в МТ4 это в МТ5 Buy или Sell с нулевыми SL и TP плюс установка двух отложенных ордеров.
Закрытие ордера это, опять же, Buy или Sell с нулевыми SL и TP плюс удаление соответствующих отложенных ордеров.
Структура позиции - это совокупность отложенных ордеров. В дальнейшем для определения того факта, какой же "ордер МТ4" закрылся, потребуется просматривать только историю ордеров.
например
вот тут ордер бай, сделка IN потом ордер SELL сделка OUT
визуально вполне понятно что закрылось BUY
а как это превраить в код
может кто уже юзал такую проблему.
Я же привёл пример кода ранее. https://www.mql5.com/ru/forum/62832#comment_1828331
Добавте переменные для OUT и всё
Я же привёл пример кода ранее. https://www.mql5.com/ru/forum/62832#comment_1828331
Добавте переменные для OUT и всё
у Вас функция проверки цены открытой позиции по сделкам?
почему бы это не выяснить
POSITION_PRICE_OPEN
Цена позиции
А если позиция закрыта, то по ёё ранее взятому идентификатору (когда она была открыта),
мы делаем всё тоже самое, но только в истории
а если позиция закрыта не полностью, а закрыта лишь ее часть?
у Вас функция проверки цены открытой позиции по сделкам?
почему бы это не выяснить
POSITION_PRICE_OPEN
Цена позиции
Днло в том, что на ФОРТС есть клиринги и то, что Вы приводите, это
искусственная цена позиции, а я беру реальную без учёта клирингов
хорошо, есть 3 сделки по разным ценам,
1,1 1,2 1,3
общая в мт5 = 1,2
октырваем еще одну сделку OUT - какую из этих сделок закрыли?
При доливке совокупная цена позиции меняется, а при частичном закрытии совокупная цена не меняется, значит закрытие не является обратным открытию.
Делаем бутерброд: хлеб, масло, сыр. А потом раз и пол бутерброда отрезали, у каждой половины есть хлеб, масло и сыр.
При доливке совокупная цена позиции меняется, а при частичном закрытии совокупная цена не меняется, значит закрытие не является обратным открытию.
Делаем бутерброд: хлеб, масло, сыр. А потом раз и пол бутерброда отрезали, у каждой половины есть хлеб, масло и сыр.
получается что тикет сделки в данном случае неизвестен. вернее его здесь и не должно быть.
ведро наполненное водой. чашка - сделка, черпает или добавляет воду.
При доливке совокупная цена позиции меняется, а при частичном закрытии совокупная цена не меняется, значит закрытие не является обратным открытию.
Делаем бутерброд: хлеб, масло, сыр. А потом раз и пол бутерброда отрезали, у каждой половины есть хлеб, масло и сыр.
С бочкой более нагляднее.. :)
P/S А почему, при частичном закрытии, совокупная цена не меняется?
Если нужно переделать логику работы с ордерами из МТ4 в МТ5 максимально приближенно, то лучше это делать следующим образом:
1. Позиция не должна оперировать SL и TP, т. к. считаем, что она образована несколькими ордерами, каждый из которых может иметь свой SL и TP.
2. В качестве "указателя" количества ордеров по текущему символу выступает пара отложенных ордеров: один стоповый (эквивалент SL), второй - лимитный (эквивалент ТР). Эти ордера имеют одинаковый объем. За соответствием этих ордеров, придется следить (при срабатывании одного ордера соответствующий необходимо удалить). Были бы ОСО-ордера, тогда дело существенно упростилось бы.
В итоге открытие ордера в МТ4 это в МТ5 Buy или Sell с нулевыми SL и TP плюс установка двух отложенных ордеров.
Закрытие ордера это, опять же, Buy или Sell с нулевыми SL и TP плюс удаление соответствующих отложенных ордеров.
Структура позиции - это совокупность отложенных ордеров. В дальнейшем для определения того факта, какой же "ордер МТ4" закрылся, потребуется просматривать только историю ордеров.