переворот текущей позиции - так работает, но можно ли сделать проще?

 
переворот текущей позиции - так работает, но можно ли сделать проще?
Так как переворот позиции в MetaTrader не реализован, то попробовал делать переворот с помощью пары команд

CloseOrder() - SetOrder(), при этом указывая в качестве параметра одну и ту же цену, для имитации переворота по ордеру типа Limit.

На самом деле эта комбинация работает не самым лучшим образом.

Например, мы имеем длинную позицию и хотим перевернуться в короткую:

1.CloseOrder(OrderValue cnt,VAL_TICKET),Lots,ClPrice,5,DarkRed);

Т.к. цена, по которой мы бы хотели закрыться не обязательно будет находиться в нужном нам диапазоне, то данная команда будет вызываться много раз подряд, пока, наконец, позиция не будет закрыта. Это создаёт значительную нагрузку на сервер брокера.

2. SetOrder(OP_SELLLIMIT,Lots,ClPrice,5,0,0,RED);

Даже при условии успешного закрытия позиции в п.1, данная команда не гарантирует нам что сервер примет ордер к исполнению, т.к. за время тайм-аута цена может уйти несколько пунктов в худшую сторону, и сервер брокера просто откажется принимать наш ордер.

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

Поэтому господа разработчики, убедительно прошу Вас обратить внимание на этот вопрос и рассмотреть возможность реализации переворота позиции по условиям Limit.

Это позволит многим из клиентов повысить свои торговые результаты, и как следствие - увеличить доходы брокеров, получаемых за счёт спрэда, и, наконец, повысит популярность Вашей платформы!
Причина обращения: