Использование части данных другого индикатора в коде

Страницы: 1
RSS
Использование части данных другого индикатора в коде, Работа с типовым шаблоном индикатора
 
Код
function CMOExtremum ()
local CMOlenght = 20 
local FCMO = CMO()

return function (I, Fsettings, ds)

local CMOValues = {}

CMOValues[ 1 ] = FCMO(I, Fsettings, ds)
CMOValues[ 2 ] = FCMO(I + 1 , Fsettings, ds)

return CMOValues[ 2 ]
end 
end 
 
Добрый день!
Для расчета индикатора мне нужны пара десятков последних значений индикатора CMO, который я рассчитываю в этом же файле.

Я предположил, что для этого мне нужно создать массив, в который вызвать функцию СМО для значений индекса от I до I-20
Но получается какая-то ерунда.
Т.е. если смотреть код выше: если возвращать CMOValues[1], то выход индикатора совпадает с СМО
Ожидается, что возврат CMOValues[2] даст ту же картину, но смещенную на один бар назад.
Но нет. Получается совсем другая кривая.

Предположу, что нужно задействовать Squeeze и GetValueEX, не предположу как.
Подскажите, пожалуйста, как решить задачу эффективно?

Для понимания опишу постановку. При возникновении экстремума на CMO
Код
if CMOValues[ 2 ] > CMOValues[ 1 ] and CMOValues[ 2 ] > CMOValues[ 3 ] then 
maxCMO1 = CMOValues[ 2 ]
end 
if CMOValues[ 2 ] < CMOValues[ 1 ] and CMOValues[ 2 ] < CMOValues[ 3 ] then 
minCMO1 = CMOValues[ 2 ]
end 
 найти ближайший того же типа (мин, макс) и сравнить их значения.
В зависимости от их соотношения выдать сигнал
Страницы: 1
Читают тему
Наверх