Блог им. 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:
    Фото
    Доллар отскакивает от трёхнедельного дна, но не выходит из сомнений
    В среду индекс доллара (DXY) оттолкнулся от трёхнедельного минимума около 98 пунктов постепенно оказывая все большее давление на оппонентов....
    Фото
    Как МГКЛ формирует собственный инвестиционный бренд
    🧩 Инвестиционный бренд не сводится к цифрам в отчётности. Он формируется из того, как компания ведёт диалог с рынком, насколько она открыта...
    Фото
    Крупные страховые начали повышать тарифы по ОСАГО
    Агентство АСН выяснило, что некоторые страховые компании, входящие в топ-10 по ОСАГО, изменили тарифы по ОСАГО для физлиц с 20 января 2026 г. В...
    Фото
    Сохрани себе эту супер-таблицу, проверишь результаты в конце года!
    Мы собрали для вас все макро-прогнозы от брокеров и управляющих компаний и свели их в одну таблицу.   Сохрани себе, проверишь в конце года у...

    теги блога autotrade

    ....все тэги



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