Блог им. autotrade

MNKOSC - осцелятор по каналу (движение цены внутри канала)

MNKOSC предлагаю использовать совместно с MNKA (индикатор наклона канала)
сигналом к покупке/продаже может служить пересечение им нулевой линии

нужно смотретьна наклон канала чтоб не шортить на восходящем канале и наоборот

MNKOSC - осцелятор по каналу (движение цены внутри канала)






Settings={
Name="MNKOSC",
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(255,0, 0)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }

                }

}
--[[

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

назначение:
осцелятор по каналу

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

--]]

function Init()
  
  return 4
end

function OnCalculate(index)
    
  sz = Size()
  n = Settings.period
  d = Settings.delta
        	
   y = nil    
   y1 = nil
   y2 = 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
	  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		 
	 
	 j = index-d
	 y = a*j + b
     y1 = -2*c1	
     y2 = 2*c2		 
	 
     j =  index-d
     y = C(j) - a*j - b
	 
	 
    end 
   end 	
   return 0, y, y1, y2
 
  
end
    432 | ★4
    2 комментария
    если код такой же, как и написан тип индикатора, то явно шняга
    в одном слове-термине две ошибки((( осциллятор, а не осцелятор. Чую, что книг не читал((
    avatar

    Читайте на SMART-LAB:
    Фото
    Продажи коротких полисов ОСАГО показывают «иксы»
    В 1 квартале 2026 года количество проданных коротких полисов ОСАГО для такси достигло 5,9 млн, превысив в 7 раз показатель предшествующего года,...
    Фото
    «Селигдар» открыл два новых месторождения золота в Якутии
    «Селигдар» в результате проведения работ получил свидетельства, подтверждающие установления фактов открытий двух месторождений Чулковское и Хохой...
    Фото
    Идеальные коридоры: три интересные технические идеи
    Один из эффективных способов заработка на рынке — торговля теми акциями, которые движутся в ярко выраженном коридоре. Принципы такой торговли, а...
    Фото
    Кто сейчас самый дешевый сбыт? Сводный пост по сбытовым компаниям по отчетам РСБУ за 2025г.
    Волгоградэнергосбыт Ставропольэнергосбыт Самараэнерго Мордовэнергосбыт Пермэнергосбыт Новосибирскэнергосбыт...

    теги блога autotrade

    ....все тэги



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