Automated Trading Championship 2011: Подготовка эксперта к Чемпионату - страница 12

 
Rosh:
Если бесконечно в цикле будете пытаться отправить ордер по цене, которая устарела по каким-то причинам, то конечно это будет расценено как грубая ошибка программирования. Такой советник не будет допущен однозначно. В случае реквоты нужно либо отправить новый запрос с новыми ценами, если устраивает, либо отказаться от продолжения и ждать своей цены. Но никак не долбиться в закрытые двери.

 

Спасибо. Очень вразумительно обьяснили. Кстати, не могли бы Вы также обьяснить зачем указывать цену рыночному ордеру (MARKET ORDER)?  

 
gpwr:

 

Спасибо. Очень вразумительно обьяснили. Кстати, не могли бы Вы также обьяснить зачем указывать цену рыночному ордеру (MARKET ORDER)?  

Не совсем понял вопроса. В справке сказано (https://www.mql5.com/ru/docs/constants/structures/mqltraderequest):

Market Execution

Торговый ордер на открытие позиции в режиме Market Execution (режим исполнения торговых приказов по рынку). Требуется указание 5 полей:

  • action
  • symbol
  • volume
  • type
  • type_filling

Можно также задать значения полей magic и comment.

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

 
antslag:
Почему есть такое ограничение как: советник должен быть прибыльным в период с 1 января 2011. Дискриминация какая-то.


Ну, потому, что даже из 100% прибыльных на истории в тестере советников, большинство на реале (на чемпионате) окажется убыточными. Оптимизация в тестере - есть подгонка под историю, и тестер является весьма совершенным инструментом такой подгонки. Почти все это знают, но "Слаб человек, слаб...", и желаемое выдают за действительное. А уж если Вам не удалось даже на истории оптимизировать Ваш советник в прибыль, значит в реале его шансы = 0. Какие соображения в противовес ?
 

а что означает сие загадочная запись:

tester is stopped because the account is not specified

 
blef:

а что означает сие загадочная запись:

Временный сбой. Уже исправлено.
 
Rosh:

Не совсем понял вопроса. В справке сказано (https://www.mql5.com/ru/docs/constants/structures/mqltraderequest):

 

Почитал документацию. Обнаружил несколько ошибок. Начну по порядку:

  1. В документации указано что для рыночного ордера нужно пять полей:
    • action (я использую TRADE_ACTION_DEAL)
    • symbol
    • volume
    • type (например ORDER_TYPE_BUY)
    • type_filling
     Все поля понятны кроме type_filling. В документации на этом сайте указываются три идентификатора для этого поля: ORDER_FILLING_FOK, ORDER_FILLING_IOC и ORDER_FILLING_RETURN. Метаедитор выдаёт ошибку при попытке использования двух первых идентификаторов. В документации Метаедитора даются другие идентификаторы: ORDER_FILLING_AON, ORDER_FILLING_CANCEL и ORDER_FILLING_RETURN. Нужно исправить документацию на mql5.com чтобы соответствовала документации в Метаедиторе.
  2. Если в качестве type_filling использовать любой из трёх возможных идентификаторов (ORDER_FILLING_AON, ORDER_FILLING_CANCEL и ORDER_FILLING_RETURN), то тестер выдаёт ошибку о неправильных стоплоссах. Чтобы избежать этих ошибок, нужно добавить шестое поле price, тогда всё зароаботает. Но тогда возвращаемся к моему ворпосу: зачем маркет ордеру цена? Тут наверно где-то ошибка.
 
gpwr:

 

Почитал документацию. Обнаружил несколько ошибок. Начну по порядку:

  1. В документации указано что для рыночного ордера нужно пять полей:
    • action (я использую TRADE_ACTION_DEAL)
    • symbol
    • volume
    • type (например ORDER_TYPE_BUY)
    • type_filling
     Все поля понятны кроме type_filling. В документации на этом сайте указываются три идентификатора для этого поля: ORDER_FILLING_FOK, ORDER_FILLING_IOC и ORDER_FILLING_RETURN. Метаедитор выдаёт ошибку при попытке использования двух первых идентификаторов. В документации Метаедитора даются другие идентификаторы: ORDER_FILLING_AON, ORDER_FILLING_CANCEL и ORDER_FILLING_RETURN. Нужно исправить документацию на mql5.com чтобы соответствовала документации в Метаедиторе.
  2. Если в качестве type_filling использовать любой из трёх возможных идентификаторов (ORDER_FILLING_AON, ORDER_FILLING_CANCEL и ORDER_FILLING_RETURN), то тестер выдаёт ошибку о неправильных стоплоссах. Чтобы избежать этих ошибок, нужно добавить шестое поле price, тогда всё зароаботает. Но тогда возвращаемся к моему ворпосу: зачем маркет ордеру цена? Тут наверно где-то ошибка.

1. Справка выкладывается на сайт с опережением. В новом билде будут эти идентификаторы.

2. Для рыночных ордеров указывать уровни StopLoss и TakeProfit нельзя.

 
Rosh:

1. Справка выкладывается на сайт с опережением. В новом билде будут эти идентификаторы.

2. Для рыночных ордеров указывать уровни StopLoss и TakeProfit нельзя.

 

Спасибо. Но ошибка о стоплоссах выдаётся даже если они не указываются. Я использую только пять полей

  • action (я использую TRADE_ACTION_DEAL)
  • symbol
  • volume
  • type (например ORDER_TYPE_BUY)
  • type_filling

Только при добавлении поля price, ошибка о стоплоссах исчезает. 

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

Спасибо. Но ошибка о стоплоссах выдаётся даже если они не указываются. Я использую только пять полей

    Только при добавлении поля price, ошибка о стоплоссах исчезает. 

    Напишите в Сервисдеск с деталями, пожалуйста. Так будет легче найти проблемное место.
    Причина обращения: