Блог им. autotrade

Индикатор осцелятор

Индикатор осцелятор на загзаге. Если пересекаем синию линию вверх то лонг если вниз, то выход из лонга. Если пересекаем красную линию вниз, то шорт, если пересекаем вверх то выход из шорта

Индикатор осцелятор


--[[
вопросы к автору: https://t.me/autotrade_ru
параметры: 
Proc1 - процент зигзага 
--]]
Settings={
Name="ZIG_mult_OSC_v3",
Proc1=2,
Proc2=4,
Up = 0.5,
Dw = -0.5,
    line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0, 0, 0)
                    },					
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0, 0, 255)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255, 0, 0)
                    }						
                }
}

function Init()

  y1_1 = nil
  y2_1 = nil
  x1_1 = 1
  x2_1 = 1
  
  y1_2 = nil
  y2_2 = nil
  x1_2 = 1
  x2_2 = 1  
  
 
 
  return 3
  
end

function OnCalculate(index)

  de_1 = Settings.Proc1

  vl_1 = C(index)
  if index == 1 then 
    ind_1 = {}  
	y1_1 = vl_1
    y2_1 = vl_1
	ind_1[index] = 0
  else   
    ind_1[index] = ind_1[index-1]
	  if C(index) > y1_1*(1+de_1/100) and y1_1 < y2_1 then 
	    x2_1 = x1_1
	    y2_1 = y1_1	
	    x1_1 = index 
	    y1_1 = C(index)		
		ind_1[index] = (C(index) - y2_1*(1+de_1/100))/(y2_1*de_1/100)
      else 
	    if C(index) > y1_1 and y1_1 >= y2_1 
		then 		  
	      x1_1 = index 
	      y1_1 = C(index)	  			  
	    end 		
        if y1_1 >= y2_1 
		then 
		  if C(index) > y2_1*(1+de_1/100) then 
		    ind_1[index] = (C(index) - y2_1*(1+de_1/100))/(y2_1*de_1/100)
		  else
		    ind_1[index] = 0
          end		  	      
	    end 				
	  end 	

	  	  		
	  if C(index) < y1_1*(1-de_1/100) and y1_1 > y2_1 then 
	    x2_1 = x1_1
	    y2_1 = y1_1
	    x1_1 = index 
	    y1_1 = C(index)				
		ind_1[index] = -(y2_1*(1-de_1/100)-C(index))/(y2_1*de_1/100)
      else 
	    if C(index) < y1_1 and y1_1 <= y2_1
		then 
	      x1_1 = index 
	      y1_1 = C(index)	  			  
	    end 	
		if y1_1 <= y2_1 
		then 
		  if C(index) < y2_1*(1-de_1/100) then 
		    ind_1[index] = -(y2_1*(1-de_1/100)-C(index))/(y2_1*de_1/100)
		  else
		    ind_1[index] = 0
          end		  	      
	    end 
	  end 	
	  	  		
	end 	

  
  
  de_2 = Settings.Proc2

  vl_2 = C(index)
  if index == 1 then 
    ind_2 = {}
	y1_2 = vl_2
    y2_2 = vl_2
	ind_2[index] = 0
  else   
    ind_2[index] = ind_2[index-1]
	  if C(index) > y1_2*(1+de_2/100) and y1_2 < y2_2 then 
	    x2_2 = x1_2
	    y2_2 = y1_2	
	    x1_2 = index 
	    y1_2 = C(index)		
		ind_2[index] = (C(index) - y2_2*(1+de_2/100))/(y2_2*de_2/100)
      else 
	    if C(index) > y1_2 and y1_2 >= y2_2 
		then 
	      x1_2 = index 
	      y1_2 = C(index)	  			  
	    end 
		if y1_2 >= y2_2 
		then 
		  if C(index) > y2_2*(1+de_2/100) then 
		    ind_2[index] = (C(index) - y2_2*(1+de_2/100))/(y2_2*de_2/100)
		  else
		    ind_2[index] = 0
          end		  	      
	    end 
	  end 	

	  	  		
	  if C(index) < y1_2*(1-de_2/100) and y1_2 > y2_2 then 
	    x2_2 = x1_2
	    y2_2 = y1_2
	    x1_2 = index 
	    y1_2 = C(index)				
		ind_2[index] = -(y2_2*(1-de_2/100)-C(index))/(y2_2*de_2/100)
      else 
	    if C(index) < y1_2 and y1_2 <= y2_2
		then 
	      x1_2 = index 
	      y1_2 = C(index)	  			  
	    end 	
		if y1_2 <= y2_2 
		then 
		  if C(index) < y2_2*(1-de_2/100) then 
		    ind_2[index] = -(y2_2*(1-de_2/100)-C(index))/(y2_2*de_2/100)
		  else
		    ind_2[index] = 0
          end		  	      
	    end 		
	  end 	
	  	  		
	end 	

  
  return ind_1[index]+ind_2[index], Settings.Up, Settings.Dw
 
  
end<br /><br />
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
477
2 комментария
А еслив ни пирисикаем, что делать???
avatar
AMBASSADOR FX, если график между ними то кэш
avatar

Читайте на SMART-LAB:
Фото
Три четверти россиян готовы переехать в другой регион ради повышения на работе
Каждый пятый (22%) не раздумывая согласится покинуть родной город ради карьеры, свыше половины (55%) россиян пойдут на переезд только если...
🎥 О новых выпусках облигаций и не только — в интервью топ-менеджмента SOFL
Друзья, делимся сразу двумя интервью топ-менеджеров Софтлайн:  🎙 сходили на шоу «Акционеры. Бизнес» — обсудили  развитие Софтлайн, успешную...
Фото
Итоги недели на рынках сырьевых товаров
Если вас интересуют другие аналитические и информационные материалы от банка АО АКБ «ЦентроКредит», смотрите их на нашем сайте в...
Фото
Длинные ОФЗ: сколько можно заработать за 3 года, если взять текущие доходности около 17%?
Пока с начала текущего года заработать на длинных ОФЗ особо не получается (-0,56% с учетом НКД). Ожидания усиления инфляционных и прочих рисков...

теги блога autotrade

....все тэги



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