Блог им. autotrade

Индикатор разных таймфреймов

Индикатор разных таймфреймов
--[[
средние на разных TF(15/60/D) одной длины
индикатор позволяет сократить количество окон с разными таймфреймами
--]]
Settings=              
        {                          
            Name = "SMA_mult_template_v3",   -- indicator name
            D=200,               -- period	
			M60=200,
			M15=200,
            line=                                     
                {                               
                    {  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,255)
                    },
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,255)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,255)
                    }					
                }
       }


function Init()
  
  return 3
end


function OnCalculate(index)

  lnd = Settings.D 
  lnh = Settings.M60
  ln = Settings.M15
  

  if index == 1 then 
    hour = {}
    day = {}  
  
    sum = {}
    sma = {}  	
    n = {}	
	
    sumh = {}
    smah = {}  	
    nh = {}		
	nhi = {}
	
    sumd = {}
    smad = {}  
    nd = {}		
	ndi = {}	
	
    sum[index] = O(index)
    n[index]=1
	
    sumh[index] = O(index)	
    nh[index]=1
    nhi[index]=1
	
    sumd[index] = O(index)
    nd[index]=1	
    ndi[index]=1	
	
	hour[index] = T(index).hour	
	day[index] = T(index).day	
	
  else
  
    if index > ln then     
      sum[index] = sum[index-1] + O(index)
	  sum[index] = sum[index] - O(index-ln)
      n[index] = n[index-1]
    else 
      sum[index] = sum[index-1] + O(index)
      n[index] = n[index-1] + 1	
    end 
	
	if hour[index-1] ~= T(index).hour then 
      nh[index] = nh[index-1] + 1		
      nhi[nh[index]] = index
	  if nh[index] > lnh then 
	    sumh[index] = sumh[index-1] + O(index)-O(nhi[nh[index]-lnh])
		smah[index] = sumh[index]/lnh
	  else
	    sumh[index] = sumh[index-1] + O(index)
		smah[index] = nil
	  end 
	else  
      nh[index] = nh[index-1]
      sumh[index] = sumh[index-1]  
	  smah[index] = smah[index-1]
    end 
	
	if day[index-1] ~= T(index).day then 
      nd[index] = nd[index-1] + 1		
      ndi[nd[index]] = index
	  if nd[index] > lnd then 
	    sumd[index] = sumd[index-1] + O(index)-O(ndi[nd[index]-lnd])
		smad[index] = sumd[index]/lnd
	  else
	    sumd[index] = sumd[index-1] + O(index)
		smad[index] = nil
	  end 
	else  
      nd[index] = nd[index-1]
      sumd[index] = sumd[index-1]  
	  smad[index] = smad[index-1]
    end 	
	
	hour[index] = T(index).hour	
	day[index] = T(index).day		
  end
  
  
  if n[index] ~= 0 then 
    sma[index] = sum[index]/n[index]
  end  
   

    return sma[index], smah[index], smad[index]
 
  
end

469 | ★1

Читайте на SMART-LAB:
Фото
Интервенция против иены ударила по доллару и дала евро новый импульс
EURUSD прервала снижение и перешла в уверенный рост в пятницу торгуясь на 0.3% выше открытия, хотя еще накануне пара опускалась до 1.1650. Повлияло...
«ЛампаТрампа» в Перми: как это было
«ЛампаТрампа» покорила Пермь и узнала, как инвестировать во времена нестабильности. В центре внимания — решение ЦБ, прогнозы по ставке и реальное...
Обновление кредитных рейтингов в ВДО и розничных облигациях (ООО «СОЛИД СпецАвтоТехЛизинг» повышен «B+|ru|», ООО "ГЛАВСНАБ" понижен D(RU), ООО «Проект 111» подтвердил ruBBB)
🟢ООО «СОЛИД СпецАвтоТехЛизинг» НРА повысило кредитный рейтинг до уровня «B+|ru|», прогноз Стабильный. Ранее у компании действовал рейтинг B|ru| с...
Фото
Возвращение легендарных дивидендных увертюр: ЛУКОЙЛ при нефти по 120$ с дивидендом 5% - упущение или находка?
Рынок продолжает катиться в бездну (хотя на самом деле просто не растет) на нефти в 110-120$ и ставке ЦБ РФ в 14,5% (как будто год назад было...

теги блога autotrade

....все тэги



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