Обсуждение статьи "Работа с таймсериями в библиотеке DoEasy (Часть 39): Индикаторы на основе библиотеки - подготовка данных и события таймсерий" - страница 2
Здравствуйте - при более внимательном рассмотрении кода обработчика событий я заметил, что вы используете разные методы для разбора источника события... в одних случаях он основан на параметре id события графика из OnChartEvent() а в других вы извлекаете его из параметра lparam через engine.EventSource(lparam) - есть ли конкретная причина, почему она отличается в каждом случае?
Привет, Артём - не могли бы вы прояснить это для меня, пожалуйста?
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.
Вам необходимо самостоятельно установить правильную политику исполнения ордеров(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.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Здравствуйте - при более внимательном рассмотрении кода обработчика событий я заметил, что вы используете разные методы для разбора источника события... в одних случаях он основан на параметре id события графика из OnChartEvent() а в других вы извлекаете его из параметра lparam через engine.EventSource(lparam) - есть ли конкретная причина, почему она отличается в каждом случае?
Здравствуйте, Артём - не могли бы вы прояснить для меня этот вопрос?
Пожалуйста, чуть позже - сейчас очень занят.
Здравствуйте, Артем,
В вашем примере отложенные ордера работали, но рыночные ордера не работали в режиме визуального бэктеста.
Пожалуйста, помогите, большое спасибо
Jewel
Привет, Артем,
В вашем примере отложенные ордера работали, но рыночные ордера не работали в режиме визуального бэктеста
Пожалуйста, помогите, большое спасибо
Jewel
Я проверил - все работает. Позиции открываются в тестере. И закрываются тоже.
Напишите подробнее, что вы делаете.
Большое спасибо
Большое спасибо
Что написано на вкладке "Журнал"?
Все работает:
Я такой же, как и вы, почему это не работает? Вы пробуете на мт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
Я такой же, как и вы, почему это не работает? Вы пробуете на мт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
Вам необходимо самостоятельно установить правильную политику исполнения ордеров(ENUM_ORDER_TYPE_FILLING). Используйте для этого обработчик OnInit ():
Существует только три возможных значения:
Для активации ордеров ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT создается соответствующий лимитный ордер ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT с типом исполнения ORDER_FILLING_RETURN.
Вам необходимо самостоятельно установить правильную политику исполнения ордеров(ENUM_ORDER_TYPE_FILLING). Используйте для этого обработчик OnInit ():
Существует только три возможных значения:
Для активации ордеров ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT создается соответствующий лимитный ордер ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT с типом исполнения ORDER_FILLING_RETURN.