Блог им. 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
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
    438 | ★4
    2 комментария
    если код такой же, как и написан тип индикатора, то явно шняга
    в одном слове-термине две ошибки((( осциллятор, а не осцелятор. Чую, что книг не читал((
    avatar

    Читайте на SMART-LAB:
    Фото
    Дивиденды в алготрейдинге №1: Введение и оглавление
    Друзья мои, всем привет!   С сегодняшнего дня мы начинаем новый цикл статей — «Дивиденды в алготрейдинге». В нём мы разберём три робота,...
    Фото
    Финал дивидендного сезона. Сколько денег вернется на рынок?
    Текущий сезон дивидендов близится к финалу. До конца августа на брокерские счета инвесторов поступят дивидендные выплаты от «Сбербанка»,...
    Фото
    Консенсус-прогноз по чистой прибыли за 6 месяцев 2026 года
    Консенсус-прогноз по чистой прибыли ДОМ.PФ за 6 месяцев 2026 года по МСФО составил 57 млрд рублей при рентабельности капитала выше 23% Свою...
    Фото
    Включаем "Антикризис" на полную катушку! А вдруг?
    Сегодня я был снова вынужден прервать свой отвратительный отпуск, чтобы заниматься делами своего инвестиционного портфеля и даже для того, чтобы...

    теги блога autotrade

    ....все тэги



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