При попытке модифицировать открытую позицию возникает ошибка Invalid stops, 10016 - страница 2

 
Алексей Орлов #:
Робот тейкнул позицию и выставил новые лимитки. Вроде я уже осознал разницу между ордером и позицией)

Что это означает? Позиция закрылась по тейку? Или что-то другое?

 
Алексей Орлов #:
У нас например, сработал лимитный ордер и мы хотим выставить ТП без СЛ, но цена инструмента на уровне цены открытия. У меня вроде поэтому ошибку то и выдаёт. Как в таком случае поступать?
Ждать когда цена уйдет и станут проходить проверки по стоп уровням и заморозки. См. статью.
Или ТП/СЛ увеличивать, чтобы были выше этих уровней.
 
Alexey Viktorov #:

Что это означает? Позиция закрылась по тейку? Или что-то другое?

Да, закрылась по тейку, при выставлении которого перед этим выдаёт ошибку.
 
Алексей Орлов #:
Да, закрылась по тейку, при выставлении которого перед этим выдаёт ошибку.

Ну а как-же поставить тейк отсутствующей позиции? Хотя в этом случае должно быть другая ошибка.

Может перед OrderSend() проверить разницу тейка и текущей цены?  В частном случае, если цена уже выше предполагаемого тейка, то просто закрыть позицию.

 
Alexey Viktorov #:
на момент выставления ТП позиция существует.
 
Alexey Viktorov #:
1. Получается «масло масляное» Лучше просто

Вроде понял. При вызове функции PositionGetTicket, она автоматом выбирает эту позицмю для дальнейшей работы. Поэтому ну нужно доп движений, я думал, что сначала поулчаю тикет позиции с нужным индексом, а потом выбираю её для работы.

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