Nicolas

GRaB candlesticks indicator

Category: Indicators By: Nicolas Created: March 1, 2017, 1:37 PM
March 1, 2017, 1:37 PM
Indicators
20 Comments
GRaB candlesticks indicator

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"

 

Download
Filename: PRC_GRaB-candlesticks.itf
Downloads: 382
Nicolas
Nicolas Legend
I created ProRealCode because I believe in the power of shared knowledge. I spend my time coding new tools and helping members solve complex problems. If you are stuck on a code or need a fresh perspective on a strategy, I am always willing to help. Welcome to the community!
Author’s Profile

Comments

zeD22
6 years ago
#

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!!

Nicolas
6 years ago
#

Download the itf file and import it.

jelogui
9 years ago
#

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 :-)))

Nicolas
9 years ago
#

Merci de formuler cette demande sur le forum Probuilder, je m'en chargerai dès que possible.

jelogui
9 years ago
#

merci beaucoup Nicolas, je m'en occupe.

robertanthonyuk
9 years ago
#

How would you change candlesticks to "heiken Ashi" Candles.Please advise

derelman
9 years ago
#

Hi, 

       I cannot get any of these indicators to display on the chart and not the indicator window. Please help.

Thanks

Derelman

Nicolas
9 years ago
#

Add it on the price instead, by using the wrench on the upper left side of the price chart.

gabri
10 years ago
#

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 @ 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
r=50
g=200
b=0
elsif(open>=close and close > EMAH) then
LongWickUp = low
LongCandleUp = bodyLow
LongWickDown = high
LongCandleDown = bodyHigh
r=50
g=150
b=0
elsif(open<=close and close < EMAL) then
ShortWickUp = high
ShortCandleUp = bodyHigh
ShortWickDown = low
ShortCandleDown = bodyLow
r=200
g=50
b=0
elsif(open>=close and close < EMAL) then
ShortWickUp = low
ShortCandleUp = bodyLow
ShortWickDown = high
ShortCandleDown = bodyHigh
r=150
g=50
b=0
elsif(open<=close and close < EMAH and close > EMAL) then
RangeWickUp = high
RangeCandleUp = bodyHigh
RangeWickDown = low
RangeCandleDown = bodyLow
r=50
g=150
b=250
elsif(open>=close and close < EMAH and close > EMAL) then
RangeWickUp = low
RangeCandleUp = bodyLow
RangeWickDown = high
RangeCandleDown = bodyHigh
r=50
g=0
b=150
endif
//bullish candlesticks
if close>EMAH then
DRAWCANDLE(LongCandleDown,LongWickUp,LongWickDown,LongCandleUp) coloured(r,g,b)
endif

//bearish candlesticks
if close<EMAL then
DRAWCANDLE(ShortCandleDown,ShortWickUp,ShortWickDown,ShortCandleUp) coloured(r,g,b)
endif

//neutral candlesticks (range)
if close<EMAH and close>EMAL then
DRAWCANDLE(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"

 

gabri
10 years ago
#

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 :)

Nicolas
10 years ago
#

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.. 

gabri
10 years ago
#

So, where is the instruction

EMAh = average[EMAperiod,mmTYPE](high)

coming from?  I cannot find any tutorial on it?

 


Nicolas
10 years ago
#

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/

Patrick O'Halloran
10 years ago
#

 thank you zen but i am  no good with the code  i have no idea what to do thank you 

 

zen83
10 years ago
#

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

 

Patrick O'Halloran
10 years ago
#

HELLO  it will not let me change the color of the candle sticks do you know how 

 

ghary
10 years ago
#

Bonjour peut on mettre les moyennes mobiles en invisible sur le code ? afin de ne pas les avoir sur le graphique ...

Merci

supertiti
10 years ago
#

merci , oui c'est ce que je fais. Je voulais juste savoir si on pouvait le coder.

Bonne après midi

supertiti
10 years ago
#

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

Nicolas
10 years ago
#

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.

ProRealCode ProRealCode
Loading...