Could someone review my code and tell me why I am not picking up any buy orders when I do a backtest?
int ticket;
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
string comment;
double rsi = iRSI(_Symbol,PERIOD_CURRENT,28,PRICE_CLOSE,1);
if (rsi < 50){
comment += "\n Short!";
if(OrderSelect(ticket,SELECT_BY_TICKET) && OrderType() == OP_BUY){
if(OrderClose(OrderTicket(),OrderLots(),Bid,1000,clrGreen)){
ticket=0;
}
}
if(ticket<= 0)
{
ticket = OrderSend (_Symbol,OP_SELL,0.10,Bid,1000,0,30.0,"This is a sell",1,0,clrRed);
}
}
else if(rsi > 50){
comment += "\n Long!";
if(OrderSelect(ticket,SELECT_BY_TICKET) && OrderType() == OP_SELL){
if(OrderClose(OrderTicket(),OrderLots(),Ask,1000,clrRed)){
ticket=0;
}
}
if(ticket<= 0){
ticket = OrderSend (_Symbol,OP_BUY,0.10,Ask,1000,0,30.0,"This is a buy",1,0,clrGreen);
} }
}
int ticket;
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
string comment;
double rsi = iRSI(_Symbol,PERIOD_CURRENT,28,PRICE_CLOSE,1);
if (rsi < 50){
comment += "\n Short!";
if(OrderSelect(ticket,SELECT_BY_TICKET) && OrderType() == OP_BUY){
if(OrderClose(OrderTicket(),OrderLots(),Bid,1000,clrGreen)){
ticket=0;
}
}
if(ticket<= 0)
{
ticket = OrderSend (_Symbol,OP_SELL,0.10,Bid,1000,0,30.0,"This is a sell",1,0,clrRed);
}
}
else if(rsi > 50){
comment += "\n Long!";
if(OrderSelect(ticket,SELECT_BY_TICKET) && OrderType() == OP_SELL){
if(OrderClose(OrderTicket(),OrderLots(),Ask,1000,clrRed)){
ticket=0;
}
}
if(ticket<= 0){
ticket = OrderSend (_Symbol,OP_BUY,0.10,Ask,1000,0,30.0,"This is a buy",1,0,clrGreen);
} }
}