Правильное закрытие ордера

 

Привет всем! Недавно увидел такой код:

OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage);

Насколько это правильно (я про использование OrderClosePrice())? Я сначала подумал что он вообще работать не будет, но работает...

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

 

При исполнении "по рынку" (Market) вообще не важно, что там стоит (как и проскальзывание).

А вообще, насколько помню четвёрку, у открытых ордеров там 0 должен быть (OrderClosePrise()==0), а не текущая цена (по крайне мере в старых билдах так было - так можно было определять тикет из истории или ещё открыт, если по тикету выбираешь).

 
Maksim Neimerik:

Привет всем! Недавно увидел такой код:

Насколько это правильно (я про использование OrderClosePrice())? Я сначала подумал что он вообще работать не будет, но работает...

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

Зависит от брокера. У некоторых будет работать, а некоторые будут ошибку выдавать. По наблюдениям, у А-ри все работает. Все что скормишь их серверу, будет принято.

Пример: отправляешь на сервер приказ на Buy по цене Bid - исполняется, только по Аску, как и надо. 

 
Evgeniy Zhdan:

Зависит от брокера. У некоторых будет работать, а некоторые будут ошибку выдавать. По наблюлениям, у А-ри все работает. Все что скормишь их серверу, будет принято.

Пример: отправляешь на сервер приказ на Buy по цене Bid - исполняется, только по Аску, как и надо. 

Понятно, я думал такие вещи не зависят от брокера...

 
Maksim Neimerik:

Понятно, я думал такие вещи не зависят от брокера...

Выше немного неверно написали. Это зависит от типа счета, т.е. типа исполнения ордеров - Маркет, он же ECN, Инстант. И потом уже от настроек брокера, а именно StopLevel. Почитайте, всё подробнее гуглится.

Код вообще конечно смысла не имеет, на инстант-счетах (стандарт) работать не будет.

 
Maksim Neimerik:

Насколько это правильно (я про использование OrderClosePrice())?

Это всегда правильно, если между OrderSelect и OrderClose не было пауз. Отсутствие паузы так же является обязательным условием, если закрываете через Bid/Ask.