This indicator is a dashboard for the Genesis Matrix trading system. The 4 dots represents (from top to bottom):
According to the original rules of the system, orders are triggered once all of the dots are from the same color, in two words, buy when all the dots are turned from red to blue and vice-versa. The complete system could have more rules, but I’m not aware of them.
The TVI needs Volumes to be calculated correctly (will not work on instruments that your broker don’t deal Volumes).
The indicator was converted from MT4 by a request in the spanish forum: Genesis-Matrix.Convertir de MQ4 a PRT
//PRC_Genesis Matrix | indicator
//10.09.2018
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//converted from MT4 indi
// --- settings
//TVI_Settings
TVIr=12
TVIs=12
TVIu=5
//CCI_Settings
CCIPeriod=20
//T3_Settings
T3Period=8
//GannHiLo_Settings
GannHiLoPeriod=10
// --- end of settings
// Set histogram positions
IDXTVI=0.25
IDXCCI=0.0
IDXT3=-0.25
IDXGHL=-0.5
//TVI (Ticks Volume Indicator)
Mypoint=pointsize
UpTicks=(Volume+(Close-Open)/MyPoint)/2
DownTicks=Volume-UpTicks
EMAUpTicks=average[TVIr,1](UpTicks)
EMADownTicks=average[TVIr,1](DownTicks)
DEMAUpTicks=average[TVIs,1](EMAUpTicks)
DEMADownTicks=average[TVIs,1](EMADownTicks)
TVIcalculate=100.0*(DEMAUpTicks-DEMADownTicks)/(DEMAUpTicks+DEMADownTicks)
TVI=average[TVIu,1](TVIcalculate)
//ProcessTVI
if TVI>=TVI[1] then
drawtext("■",barindex,IDXTVI,dialog,bold,20) coloured(0,90,255)
else
drawtext("■",barindex,IDXTVI,dialog,bold,20) coloured(255,0,0)
endif
//CCI (Commodity Channel Index)
dSig=CCI[CCIPeriod](typicalPrice)
//ProcessCCI
if dSig>0 then
drawtext("■",barindex,IDXCCI,dialog,bold,20) coloured(0,90,255)
else
drawtext("■",barindex,IDXCCI,dialog,bold,20) coloured(255,0,0)
endif
//T3
e1 = ExponentialAverage[T3Period](close)
e2 = ExponentialAverage[T3Period](e1)
e3 = ExponentialAverage[T3Period](e2)
e4 = ExponentialAverage[T3Period](e3)
e5 = ExponentialAverage[T3Period](e4)
e6 = ExponentialAverage[T3Period](e5)
b = 0.618
b2 = (b * b)
b3 = (b * b * b)
c1 = -b3
c2 = (3 * b2) + (3 * b3)
c3 = (-6 * b2) - (3 * b) - (3 * b3)
c4 = 1 + (3 * b) + b3 + (3 * b2)
avg = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3
//ProcessT3
if avg>=avg[1] then
drawtext("■",barindex,IDXT3,dialog,bold,20) coloured(0,90,255)
else
drawtext("■",barindex,IDXT3,dialog,bold,20) coloured(255,0,0)
endif
//GannHiLo
if Close>average[gannhiloperiod](high)[1] then
gann=1
elsif Close<average[gannhiloperiod](low)[1] then
gann=-1
endif
//ProcessGann
if gann>0 then
drawtext("■",barindex,IDXGHL,dialog,bold,20) coloured(0,90,255)
else
drawtext("■",barindex,IDXGHL,dialog,bold,20) coloured(255,0,0)
endif
return