Блог им. 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:
Фото
Операционные результаты ПАО «АПРИ» за декабрь и 12 месяцев 2025 года: инфографика
Операционные результаты ПАО «АПРИ» за декабрь и 12 месяцев 2025 года: инфографика Цифры говорят лучше слов, особенно когда они...
Фото
📈 Почему важно инвестировать в компании с понятной логикой роста
Инвестору важно не просто видеть рост цифр, а понимать, откуда он берётся. Когда динамика объяснима, к ней проще относиться спокойно — без...
Фото
Акции Норникеля вошли в десятку самых популярных бумаг на бирже
На днях Мосбиржа поделилась итогами работы за 2025 год . Количество частных инвесторов за 12 месяцев увеличилось на 5 млн до 40,1 млн, открыто 76...
Фото
Обзор данных Росстата по выработке электроэнергии в РФ в ноябре 2025г. и по потреблению энергии в декабре 2025г.
Росстат представил данные по выработке электроэнергии в РФ в ноябре 2025г.: 👉выработка электроэнергии в РФ — 104,59 млрд кВт*ч. ( -2,69%...

теги блога autotrade

....все тэги



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