Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 134
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Возникла проблема при работе эксперта в тестере. Тестирую на минутках. Стохастик для старших ТФ вычисляю сам по минутным данным.
История минут закачана с 2001г. В закладке настроек <Графики> выставлено максимальное количество баров и в истории и отображаемых.
Вся история на графике пролистывается.
Проблема в том, что, как выяснилось с помощью отладочной печати, с какой бы даты я не запускал тестер, максимальное количество баров
в переменной Bars на первом баре теста (на старте) всегда 1001 или 1002. С каждым следующим баром значение Bars увеличивается на 1.
Поэтому на старте старшие ТФ не посчитать.
Одно решение есть. Дописать запрет торговли до того, как Bars достигнет нужного значения.
Можно ли решить эту проблему по другому? Увеличивается ли как-либо это стартовое значение Bars в тестере???
Возникла проблема при работе эксперта в тестере. Тестирую на минутках. Стохастик для старших ТФ вычисляю сам по минутным данным.
История минут закачана с 2001г. В закладке настроек <Графики> выставлено максимальное количество баров и в истории и отображаемых.
Вся история на графике пролистывается.
Проблема в том, что, как выяснилось с помощью отладочной печати, с какой бы даты я не запускал тестер, максимальное количество баров
в переменной Bars на первом баре теста (на старте) всегда 1001 или 1002. С каждым следующим баром значение Bars увеличивается на 1.
Поэтому на старте старшие ТФ не посчитать.
Одно решение есть. Дописать запрет торговли до того, как Bars достигнет нужного значения.
Можно ли решить эту проблему по другому? Увеличивается ли как-либо это стартовое значение Bars в тестере???
P.S. кнопочку компилировать нажимал.
Очень нужно разобраться с алгоритмом расчета smoothed moving average. По нескольким причинам обращение к функции iMA не подходит.
Как я понял информацию с https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
Первый элемент рассчитывается как сумма цен закрытия деленная на период.
Следующие рассчитываются по формуле SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Возьмем период равный 5 и цены закрытия EUR/USD H1 за период с 24.02.2017 19:00 до 24.02.2017 23.00 (GMT+2) т.е. последние 5 свечей
Цены закрытия - 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Соответственно 1 элемент - 1,056452; 2 элемент - 1,056852 3 элемент - 1,05676 4 элемент - 1,056632 5 элемент - 1,056489
А на графике SMMA 5, close равно 1.05706 т.е. отличие уже в 3-м знаке
Что я считаю не правильно?
И как считать правильно, чтобы получить 1,05706 ?
Очень нужно разобраться с алгоритмом расчета smoothed moving average. По нескольким причинам обращение к функции iMA не подходит.
Как я понял информацию с https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
Первый элемент рассчитывается как сумма цен закрытия деленная на период.
Следующие рассчитываются по формуле SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Возьмем период равный 5 и цены закрытия EUR/USD H1 за период с 24.02.2017 19:00 до 24.02.2017 23.00 (GMT+2) т.е. последние 5 свечей
Цены закрытия - 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Соответственно 1 элемент - 1,056452; 2 элемент - 1,056852 3 элемент - 1,05676 4 элемент - 1,056632 5 элемент - 1,056489
А на графике SMMA 5, close равно 1.05706 т.е. отличие уже в 3-м знаке
Что я считаю не правильно?
И как считать правильно, чтобы получить 1,05706 ?
Господа разрабы! Всем доброго времени суток. Интересует вопрос по созданию шаблона эксперта(скрипта) при его создании. Такое можно где-то редактировать и как это делается?
Посмотрите в сам индикатор, так будет понятнее.
double SMMA(int period)
{
// наполняем массив ценами закрытия
int k=period;
for(int i=1; i<=period; i++)
{
H1_Close[i]=Close[k];
// Print("H1_Close [",i,"] ",H1_Close[i]," Close [",k,"] ",Close[k]);
k--;
}
// расчитываем первый элемент как среднее цен закрытия
double Summ=0;
for (int i=1; i<=period;i++)
Summ=Summ+H1_Close[i]; //SUM1 = SUM(CLOSE, N)
double TmpSMMA=Summ/period; //SMMA1 = SUM1/N
// расчитываем i-й элемент как SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N
for(int i=2;i<=period;i++)
TmpSMMA=(TmpSMMA*(period-1)+H1_Close[i])/period;
}
А результать все равно сильно отличается от данных индикатора в терминале. ПОЧЕМУ ?
Очень нужно разобраться с алгоритмом расчета smoothed moving average. По нескольким причинам обращение к функции iMA не подходит.
Как я понял информацию с https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma
Первый элемент рассчитывается как сумма цен закрытия деленная на период.
Следующие рассчитываются по формуле SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.
Возьмем период равный 5 и цены закрытия EUR/USD H1 за период с 24.02.2017 19:00 до 24.02.2017 23.00 (GMT+2) т.е. последние 5 свечей
Цены закрытия - 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Соответственно 1 элемент - 1,056452; 2 элемент - 1,056852 3 элемент - 1,05676 4 элемент - 1,056632 5 элемент - 1,056489
А на графике SMMA 5, close равно 1.05706 т.е. отличие уже в 3-м знаке
Что я считаю не правильно?
И как считать правильно, чтобы получить 1,05706 ?
Так в инклюднике есть алгоритм расчёта.
Я в ответе Vitaly Muzichenko писал код функции который у меня получился но в чем ошибка разобраться не могу
Так я вроде так как в расчетах все делаю а результат не получается. 4-й день сижу не могу разобраться.
Я в ответе Vitaly Muzichenko писал код функции который у меня получился но в чем ошибка разобраться не могу