Блог им. autotrade

Другой вариант кривой объемов со средней

пересечение двух линий является сигналом
Другой вариант кривой объемов со средней


Settings={
Name="VCUR",
period=20,
periodma=20,
weighted=1,
proportional=1,
    line=                                     
                {                               
                    {  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(155,0, 0)
                    },	
                    {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,155)
                    },						
                    {  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }					
                }
}
--[[

-- кривая объемов
описание свойств:

period: сколько баров берутся в подсчет
weighted: =0 - обычная, =1 - взвешанная
proportional: =1- считается: volume*(close-open)/(hight-low), =0 - считается: volume*sign(close-open)

--]]

function Init()
    
  mas={}	
  return 3
  
end

function OnCalculate(index)
  	
	--sumv = 0
	if index >= Settings.period then 
	  for i=index-Settings.period-1, index do    
        if sumv == nil then
	      sumv = 0
        end	  
	    if C(i-1) ~= nil then
	      if C(i-1) > O(i-1) then
		    if Settings.proportional == 0 then
		      prop = 1
			else
			  if (H(i-1)-L(i-1)) == 0 then
			    prop = 0
			  else
			    prop = (C(i-1)-O(i-1))/(H(i-1)-L(i-1))
			  end
			end
		    if Settings.weighted == 0 then
              sumv = sumv + prop*V(i-1)
			else
			  sumv = sumv + prop*V(i-1)*(i-(index-Settings.period))/Settings.period
			end
	      else
            if Settings.proportional == 0 then
		      prop = 1
			else
              if (H(i-1)-L(i-1)) == 0 then
			    prop = 0
			  else			
			    prop = (O(i-1)-C(i-1))/(H(i-1)-L(i-1))
			  end
			end	  
		    if Settings.weighted == 0 then
              sumv = sumv - prop*V(i-1)
			else
			  sumv = sumv - prop*V(i-1)*(i-(index-Settings.period))/Settings.period
			end
	      end
        end 
	  end 
	else
	  sumv = nil
	end
	mas[index]=sumv
	
	ma = 0
	if index >= Settings.periodma then 
	  for i=index-Settings.periodma+1, index do    
	    if mas[i] ~= nil then
	      ma = ma + mas[i]
		end 
	  end
	end  
	ma = ma/Settings.periodma	
     
  return sumv, ma, 0


end
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
  • обсудить на форуме:
  • Quik Lua
790 | ★8

Читайте на SMART-LAB:
Фото
Хэдхантер входит в ТОП-5 мировых джоб-бордов по размеру выручки
Что помогает компании сохранять устойчивость и расти при любых условиях: • Рост аудитории основного продукта. Крупнейший в СНГ джоб-борд hh․ru...
Фото
Немного об управлении активами. Для заинтересованных
В июле 8 лет исполнилось публичному портфелю PRObonds ВДО (он долго назывался PRObonds №1), пятый год ведется публичный портфель PRObonds...
Фото
ФСК-Россети. Отчет РСБУ. Очередная допка - бомбовые новости в эфире
Компания ФСК-Россети опубликовала отчет РСБУ за Q2 2026г.: 👉Выручка — 94,81 млрд руб. (+9,4% г/г) 👉Себестоимость — 58,84 млрд руб....
Фото
Хэдхантер. Ситуация на рынке труда в июле. Есть признаки улучшения
Вышла статистика рынка труда за июль 2026 года (за июнь можно почитать здесь ), которую Хедхантер публикует ежемесячно, что же там...

теги блога autotrade

....все тэги



UPDONW
Новый дизайн