Kelton,
My renko indicator is running on the 1M timeframe… and that`s what it gave me… do you think my indicator is messed up?
Kelton,
My renko indicator is running on the 1M timeframe… and that`s what it gave me… do you think my indicator is messed up?
Thats weird, but possibly. What indicator do u have?
I`m using the one I attached on a post I wrote a few pages back…
Attached is an image of my mt4 now. Notice that the renko is attached to the EURUSD M1 chart, telling me to open EURUSD M2 OFFLINE. and then, on the right side, there is the EURUSD M2 chart with the renko bars.
AHHH, but Im just thinking here... are yuo considering 15 pips as 0.00015 or 0.0015? I
m running this thing on a 4 digits broker.
I use a 4 digit as well, but i would assume .0015 but my indicator asks for size so i just put 15
Whats your personal email? Ill give it to you. The one i use
I’m using real pips, so on eurusd it is 0.0015
0.00015 is 1.5 pips and that is not correct.
I’m still waiting for a signal to trigger my entry, but the moves seems clear and big enough to make nice profits.
Kelton…
It seems like I don`t have enough privileges to send you a instant msg, babypips told me so… can you please attach your indicator on a post so I can download it?
Thank you!
Hi,
Just come across this thread and have downloaded and installed the renko indicator. It’s on EUR/USD chart with 1M timeframe. Has same message on it ie "open offline EUR/USD 2M chart but I can’t see where to do this. I have no script only reference to renko in my script section under indicators.
Can anyone help please.
Go to file < open offline < then find eur/usd 2m
Does anyone know how to do this on a MAC when running MT4? Renko EA just keeps coming up with an “X” in the top right hand corner instead of a smiley face. Any help would be appreciated!
EDIT: i got it working, the setup looks like this-
I can’t seem to get a one minute chart up it won’t let me-
the best i can do is 15, 0, 2 for bar size, offset, and timeframe
any way to change this?
As stated earlier in the thread, renko charts is not based on time but price, so you will not be able to change timeframe on offline chart.
The 1 minute chart that’s referred to a couple times in this thread is on your original chart where you placed the renko indicator, you have set that correct
First cut - feel free to improve, ask questions etc.
//+------------------------------------------------------------------+
//| kelton-renko-2013022701.mq4 |
//| Copyright 2013, Dr. Andy Thompson. |
//| mailto://[email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Dr. Andy Thompson"
#property link "mailto://[email protected]"
//--- input parameters
extern int SlowEMA=650;
extern int FastEMA=120;
extern int SlowRSI=250;
extern int FastRSI=120;
extern double Size=1.00;
bool flgReenterLong=FALSE;
bool flgReenterShort=FALSE;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//loop through current positions and if any in our symbol then manage them (need to amend to magic number later)
int total =OrdersTotal();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS)==false) continue;
if(OrderSymbol()==Symbol())
{
ManagePosition(OrderTicket());
return(0);
}
}
int Trade=0;
//If Entry conditions satisfied then set direction of trade
if(Bid>iMA(NULL,0,SlowEMA,0,1,0,0)&&iRSI(NULL,0,SlowRSI,0,0)>50)Trade=1;
if(Bid<iMA(NULL,0,SlowEMA,0,1,0,0)&&iRSI(NULL,0,SlowRSI,0,0)<50)Trade=-1;
//If Reentry conditions satisfied then set direction of trade
if(flgReenterLong&&iRSI(NULL,0,FastRSI,0,0)>iRSI(NULL,0,SlowRSI,0,0)&&iRSI(NULL,0,FastRSI,0,1)<iRSI(NULL,0,SlowRSI,0,1)&&Bid>iMA(NULL,0,FastEMA,0,1,0,1)) Trade=1;
if(flgReenterShort&&iRSI(NULL,0,FastRSI,0,0)<iRSI(NULL,0,SlowRSI,0,0)&&iRSI(NULL,0,FastRSI,0,1)>iRSI(NULL,0,SlowRSI,0,1)&&Bid<iMA(NULL,0,FastEMA,0,1,0,1)) Trade=-1;
//if we have a trade direction then send the order
double Price=Ask;
if(Trade==-1) Price=Bid;
if(Trade!=0) OrderSend(Symbol(),(1-Trade)/2,Size,Price,5,0,0);
//cancel the reentry flags if reentry conditions no longer exist
if(flgReenterLong&&Bid<iMA(NULL,0,SlowEMA,0,1,0,0)) flgReenterLong=FALSE;
if(flgReenterShort&&Bid>iMA(NULL,0,SlowEMA,0,1,0,0)) flgReenterShort=FALSE;
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert manageposition function |
//+------------------------------------------------------------------+
int ManagePosition(int ticket)
{
//----
OrderSelect(ticket,SELECT_BY_TICKET);
bool RSIClose = FALSE;
switch(OrderType())
{
case 0:
if(iRSI(NULL,0,FastRSI,0,0)<50) RSIClose=TRUE;
if((Bid<iMA(NULL,0,FastEMA,0,1,0,0)&&(Open[0]>iMA(NULL,0,FastEMA,0,1,0,0)||Close[1]>iMA(NULL,0,FastEMA,0,1,0,0)))||RSIClose)
{
OrderClose(ticket,OrderLots(),Bid,10);
if(!RSIClose) flgReenterLong = TRUE;
return(0);
}
case 1:
if(iRSI(NULL,0,FastRSI,0,0)>50)RSIClose=true;
if((Bid>iMA(NULL,0,FastEMA,0,1,0,0)&&(Open[0]<iMA(NULL,0,FastEMA,0,1,0,0)||Close[1]<iMA(NULL,0,FastEMA,0,1,0,0)))||RSIClose)
{
OrderClose(ticket,OrderLots(),Ask,10);
if(!RSIClose) flgReenterShort = TRUE;
return(0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Looks good for me
Just note that rsiclose here can cause a lot of failed trades within one renko box. I think it could be better to set a way to not place more than one trade per renko box.
Thanks, medisoft, how about this:
//+------------------------------------------------------------------+
//| kelton-renko-2013022801.mq4 |
//| Copyright 2013, Dr. Andy Thompson. |
//| mailto://[email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Dr. Andy Thompson"
#property link "mailto://[email protected]"
//--- input parameters
extern int SlowEMA=650;
extern int FastEMA=120;
extern int SlowRSI=250;
extern int FastRSI=120;
extern double Size=1.00;
bool flgReenterLong=FALSE;
bool flgReenterShort=FALSE;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//loop through current positions and if any in our symbol then manage them (need to amend to magic number later)
int total =OrdersTotal();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS)==false) continue;
if(OrderSymbol()==Symbol()&&Time[0]>OrderOpenTime())
{
ManagePosition(OrderTicket());
return(0);
}
}
int Trade=0;
//If Entry conditions satisfied then set direction of trade
if(Bid>iMA(NULL,0,SlowEMA,0,1,0,0)&&iRSI(NULL,0,SlowRSI,0,0)>50)Trade=1;
if(Bid<iMA(NULL,0,SlowEMA,0,1,0,0)&&iRSI(NULL,0,SlowRSI,0,0)<50)Trade=-1;
//If Reentry conditions satisfied then set direction of trade
if(flgReenterLong&&iRSI(NULL,0,FastRSI,0,0)>iRSI(NULL,0,SlowRSI,0,0)&&iRSI(NULL,0,FastRSI,0,1)<iRSI(NULL,0,SlowRSI,0,1)&&Bid>iMA(NULL,0,FastEMA,0,1,0,1)) Trade=1;
if(flgReenterShort&&iRSI(NULL,0,FastRSI,0,0)<iRSI(NULL,0,SlowRSI,0,0)&&iRSI(NULL,0,FastRSI,0,1)>iRSI(NULL,0,SlowRSI,0,1)&&Bid<iMA(NULL,0,FastEMA,0,1,0,1)) Trade=-1;
//if we have a trade direction then send the order
double Price=Ask;
if(Trade==-1) Price=Bid;
if(Trade!=0) OrderSend(Symbol(),(1-Trade)/2,Size,Price,5,0,0);
//cancel the reentry flags if reentry conditions no longer exist
if(flgReenterLong&&Bid<iMA(NULL,0,SlowEMA,0,1,0,0)) flgReenterLong=FALSE;
if(flgReenterShort&&Bid>iMA(NULL,0,SlowEMA,0,1,0,0)) flgReenterShort=FALSE;
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert manageposition function |
//+------------------------------------------------------------------+
int ManagePosition(int ticket)
{
//----
OrderSelect(ticket,SELECT_BY_TICKET);
bool RSIClose = FALSE;
switch(OrderType())
{
case 0:
if(iRSI(NULL,0,FastRSI,0,0)<50) RSIClose=TRUE;
if((Bid<iMA(NULL,0,FastEMA,0,1,0,0)&&(Open[0]>iMA(NULL,0,FastEMA,0,1,0,0)||Close[1]>iMA(NULL,0,FastEMA,0,1,0,0)))||RSIClose)
{
OrderClose(ticket,OrderLots(),Bid,10);
if(!RSIClose) flgReenterLong = TRUE;
return(0);
}
case 1:
if(iRSI(NULL,0,FastRSI,0,0)>50)RSIClose=true;
if((Bid>iMA(NULL,0,FastEMA,0,1,0,0)&&(Open[0]<iMA(NULL,0,FastEMA,0,1,0,0)||Close[1]<iMA(NULL,0,FastEMA,0,1,0,0)))||RSIClose)
{
OrderClose(ticket,OrderLots(),Ask,10);
if(!RSIClose) flgReenterShort = TRUE;
return(0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
The amendment is in the condition for calling the ManagePosition function.
Ah just realised my entries and exits are real time. I will adapt to close soon.
EDIT: Stupid question removed - tired!
mr kelton i am sorry to bother you .i need your help to down load rinko chart. i downloaded rinko chartfrom page 3 post 24 on 1min time frame on my meta trader 4 the chartis in my custom indicators but i cant get it on my chart iread in the thread i should go to file and open off line and install m 2 time frame but in history data i only have 1min 15min and higher time frames could you please tell me how i can install rinko chart look forward to hear from you many thanks in advance.
A rough work around to the ‘act on close only’ issue. Actually signals will only be evaluated on the open tick of a new bar (which will give little difference in reality to only acting on the close of a bar).
Also added Magic Number to id trades from this EA only for analysis and Position Management.
//+------------------------------------------------------------------+
//| kelton-renko-2013022802.mq4 |
//| Copyright 2013, Dr. Andy Thompson. |
//| mailto://[email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Dr. Andy Thompson"
#property link "mailto://[email protected]"
//--- input parameters
extern int SlowEMA=650;
extern int FastEMA=120;
extern int SlowRSI=250;
extern int FastRSI=120;
extern int MagicNum=110270;
extern double Size=1.00;
bool flgReenterLong=FALSE;
bool flgReenterShort=FALSE;
bool newBrick=FALSE;
datetime BrickStart;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
BrickStart = Time[0];
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
//only do something at close of brick
newBrick=FALSE;
{
if(BrickStart != Time[0])
{
newBrick = TRUE;
BrickStart = Time[0];
}
if(!newBrick) return(0);
//loop through current positions and if any in our symbol then manage them (need to amend to magic number later)
int total =OrdersTotal();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS)==false) continue;
if(OrderSymbol()==Symbol()&&Time[0]>OrderOpenTime()&&OrderMagicNumber==MagicNum)
{
ManagePosition(OrderTicket());
return(0);
}
}
int Trade=0;
//If Entry conditions satisfied then set direction of trade
if(Bid>iMA(NULL,0,SlowEMA,0,1,0,0)&&iRSI(NULL,0,SlowRSI,0,0)>50)Trade=1;
if(Bid<iMA(NULL,0,SlowEMA,0,1,0,0)&&iRSI(NULL,0,SlowRSI,0,0)<50)Trade=-1;
//If Reentry conditions satisfied then set direction of trade
if(flgReenterLong&&iRSI(NULL,0,FastRSI,0,0)>iRSI(NULL,0,SlowRSI,0,0)&&iRSI(NULL,0,FastRSI,0,1)<iRSI(NULL,0,SlowRSI,0,1)&&Bid>iMA(NULL,0,FastEMA,0,1,0,1)) Trade=1;
if(flgReenterShort&&iRSI(NULL,0,FastRSI,0,0)<iRSI(NULL,0,SlowRSI,0,0)&&iRSI(NULL,0,FastRSI,0,1)>iRSI(NULL,0,SlowRSI,0,1)&&Bid<iMA(NULL,0,FastEMA,0,1,0,1)) Trade=-1;
//if we have a trade direction then send the order
double Price=Ask;
if(Trade==-1) Price=Bid;
if(Trade!=0) OrderSend(Symbol(),(1-Trade)/2,Size,Price,5,0,0,"renko-kelton",MagicNum);
//cancel the reentry flags if reentry conditions no longer exist
if(flgReenterLong&&Bid<iMA(NULL,0,SlowEMA,0,1,0,0)) flgReenterLong=FALSE;
if(flgReenterShort&&Bid>iMA(NULL,0,SlowEMA,0,1,0,0)) flgReenterShort=FALSE;
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert manageposition function |
//+------------------------------------------------------------------+
int ManagePosition(int ticket)
{
//----
OrderSelect(ticket,SELECT_BY_TICKET);
bool RSIClose = FALSE;
switch(OrderType())
{
case 0:
if(iRSI(NULL,0,FastRSI,0,0)<50) RSIClose=TRUE;
if((Bid<iMA(NULL,0,FastEMA,0,1,0,0)&&Open[1]>iMA(NULL,0,FastEMA,0,1,0,1))||RSIClose)
{
OrderClose(ticket,OrderLots(),Bid,10);
if(!RSIClose) flgReenterLong = TRUE;
return(0);
}
case 1:
if(iRSI(NULL,0,FastRSI,0,0)>50)RSIClose=true;
if((Bid>iMA(NULL,0,FastEMA,0,1,0,0)&&Open[1]<iMA(NULL,0,FastEMA,0,1,0,1))||RSIClose)
{
OrderClose(ticket,OrderLots(),Ask,10);
if(!RSIClose) flgReenterShort = TRUE;
return(0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Hey guys! Long time no type, for some of us…this looks like it’s shaping up to be a profitable idea.
I don’t know very much about renko candle characteristics, I was wondering if something like trendlines are applicable? It would look somethink like this:
Rough idea here, just to spark your minds. If this doesn’t seem reasonable, I’m cool with that. Just wondering if you guys think this would result in earlier entries, and earlier exits before too much profit is lost due to retrace?
I think, also, renko charts would be great just to sit and look back at history and try to exploit patterns.
Please only take this as something to make you think, I want to try Kelton’s idea, I think it’s great as is.
Hi PC.
I was thinking the same but need to offset the trend line ( as you drew them ) in order to minimise false entries/exits
Offsetting trendlines is a whole lot easier when each candle is the same size, than trying to figure out some kind of deviation (which medisoft has done, btw).