FinEngineer: 2012.12.22 11:40:32Pair_delta_RSI (EURGBP,M1)array out of range in 'Pair_delta_RSI.mq5' (92,37)
оказывается такая ошибка тоже появляется...т.е. ошибки две...
Кроме того, Вас беспокоят две ошибки: "недостаточность расчитанных данных" и "выход за пределы массив (array out of range )". Но Вы почему-то про вторую ошибку так ничего и не написали (не привели пример кода со строчкой номер 92), хотя несколько раз акцентировали внимание на её наличии.
Да нормально он у Вас там работал, этот "кусок кода, который отвечает за недостаточность данных". И правильно сообщал, что при поступлении первого тика данные для RSI ещё не рассчитаны терминалом. Если не нравится получать сообщения об ошибке, то попробуйте сделать, как указано выше, а именно: проверять наличие рассчитанных данных не только в OnCalculate(), но и в OnInit(). Иными словами, попробуйте в OnInit() дождаться расчёта данных для выбранных Вами технических индикаторов (дождаться посредством конечного цикла), а затем уже переходить к обработке тиков в OnCalculate(), когда данные для индикаторов будут гарантированно рассчитаны.
Добавление. В конце концов, удаление части проверочного кода совершенно не способствует увеличению количества рассчитываемых данных индикатора :)
Я вставил эту проверку в функцию OnInit, но ведь в этой функции мы не знаем что такое "rates_total"...выходит ошибка...'rates_total' - undeclared identifier...как быть?
Yedelkin: Кроме того, Вас беспокоят две ошибки: "недостаточность расчитанных данных" и "выход за пределы массив (array out of range )". Но Вы почему-то про вторую ошибку так ничего и не написали (не привели пример кода со строчкой номер 92), хотя несколько раз акцентировали внимание на её наличии.
FinEngineer: Я вставил эту проверку в функцию OnInit, но ведь в этой функции мы не знаем что такое "rates_total"...выходит ошибка...'rates_total' - undeclared identifier...как быть?
А с примером из описания функции BarsCalculated() разобрались, как советовалось ранее? Там ведь нет rates_total
Всем привет ...кто может подсказать как в 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; }
Вопрос про тестер стратегий: нужно подобрать набор параметров с макс процентом прибыльных сделок - как это сделать? Вроде боль/мень подходит критерий оптимизации "Balance + min DD", но прибыль в кач-ве множителя забивает всё остальное..
f2011: Вопрос про тестер стратегий: нужно подобрать набор параметров с макс процентом прибыльных сделок - как это сделать? Вроде боль/мень подходит критерий оптимизации "Balance + min DD", но прибыль в кач-ве множителя забивает всё остальное..
Причём здесь баланс и процент приб сделок?
Статья вроде была, гуглите "Как составить свой критерий оптимизации торгового робота site:mql5.com".
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.
Вставить код правильно.
Да нормально он у Вас там работал, этот "кусок кода, который отвечает за недостаточность данных". И правильно сообщал, что при поступлении первого тика данные для RSI ещё не рассчитаны терминалом. Если не нравится получать сообщения об ошибке, то попробуйте сделать, как указано выше, а именно: проверять наличие рассчитанных данных не только в OnCalculate(), но и в OnInit(). Иными словами, попробуйте в OnInit() дождаться расчёта данных для выбранных Вами технических индикаторов (дождаться посредством конечного цикла), а затем уже переходить к обработке тиков в OnCalculate(), когда данные для индикаторов будут гарантированно рассчитаны.
Добавление. В конце концов, удаление части проверочного кода совершенно не способствует увеличению количества рассчитываемых данных индикатора :)
Кроме того, Вас беспокоят две ошибки: "недостаточность расчитанных данных" и "выход за пределы массив (array out of range )". Но Вы почему-то про вторую ошибку так ничего и не написали (не привели пример кода со строчкой номер 92), хотя несколько раз акцентировали внимание на её наличии.
Понятно. В строчке
идёт выход за пределы массива. Причем выход - в RSI1_Buffer[i]. ...Пока затрудняюсь ответить, вроде выхода за пределы массива не должно быть.for (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}
Всем привет ...кто может подсказать как в 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) в четвёрке на
Вопрос про тестер стратегий: нужно подобрать набор параметров с макс процентом прибыльных сделок - как это сделать? Вроде боль/мень подходит критерий оптимизации "Balance + min DD", но прибыль в кач-ве множителя забивает всё остальное..
Причём здесь баланс и процент приб сделок?
Статья вроде была, гуглите "Как составить свой критерий оптимизации торгового робота site:mql5.com".
Причём здесь баланс и процент приб сделок?
Статья вроде была, гуглите "Как составить свой критерий оптимизации торгового робота site:mql5.com".
Нашёл, спасибо
https://www.mql5.com/ru/articles/286