Очереди и двойные очереди в луа

Страницы: Пред. 1 ... 22 23 24 25 26
RSS
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, С ног на голову, говорите? Ну, давайте поставим на ноги: мой скрипт давно написан, отлажен, работает в боевом режиме прямо сейчас, тикеров у него на два порядка больше, чем у вас, никаких проблем ни с памятью, ни с быстродействием нет от слова "совсем", все глюки системного софта (по крайней мере, все известные мне) купированы, моё "частное решение" реализовано! Ваше же "общедоступное решение" НЕ реализовано и не будет реализовано НИКОГДА.
 
Владимир,  Я Вас поздравляю с отличным решением! Я ушел заниматься своим, а то действительно не соберу. НО ХОЧЕТСЯ ПОДНЯТЬ  новую тему?
 
----- lifo из двусвязной очереди и пример позволят вести себя как стек - обеспечивая LIFO-порядок.
Скрытый текст

Еще одна реализация стека, по сути это тоже самое что и в букваре только реализация в виде класса, просто удобней пользоваться., наследуется без проблем, легко дописать фифо. У себя делаю лифо  для контроля памяти, создавая динамические окна. Выкладываю может кому еще сгодится.
 
Цитата
Nikolay написал:
Открываете пример MA.lua, например расчет SMA, и видите использование массива sum равного длине периода.

Да нет, вроде, в sum хранятся значения по всем свечам:

Код
function F_SMA()
   local sum = {}
   local it = {p=0, l=0}
return function (I, P, VT, ds)
   if I == 1 then
      sum = {}
      it = {p=0, l=0}
   end
   if CandleExist(I,ds) then
      if I~=it.p then it={p=I, l=it.l+1} end
      local Ip,Ipp,Ippp = Squeeze(it.l,P),Squeeze(it.l-1,P),Squeeze(it.l-P,P)
      sum[Ip] = (sum[Ipp] or 0) + GetValueEX(it.p,VT,ds)
      if it.l >= P then
         return (sum[Ip] - (sum[Ippp] or 0)) / P
      end
   end
return nil
end
end
Страницы: Пред. 1 ... 22 23 24 25 26
Читают тему
Наверх