Кто подскажет замену для iMaOnArray()? - страница 2 12 Новый комментарий TheXpert 2012.08.26 11:41 #11 Eugene1: Было бы приятно взглянуть на код... Так в той моей теме выложен код, где гладится RSI с помощью EMA. Самое наверное простое для подсчета сглаживание. Evgeny Potapov 2012.08.26 11:41 #12 IgorM: дык iMaOnArray() и есть готовая замена для расчета скользящего среднего, не устраивает, тогда считайте сами по классической формуле, примерно так: Это да, согласен, что так, хоть и дольше, но надёжней считать. Не сомневаюсь, что этот кусок кода рабочий! Только вот, там есть ещё линейно взвешенная итп. С ними у меня некоторые трудности... там в деталях ошибиться можно... Новая версия платформы MetaTrader Как по очереди (по [АРХИВ]Любой вопрос новичка, чтоб Evgeny Potapov 2012.08.26 11:49 #13 TheXpert: Так в той моей теме выложен код, где гладится RSI с помощью EMA. Самое наверное простое для подсчета сглаживание. Так там нет всех возможностей МА, меня прежде всего линейно взвешенная интересует. Igor Makanu 2012.08.26 13:11 #14 Eugene1:меня прежде всего линейно взвешенная интересует. наверное так: for(i=limit; i>=0; i--){ Buffer1[i]=0; Buffer2[i]=0; for(int z=0; z<SMA_period; z++) Buffer1[i] += Close[i+z]; //СЛОЖЕНИЕ ИНДЕКСОВ Buffer1[i] = Buffer1[i]/SMA_period; //ДЕЛЕНИЕ НА ПЕРИОД - РАСЧЕТ SMA if(Close[i] > 0)Buffer2[i] = Close[i]*(2.0/(EMA_period+1)) + Buffer2[i+1]*(1-(2.0/(EMA_period+1))); //РАСЧЕТ EMA ПО КЛАССИЧЕСКОЙ ФОРМУЛЕ } Evgeny Potapov 2012.08.26 14:26 #15 IgorM: наверное так: А lwma? Igor Makanu 2012.08.26 14:34 #16 Eugene1:А lwma? хм, извини, но дальше сам: http://fxcodebase.com/wiki/index.php/Linear_Weighted_Moving_Average_(LWMA) Андрей 2012.08.26 15:14 #17 Eugene1: А lwma? jartmailru: возьмите MA-индикатор из поставки МТ- переделайте в функцию. Evgeny Potapov 2012.08.27 03:02 #18 jartmailru:возьмите MA-индикатор из поставки МТ- переделайте в функцию. Я уже смотрел этот вариант: на первый взгляд - очевидное и простое решение! НО ... там не по той формуле считается, что предлагает IgorM Поэтому там, возможно, происходит накопление погрешности вычислений, так же как и в iMaOnArray(), а возможно, не происходит... Получается, "очевидное" решение перерастает в исследование... А я как раз в середине другого исследования застрял... поэтому, собственно, и тему эту создал: вдруг кто-то уже имеет готовый ответ - мне тогда не надо рекурсивно одно исследование на другое навешивать :-) Мультитаймфреймовые индикаторы В каких случаях есть Индикаторы: FreeNumFractals Андрей 2012.08.27 08:49 #19 Eugene1: НО ... там не по той формуле считается, что предлагает IgorM Что-то меня смущает for(i=limit; i>=0; i--){ Buffer1[i]=0; Buffer2[i]=0; for(int z=0; z<SMA_period; z++) Buffer1[i] += Close[i+z]; //СЛОЖЕНИЕ ИНДЕКСОВ Buffer1[i] = Buffer1[i]/SMA_period; //ДЕЛЕНИЕ НА ПЕРИОД - РАСЧЕТ SMA if(Close[i] > 0)Buffer2[i] = Close[i]*(2.0/(EMA_period+1)) + Buffer2[i+1]*(1-(2.0/(EMA_period+1))); } Lwma- то тут где вообще? Evgeny Potapov 2012.08.28 02:49 #20 jartmailru: Что-то меня смущает Lwma- то тут где вообще? Я тоже не разобрался. По вашим вышеприведённым формулам будет работать только если индикатор запускать на родном таймфрейме, а здесь достигнута некая универсальность, но слишком большое значение придаётся использованию ускоренного алгоритма расчёта. Оно, может и правильно, для использования, но для переделки получается настолько туманно, что я не могу разобраться. Вот если бы кто-то переписал не теряя универсальности в более простой и медленный алгоритм, при использовании которого не было бы условий для накопления погрешности расчётов, то думаю, это было бы полезно всему сообществу. То есть я имею в виду золотое правило программстов: писать код, который выглядит просто, и читается без труда, практически не требует комментариев. Универсальный индикатор и для Элитные показатели :) Стоит ли менять правила 12 Новый комментарий
Было бы приятно взглянуть на код...
дык iMaOnArray() и есть готовая замена для расчета скользящего среднего, не устраивает, тогда считайте сами по классической формуле, примерно так:
Это да, согласен, что так, хоть и дольше, но надёжней считать.
Не сомневаюсь, что этот кусок кода рабочий!
Только вот, там есть ещё линейно взвешенная итп.
С ними у меня некоторые трудности... там в деталях ошибиться можно...
Так в той моей теме выложен код, где гладится RSI с помощью EMA. Самое наверное простое для подсчета сглаживание.
Так там нет всех возможностей МА, меня прежде всего линейно взвешенная интересует.
наверное так:
наверное так:
А lwma?
А lwma?
возьмите MA-индикатор из поставки МТ- переделайте в функцию.
Я уже смотрел этот вариант: на первый взгляд - очевидное и простое решение!
НО ... там не по той формуле считается, что предлагает IgorM
Поэтому там, возможно, происходит накопление погрешности вычислений, так же
как и в iMaOnArray(), а возможно, не происходит...
Получается, "очевидное" решение перерастает в исследование...
А я как раз в середине другого исследования застрял... поэтому, собственно, и
тему эту создал: вдруг кто-то уже имеет готовый ответ - мне тогда не надо рекурсивно одно исследование на другое навешивать :-)
НО ... там не по той формуле считается, что предлагает IgorM
Lwma- то тут где вообще?
Что-то меня смущает
Lwma- то тут где вообще?
Я тоже не разобрался.
По вашим вышеприведённым формулам будет работать только если индикатор запускать на родном таймфрейме,
а здесь достигнута некая универсальность, но слишком большое значение придаётся использованию ускоренного алгоритма расчёта.
Оно, может и правильно, для использования, но для переделки
получается настолько туманно, что я не могу разобраться.
Вот если бы кто-то переписал не теряя универсальности в более простой и медленный алгоритм,
при использовании которого не было бы условий для накопления погрешности расчётов, то думаю, это было бы полезно всему сообществу.
То есть я имею в виду золотое правило программстов: писать код, который выглядит просто, и читается без труда, практически не требует комментариев.