Ошибки, баги, вопросы - страница 3046

 
Спартак Угланов:

classified information

Слав, огромная просьба - обновляйте почаще справочник
иногда чисто интуитивно или методом проб и ошибок удаётся вычислить новые фичи или условия языка

Да, в мануале в разделе про OnCalculate() нужно упоминание о #property tester_everytick_calculate


И ведь этой директивы нет во встроенных индикаторах, и при подключении индикатора нельзя управлять этой фичей, только пересохранять код под другим именем,

а для штатной основополагающей iMA вроде как нет исходного кода.

 
Sunriser:

Да, в мануале в разделе про OnCalculate() нужно упоминание о #property tester_everytick_calculate


И ведь этой директивы нет во встроенных индикаторах, и при подключении индикатора нельзя управлять этой фичей, только пересохранять код под другим именем,

а для штатной основополагающей iMA вроде как нет исходного кода.

Во встроенных не нужно. Все пользовательские индикаторы - аналоги встроенных индикаторов прекрасно досчитываются на очередном обращении.

Это - для экзотических случаев, когда нужно вызывать OnCalculate на каждом тике

PS "Вроде как нет исходного кода"... Examples\Custom Moving Averages.mq5. А ещё посмотрите использование MovingAverages.mqh в примерах индикаторов

 
Доброго времени суток. Помогите. SymbolSelect и SymbolExist работаю по разному?

Print(SymbolSelect( "EURUSD" ,true)); Получаю ответ - true
Print(SymbolExist("EURUSD",false)); Получаю ошибку - 'true' - variable expected

 
Yury Lemeshev:
Доброго времени суток. Помогите. SymbolSelect и SymbolExist работаю по разному?

Print(SymbolSelect( "EURUSD" ,true)); Получаю ответ - true
Print(SymbolExist("EURUSD",false)); Получаю ошибку - 'true' - variable expected

Читайте внимательно документацию: SymbolExist

bool  SymbolExist(
   const string  name,    // имя символа
   bool&   is_custom      // признак пользовательского символа
   );


Вот как это выглядит в коде:

   Print(SymbolSelect("EURUSD",true));
   bool exist=false;
   Print(SymbolExist("EURUSD",exist));
Документация по MQL5: Получение рыночной информации / SymbolExist
Документация по MQL5: Получение рыночной информации / SymbolExist
  • www.mql5.com
SymbolExist - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Читайте внимательно документацию: SymbolExist


Вот как это выглядит в коде:

Спасибо, Владимир

 

Вопрос по инициализации индикаторов экспертом при тестировании в визуальном режиме.

Если делаю инициализацию индикаторов в OnInit() { } эксперта, то в визуальном тестере индикатор обычно не появляется и не отрисовывается.

При этом в логе инициализация прошла, handle получен.  Такое ощущение, что в визуальном режиме тестер не успевает что-то сделать и индикатор не цепляется к графику.

Если делаю инициализацию индикаторов в OnTick() { } эксперта, то проблема пропадает, однако это порождает лишнюю писанину, проверки и прочее.


Если раскомментить IndicatorInitialization() в OnTick и закомментировать в OnInit, то начинает работать. 

int  TicksTesterIndicatorHandle = INVALID_HANDLE;
bool InitComplite=false;
int OnInit()
  {
   IndicatorInitialization();
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
   IndicatorRelease(TicksTesterIndicatorHandle);
  }

void OnTick()
  {
//if(!InitComplite)
//  {
//   IndicatorInitialization();
//  }
  }
//+------------------------------------------------------------------+
bool IndicatorInitialization()
  {
//---Получить хэндл индикатора TicksTesterIndicator
   TicksTesterIndicatorHandle=iCustom(NULL, _Period, "OnInit_TestIndicator");

//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if(TicksTesterIndicatorHandle<0)
     {
      Print("Ошибка при создании индикатора TicksTesterIndicator - номер ошибки: ",GetLastError(),"!!!");
      return(false);
     }
   else
     {
      Print("TicksTesterIndicator инициализирован, хэндл: ", TicksTesterIndicatorHandle);
      ArraySetAsSeries(Buf, true);
      InitComplite=true;
     }
   return(true);
  }
 

Продолжение истории волшебных файлов:

После зависания MetaEditor и последующей перезагрузки - этот файл стал отображаться как набор кракозябр, но тот же notepad его нормально открывает (убрал лишнее)

Файлы:
main.txt  1 kb
 

День добрый,

Android MT5/MT4: В окне размещения ордера цвета тиковых линий перепутаны. Тоже в цветовых схемах графиков.

 

Всем привет!

Не могу побороть ошибку [Invalid price] при выставлении отложенного ордера. Вся проблема в том, что ошибки такие падают при стандартных проверках на публикацию советника. Соответственно логи не могу посмотреть, чтобы понять в чем причина. На своих тестах не воспроизвел ни разу. Конечно сложность еще в том, что не знаю какие параметры символа стоят в стандартных проверках. Пробовал на терминале MetaQuotes воспроизвести. Ордер открывает в том же месте, даже по той же цене и нет ошибки. Цены нормализованы CSymbolinfo::NormilizePrice(), есть проверки на StopsLevel, freeze level, на корректность цены отложки, данные по ценам обновляю при каждой проверке.

Отчет стандартных проверок

Может быть кто-то знает все кейсы, при которых может возникать такая ошибка при отложках? Мне приходит на ум только:

  • Ненормализованная цена
  • Цена выставления выше/ниже рыночной при определенном типе ордера
  • Freeze level (не уверен)
Буду рад любой наводке :)
 

Доброе утро.

Возможно ли в тестере делать отсечку тестов по параметрам.

Например если будет достигнута просадка в 40% по тесту он прекращается и рессурсы уходят в пользу следующих тестов.