Функция предназначена для проверки существования свечи на графике цены и объема.
Формат вызова:
BOOLEAN CandleExist(NUMBER index) Параметры:
Функция принимает в качестве параметра индекс свечи и возвращает «true» если свечка существует, иначе – «false».
Пример использования функции для индикатора Moving Average по цене закрытия:
Settings= {
Name = "Moving Average Lua",
Period = 9,
line =
{
{
Name = "Moving Average Lua",
Color = RGB(90, 110, 200),
Type = TYPE_LINE,
Width = 1
}
}
}
function Init()
QUEUE = {}
SUM = 0
return 1
end
function OnCalculate(index)
return Average(index)
end
function Average(indx)
--если выполняется перерасчет индикатора, то сбрасываем очередь и сумму
if indx == 1 then
QUEUE = {}
SUM = 0
end
--если свечка непустая, добавляем ее в очередь и суммируем значение ее закрытия
if CandleExist(indx) then
table.insert(QUEUE, {C_value = C(indx)})
SUM = SUM + QUEUE[#QUEUE].C_value
--если очередь достигла необходимого периода, то считаем среднее значение
if #QUEUE == Settings.Period then
local avg = SUM/Settings.Period
SUM = SUM - QUEUE[1].C_value
table.remove(QUEUE, 1)
return avg
end
else
return nil
end
end