Чемпионат Automated Trading Championship 2010 стартовал! - страница 20

 
papaklass:
Понял. Спасибо за ответ.
По следам обсуждения сделали запрос количества баров синхронным аналогично запросу на копирование данных. Но если данных нет, то и количества баров не дождётесь.
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Доступ к таймсериям и индикаторам / Bars - Документация по MQL5
 

Наблюдаю такую картину у своего советника на чемпионате. Если он закрывает позицию в одном направлении и хочет тут же открыть позицию по тому же символу в противоположном направлении, то закрытие срабатывает, а открытие нет. Вот другая ситуация. Советник разбивает один рыночный ордер на два и посылает их один за другим. Первый срабатывает, а второй нет. Тот же советник у меня работает параллельно на моём домашнем компьютере и все сделки срабатывают. Я уверен что это моя ошибка где-то. Но вот где - никак не пойму. Кто-нибудь покажите пример кода как правильно посылать один рыночный ордер за другим так чтобы они срабатывали в чемпионатских условиях. Заранее благодарен.

Вот кусок моего кода под вопросом

for(int i=0;i<NumOrders;i++)
      Trade.PositionOpen(_Symbol,OrderType,vol,price,SL,TP);
 

Опять.... Когда исправите?

 

 
gpwr:

Наблюдаю такую картину у своего советника на чемпионате. Если он закрывает позицию в одном направлении и хочет тут же открыть позицию по тому же символу в противоположном направлении, то закрытие срабатывает, а открытие нет. Вот другая ситуация. Советник разбивает один рыночный ордер на два и посылает их один за другим. Первый срабатывает, а второй нет. Тот же советник у меня работает параллельно на моём домашнем компьютере и все сделки срабатывают. Я уверен что это моя ошибка где-то. Но вот где - никак не пойму. Кто-нибудь покажите пример кода как правильно посылать один рыночный ордер за другим так чтобы они срабатывали в чемпионатских условиях. Заранее благодарен.

Вот кусок моего кода под вопросом

А проверка где, что позиция открылась (ордер сработал) ? Обновление цен при следующем запросе ? Сервер ещё предыдущий запрос не обработал, а Вы через миллисекунды шлёте следующий с теми же параметрами.  Та же ошибка у Вас в журнале при реквотах. Ну, там хоть не посылается повторный запрос с теми же параметрами.

Вообще, удивительно, что всё это пролазит.

На демо условия идеальные, вот всё и открывается.

 
Valmars:

А проверка где, что позиция открылась (ордер сработал) ? Обновление цен при следующем запросе ? Сервер ещё предыдущий запрос не обработал, а Вы через миллисекунды шлёте следующий с теми же параметрами.  Та же ошибка у Вас в журнале при реквотах. Ну, там хоть не посылается повторный запрос с теми же параметрами.

Вообще, удивительно, что всё это пролазит.

На демо условия идеальные, вот всё и открывается.

 

Спасибо. То есть нужно

  1. Добавить проверку что предыдущий ордер сработал и
  2. Обновить цену запроса

Всё? 

Честно говоря не понимаю зачем посылать цену при рыночном ордере. Ну раз нужна так нужна.  

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

 
gpwr:

...Честно говоря не понимаю зачем посылать цену при рыночном ордере. ...

Поставьте себя на место брокера и поймёте,

пришла заявка и размер проскальзывания а цена не указана, так от какого прайса считать проскальзывание?

Ведь не по всякой же цене трейдеру захочется исполнения ордера.

Вам понравится, если я как брокер, исполню вашу заявку на бай, на 100пп выше? вопрос риторический.

Те даже при рыночном исполнении нужно как минимум три параметра, направление, прайс инициализации, и проскальзывание.

Если брокер получив ордер, видит что текущий прайс, не отличается от прайса инициализации, больше чем на проскальзывани ордер исполняется, иначе реквот.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Urain:

Поставьте себя на место брокера и поймёте,

пришла заявка и размер проскальзывания а цена не указана, так от какого прайса считать проскальзывание?

Ведь не по всякой же цене трейдеру захочется исполнения ордера.

Вам понравится, если я как брокер, исполню вашу заявку на бай, на 100пп выше? вопрос риторический.

Те даже при рыночном исполнении нужно как минимум три параметра, направление, прайс инициализации, и проскальзывание.

Если брокер получив ордер, видит что текущий прайс, не отличается от прайса инициализации, больше чем на проскальзывани ордер исполняется, иначе реквот.

 

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

 
gpwr:

 

Спасибо. То есть нужно

  1. Добавить проверку что предыдущий ордер сработал и
  2. Обновить цену запроса

Всё? 

Честно говоря не понимаю зачем посылать цену при рыночном ордере. Ну раз нужна так нужна.  

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

Надо бы ещё стопы пересчитать, но если достаточно далеко, то можно оставить и прежние.

Вам надо почитать справку  по терминалу: раздел 'Торговля: Типы исполнения'. На чемпионате используется Instant Execution, а не Market Execution.  Поэтому цены надо обновлять. Иначе получим реквоту или 'Устаревшая цена.' Пока обрабатывается один ордер, цена изменится и может не влезть в deviation.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Urain:

Те даже при рыночном исполнении нужно как минимум три параметра, направление, прайс инициализации, и проскальзывание.

 

При рыночном исполнении(маркет) только направление нужно... 

 
Dmitriy2:

При рыночном исполнении(маркет) только направление нужно... 

:) Я под столом...