Ошибки, баги, вопросы - страница 2077

 
Aleksey Vyazmikin:

Да вот для лимитки это было бы нормально, но когда покупка по стакану, то мне кажется странным, что информация о сделке приходит порционно.

Как я могу узнать, какой был объем, если открывает позиции один советник, а обрабатывает другой?

Вы своим рыночным ордером заливаете чужие лимитки. И не обязательно, что Вы зальете лимитку одного контрагента (если лот Вашего ордера > 1).

Как узнать.. В советнике, который обрабатывает историю, запросить эту самую историю, если есть открытая позиция. И проверить, обрабатывался ли ордер, который инициировал сделку текущей позиции.

 
Alexey Kozitsyn:

Вы своим рыночным ордером заливаете чужие лимитки. И не обязательно, что Вы зальете лимитку одного контрагента (если лот Вашего ордера > 1).

Как узнать.. В советнике, который обрабатывает историю, запросить эту самую историю, если есть открытая позиция. И проверить, обрабатывался ли ордер, который инициировал сделку текущей позиции.


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

Что значит, обрабатывался ордер или нет? Я запустил рыночный ордер в рынок, у него есть промежуточный статус "на исполнении"? Как его инициализировать?

 
Aleksey Vyazmikin:

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

Что значит, обрабатывался ордер или нет? Я запустил рыночный ордер в рынок, у него есть промежуточный статус "на исполнении"? Как его инициализировать?

Ваш рыночный ордер инициирует сделки. Сделок может быть несколько в случае, если один ближайший лимитник не покрывает весь объем Вашего рыночного ордера.

Если не понятно - прочитайте статью про биржевое ценообразование.

Что значит? Вы ведь хотите один раз обработать ордер вторым советником? Если да, тогда надо, наверно, запомнить номер последнего обработанного ордера.

 
Alexey Kozitsyn:

Ваш рыночный ордер инициирует сделки. Сделок может быть несколько в случае, если один ближайший лимитник не покрывает весь объем Вашего рыночного ордера.

Если не понятно - прочитайте статью про биржевое ценообразование.


Биржевое ценообразование понятно, вопрос не в этом - ясно, что на один ордер может быть много сделок, не ясно, другое, почему информация о всех сделках не приходит сразу - ведь фактически событие происходит единовременно. Или я не прав, и есть специальная задержка, предусмотренная биржей, между каждой сделкой? Если так, то дайте пожалуйста ссылку об этом почитать.

Alexey Kozitsyn:

Что значит? Вы ведь хотите один раз обработать ордер вторым советником? Если да, тогда надо, наверно, запомнить номер последнего обработанного ордера.

Я хочу проверить позицию на соответствие определенным критериям - SL/TP и объем. При этом часть позиции может быть сформирована другим ордером. Хорошо, я запомнил номер ордера в истории, что дальше делать?
 
Aleksey Vyazmikin:

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

Дак проверьте, кто мешает? Ни про какие спец. задержки не слышал.

Я хочу проверить позицию на соответствие определенным критериям - SL/TP и объем. При этом часть позиции может быть сформирована другим ордером. Хорошо, я запомнил номер ордера в истории, что дальше делать?

Дак и рассматривайте позицию. Нашли позицию - запросите ее параметры. Можете запрашивать параметры на каждом тике. Или после того, как произошло событие OnTrade(). 

Если же Вам нужно, чтобы позиция обрабатывалась только после того, как ордер полностью зальется, наверно Вам нужна функция OnTradeTransaction().

 
Alexey Kozitsyn:

Дак проверьте, кто мешает? Ни про какие спец. задержки не слышал.


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

Alexey Kozitsyn:

Дак и рассматривайте позицию. Нашли позицию - запросите ее параметры. Можете запрашивать параметры на каждом тике. Или после того, как произошло событие OnTrade(). 

Так в OnTrade() я и проверяю - и получается непонятная ситуация... ну, буду значит логи детальней писать сейчас, что б разобраться, что происходит. Просто не знаю, как узнать, что ордер рыночный ещё отоваривается.


Alexey Kozitsyn:

Если же Вам нужно, чтобы позиция обрабатывалась только после того, как ордер полностью зальется, наверно Вам нужна функция OnTradeTransaction().

OnTradeTransaction() , как я понял, работает только на том же терминале, где и ведется торговля, а в моем случае это разные компьютеры.
 
Aleksey Vyazmikin:

В тестере не проверишь все особенности реала ФОРТСа. Заливка ордера - одно из них. 

 
Alexey Kozitsyn:

В тестере не проверишь все особенности реала ФОРТСа. Заливка ордера - одно из них. 


Ага, и стакан там отсутствует, настроил тут стратегию по фьючерсу на евру, а проскальзывания дикие - по 10 пунктов - стакан пустой, там видимо арбитражники одни...

 

Итак, смотрю я закрытие 30 лотов по SL и вижу, что зашли OnTrade() когда было 30, потом 25, 25,25, 16,5,1,0 аж 39 раз!

При этом по позиции видно такое закрытие сделками:5,2,2,1,3,1,4,1,2,1,1,2,3,1,1 - т.е. 15 раз! Прошу разработчиков дать пояснения по данному вопросу.

 
Комментарии, не относящиеся к этой теме, были перенесены в "Индикатор от индикатора".
Причина обращения: