Блог им. autotrade

Индикатор разницы объемов по положительным и отрицательным барам

Индикатор разницы объемов по положительным и отрицательным барам
--[[
MA volumn up down
--]]
Settings=              
        {                          
            Name = "MAV2_m",   -- indicator name
            per=10,               -- period			
            line=                                     
                {                               
                    {  
                        Name = "MA",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,0)
                    },
					{  
                        Name = "MA2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,255)
                    }	
                }
       }


function Init()   
  mav1 = {}
  mav2 = {}  
  return 2
end


function OnCalculate(index)
  
  per = Settings.per
  
  if index > 1 then 
    curv = C(index)
    prevv = C(index-1)	
  else 
    curv = C(index)
    prevv = C(index)	
  end   
 
  if curv - prevv > 0 then 
    if index > 1 then 
      mav1[index] = mav1[index-1] + V(index)
	  mav2[index] = mav2[index-1] 
    else 
      mav1[index] = V(index)  
	  mav2[index] = 0
    end    
  else 
    if index > 1 then 
	  mav1[index] = mav1[index-1]
      mav2[index] = mav2[index-1] + V(index)
    else 
	  mav1[index] = 0
      mav2[index] = V(index)  
    end 
  end 
  
  if index > per then
    vv1 = mav1[index] - mav1[index-per]
	vv2 = mav2[index] - mav2[index-per]
  else 
    vv1 = 0
	vv2 = 0
  end   

  return 0, vv1 - vv2

end
★5
14 комментариев
И что? 
avatar
А скрипт индикатора выложите?
avatar
полезный индюк если глазами не видишь.
avatar
идея давно известная, имеет право на жизнь, но как всегда одна и та же проблема — индикатор запаздывающий.
Пару дней падаем на растущем индикаторе.
avatar
АлексейФ, значит объемы на покупку растут на продажу падают есть над чем задуматься
avatar
autotrade.ru, на истории пара таких же моментов, но там цена консолидировалась и продолжала дальше падать.
avatar
Знатоки, подскажите, в квике в индикаторах можно нарисовать столько линий скока мне нужно?  Сегодня на картинке надо 10 уровней, завтра 20, примеры как нарисовать фиксированное число видал, а если надо вычислимое количество?
avatar
С. К., дак либо nil возвращать либо число по линии, и так по каждой
avatar
Виталий, Ну то есть сотня линий в settings , а красивее вариантов нет?
avatar
С. К., а вам сотня нужна? ну насколько знаю в блоке инициализации индикатора один раз только задается количество линий, но их количество можно же с запасом заложить:

function Init()

massive = {}

return 50 --задаем число линий с запасом

end


а значение самих линий можно писать в массив, чтобы не каждую переменную в коде инициализировать, т.е. инициировать массив, а  потом уже в коде исходя из настройки сколько линий надо сейчас — Settings.num_param
решать что и как считать и сетить, т.е. в цикле пробегаем по массиву и сетим каждый элемент массива, но номера до Settings.num_param имеют реальное значение, а все кто после massive[Settings.num_param] и далее nil будут.

если, например, 1ая линия — сетим 1ый член массива, nая линия — сетим nый член массива, когда не надо линию nil ей сетим и она не выскочит на экран соответственно, т.е.
massive[номер] = 1.234
либо
massive[номер] = nil

единственная сложность это сделать ретурн в конце при таком количестве переменных, но это посидеть один раз же и настрочить возврат вида
return massive[1], massive[2], … и так далее ручками до , massive[50]


avatar
Виталий, Спасибо! Сотня наверно и не нужна просто интересует работа с переменным числом линий…
avatar

теги блога autotrade

....все тэги



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