Слав, огромная просьба - обновляйте почаще справочник иногда чисто интуитивно или методом проб и ошибок удаётся вычислить новые фичи или условия языка
Да, в мануале в разделе про OnCalculate() нужно упоминание о #property tester_everytick_calculate
И ведь этой директивы нет во встроенных индикаторах, и при подключении индикатора нельзя управлять этой фичей, только пересохранять код под другим именем,
а для штатной основополагающей iMA вроде как нет исходного кода.
Да, в мануале в разделе про OnCalculate() нужно упоминание о #property tester_everytick_calculate
И ведь этой директивы нет во встроенных индикаторах, и при подключении индикатора нельзя управлять этой фичей, только пересохранять код под другим именем,
а для штатной основополагающей iMA вроде как нет исходного кода.
Во встроенных не нужно. Все пользовательские индикаторы - аналоги встроенных индикаторов прекрасно досчитываются на очередном обращении.
Это - для экзотических случаев, когда нужно вызывать OnCalculate на каждом тике
PS "Вроде как нет исходного кода"... Examples\Custom Moving Averages.mq5. А ещё посмотрите использование MovingAverages.mqh в примерах индикаторов
Вопрос по инициализации индикаторов экспертом при тестировании в визуальном режиме.
Если делаю инициализацию индикаторов в OnInit() { } эксперта, то в визуальном тестере индикатор обычно не появляется и не отрисовывается.
При этом в логе инициализация прошла, handle получен. Такое ощущение, что в визуальном режиме тестер не успевает что-то сделать и индикатор не цепляется к графику.
Если делаю инициализацию индикаторов в OnTick() { } эксперта, то проблема пропадает, однако это порождает лишнюю писанину, проверки и прочее.
Если раскомментить IndicatorInitialization() в OnTick и закомментировать в OnInit, то начинает работать.
int TicksTesterIndicatorHandle = INVALID_HANDLE;
bool InitComplite=false;
intOnInit()
{
IndicatorInitialization();
return(INIT_SUCCEEDED);
}
voidOnDeinit(constint reason)
{
IndicatorRelease(TicksTesterIndicatorHandle);
}
voidOnTick()
{
//if(!InitComplite)// {// IndicatorInitialization();// }
}
//+------------------------------------------------------------------+bool IndicatorInitialization()
{
//---Получить хэндл индикатора TicksTesterIndicator
TicksTesterIndicatorHandle=iCustom(NULL, _Period, "OnInit_TestIndicator");
//--- Нужно проверить, не были ли возвращены значения Invalid Handleif(TicksTesterIndicatorHandle<0)
{
Print("Ошибка при создании индикатора TicksTesterIndicator - номер ошибки: ",GetLastError(),"!!!");
return(false);
}
else
{
Print("TicksTesterIndicator инициализирован, хэндл: ", TicksTesterIndicatorHandle);
ArraySetAsSeries(Buf, true);
InitComplite=true;
}
return(true);
}
После зависания MetaEditor и последующей перезагрузки - этот файл стал отображаться как набор кракозябр, но тот же notepad его нормально открывает (убрал лишнее)
Не могу побороть ошибку [Invalid price] при выставлении отложенного ордера. Вся проблема в том, что ошибки такие падают при стандартных проверках на публикацию советника. Соответственно логи не могу посмотреть, чтобы понять в чем причина. На своих тестах не воспроизвел ни разу. Конечно сложность еще в том, что не знаю какие параметры символа стоят в стандартных проверках. Пробовал на терминале MetaQuotes воспроизвести. Ордер открывает в том же месте, даже по той же цене и нет ошибки. Цены нормализованы CSymbolinfo::NormilizePrice(), есть проверки на StopsLevel, freeze level, на корректность цены отложки, данные по ценам обновляю при каждой проверке.
Может быть кто-то знает все кейсы, при которых может возникать такая ошибка при отложках? Мне приходит на ум только:
Ненормализованная цена
Цена выставления выше/ниже рыночной при определенном типе ордера
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
classified information
Слав, огромная просьба - обновляйте почаще справочник
иногда чисто интуитивно или методом проб и ошибок удаётся вычислить новые фичи или условия языка
Да, в мануале в разделе про OnCalculate() нужно упоминание о #property tester_everytick_calculate
И ведь этой директивы нет во встроенных индикаторах, и при подключении индикатора нельзя управлять этой фичей, только пересохранять код под другим именем,
а для штатной основополагающей iMA вроде как нет исходного кода.
Да, в мануале в разделе про OnCalculate() нужно упоминание о #property tester_everytick_calculate
И ведь этой директивы нет во встроенных индикаторах, и при подключении индикатора нельзя управлять этой фичей, только пересохранять код под другим именем,
а для штатной основополагающей iMA вроде как нет исходного кода.
Во встроенных не нужно. Все пользовательские индикаторы - аналоги встроенных индикаторов прекрасно досчитываются на очередном обращении.
Это - для экзотических случаев, когда нужно вызывать OnCalculate на каждом тике
PS "Вроде как нет исходного кода"... Examples\Custom Moving Averages.mq5. А ещё посмотрите использование MovingAverages.mqh в примерах индикаторов
Print(SymbolSelect( "EURUSD" ,true)); Получаю ответ - true
Print(SymbolSelect( "EURUSD" ,true)); Получаю ответ - true
Читайте внимательно документацию: SymbolExist
Вот как это выглядит в коде:
Читайте внимательно документацию: SymbolExist
Вот как это выглядит в коде:
Спасибо, Владимир
Вопрос по инициализации индикаторов экспертом при тестировании в визуальном режиме.
Если делаю инициализацию индикаторов в OnInit() { } эксперта, то в визуальном тестере индикатор обычно не появляется и не отрисовывается.
При этом в логе инициализация прошла, handle получен. Такое ощущение, что в визуальном режиме тестер не успевает что-то сделать и индикатор не цепляется к графику.
Если делаю инициализацию индикаторов в OnTick() { } эксперта, то проблема пропадает, однако это порождает лишнюю писанину, проверки и прочее.
Если раскомментить IndicatorInitialization() в OnTick и закомментировать в OnInit, то начинает работать.
Продолжение истории волшебных файлов:
После зависания MetaEditor и последующей перезагрузки - этот файл стал отображаться как набор кракозябр, но тот же notepad его нормально открывает (убрал лишнее)
День добрый,
Android MT5/MT4: В окне размещения ордера цвета тиковых линий перепутаны. Тоже в цветовых схемах графиков.
Всем привет!
Не могу побороть ошибку [Invalid price] при выставлении отложенного ордера. Вся проблема в том, что ошибки такие падают при стандартных проверках на публикацию советника. Соответственно логи не могу посмотреть, чтобы понять в чем причина. На своих тестах не воспроизвел ни разу. Конечно сложность еще в том, что не знаю какие параметры символа стоят в стандартных проверках. Пробовал на терминале MetaQuotes воспроизвести. Ордер открывает в том же месте, даже по той же цене и нет ошибки. Цены нормализованы CSymbolinfo::NormilizePrice(), есть проверки на StopsLevel, freeze level, на корректность цены отложки, данные по ценам обновляю при каждой проверке.
Может быть кто-то знает все кейсы, при которых может возникать такая ошибка при отложках? Мне приходит на ум только:
Доброе утро.
Возможно ли в тестере делать отсечку тестов по параметрам.
Например если будет достигнута просадка в 40% по тесту он прекращается и рессурсы уходят в пользу следующих тестов.