Забыл добавить, что все buy - это бывшие buy limit с ценой, которая в последней колонке.
Раз никого не заинтересовало, тогда вопрос к разработчикам - что на самом деле значит ORDER_PRICE_OPEN и ORDER_PRICE_CURRENT?
Что возвращает ORDER_PRICE_CURRENT? Никогда не пользовался этим параметром.
По идее (как написано в справке) должен возвращать текущую цену Bid или Ask в зависимости от направления ордера.
Вопрос снят, ORDER_PRICE_OPEN - цена ордера при выставлении, ORDER_PRICE_CURRENT - цена исполнения ордера.
Вопрос появился из-за того, что лимитники, оказывается (!), исполнялись по цене, которая лучше указанной (что ж с демки взять :) хотя теоретически знаю о такой возможности, но почему-то её проигнорировал), а я не мог понять, что за ахинею получаю при ORDER_PRICE_OPEN.
Ну и соответственно, те, кто копается в истории, чтобы вычислить какие-то там цены позиции - нужно использовать ORDER_PRICE_CURRENT, а не ORDER_PRICE_OPEN
Вопрос снят, ORDER_PRICE_OPEN - цена ордера при выставлении, ORDER_PRICE_CURRENT - цена исполнения ордера.
Вопрос появился из-за того, что лимитники, оказывается (!), исполнялись по цене, которая лучше указанной (что ж с демки взять :) хотя теоретически знаю о такой возможности, но почему-то её проигнорировал), а я не мог понять, что за ахинею получаю при ORDER_PRICE_OPEN.
Ну и соответственно, те, кто копается в истории, чтобы вычислить какие-то там цены позиции - нужно использовать ORDER_PRICE_CURRENT, а не ORDER_PRICE_OPEN
Чтобы вычислить цены позиции, по моему, лучше использовать сделки а не ордера как у вас. Ордера могут вообще не исполниться.
if(PositionSelect(_Symbol) && HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER)))
Выбираем только те ордера, которые приняли участие в формировании позиции (с моей точки зрения). По идее, отменённые сюда не попадут (проверено для удалённых вручную лимитников). С ходу, не могу представить ситуацию, когда неисполненный ордер попадёт в этот HistorySelect.
Но, конечно, можно и через Deal, но так сложнее (как по мне ибо нужно бегать по сделкам и считать, когда был первый Deal для данной позиции)
Выбираем только те ордера, которые приняли участие в формировании позиции (с моей точки зрения). По идее, отменённые сюда не попадут (проверено для удалённых вручную лимитников). С ходу, не могу представить ситуацию, когда неисполненный ордер попадёт в этот HistorySelect.
Но, конечно, можно и через Deal, но так сложнее (как по мне ибо нужно бегать по сделкам и считать, когда был первый Deal для данной позиции)
Если вмешивается (роловер, клиринг) в формирование позиции или в позиции участвуют несколько стратегий, то с вашим подходом никак не получится учесть все нужные ордера или сделки.
...
Вопрос появился из-за того, что лимитники, оказывается (!), исполнялись по цене, которая лучше указанной (что ж с демки взять :) хотя теоретически знаю о такой возможности, но почему-то её проигнорировал), а я не мог понять, что за ахинею получаю при ORDER_PRICE_OPEN.
...
Это стандарт биржевого исполнения
Как раз на бирже и не может лимитник исполниться по цене лучше, чем указано (стоит стакан, хочу купить по 10, кто-то решил шмальнуть по рынку - пока мою заявку на 10 не исполнят полностью - бид ниже не опустится) - исключаем аукционы открытия\закрытия. А проскальзывания в "+" на лимитниках на форексе - либо игра в поддавки для заманухи, либо брокер настолько ленив, что даже не берёт своих законных шаровых пару пипсов, а всё выводит дальше. Сильно склоняюсь к первой версии.
Лимитный ордер должен исполняться по цене не хуже, чем указана. и это возможно.
Наведу Вам пример:
Я выставляю лимитник на покупку 0.01 по цене 1.35777
По этой цене больше лимитников нет.
Другой трейдер продает 1000 лотов.
По какой цене будет продажа 1000лотов?
если цена продажи 1000лотов будет ниже чем у моего лимитника, то почему меня не открыть по лучшей цене?
конечно брокеры с удовольствием себе это подгребают, но не все.. у меня не часто но бывает лимитники и ТП (это тоже лимитник) исполняются по лучшей цене, чем заказана. зависит, от брокера
p.s.
какая цена будет открытия 1000 лотов я и сам не знаю, но никогда не видил рваного открытия (чтоб цена была типа 1.357766666666)

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Мини-задачка.
Не прибегая к запуску следующего кода:
выяснить, что этот код выведет для позиции, сформированной следующими ордерами:
исходя из того, что в справке написано (англ.):
(рус.):