Блог им. 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 />
459
2 комментария
А еслив ни пирисикаем, что делать???
avatar
AMBASSADOR FX, если график между ними то кэш
avatar

Читайте на SMART-LAB:
Фото
Актуальный состав портфеля и взгляд на рынок 2026: по-прежнему 0% позитива.
Добрый вечер! С момента предыдущего поста, касающегося моего портфеля, прошел квартал.  Пришло время актуализировать его состав. Также поделюсь...
Фото
Биткоин попробует разыграть «треугольную карту»?
«Цифровое золото» прорвало верхнюю границу восходящего треугольника на уровне 94 500 и сейчас тестирует пробитую горизонталь, формируя серию...
Фото
Индикатор Fractal: торговые сигналы и робот для OsEngine. Видео
В этом видео разбираем индикатор Fractal Билла Вильямса — один из самых известных инструментов в трейдинге. Покажем, как формируются фракталы,...
Фото
Стратегия 2026 по рынку акций от Mozgovik Research: трудный год, но, возможно, последний год низких цен
Сегодня у меня первый день официального отпуска. За окном темная звездная ночь, яркая белая луна, +24С и шум волн Андаманского моря. Неудачный...

теги блога autotrade

....все тэги



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