Не все позиции закрываются.

 

Доброго времени суток. В предоставленном ниже коде пытаюсь закрыть все ордера с помощью SL, но не всегда закрываются все ордера. Подскажите как можно видоизменить код, чтобы такой ошибки не было)

 
Anton Novokhatskii:

Доброго времени суток. В предоставленном ниже коде пытаюсь закрыть все ордера с помощью SL, но не всегда закрываются все ордера. Подскажите как можно видоизменить код, чтобы такой ошибки не было)


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

 
Да, я пытаюсь выставить TP и SL на уровень текущей цены закрытия ордера, чтобы он закрылся. Но периодически это не срабатывает и  я пытаюсь понять в чем дело)
 
Anton Novokhatskii #:
Да, я пытаюсь выставить TP и SL на уровень текущей цены закрытия ордера, чтобы он закрылся. Но периодически это не срабатывает и  я пытаюсь понять в чем дело)

Нельзя так делать. Хотите закрыть сейчас - закрывайте.

 
Я пытался сделать закрытие по выставлению SL и TP, тк комп провисает во время закрытия всех позиций по привычной функции, и поэтому пытаюсь сделать закрытие ордеров таким образом
 
спасибо большое за подсказку, решил проблему
 
Anton Novokhatskii #:
Я пытался сделать закрытие по выставлению SL и TP, тк комп провисает во время закрытия всех позиций по привычной функции, и поэтому пытаюсь сделать закрытие ордеров таким образом

Есть уровни заморозки около текущей цены инструмента, туда выставить отложенные приказы нельзя, а сл и тп это отложенные приказы по достижению цены с тем же лотом в противоположном направлении позиции, что бы ее закрыть. Поэтому если выставляете стоплосс в районе цены, будет отказ и ошибка выставления приказа. Закрытие рыночного ордера = позиции, это открытие противоположной позиции по текущей цене. Это будет работать. Если понимаете суть лимиток, то тоже можно)

Зы, в 5ке нет рыночных ордеров, там только позиции , сделки, ордера, и отложенные ордера. 
 
Valeriy Yastremskiy #:

Есть уровни заморозки около текущей цены инструмента, туда выставить отложенные приказы нельзя, а сл и тп это отложенные приказы по достижению цены с тем же лотом в противоположном направлении позиции, что бы ее закрыть. Поэтому если выставляете стоплосс в районе цены, будет отказ и ошибка выставления приказа. Закрытие рыночного ордера = позиции, это открытие противоположной позиции по текущей цене. Это будет работать. Если понимаете суть лимиток, то тоже можно)

Зы, в 5ке нет рыночных ордеров, там только позиции , сделки, ордера, и отложенные ордера. 

В Мт5 есть рыночные ордера. Это приказы на открытие позиции по рынку. 
Не у всех брокеров есть уровни заморозки. У нормальных - нету 

Если ставить цену на уровень ТП и СЛ, то часто нужно ждать следующего тика. Если цена не уйдет - то закроется, Но есть еще масса других рыночных механизмов влияющих на исполнение.

 
Dmitiry Ananiev #:

В Мт5 есть рыночные ордера. Это приказы на открытие позиции по рынку. 
Не у всех брокеров есть уровни заморозки. У нормальных - нету 

Если ставить цену на уровень ТП и СЛ, то часто нужно ждать следующего тика. Если цена не уйдет - то закроется, Но есть еще масса других рыночных механизмов влияющих на исполнение.

Это понятно, закрыть их нельзя))) Там ошибка ТС в желании закрыть ордера)))

И в доках к сожалению (я например только после разъяснений Артема Тришкина вкурил что ордер это приказ) не понятно все таки написано, что отложенный ордер это отложенный приказ, и он существует долго и его надо отменять или удалять, и он не имеет стоимости. А позиция, это актив имеющий стоимость, и его надо закрывать обратной противоположной сделкой. А рыночный ордер исполняется сразу, и он не существует долго, или исполняется или не исполняется и возвращает ошибку исполнения)))

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