The GRaB candlesticks indicator draws candlesticks of 3 different colours according to the actual trend calculated with a combination of 3 exponential moving average of the same period but applied to high, low and close:
– 34 period exponential moving average on the high
– 34 period exponential moving average on the close
– 34 period exponential moving average on the low
(periods and moving average type can be modified in the indicator parameter to find the more suitable sets for each instrument and timeframe).
According to the original author of this tool, this is how it should be used:
GRaB Candles are an extension of my 34EMA Wave and are simply a visual tool. I use them to determine the momentum and organization of a market trend. They are also a nice tool to use for traders looking at multiple charts and screens. They make my charts “glance-able” – in other words – I can make a some important decisions about price action on a specific time frame quickly “at a glance”. Typically an uptrend will have almost all green GRaB candles, a downtrend will have almost all red GRaB candles, and the more grey GRaB candles that I see, the higher the likelihood that the trend is correcting and/or in transition or that the market is trend is sideways (accumulation or distribution).
This indicator has been translated from 3 different MQL4 ones (1 for each candlestick type), by a request on English ProBuilder forum.
//PRC_GRaB candlesticks | indicator
//01.03.2017
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//converted from MT4 code
//--- parameters
// EMAperiod=34
// mmTYPE=1 (mm type)
// ---
EMAh = average[EMAperiod,mmTYPE](high)
EMAl = average[EMAperiod,mmTYPE](low)
EMAc = average[EMAperiod,mmTYPE](close)
bodyhigh = max(open,close)
bodylow = min(open,close)
if(open<=close and close > EMAH) then
LongWickUp = high
LongCandleUp = bodyHigh
LongWickDown = low
LongCandleDown = bodyLow
elsif(open>=close and close > EMAH) then
LongWickUp = low
LongCandleUp = bodyLow
LongWickDown = high
LongCandleDown = bodyHigh
elsif(open<=close and close < EMAL) then
ShortWickUp = high
ShortCandleUp = bodyHigh
ShortWickDown = low
ShortCandleDown = bodyLow
elsif(open>=close and close < EMAL) then
ShortWickUp = low
ShortCandleUp = bodyLow
ShortWickDown = high
ShortCandleDown = bodyHigh
elsif(open<=close and close < EMAH and close > EMAL) then
RangeWickUp = high
RangeCandleUp = bodyHigh
RangeWickDown = low
RangeCandleDown = bodyLow
elsif(open>=close and close < EMAH and close > EMAL) then
RangeWickUp = low
RangeCandleUp = bodyLow
RangeWickDown = high
RangeCandleDown = bodyHigh
endif
//bullish candlesticks
if close>EMAH then
DRAWCANDLE(LongCandleDown,LongWickUp,LongWickDown,LongCandleUp) coloured(0,200,0)
endif
//bearish candlesticks
if close<EMAL then
DRAWCANDLE(ShortCandleDown,ShortWickUp,ShortWickDown,ShortCandleUp) coloured(200,0,0)
endif
//neutral candlesticks (range)
if close<EMAH and close>EMAL then
DRAWCANDLE(RangeCandleDown,RangeWickUp,RangeWickDown,RangeCandleUp) coloured(150,150,150)
endif
RETURN EMAH coloured(100,100,100) style(dottedline) as "high EMA", EMAL coloured(100,100,100) style(dottedline) as "low EMA", EMAC coloured(100,100,100) style(point) as "trend EMA"