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

 
FinEngineer: 2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) array out of range in 'Pair_delta_RSI.mq5' (92,37)
оказывается такая ошибка тоже появляется...т.е. ошибки две...
Кроме того, Вас беспокоят две ошибки: "недостаточность расчитанных данных" и "выход за пределы массив (array out of range )". Но Вы почему-то про вторую ошибку так ничего и не написали (не привели пример кода со строчкой номер 92), хотя несколько раз акцентировали внимание на её наличии.
 
Yedelkin:

 Вставить код правильно.

Да нормально он у Вас там работал, этот "кусок кода, который отвечает за недостаточность данных". И правильно сообщал, что при поступлении первого тика данные для RSI ещё не рассчитаны терминалом. Если не нравится получать сообщения об ошибке, то попробуйте сделать, как указано выше, а именно: проверять наличие рассчитанных данных не только в OnCalculate(), но и в OnInit(). Иными словами, попробуйте в OnInit() дождаться расчёта данных для выбранных Вами технических индикаторов (дождаться посредством конечного цикла), а затем уже переходить к обработке тиков в OnCalculate(), когда данные для индикаторов будут гарантированно рассчитаны.

Добавление. В конце концов, удаление части проверочного кода совершенно не способствует увеличению количества рассчитываемых данных индикатора :) 

Я вставил эту проверку в функцию OnInit, но ведь в этой функции мы не знаем что такое  "rates_total"...выходит ошибка...'rates_total' - undeclared identifier...как быть?
 
Yedelkin:
Кроме того, Вас беспокоят две ошибки: "недостаточность расчитанных данных" и "выход за пределы массив (array out of range )". Но Вы почему-то про вторую ошибку так ничего и не написали (не привели пример кода со строчкой номер 92), хотя несколько раз акцентировали внимание на её наличии.
int limit;
   if(prev_calculated==0)
      limit=0;
   else limit=prev_calculated-1;
//считаем индикатор дельта рси
   for(int i=limit;i<rates_total; i++)
      DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
   return(rates_total);
где-то в этом районе 92-я строчка...вот кусок кода...где-то здесь ошибка...получается)
 
FinEngineer:  Я вставил эту проверку в функцию OnInit, но ведь в этой функции мы не знаем что такое  "rates_total"...выходит ошибка...'rates_total' - undeclared identifier...как быть?
 А с примером из описания функции BarsCalculated() разобрались, как советовалось ранее? Там ведь нет rates_total
 
FinEngineer где-то в этом районе 92-я строчка...вот кусок кода...где-то здесь ошибка...получается)

 Понятно. В строчке

DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
идёт выход за пределы массива. Причем выход - в RSI1_Buffer[i].  ...Пока затрудняюсь ответить, вроде выхода за пределы массива не должно быть.
 
Всем привет ...кто может подсказать как в mql5 будет выглядеть следующий код :
for (int i=3; i<Bars; i++)
   {
    Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
   }
 
i999i:
Всем привет ...кто может подсказать как в mql5 будет выглядеть следующий код :
for (int i=3; i<Bars; i++)
   {
    Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
   }

Статья - в помощь.

Меняете double iFractals(string symbol, int timeframe, int mode, int shift) в четвёрке на

double iFractalsMQL4(string symbol,
                     int tf,
                     int mode,
                     int shift)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   int handle=iFractals(symbol,timeframe);
   if(handle<0)
     {
      Print("Объект iFractals не создан: Ошибка ",GetLastError());
      return(-1);
     }
   else
      return(CopyBufferMQL4(handle,mode-1,shift));
  }

 
Вопрос про тестер стратегий: нужно подобрать набор параметров с макс процентом прибыльных сделок - как это сделать? Вроде боль/мень подходит критерий оптимизации "Balance + min DD", но прибыль в кач-ве множителя забивает всё остальное..
 
f2011:
Вопрос про тестер стратегий: нужно подобрать набор параметров с макс процентом прибыльных сделок - как это сделать? Вроде боль/мень подходит критерий оптимизации "Balance + min DD", но прибыль в кач-ве множителя забивает всё остальное..

Причём здесь баланс и процент приб сделок?

Статья вроде была, гуглите "Как составить свой критерий оптимизации торгового робота site:mql5.com".

 
R0MAN:

Причём здесь баланс и процент приб сделок?

Статья вроде была, гуглите "Как составить свой критерий оптимизации торгового робота site:mql5.com".


Нашёл, спасибо

https://www.mql5.com/ru/articles/286

Создание собственных критериев оптимизации параметров эксперта
Создание собственных критериев оптимизации параметров эксперта
  • 2011.06.24
  • Dmitriy Skub
  • www.mql5.com
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.
Причина обращения: