✔Бизне$$ Ангел ✰
✔Бизне$$ Ангел ✰ личный блог
24 мая 2018, 18:23

индикатор горизонтального объёма в квик

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


Settings={}
Settings.period = 500
Settings.Name = «xHV»

---------------------------------------------------------------------------------------
function FFF()
local CC={}
local LL={}
local VV={}

return function(ind, _p,_N)

local index = ind
local MAX = 0
local MAXV = 0
local MIN = 0
local RR = 0
local jj = 0
local kk = 0

if index == 1 then
VV={}
CC={}
LL={}
------------------
VV[index]=V(index)
CC[1]=0
return nil
end
------------------------------
VV[index]=V(index)
if index < (Size()-2) then return nil end

MAX = H(index)
MIN = L(index)
for i = 0, _p-1 do
MAX=math.max(MAX,H(index-i))
MIN=math.min(MIN,L(index-i))
end
----------------------------------------
for i = 1, _N do CC[i]=0 end

for i = 0, _p-1 do
jj=math.floor( (H(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
kk=math.floor( (L(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
for k=1,(jj-kk) do
CC[kk+k-1]=CC[kk+k-1]+V(index-i)/(jj-kk)
end
end
--------------------
MAXV = 0
for i = 1, _N do MAXV=math.max(MAXV,CC[i])end

for i = 1, _N do
CC[i]=math.floor(CC[i]/MAXV*50)
end
---------------------
for i = 1, _N do
LL[i]= i/_N*(MAX-MIN)+MIN
if CC[i]==0 then LL[i]=nil end
end

for i = 1, 50+1 do
for j = 1, _N do
if CC[j]>i then
SetValue(index-i, j, LL[j])
else
SetValue(index-i, j, nil)
end
end
end

return unpack(LL)
end
end
---------------------------------------------------------------------------------------

function Init()
Settings.line = {}
for i = 1, 100 do
Settings.line[i] = {}
Settings.line[i] = {Color = RGB(255, 192, 0), Type = TYPE_LINE, Width = 3}
end

myFFF = FFF()
return 100
end
function OnCalculate(index)
return myFFF(index, Settings.period, 100)
end

8 Комментариев
  • aka
    24 мая 2018, 18:31
    … спасибо!.. 
  • Karim
    24 мая 2018, 19:09
    Еще один https://youtu.be/gM6XAMTfaPo
    • ivanov petya
      24 мая 2018, 20:17
      Karim, через амиброкер можно… по мне так будет проще
  • ivanov petya
    24 мая 2018, 20:13
    Legendario, здравствуйте, а подскажите показывает объёмы за текущий день?
  • Маркин Павел
    24 мая 2018, 22:43
    О! мой индикатор скопипастили))))
    https://smart-lab.ru/blog/361064.php
  • White Fox
    25 октября 2020, 13:23
    объясните несколько вещей:
    jj=math.floor( (H(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
    kk=math.floor( (L(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
    max-min/(_N-1) масштаб почему 99 а не все 100 ?
    почему + 1 ?
    or i = 1, 50+1 do
    for j = 1, _N do
    if CC[j]>i then
    SetValue(index-i, j, LL[j])
    else
    SetValue(index-i, j, nil)
    end
    end
    end
    А можно узнать текущий маштаб графика и прорисовывать слева а не справа? при изменение маштаба пересчитывать и прорисовывать ?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн