котировки с финама+индикаторы

Страницы: 1
RSS
котировки с финама+индикаторы
 
Добрый день.
Осваиваю работу с сайтом финама.
https://www.finam.ru/profile/moex-akcii/sberbank/export/
Беру оттуда архив котировок, к примеру в таком виде:

теперь я хочу воспользоваться замечательной библиотекой 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.
Код
tbl={
{20170703,100500,146.6900000,147.1900000,146.6100000,146.8700000,1817320},
{20170703,101000,146.9000000,148.3000000,146.9000000,147.8000000,3684060}
------
------
------
}
Как мне грамотно передать её в функцию индикатора?
Нужно сделать как в примере, выкинуть все поля, кроме нужного поля close?
Код
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}
Спасибо
 
Цитата
Let_it_go написал:
Нужно сделать как в примере, выкинуть все поля, кроме нужного поля close?
Надо сделать как в примере.
 
Цитата
Sergey Gorokhov написал:
ma_out=func(i, {Period=3, Metod = EMA, VType=ANY}, {=tbl})
Сергей, большое спасибо за ответ!
Но ведь в примере написано:
ma_out=func(i, {Period=3, Metod = EMA, VType=ANY}, {[i]=tbl[i]})

VType=ANY.
Неужели нельзя написать VType=Typical, и тогда я смогу передавать три значения: high,low,close?
 
Цитата
Let_it_go написал:
Неужели нельзя написать VType=Typical, и тогда я смогу передавать три значения: high,low,close?

Нельзя т.к. при Typical значения будут дергаться либо из H(I) либо из ds:H(I). Но не из таблицы ds[I].
 
Цитата
Let_it_go написал:
Как мне грамотно передать её в функцию индикатора?
Нужно сделать как в примере, выкинуть все поля, кроме нужного поля close?
Не совсем понятен вопрос... В коде примера, можно просто поменять в трёх местах tbl[i] на tbl[i][6] и всё... разве нет?
 
Цитата
Suntor написал:
Цитата
Let_it_go   написал:
Как мне грамотно передать её в функцию индикатора?
Нужно сделать как в примере, выкинуть все поля, кроме нужного поля close?
Не совсем понятен вопрос... В коде примера, можно просто поменять в трёх местах  tbl  на  tbl[6]  и всё... разве нет?
Я написал такой парсер для котировок.


в функцию, рассчитывающую индикатор, будет запихиваться таблица t_small, а таблица t_big нужна, чтобы брать из неё дату, время, High,Low.
table.remove(t,3) нужна, чтобы выбросить цену открытия. Она не используется.
Страницы: 1
Читают тему
Наверх