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

Читайте на SMART-LAB:
Фото
💡 Шесть факторов, которые влияют на цену золота
В конце августа золото почти достигло $4700 за унцию — максимума за несколько месяцев. Но с тех пор его цена заметно снизилась: сегодня...
📈 ИТ-рынок России: рост в 2 раза к 2032 году и возможности для SOFL
Друзья, вчера Б1 опубликовала новое исследование ИТ-рынка России. В этом посте обсуждаем ключевые выводы аналитиков и их значение для SOFL👇 📊...
Фото
Доходность выше 100% — уже не подарок: сложная неделя на рынке облигаций
Индекс RGBI по итогам недели снизился на 0,5%, до 111,93 пункта. После умеренного восстановления неделей ранее рынок ОФЗ вновь перешел к...
Фото
Коротко по дивиденду Диасофта. Глазков на смартлабе. Прогноз на ближайший отчет.
На этой неделе объявлен квартальный дивиденд Диасофта. Много это или мало? Можно ли предсказать из дивиденда финансовые результаты 2 квартала,...

теги блога autotrade

....все тэги



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