You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
omellette,
This is forward test.
You can not back test multiple pairs, for this moment.
Maybe MT4 will allow you to do in the future.
Print screen is from former Refco (FXCM) trading platform.
BongoOh, ok. It must be a pretty old forward test, as all the dates say 2004...
As for Metaquotes implementing multiple-pair backtests (ever!) - not a chance! I'll make it to the moon under my own steam before that happens... :D
Oh, ok. It must be a pretty old forward test, as all the dates say 2004... As for Metaquotes implementing multiple-pair backtests (ever!) - not a chance! I'll make it to the moon under my own steam before that happens... :D
omelette,
we are many, many years in this business...
b.
Thanks Bongo! Any pointers since you be doing this for a while?
Try this EA!
Haven't studied code to find out how it ticks yet, just ran a quick back test on only 1 month with 90% quality and no mismatched chart errors. Lot size set to 0.1, everything else set to default. Yikes!
Any good settings for this?
Wolfe,
Can you modify the code of grid EA if I post it here? I doesn't place buy limits.
Thanks,
Lcfx
Wolfe,
Can you modify the code of grid EA if I post it here? I doesn't place buy limits.
Thanks,
LcfxIf you're talking about GridMaster_03 I downloaded it from post#20. I haven't really looked at the code yet, been coding another project.
I found this one on FF.
extern string GridName = "Grid"; // identifies the grid. allows for several co-existing grids
extern double Lots = 0.1; // Lot sizing
extern double GridSize = 10; // pips between orders - grid or mesh size
extern double GridSteps = 10; // total number of orders to place
extern double TakeProfit = 0; // number of ticks to take profit. normally is = grid size but u can override
extern double StopLoss = 0; // if u want to add a stop loss. normal grids dont use stop losses
extern double UpdateInterval = 15; // update orders every x minutes
extern bool wantLongs = true; // do we want long positions
extern bool wantShorts = true; // do we want short positions
extern bool wantBreakout = true; // do we want longs above price, shorts below price
extern bool wantCounter = false; // do we want longs below price, shorts above price
extern double LastUpdate = 0; // counter used to note time of last update
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
#property show_inputs // shows the parameters
if ( TakeProfit <= 0 ) //
{ TakeProfit = GridSize; }
//----
return(0);
}
//+------------------------------------------------------------------------+
//| tests if there is an open position or order in the region of atRate |
//| will check for longs if checkLongs is true, else will check |
//| for shorts |
//+------------------------------------------------------------------------+
bool IsPosition(double atRate, double inRange, bool checkLongs )
{
int totalorders = OrdersTotal();
for(int j=0;j<totalorders;j++) // scan all orders and positions...
{
OrderSelect(j, SELECT_BY_POS);
if ( OrderSymbol()==Symbol() && OrderComment() == GridName ) // only look if mygrid and symbol...
{ int type = OrderType();
if (MathAbs( OrderOpenPrice() - atRate) < inRange) // dont look for exact price but price proximity (less than gridsize)
{ if ( ( checkLongs && ( type == OP_BUY || type == OP_BUYLIMIT || type == OP_BUYSTOP ) ) || (!checkLongs && ( type == OP_SELL || type == OP_SELLLIMIT || type == OP_SELLSTOP ) ) )
{ return(true); }
}
}
}
return(false);
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
int i, j,k, ticket, entermode, totalorders;
bool doit;
double point, startrate, traderate;
//----
if (MathAbs(CurTime()-LastUpdate)> UpdateInterval*60) // we update the first time it is called and every UpdateInterval minutes
{
LastUpdate = CurTime();
Print("Updating");
point = MarketInfo(Symbol(),MODE_POINT);
startrate = ( Ask + point*GridSize/2 ) / point / GridSize; // round to a number of ticks divisible by GridSize
k = startrate ;
k = k * GridSize ;
startrate = k * point - GridSize*GridSteps/2*point ; // calculate the lowest entry point
double EMA34=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0);
for( i=0;i<GridSteps;i++)
{
traderate = startrate + i*point*GridSize;
{
if (!IsPosition(traderate,point*GridSize,true) ) // test if i have no open orders close to my price: if so, put one on
{
double myStopLoss = 0;
if ( StopLoss > 0 )
{ myStopLoss = traderate-point*StopLoss ; }
if ( traderate > Ask )
{ entermode = OP_BUYSTOP; }
else
{ entermode = OP_BUYLIMIT ; }
if ( (traderate > Ask ) && (wantBreakout) || ((traderate < Ask ) && (wantCounter)) )
{ ticket=OrderSend(Symbol(),entermode,Lots,traderate,0,myStopLoss,traderate+point*TakeProfit,GridName,16384,0,Green); }
}
}
{
if (!IsPosition(traderate,point*GridSize,false) ) // test if i have no open orders close to my price: if so, put one on
{
myStopLoss = 0;
if ( StopLoss > 0 )
{ myStopLoss = traderate+point*StopLoss ; }
if ( traderate > Bid )
{ entermode = OP_SELLLIMIT; }
else
{ entermode = OP_SELLSTOP ; }
if ( (traderate Bid ) && (wantCounter)) )
{ ticket=OrderSend(Symbol(),entermode,Lots,traderate,0,myStopLoss,traderate-point*TakeProfit,GridName,16384,0,Red); }
}
}
}
}
return(0);
}
Timebased EA
There seems to be a problem with this EA where the magic number setting does not work. I have it trading over mutipal pairs with different magic numbers but only one trade is taken on one pair. Can someone help..?
Haven't studied code to find out how it ticks yet, just ran a quick back test on only 1 month with 90% quality and no mismatched chart errors. Lot size set to 0.1, everything else set to default. Yikes! Any good settings for this?
Neither have I bothered looking at the code, but if this EA does use correllation, then (reliable) backtesting should not even be possible...
Neither have I bothered looking at the code, but if this EA does use correllation, then (reliable) backtesting should not even be possible...
The GridMaster EA is from the AutoFx forum and does not use any correlation whatsoever - I do not know why Bongo posted it.
The GridMaster EA is basically a Grid EA, as the name suggests....I would seriously advise anybody who is considering using this EA live to test in with demo accounts first.