Как переделать индикатор Force Index?

 

Прошу совета/помощи !

Индикатор  Force Index рассчитывается по формуле

FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i-1))

сам Элдер описывал его так

FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i) 

Я переделал в индикаторе формулу и написал так:

ExtForceBuffer[i]=iMA(Volume[i]*

                        (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i)-

                         (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i+1)); 

Теперь он не присоединяется к графику. Что я сделал не так?

Буду благодарен помощь

 Заранее спасибо 

Файлы:
 
yurasik:

Прошу совета/помощи !

Индикатор  Force Index рассчитывается по формуле

FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i-1))

сам Элдер описывал его так

FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i) 

Я переделал в индикаторе формулу и написал так:

ExtForceBuffer[i]=iMA(Volume[i]*

                        (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i)-

                         (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i+1)); 

Теперь он не присоединяется к графику. Что я сделал не так?

Буду благодарен помощь

 Заранее спасибо 

Формула Индекса Силы (Force index) :

Raw Force Index i = Volume * (Close i — Close i-1)

Force Index = EMA (Raw Force Index, N)

где
Volume — текущее значение объема, поскольку на Forex объема не существует, то для этих целей используется «тиковый объем»;
Close i — цена закрытия текущей свечи;
Close i-1 — цена закрытия предыдущей свечи;
EMA — экспоненциальное скользящее среднее. Можно использовать и другие виды скользящих средних, но автор указывал именно на такой тип. 

Таким образом, Индекс Силы вычисляется вычитанием предыдущей цены закрытия из текущей и умножением полученного результата на объем (на forex – на тиковый объем). Если цена закрытия текущего периода выше цены закрытия предыдущего периода, то сила рынка является положительной. Если цена закрытия текущего периода меньше цены закрытия предыдущего периода, то сила рынка отрицательна. Получается, что величина силы рынка определяется не только направлением и величиной движения, но и объемом. Чем больше был объем при одинаковой разности текущей и предыдущей цены, тем больше эта сила в абсолютном значении. Получается, что и сильное изменение цены на малых объемах и небольшие изменения цен на больших объемах могут приводить к одинаковому значению Индекса Силы. 

129 Force Index (Индекс Силы) - Энциклопедия Forex
  • enc.fxeuroclub.ru
Мир трейдинга и технического анализа постоянно развивает новые пути и методы изучения рынка и создает новые техники и индикатор. Доктор Александр Элдер (кстати русский эмигрант) является одним из наиболее известных создателей нового поколения технических индикаторов. Одним из его индикаторов является Индекс Силы (Force Index описанный в книге...
 
Vinin:

Формула Индекса Силы (Force index) :

Raw Force Index i = Volume * (Close i — Close i-1)

Force Index = EMA (Raw Force Index, N)

где
Volume — текущее значение объема, поскольку на Forex объема не существует, то для этих целей используется «тиковый объем»;
Close i — цена закрытия текущей свечи;
Close i-1 — цена закрытия предыдущей свечи;
EMA — экспоненциальное скользящее среднее. Можно использовать и другие виды скользящих средних, но автор указывал именно на такой тип. 

Таким образом, Индекс Силы вычисляется вычитанием предыдущей цены закрытия из текущей и умножением полученного результата на объем (на forex – на тиковый объем). Если цена закрытия текущего периода выше цены закрытия предыдущего периода, то сила рынка является положительной. Если цена закрытия текущего периода меньше цены закрытия предыдущего периода, то сила рынка отрицательна. Получается, что величина силы рынка определяется не только направлением и величиной движения, но и объемом. Чем больше был объем при одинаковой разности текущей и предыдущей цены, тем больше эта сила в абсолютном значении. Получается, что и сильное изменение цены на малых объемах и небольшие изменения цен на больших объемах могут приводить к одинаковому значению Индекса Силы. 

Это все я читал. Теория понятна.

У меня вопрос в техническом написании индикатора, согласно формуле FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i) 

Индикатор в данный момент написан по формуле FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i-1))

Какая формула правильна? 

 
yurasik:

Это все я читал. Теория понятна.

У меня вопрос в техническом написании индикатора, согласно формуле FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i) 

Индикатор в данный момент написан по формуле FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i-1))

Какая формула правильна? 

Запутали. Оригинал индикатора дайте

 
yurasik:

Это все я читал. Теория понятна.

У меня вопрос в техническом написании индикатора, согласно формуле FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i) 

Индикатор в данный момент написан по формуле FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i-1))

Какая формула правильна? 

Согласен. Формула не соответствует описанию
 
Vinin:
Согласен. Формула не соответствует описанию

Оригинал индикатора в прикр. файле. Насколько я понял, он написан по формуле FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i-1))

а сам Элдер описывал его так FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i) 

Т.е. надо рассчитать СРЕДНЕЕ разности, а не разность средних

Я переделал индикатор, и написал так:

ExtForceBuffer[i]=iMA(Volume[i]*

                        (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i)-

                         (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i+1)); 

Теперь он не присоединяется к графику. Что я сделал не так? 

КАК исправить индикатор, чтобы он соответствовал формуле Элдера? 

Заранее благодарен 

Файлы:
 
yurasik:

Прошу совета/помощи !

Индикатор  Force Index рассчитывается по формуле

FORCE INDEX (i) = VOLUME (i) * ((MA (ApPRICE, N, i) - MA (ApPRICE, N, i-1))

сам Элдер описывал его так

FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i) 

Я переделал в индикаторе формулу и написал так:

ExtForceBuffer[i]=iMA(Volume[i]*

                        (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i)-

                         (NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i+1)); 

Теперь он не присоединяется к графику. Что я сделал не так?

Буду благодарен помощь

 Заранее спасибо 

Вы не можете использовать iMA подобным образом (посмотрите описание функции - она применяется к стандартным/встроенным таймсериям). В вашем случае, нужно брать МА от произвольного массива с помощью iMaOnArray - http://docs.mql4.com/ru/indicators/imaonarray, а массив этот предварительно посчитать по указанной формуле (объем * на разницу цен).

iMAOnArray - Документация на MQL4
  • docs.mql4.com
iMAOnArray - Документация на MQL4
 
marketeer:

Вы не можете использовать iMA подобным образом (посмотрите описание функции - она применяется к стандартным/встроенным таймсериям). В вашем случае, нужно брать МА от произвольного массива с помощью iMaOnArray - http://docs.mql4.com/ru/indicators/imaonarray, а массив этот предварительно посчитать по указанной формуле (объем * на разницу цен).

Вы можете исправить индикатор, чтобы он работал по формуле Элдера?

FORCE INDEX (i) = MA (VOLUME (i) * (ApPRICE (i) - ApPRICE (i-1)), N, i)  

Готов заплатить за качественную работу.

Заранее спасибо 

Причина обращения: