Блог им. 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
775 | ★9

Читайте на SMART-LAB:
Фото
Новый эмитент на рынке
ООО «Ломбард 888» — новый эмитент из индустрии ломбардного финансирования. Компания предоставляет займы под залог изделий из...
Фото
"Эксперт РА" ждет рост страхового рынка в 2026 году
Газета «Ведомости» опубликовала материал про страховой рынок. В 2026 г. сборы могут достичь 3,865 трлн руб. и вырасти на 4-6% год к году,...
Фото
Данные США «хороши», но EUR/USD не двигается: рынок уперся в реакцию ФРС
EUR/USD снова демонстрирует типичное поведение «усталого» рынка: свежие релизы по США формально позитивные, но пара застряла вокруг 1,1650....
Фото
Хэдхантер. Ситуация на рынке труда в декабре идет ко дну - хуже не было никогда
Вышла статистика рынка труда за декабрь 2025 года, которую Хедхантер публикует ежемесячно, что же там интересного: Динамика...

теги блога autotrade

....все тэги



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