Блог им. autotrade

Канал по средним значениям

Канал по средним значениям

Settings={
Name="MNKAVG",
period=200,
delta=0,
line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,255, 0)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,255, 0)
                    },
					{  
                        Name = "cur5",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    }

                }

}
--[[

описание свойств:
period - период, за каротрый делается расчет
delta - смещение назад 

назначение:
построение тенденции

использовался:
метод наименьших квадратов (аппроксимация линией)

--]]

function Init()
  
  return 5
end

function OnCalculate(index)
    
  sz = Size()
  n = Settings.period
  d = Settings.delta
       
  if (index ~= sz) then
    return nil, nil, nil, nil, nil
  else  	
   y = nil    
   if index-n-d > 0 then
    a1 = 0
	a2 = 0
	a3 = 0
	a4 = 0
    for i=index-n+1-d, index-d do  

	  a1 = a1+i*C(i)
	  a2 = a2+i
	  a3 = a3+C(i)
	  a4 = a4+i*i
	
    end  
	
	if((n*a4 - a2*a2) ~= 0) then
	 a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
	 b = (a3 - a*a2)/n
    
	 c1 = 0
	 c2 = 0
	 n1 = 0
	 n2 = 0
     for j=index-n+1-d, index-d do  
      y = a*j + b
      SetValue(j, 1, y) 
	  if C(j) < y then
	    c1 = c1 + (y -C(j))
		n1 = n1 + 1
	  end
	  if C(j) > y then
	    c2 = c2 + (C(j) - y)
		n2 = n2 + 1
	  end	  
     end	
	 
	 if n1 ~= 0 then
	   c1 = c1/n1
	 end
	 if n2 ~= 0 then
	   c2 = c2/n2
	 end	 
	 
     for j=index-n+1-d, index-d do  
      y = a*j + b
      SetValue(j, 2, y-c1) 
	  SetValue(j, 3, y-2*c1) 	  
      SetValue(j, 4, y+c2) 
	  SetValue(j, 5, y+2*c2) 	  
     end		 
	 
    end 
   end 	
   return y
  end
 
  
end

 
    591 | ★3
    3 комментария
    wtf
    avatar
    скоро робота запрограммируеш
    avatar

    Читайте на SMART-LAB:
    Фото
    Долгосрочное инвестирование умерло. В этот раз - без "но". Хороших новостей не будет
    Увеличение капитала посредством инвестирования в доли компаний всегда основывалось на двух тезисах (1) компания сможет на длительном...
    Фото
    Как на самом деле используют ИИ в алготрейдинге
    Если первая часть моего репортажа по конференции алготрейдеров в Москве была об инфраструктуре, то вторая часть будет про искусственный...
    Инвестиции без спешки: торгуем в выходные
    Рынок часто движется импульсами, и тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят выходные дни. В...
    Фото
    Ростелеком. МСФО за Q4 2025г. Всё неплохо… но всё равно печально…
    Компания Ростелеком опубликовала финансовые результаты за 4 квартал 2025г.: 👉Выручка — 270,5 млрд руб. (+15,6% г/г) 👉Операционные...

    теги блога autotrade

    ....все тэги



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