Блог им. 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


★52 | ₽ 283
А че с ним дделать? Как а квик засунуть?
Андрей Андреичъ, создаешь файл \Quik\LuaIndicators\ZIGZAGPROF.lua и туда все копируешь
avatar

autotrade.ru

 что-то тимофейчиками меня давно не одаривали :)
avatar

autotrade.ru

autotrade.ru, у мну оставалось 69. Постеснялся все отдать =)
кукловедофилофоб, бывает
avatar

autotrade.ru

кукловедофилофоб, ты внес свой посильный вклад в дело по борьбе с куклом
avatar

autotrade.ru

а почему бы этот скрипт вам не дать файлом? А то я я затрудняюсь   как его вставить в папку Луаиндикаторс.Думаю так: копирую этот скрипт и вставляю в блокнот, пишу расширение lua и вставляю в папку?
avatar

kaliostro

kaliostro, да если такой папки нет то ее надо создать
avatar

autotrade.ru

kaliostro, что значит пишу разширение? .txt как это поменять?

Андрей Андреичъ, в папке Луаиндикаторс создаем в блокноте файл ZIGZAGPROF.lua Может я неправильно называю расширением то что после точки — lua, вроде это называют расширение?
avatar

kaliostro

Андрей Андреичъ, нужно сначала в свойствах проводника сделать чтоб он расширения показывал потом F2 и изменяешь название файла с раширением
avatar

autotrade.ru

autotrade.ru, ни хрена не нашел где в ствойствах проводника поменять...

Андрей Андреичъ, вид -> параметры -> изменить параметры папок и посика -> вид -> скрывать расширения для зарегистрированных типов (галочка в списке 3-ая с низу )
avatar

autotrade.ru

autotrade.ru, спасибо!
Андрей Андреичъ, найди эту галочку  и сними 
avatar

autotrade.ru

 спасибо вам, получилось самому установить этот индюк!!!
avatar

kaliostro

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

Разорение.
Все группировки данных, средние по ним и пр. не дадут прибыльных сигналов.
avatar

MS

MS, хозяин барин мое дело предложить
avatar

autotrade.ru

Скажите цена сама под них подстраивается?
avatar

Crazy animaL

Crazy animaL, конечно
avatar

autotrade.ru

autotrade.ru, Спасибо за честный ответ.
avatar

Crazy animaL

Crazy animaL, я очень правдивый 
avatar

autotrade.ru

не подскажите в чем проблема, квик зависает и падает при загрузке индикатора, 5 раз пробовал.
avatar

DJ

DJ, да я заметил, что индикатор этот медленно грузиться.тогда лучше от него отказаться
avatar

kaliostro

kaliostro, мне больше достанется :)
хороший индиктатор не должен быстро работать
avatar

autotrade.ru

autotrade.ru, я ничего плохого не говорю про ваш индикатор, просто если у человека квик виснет, то лучше его не ставить
avatar

kaliostro

kaliostro, лучше разобраться в проблеме чтоб не висел
avatar

autotrade.ru

DJ, на каком тайм фрейме?
avatar

autotrade.ru

autotrade.ru, на скрине дневной показан
avatar

bbbugai

bbbugai, я на разных графиках попробовал у меня вроде не зависает и ошибок нет
может у вас есть два одинаковых индикатора с одним названием?
avatar

autotrade.ru

autotrade.ru, может у вас есть два одинаковых индикатора с одним названием? -  не понял этого вопроса.
avatar

bbbugai

bbbugai, тогда забей
avatar

autotrade.ru

прикольно
avatar

TutProstoAdres

TutProstoAdres, ага 
avatar

autotrade.ru

Интуиция подсказывает, что дельный индикатор!
avatar

AlexGood

AlexGood, а то фирма веников не вяжет 
avatar

autotrade.ru

autotrade.ru, Спасибо. Отличная вещь! 
avatar

Astronomer

На каких таймфреймах кроме дней работает?
Александр (Lowryder), на всех
avatar

autotrade.ru

Александр (Lowryder), на вековых лучше всех
avatar

Crazy animaL

Crazy animaL, тогда уж на эпохальных, если на то пошло :))
Это какой-то общеизвестный индикатор? Как строятся наклонные линии по которым строится индикатор? По формулам сложно понять. Можно ссылку какую-то с более подробным описанием.
avatar

SNP13

SNP13, примерно так как в этом индикаторе https://smart-lab.ru/blog/532533.php
avatar

autotrade.ru

SNP13, Цена сама подстраивается под линии, руби бабло только знай!
avatar

Crazy animaL

ZZ на истории только работает, в реале слив
avatar

Ptrade

Ptrade, посмотрим
avatar

autotrade.ru

autotrade.ru, 
что смотреть? Это уже давно известно. Зигзаг —это  индикатор, который неожиданно и резко меняет свое  предыдущее значение задним числом и только на истории все красиво выглядит.
Обсуждать зигзаг и предлагать на его основе индикаторы это не комильфо
avatar

AleksPu

AleksPu, у меня то что расчитывалось в предыдущем баре так и остается
avatar

autotrade.ru

autotrade.ru, Это просто магия какая-то! Спасибо я прозрел просто.
avatar

Crazy animaL

autotrade.ru, не вводите людей в заблуждение, если не можете свои слова подтвердить.  Зигзаг может изменить свое значение и не на предыдущем баре… стыдно это не знать
avatar

AleksPu

AleksPu, а ты где там зизаг видишь
то что в названии есть такое слово это не значит что он на графике изображен, да он используется для расчета, но у результирующего индикатора задним числом значения не меняются
avatar

autotrade.ru

Вы собственно не написали, что собираетесь делать с долларом, там сейчас  полосочка снизу.
avatar

Crazy animaL

Crazy animaL, а с ним что-то надо делать?
avatar

autotrade.ru


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
UPDONW