FastSC=2.0/(1+Fast_Smoothing_Constant); SlowSC=2.0/(1+Slow_Smoothing_Constant);
Вот так вот:-) 2, это не тоже самое что и 2.0
Такие вещи можно и самостоятельно искать - есть в mql4 такие функции как Print(), Alert(), Comment(). Сначала смотрим чему равно с, перед тем как заполняется буфер, потом SSC и так далее... пока не находим в чем проблема
for(int i=BarsDepth-AMA_Period-1;i>=0;i--)
//...
ER=Direction/(Volatility+0.000000001); // epsilon=1e-09
//...
Спасибо за ответы и советы. Ошибки нашёл )
Заработало когда вставил строку Volatility=0.000000001 - причём именно вставил в сам цикл (основной) - простое объяление переменной Volatility и присвоение ей значения 0.000000001 не спасло.
Вариант с "ER=Direction/(Volatility+0.000000001);" тоже не прошёл. Тем не менее природу этой ошибки я не понимаю.
И второе - цикл подсчёта Volatility. Было вот так:
for(int j=i+AMA_Period; j>=i; j--){
Volatility += MathAbs(Close[j]-Close[j+1]);
}
Правильный вариант таков:
for(int j=0;j<AMA_Period;j++) // ошибка была в этом цикле
{
Volatility += MathAbs(Close[i+j]-Close[i+j+1]); // и соответственно в этой строке
}
Ещё раз спасибо.
И всё-таки, где здесь задают вопросы? а то на каждый вопрос создавать тему...
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
... в коде. Написал АМА используя формулы на http://www.linnsoft.com/tour/techind/ama.htm, но она не работает.
Нашёл в базе АМА, глянул код (https://www.mql5.com/ru/code/7418)- практически то же самое. Где у меня ошибка - понять не могу.
помогите пожалуйста не просто найти и исправить ошибку, но и по возможности объясните в чём же именно я ошибаюсь.
Вот моя версия кода:
P.S. И есть ли на форуме отдельная ветка для подобных вопросов-просьб?