теперь я хочу воспользоваться замечательной библиотекой INDICATORS.ZIP (спасибо огромное её автору, эти функции верно служат мне несколько лет). В описании библиотеки такое предусмотрено:
Код
--Пример расчета индикатора Moving Average по произвольному набору чисел:
dofile(getWorkingFolder().."\\LuaIndicators\\MA.lua")
tbl = {[1]=2587.5, [2]=2588.5, [3]=2585.1, [4]=2583.7, [5]=2582.6, [6]=2581.2, [7]=2579.2, [8]=2574.7,
[9]=2571.5, [10]=2570.8, [11]=2569.9, [12]=2569.7, [13]=2567.2, [14]=2569.3, [15]=2566.1, [16]=2567,
[17]=2563.3, [18]=2565.2, [19]=2564.3, [20]=2565.9, [21]=2568.5, [22]=2572.2, [23]=2572, [24]=2572, [25]=2571.3}
function main()
func = MA()
t_id = AllocTable()
AddColumn(t_id,1,"Price",true,QTABLE_INT_TYPE,10)
AddColumn(t_id,2,"MA",true,QTABLE_INT_TYPE,10)
CreateWindow(t_id)
SetWindowCaption(t_id,"MA")
for i=1,#tbl do
ma_out=func(i, {Period=3, Metod = EMA, VType=ANY}, {[i]=tbl[i]})
tmp=InsertRow(t_id,-1)
SetCell(t_id,tmp,1,tostring(tbl[i]),tbl[i])
SetCell(t_id,tmp,2,tostring(ma_out),ma_out)
end
end
Строить буду по ценам закрытия Close. Вопрос касается таблицы tbl, которая передаётся в функцию. Она будет иметь вид: дата, время, open,high,low,close.
Let_it_go написал: Как мне грамотно передать её в функцию индикатора? Нужно сделать как в примере, выкинуть все поля, кроме нужного поля close?
Не совсем понятен вопрос... В коде примера, можно просто поменять в трёх местах tbl на tbl[6] и всё... разве нет?
Я написал такой парсер для котировок.
в функцию, рассчитывающую индикатор, будет запихиваться таблица t_small, а таблица t_big нужна, чтобы брать из неё дату, время, High,Low. table.remove(t,3) нужна, чтобы выбросить цену открытия. Она не используется.