Реальные ли объемы на форекс? Стоит ли обращать внимание на объемы сделок рынка форекс при анализе? Или это всего-навсего очередной метод анализа рынка, который не работает?
Settings={ Name="GVOL", period=200, maxline=20, width=4, count=50, xshift=0, vlm=1, line={} } --[[ описание свойств: xshift - сдвиг по горизонтали count - количество черточек по вертикали period- сколько баров берутся в подсчет maxline - количество баров для максимальной черточки width - толщина черточки vlm - 1-c учетом оъема 0-просто распределение без объема, --]] function Init() n=Settings.count vol={} for j = 1, n do vol[j]=0 Settings.line[j] = {Color=RGB(192,192,192),Type=TYPE_LINE,Width=Settings.width} --for i=Size()-Settings.xshift-Settings.maxline, Size()-Settings.xshift do for i=1, Size() do SetValue(i, j, nil) end end return Settings.count end function OnCalculate(index) if (index < Size()-Settings.xshift)or(index > Size()-Settings.xshift) then return nil else n=Settings.count maxv=0 maxc=0 minc=9999 for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do if C(i) ~= nil then if maxc < C(i) then maxc = C(i) end if minc > C(i) then minc = C(i) end end end delta = (maxc - minc)/n for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do for j = 1, n do if C(i) ~= nil then if (C(i) > minc + (j-1)*delta) and (C(i) <= minc + j*delta) then if Settings.vlm == 1 then if V(i) ~= nil then vol[j]=vol[j]+V(i) end else vol[j]=vol[j]+1 end end end end end for j = 1, n do vol[j] = math.floor(vol[j]+0.5) if maxv < vol[j] then maxv = vol[j] end end k = 0 for i=Size()-Settings.xshift-Settings.maxline+1, Size()-Settings.xshift do k = k + 1 for j = 1, n do if vol[j] >= (Settings.maxline - k)*maxv/Settings.maxline then SetValue(i, j, minc + j*delta) else SetValue(i, j, nil) end end end end end
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
Много тем в последнее время про «кластерные объемы», «горизонтальный объем», а также о том, где брать для них данные, какие есть терминалы и т. д. Надеюсь, что данный коротенький обзор кому-то покажется полезным.
Итак, для построения гистограммы горизонтальных объемов нам нужны, в идеале, тиковые данные. Без них все будет неточно, некорректно и вообще бе. Я задался вопросом, а насколько неточно?
Вот диаграмма горизонтальных объемов по fRTS, накопленных за последние три месяца, построенная по тиковым данным (на голубые линии на графике можно не смотреть, они просто держат масштаб):
Хорошо, когда тиковые данные есть. Но их может и не быть — они либо не хранятся за нужный период, или платные. Попытаемся грубо построить гистограмму объемов, используя часовые бары и исходя из абсолютно неправильного предположения, что объем в баре распределен равномерно. То есть мы просто будем брать долю бара, попавшего в полосу, и считать объем в полосе, как долю от общего объема бара. Вот что в итоге у нас получилось: