Скачать MetaTrader 5

Непонятности в OrderCloseBy()

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Юрий Макаров
358
Юрий Макаров  
Попытался применить эту функцию, и такая непонятность обнаружилась.

Вот кусок кода:
................. if (cntBuy > 1 && cntSell > 1) { WaitOrderTimeOut(); if(IsTradeAllowed()) if (!OrderCloseBy(ticketBuy, ticketSell)) Print("OrderCloseBy (",ticketBuy," <=> ",ticketSell,") Error: ",GetLastError()); } ...............


Вот результат работы (во вложенной картинке).
Buy позиции закрываются Sell позициями (см. код).
Почему то у всех Sell позиций число лотов стало нулевым, и соответственно профиты тоже.
Изначально все позиции одинакового размера.
Так и должно быть, или это ошибка?

И кстати еще момент,
при генерации отчета в html позиции идут в непонятном порядке.
Чтобы сделать понятную картинку пришлось открывать отчет в экзеле и сортировать его.
Файлы:
untitled.gif 4 kb
Slava
Модератор
7014
Slava  
О чём идёт речь - о тестировании или реальной работе?
Юрий Макаров
358
Юрий Макаров  
Эксперт работает в онлайне на демо счете в Альпари.
MetaQuotes
Админ
25424
Renat Fatkhullin  
Все верно - CloseBy так и работает, что второй ордер обнуляется. Это же обоюдное схлопывание позиций.
Попробуйте вручную тоже самое провести.
Юрий Макаров
358
Юрий Макаров  
Renat:
Все верно - CloseBy так и работает, что второй ордер обнуляется. Это же обоюдное схлопывание позиций.
Попробуйте вручную тоже самое провести.
Да, я проверил руками, баланс похож.
Но как то нелогично это ...

Был Sell по USDDKK, и вдруг его как бы небыло ...
Не то чтобы не стало (закрылся), а и небыло никогда (размер позы 0).
И как теперь узнать какой был размер позы?
Получается что данные в отчетах меняются задним числом?

Если баланс по Sell получился нулевой, тогда должен измениться баланс по Buy.
Размер позиции не изменился, цена входа тоже ...
Тогда либо цена выхода должна измениться, либо баланса по строке не будет (профит не сойдется).
Если изменилась цена выхода, то будут возникать вопросы типа - "а не было такой цены в это время .."
Если баланс не сходится, вопросов еще больше будет.

В общем как то это все ...... странно.
Или я чего то не понял ...

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

И вообще ничего выдумывать не нужно, одна поза закроется по биду, другая по аску.
Размер поз может быть даже разным, и даже символ может быть разным :)
И даже поз могло бы быть в списке не две, а целый список ... :)
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий