Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 273

 

Всем доброго времени суток. Кто-нибудь разбирался с отображением индикаторов во время тестирования в визуальном режиме? Возможно ли их скрыть на время тестирования? Как? Очень хочется посмотреть, как работает трал, а из-за изобилия индикаторов график при визуализации получается очень маленький, приходится при каждом тестировании останавливать и вручную сворачивать все окна индикаторов, что весьма неудобно. В документации https://www.mql5.com/ru/docs/runtime/testing#indicatorrelease сказано, что

Для того чтобы запретить показ индикатора на графике после завершения одиночного тестирования, используйте функцию IndicatorRelease() в обработчике OnDeinit().

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

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


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

Потому что её нет.

https://www.mql5.com/ru/search#!keyword=HideTestIndicators 

 

 Подскажите брокер может определить торгует трейдер или робот (МТ4). Ранее вроде как не мог, а сейчас? Просто в одном из конкурсов тейдеров стоит условие:

1.4. Конкурс является соревнованием трейдеров. Поэтому, в частности, не допускается применение автоматизированных стратегий, не предполагающих участие человека (трейдера) для принятия решения на основе текущей рыночной ситуации.


 Если я буду использовать советник, спалят меня или нет?))

Спрашивал ихнего менеджера, он уходит от ответа, каким образом они смогут определить кто торгует.

 
Crucian:

 Подскажите брокер может определить торгует трейдер или робот (МТ4). Ранее вроде как не мог, а сейчас? Просто в одном из конкурсов тейдеров стоит условие:

 Если я буду использовать советник, спалят меня или нет?))

Спрашивал ихнего менеджера, он уходит от ответа, каким образом они смогут определить кто торгует.

Встречался с такими условиями на конкурсах. Брокер может заблокировать в платформе функцию автоторговли и советник может просто у вас не запуститься.
 
papaklass:

 Конечно может.

Если бы не мог, то и не писал бы. :) 

есть только один способ определить, что ордер выставлен экспертом - ненулевой magic number.
 
stringo:
есть только один способ определить, что ордер выставлен экспертом - ненулевой magic number.

а если у меня магик в советниках: 

int mag=NULL;

никто в ДЦ и не определит что это советник?

 
rosomah:

а если у меня магик в советниках: 

int mag=NULL;

никто в ДЦ и не определит что это советник?

 Наверное надо поставить  int mag != NULL; (не равно 0).

А какой магик присваивать ордеру?

Любой? Тоже ерунда получится.

 
Crucian:

 Наверное надо поставить  int mag != NULL; (не равно 0).

А какой магик присваивать ордеру?

Любой? Тоже ерунда получится.

int mag != NULL; -так в тестере не компилируется.

int mag = NULL; -так легко идёт. Если проверять алертом, то "0" выдаёт.

int mag = EMPTY_VALUE; -так тоже идёт. Тут "-2147483648" выдаёт.

Alert("mag=",mag);

Сейчас погонял на тестере на MQL4 и MQL5. В тестере идёт.

Что касается в реале, то вопрос, что сделать что бы ДЦ не чувствовал советник, хотя бы по входящим параметрам?, для меня самого остаётся открытым. Не частить ордерами это конечно можно сделать.

 
rosomah:

int mag != NULL; -так в тестере не компилируется.

int mag = NULL; -так легко идёт. Если проверять алертом, то "0" выдаёт.

int mag = EMPTY_VALUE; -так тоже идёт. Тут "-2147483648" выдаёт.

Alert("mag=",mag);

Сейчас погонял на тестере на MQL4 и MQL5. В тестере идёт.

Что касается в реале, то вопрос, что сделать что бы ДЦ не чувствовал советник, хотя бы по входящим параметрам?, для меня самого остаётся открытым. Не частить ордерами это конечно можно сделать.

NULL - это специальный идентификатор используемый при работе с сылочными типами (указателями на обеъекты). Integer (int) - значимый тип. Значимые типы не могут ссылаться на что-либо, в частности на идентификатор NULL, они могут лишь передоваться по ссылке. Следовательно сравнение значимого типа с ссылочным некорректно. Также нельзя приравнять значимый тип к ссылочному. Возможность компиляции данного кода объясняется тем, что компилятор делает неявное преобразование NULL в значимый тип "0", а затем приравнивает переменную mag к нему. Единственным верным решением является простое сравнение magic номера ордера или сделки с нулем. И если это значение отличное от нуля можно сделать вывод о том, что этот ордер был выставлен экспертом:

ulong magic = HistoryOrderGetInteger(order_id, ORDER_MAGIC);

if(magic != 0)

   printf("Ордер выставлен экспертом");

else

   printf(Ордер выставлен вручную); 

 

подскажите с чего начинать???!!!только зарегистрировался

Причина обращения: