Блог им. autotrade

Индикатор наклонных уровней

сигналом к покупке является пересечение ценой кривой снизу вверх, а на продажу — наоборот.
вход по цене закрытия бара, пересекшего индикатор или цена открытия следующего бара.
в дальнейшем немного поменяю логику

Индикатор наклонных уровней

--[[
параметры: 
Procent - процент зигзага 
--]]
Settings={
Name="ZIGZAGPROF",
Procent=1,
    line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 0)
                    },
                    {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    }							
                }
}

function Init()
  
  y1 = nil
  y2 = nil
  x1 = 1
  x2 = 1
    
  return 1
  
end

function OnCalculate(index)

  de = Settings.Procent
  
  delt = 0.01

  vl = C(index)
  if index == 1 then 
	y1 = vl
    y2 = vl
  else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x2 = x1
	    y2 = y1	
	    x1 = index 
	    y1 = C(index)	        
	  end 	
	  if C(index) > y1 and C(index) > y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 
	  	  		
	  if C(index) < y1*(1-de/100) and y1 > y2 then 
	    x2 = x1
	    y2 = y1
	    x1 = index 
	    y1 = C(index)  		
	  end 	
	  if C(index) < y1 and C(index) < y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 	  	  		
	end 	
  
  if x1 ~= index then 
    curfrom = x1
	curto = index
  else 
    curfrom = x2
	curto = x1
  end 
 
 --[[
  if curto ~= curfrom and curfrom ~= nil and curto ~= nil then 
    if C(curto) ~= nil and C(curfrom) ~= nil then 
      k = (C(curto)- C(curfrom))/(curto- curfrom)  
      for i = curfrom, index  do
        curv = i*k + C(curto) - curto*k  		          
	    SetValue(i, 1, curv)
      end   	
	end 
  end
--]]
    
    lev = nil
	if x1 ~= x2 then  
     
	
	k = (C(x1)- C(x2))/(x1- x2)    
	maxd = 0
    for i = x2, x1  do
      
	  lev = i*k + C(x1) - x1*k  		
	  
	  if  C(x2) > C(x1) and lev <= H(i) 
	  then 
	    if maxd < H(i) - lev  then 
          maxd = H(i) - lev 
		end
        --maxd = 0.5		
      end 
	  
      if  C(x2) < C(x1) and lev >= L(i) 
	  then 
	    if maxd > L(i) - lev  then 
          maxd = L(i) - lev
		end 
		--maxd = -0.5
      end 	  
	  
    end   	
      
    lev = nil 
    --[[if x1 < index 
	  and 
	  (
	  C(x2) > C(x1) and C(x1) < C(index) 
      or 
      C(x2) < C(x1) and C(x1) > C(index) 	  
	 )
	then --]]
      lev = 
	    index*k + C(x1) - x1*k + 
		maxd
	--end   
    
	  
	  
	--[[  
	
	map = 10
	lev = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev = lev + C(i)
      end   		
	  lev = lev/map
	  ma = lev
	end
	
	map = 30
	lev2 = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev2 = lev2 + C(i)
      end   		
	  lev2 = lev2/map
	  ma2 = lev2
	end	

	
	if 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev and C(index) - C(x1) > C(index)*delt
	  or 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev2 
	then 
	  lev = C(x1)--*(1-delt)
	  prev = lev        
	else  	
	  if 
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev and C(x1) - C(index) > C(index)*delt
	    or
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev2 
	  then 
	    lev = C(x1)--*(1+delt)
	    prev = lev
	  else
        lev = lev2  
	  end		
    end	

	if 
	  C(x1) > C(x2) and ( lev < C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1+delt)
	  prev = lev
	end
	
	if
	  C(x1) < C(x2) and ( lev > C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1-delt)
	  prev = lev
	end	
	
    if C(x1) < C(x2) and ( lev < C(index) or prev == C(x1) )
	then         	  
	  lev = C(x1)
	  prev = lev
    end
	  
    if C(x1) > C(x2) and ( lev > C(index) or prev == C(x1) ) 
	then         	  
	  lev = C(x1)
	  prev = lev       		
	end
	 --]] 

	
  end   
  
  return  lev
 
  
end


  • Ключевые слова:
  • lua,
  • quik
★52
49 комментариев
Андрей Андреичъ, создаешь файл \Quik\LuaIndicators\ZIGZAGPROF.lua и туда все копируешь
avatar
 что-то тимофейчиками меня давно не одаривали :)
avatar
autotrade.ru, у мну оставалось 69. Постеснялся все отдать =)
avatar
кукловедофилофоб, бывает
avatar
кукловедофилофоб, ты внес свой посильный вклад в дело по борьбе с куклом
avatar
а почему бы этот скрипт вам не дать файлом? А то я я затрудняюсь   как его вставить в папку Луаиндикаторс.Думаю так: копирую этот скрипт и вставляю в блокнот, пишу расширение lua и вставляю в папку?
avatar
kaliostro, да если такой папки нет то ее надо создать
avatar
Андрей Андреичъ, в папке Луаиндикаторс создаем в блокноте файл ZIGZAGPROF.lua Может я неправильно называю расширением то что после точки — lua, вроде это называют расширение?
avatar
Андрей Андреичъ, нужно сначала в свойствах проводника сделать чтоб он расширения показывал потом F2 и изменяешь название файла с раширением
avatar
Андрей Андреичъ, вид -> параметры -> изменить параметры папок и посика -> вид -> скрывать расширения для зарегистрированных типов (галочка в списке 3-ая с низу )
avatar
Андрей Андреичъ, найди эту галочку  и сними 
avatar
 спасибо вам, получилось самому установить этот индюк!!!
avatar
сигналом к покупке является пересечение ценой кривой снизу вверх, а на продажу — наоборот

Разорение.
Все группировки данных, средние по ним и пр. не дадут прибыльных сигналов.
avatar
MS, хозяин барин мое дело предложить
avatar
Скажите цена сама под них подстраивается?
avatar
Crazy animaL, конечно
avatar
autotrade.ru, Спасибо за честный ответ.
avatar
Crazy animaL, я очень правдивый 
avatar
не подскажите в чем проблема, квик зависает и падает при загрузке индикатора, 5 раз пробовал.
avatar
DJ, да я заметил, что индикатор этот медленно грузиться.тогда лучше от него отказаться
avatar
kaliostro, мне больше достанется :)
хороший индиктатор не должен быстро работать
avatar
autotrade.ru, я ничего плохого не говорю про ваш индикатор, просто если у человека квик виснет, то лучше его не ставить
avatar
kaliostro, лучше разобраться в проблеме чтоб не висел
avatar
DJ, на каком тайм фрейме?
avatar
autotrade.ru, на скрине дневной показан
avatar
bbbugai, я на разных графиках попробовал у меня вроде не зависает и ошибок нет
может у вас есть два одинаковых индикатора с одним названием?
avatar
autotrade.ru, может у вас есть два одинаковых индикатора с одним названием? -  не понял этого вопроса.
avatar
bbbugai, тогда забей
avatar
прикольно
TutProstoAdres, ага 
avatar
Интуиция подсказывает, что дельный индикатор!
avatar
AlexGood, а то фирма веников не вяжет 
avatar
autotrade.ru, Спасибо. Отличная вещь! 
avatar
На каких таймфреймах кроме дней работает?
Александр (Lowryder), на всех
avatar
Александр (Lowryder), на вековых лучше всех
avatar
Crazy animaL, тогда уж на эпохальных, если на то пошло :))
Это какой-то общеизвестный индикатор? Как строятся наклонные линии по которым строится индикатор? По формулам сложно понять. Можно ссылку какую-то с более подробным описанием.
avatar
SNP13, примерно так как в этом индикаторе https://smart-lab.ru/blog/532533.php
avatar
SNP13, Цена сама подстраивается под линии, руби бабло только знай!
avatar
ZZ на истории только работает, в реале слив
avatar
Ptrade, посмотрим
avatar
autotrade.ru, 
что смотреть? Это уже давно известно. Зигзаг —это  индикатор, который неожиданно и резко меняет свое  предыдущее значение задним числом и только на истории все красиво выглядит.
Обсуждать зигзаг и предлагать на его основе индикаторы это не комильфо
avatar
AleksPu, у меня то что расчитывалось в предыдущем баре так и остается
avatar
autotrade.ru, Это просто магия какая-то! Спасибо я прозрел просто.
avatar
autotrade.ru, не вводите людей в заблуждение, если не можете свои слова подтвердить.  Зигзаг может изменить свое значение и не на предыдущем баре… стыдно это не знать
avatar
AleksPu, а ты где там зизаг видишь
то что в названии есть такое слово это не значит что он на графике изображен, да он используется для расчета, но у результирующего индикатора задним числом значения не меняются
avatar
Вы собственно не написали, что собираетесь делать с долларом, там сейчас  полосочка снизу.
avatar
Crazy animaL, а с ним что-то надо делать?
avatar

теги блога autotrade

....все тэги



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