This is a EA. Just a 20 days split system.
When price split 20 days new high, buy. Exit when price reach's 10 day's reduced
when price break 20 day new low, market. Exit when price reach's 10 day's high.
Later initial open ticket, 2 more ticket could be added.
But once I backtest from 2006 to now on EUR/USD, no trading occurred.
Who can help find out what's the issue?
//-- enter parameters
extern double Lots = 0.1;
extern int n_enter_days=20;
extern int m_exit_days=10;
//p------------------------------------------------------------------
//| pro initialization serve |
//p------------------------------------------------------------------
int init()
//--
//--
return(0);
//p------------------------------------------------------------------
//| pro deinitialization function |
//p------------------------------------------------------------------
int deinit()
//--
//--
return(0);
// ------------------------------------------------------------------
//| expert start work |
// ------------------------------------------------------------------
datetime last_time=0;
int start()
int cnt, ticket, total;
if(Barslt;100)
Print(bars less than 100);
return(0);
total=OrdersTotal();
if(Close[1]gt;Top[iHighest(Symbol(),Period(),MODE_HIGH,n_enter_days, 1)]
last_time ! =Timing[0]
totallt;3)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,My EA,12345,0,Red);
if(ticketgt;0)
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES ))
Print(BUY order started : ,OrderOpenPrice());
else
Print(Error opening BUY order : ,GetLastError());
return(0);
last_time =Timing[0];
if(Close[1]lt;Low[iLowest(Symbol(),Stage(),MODE_LOW,n_enter_days,1)]
last_time ! =Timing[0]
totallt;3)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,M y EA,12345,0,Green);
if(ticketgt;0)
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES ))
Print(BUY order started : ,OrderOpenPrice());
else
Print(Error opening BUY order : ,GetLastError());
return(0);
last_time =Timing[0];
for(cnt=0;cntlt;total;cnt )
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()lt;=OP_SELL OrderSymbol()==Symbol())
if(OrderType()==OP_BUY) // long position is started
if(Close[1]lt;Low[iLowest(OrderSymbol(),Stage(),MODE_LOW,m_exit_days ,1)])
OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
if(OrderType()==OP_SELL)
if(OrderType()==OP_BUY) // long position is started
if(Close[1]gt;Top[iHighest(OrderSymbol(),Stage(),MODE_HIGH,m_exit_da ys,1)])
OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
//--
//--
return(0);
// ------------------------------------------------------------------