Обсуждение статьи "Работа с таймсериями в библиотеке DoEasy (Часть 39): Индикаторы на основе библиотеки - подготовка данных и события таймсерий" - страница 2

 
Dima Diall:

Здравствуйте - при более внимательном рассмотрении кода обработчика событий я заметил, что вы используете разные методы для разбора источника события... в одних случаях он основан на параметре id события графика из OnChartEvent() а в других вы извлекаете его из параметра lparam через engine.EventSource(lparam) - есть ли конкретная причина, почему она отличается в каждом случае?

Привет, Артём - не могли бы вы прояснить это для меня, пожалуйста?
 
Dima Diall :
Здравствуйте, Артём - не могли бы вы прояснить для меня этот вопрос?

Пожалуйста, чуть позже - сейчас очень занят.

 

Здравствуйте, Артем,

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

Пожалуйста, помогите, большое спасибо

Jewel

 
jewelnguyen :

Привет, Артем,

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

Пожалуйста, помогите, большое спасибо

Jewel

Я проверил - все работает. Позиции открываются в тестере. И закрываются тоже.

Напишите подробнее, что вы делаете.

 
Спасибо за быстрый ответ,
Я записываю экран с помощью приложения, доступного на windows 7
2 отложенных ордера работают, 2 ордера на покупку и продажу не отвечают

Большое спасибо



Файлы:
Screenshot_1.jpg  123 kb
Screenshot_2.jpg  132 kb
Screenshot_3.jpg  127 kb
Screenshot_4.jpg  130 kb
screen.zip  340 kb
 
jewelnguyen :
Спасибо за быстрый ответ,
Я записываю экран с помощью приложений, доступного в Windows 7
2 отложенных ордера работают, 2 ордера на покупку и продажу не отвечают

Большое спасибо



Что написано на вкладке "Журнал"?

 

Все работает:


 

Я такой же, как и вы, почему это не работает? Вы пробуете на мт4 или мт5? Я пробую на мт5, а вы здесь:

2021.04.11 14:29:21.646 2017.01.02 09:01:18 failed market sell 0.1 GBPUSD sl: 1.23561 tp: 1.23261 [Unsupported filling mode]

2021.04.11 14:29:21.646 2017.01.02 09:01:18 Торговая попытка #2. Ошибка : Неверный тип заполнения ордера


Мне нужно это для тестирования моей ручной стратегии, пожалуйста, помогите мне


Большое спасибо

Jewel

PS: Я пробовал на mt4 работает очень хорошо, но на mt5 он получил ту же ошибку, что и выше
Файлы:
Screenshot_1.jpg  337 kb
 
jewelnguyen :

Я такой же, как и вы, почему это не работает? Вы пробуете на мт4 или мт5? Я пробую на мт5, а вы здесь:

2021.04.11 14:29:21.646 2017.01.02 09:01:18 failed market sell 0.1 GBPUSD sl: 1.23561 tp: 1.23261 [Unsupported filling mode]

2021.04.11 14:29:21.646 2017.01.02 09:01:18 Торговая попытка #2. Ошибка : Неверный тип заполнения ордера


Мне нужно это для тестирования моей ручной стратегии, пожалуйста, помогите мне


Большое спасибо

Jewel

PS: Я пробовал на mt4, работает очень хорошо, но на mt5 выдает ту же ошибку, что и выше

Вам необходимо самостоятельно установить правильную политику исполнения ордеров(ENUM_ORDER_TYPE_FILLING). Используйте для этого обработчик OnInit ():

...
...
...
 //--- 
   engine.TradingSetTypeFilling(ORDER_FILLING_XXX);
   return (INIT_SUCCEEDED);
  }
 //+------------------------------------------------------------------+

Существует только три возможных значения:

  • ORDER_FILLING_FOK - Эта политика исполнения означает, что ордер может быть исполнен только в указанном количестве. Если необходимый объем финансового инструмента в данный момент отсутствует на рынке, ордер не будет исполнен. Необходимый объем может быть заполнен с помощью нескольких предложений, доступных на рынке в данный момент.

  • ORDER_FILLING_IOC - данный режим означает, что трейдер соглашается исполнить сделку с максимально доступным на рынке объемом в пределах указанного в ордере. В случае, если весь объем ордера не может быть заполнен, будет заполнен доступный объем, а оставшийся объем будет отменен.

  • ORDER_FILLING_RETURN - данная политика используется только для рыночных ордеров (ORDER_TYPE_BUY и ORDER_TYPE_SELL), лимитных и стоп-лимитных ордеров (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_LIMIT_STYPELL) В случае частичного заполнения рыночный или лимитный ордер с оставшимся объемом не отменяется, а обрабатывается дальше.
    Для активации ордеров ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT создается соответствующий лимитный ордер ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT с типом исполнения ORDER_FILLING_RETURN.
 
Artyom Trishkin:

Вам необходимо самостоятельно установить правильную политику исполнения ордеров(ENUM_ORDER_TYPE_FILLING). Используйте для этого обработчик OnInit ():

Существует только три возможных значения:

  • ORDER_FILLING_FOK - Эта политика исполнения означает, что ордер может быть исполнен только в указанном количестве. Если необходимый объем финансового инструмента в данный момент отсутствует на рынке, ордер не будет исполнен. Необходимый объем может быть заполнен с помощью нескольких предложений, доступных на рынке в данный момент.

  • ORDER_FILLING_IOC - данный режим означает, что трейдер соглашается исполнить сделку с максимально доступным на рынке объемом в пределах указанного в ордере. В случае, если весь объем ордера не может быть заполнен, будет заполнен доступный объем, а оставшийся объем будет отменен.

  • ORDER_FILLING_RETURN - данная политика используется только для рыночных ордеров (ORDER_TYPE_BUY и ORDER_TYPE_SELL), лимитных и стоп-лимитных ордеров (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_LIMIT_STYPELL) В случае частичного заполнения рыночный или лимитный ордер с оставшимся объемом не отменяется, а обрабатывается дальше.
    Для активации ордеров ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT создается соответствующий лимитный ордер ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT с типом исполнения ORDER_FILLING_RETURN.
Хорошо, большое спасибо