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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
//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" |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
Bonjour Nicolas
Est il possible de colorer le ruban formé par EMAhigh et EMAlow ?
Si oui ? peux-tu nous en donner la façon de faire
merci, bons trades à tous
Aucune instruction ne permet de colorier un espace entre 2 variables. Il faut utiliser le remplissage ordinaire de la fenêtre de configuration de l’indicateur.
merci , oui c’est ce que je fais. Je voulais juste savoir si on pouvait le coder.
Bonne après midi
Bonjour peut on mettre les moyennes mobiles en invisible sur le code ? afin de ne pas les avoir sur le graphique …
Merci
HELLO it will not let me change the color of the candle sticks do you know how
Hi Pat, have a look on the code present at the very bottom of this post
https://www.prorealcode.com/topic/grab-candlesticks-indicator/
it should fulfill your expectation
Zen
thank you zen but i am no good with the code i have no idea what to do thank you
So, where is the instruction
EMAh = average[EMAperiod,mmTYPE](high)
coming from? I cannot find any tutorial on it?
This second parameter of the average term is here to define the average type, you’ll find details in the documentation there : https://www.prorealcode.com/documentation/average/
Thanks a lot Nicolas. I keep using the manuals from the help tag on the software but I guess the most update version of the commands are on line 🙂
I try to keep the online documentation up to date, because I’d like to add more examples in this part of the website. But due to amounts of queries on forums, I still didn’t have do it..
Nicolas,
I added some lines to the indicator you translated. They reflect the setting that Raghee Horner is using in her webinars. She uses light color candles when the close is higher than the open and dark color candles when close is lower than open.
//PRC_GRaB candlesticks | indicator//01.03.2017//Nicolas @ http://www.prorealcode.com//Sharing ProRealTime knowledge//converted from MT4 code
//— parametersEMAperiod=34mmTYPE=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) thenLongWickUp = highLongCandleUp = bodyHighLongWickDown = lowLongCandleDown = bodyLowr=50g=200b=0elsif(open>=close and close > EMAH) thenLongWickUp = lowLongCandleUp = bodyLowLongWickDown = highLongCandleDown = bodyHighr=50g=150b=0elsif(open<=close and close < EMAL) thenShortWickUp = highShortCandleUp = bodyHighShortWickDown = lowShortCandleDown = bodyLowr=200g=50b=0elsif(open>=close and close < EMAL) thenShortWickUp = lowShortCandleUp = bodyLowShortWickDown = highShortCandleDown = bodyHighr=150g=50b=0elsif(open<=close and close < EMAH and close > EMAL) thenRangeWickUp = highRangeCandleUp = bodyHighRangeWickDown = lowRangeCandleDown = bodyLowr=50g=150b=250elsif(open>=close and close < EMAH and close > EMAL) thenRangeWickUp = lowRangeCandleUp = bodyLowRangeWickDown = highRangeCandleDown = bodyHighr=50g=0b=150endif//bullish candlesticksif close>EMAH thenDRAWCANDLE(LongCandleDown,LongWickUp,LongWickDown,LongCandleUp) coloured(r,g,b)endif
//bearish candlesticksif close<EMAL thenDRAWCANDLE(ShortCandleDown,ShortWickUp,ShortWickDown,ShortCandleUp) coloured(r,g,b)endif
//neutral candlesticks (range)if close<EMAH and close>EMAL thenDRAWCANDLE(RangeCandleDown,RangeWickUp,RangeWickDown,RangeCandleUp) coloured(r,g,b)endif
RETURN EMAH coloured(0,200,100) style(dottedline) as “high EMA”, EMAL coloured(255,0,0) style(dottedline) as “low EMA”, EMAC coloured(0,0,255) style(dottedline) as “trend EMA”, exponentialaverage[13](close) as “EMA13”
Hi,
I cannot get any of these indicators to display on the chart and not the indicator window. Please help.
Thanks
Derelman
Add it on the price instead, by using the wrench on the upper left side of the price chart.
How would you change candlesticks to “heiken Ashi” Candles.Please advise
bonjour Nicolas,
bravo pour cet indicateur assez complexe et qui fonctionne parfaitement.
sincèrement je n’y serais pas parvenu moi même.
d’ailleurs j’ai essayé sans succès de me servir du fond pour générer un screener qui déclencherait des signaux à la hausse ou à la baisse lors de cassure du ruban en clôture.
mais il y a trop de if et de elsif pour arriver à transformer tout ça en C1, C2, etc …
alors évidemment je me tourne vers vous. si vous pouviez réaliser un tel screener, ce serait génial.
et alors avec en plus une flèche basse ou haute de couleurs pour préciser le signal, alors là … ce serait la cerise sur le gâteau !
merci d’avance :-)))
Merci de formuler cette demande sur le forum Probuilder, je m’en chargerai dès que possible.
merci beaucoup Nicolas, je m’en occupe.
Hello There Nicolas,
When i try to copy the code i get an Error says: the following variable is not defined – EMAperiod, mmTYPE
Can you help me or anyone 🙂 thanks.
PROBLEM SOLVED Thanks!!
Download the itf file and import it.