|period1 = Optimize("period1", 25, 10, 50, 5);
period2= Optimize("period2", 840, 800, 900, 10);
fast [0] = *C*[0];
slow [0] = *C*[0];
*for*( bar = 1; bar < *BarCount*; bar++ )
{
fast[ bar ] =fast[bar-1]+(*Close*[bar]-fast[bar-1])*2/(period1+1);
slow[ bar ] =slow[bar-1]+(*Close*[bar]-slow[bar-1])*2/(period2+1);
}
||Plot(fast, "" ,*colorGreen*);
Plot(slow, "", *colorRed*);|
|*Buy* = Cross(fast, slow);
*Sell* = Cross(slow,fast);|
On 2/1/2010 1:26 PM, Markus Witzler wrote:
Hello,
I have loops built into my code and thus suppose that it´s running too
slow.
I use a EMA crossover system (long side only at this point):
* *
*Buy*= Cum(1)>=25 *AND* Cross(Fast_EMA(period1),
Slow_EMA(period2))*AND* period1 < period2;
**
*Sell*= Cross(Slow_EMA(period2), Fast_EMA(period1));
I coded Fast_EMA and Slow_EMA instead of using AB´s built-in EMA
function to be able to use my own seed values.
Anyways, the code for both follows further below.
Would the rode run faster, if I stored the values for fast_MA and
slow_EMA in a separate composite and then used these in the buy and
sell rules?
Or is there another way to make my code faster? Are there some clues
how to "pimp" my code when I "have" to use loops (for instance when
coding proprietary stops instead of applystop etc.)???
Some other general guidelines what to look out for when trying to keep
the code as fast as possible (or better: the execution thereof)??
Thanks
Markus
**
*function* Fast_EMA( period1 )
{ *local* bar;
*for*( bar = 0; bar < *BarCount*; bar++ )
{ *if* (bar < 1)
EMA_fast[ bar ] = *Close*[ 0 ];
*else*
EMA_fast[ bar ]
=EMA_fast[bar-1]+(*Close*[bar]-EMA_fast[bar-1])*2/(period1+1);
}
*return* EMA_fast;
}
period1 = Optimize("period1", 25, 10, 50, 5);
Exp_MA_fast = Fast_EMA ( Period1 );
* *
*function* Slow_EMA( period2 )
{ *local* bar;
*for*( bar = 0; bar < *BarCount*; bar++ )
{ *if* (bar < 1)
EMA_slow[ bar ] = *Close*[ 0 ];
*else*
EMA_slow[ bar ]
=EMA_slow[bar-1]+(*Close*[bar]-EMA_slow[bar-1])*2/(period2+1);
}
*return* EMA_slow;
}
period2 = Optimize("period2", 840, 800, 900, 10);
Exp_MA_slow = Fast_EMA ( Period2 );
__________ Information from ESET Smart Security, version of virus
signature database 4668 (20091207) __________
The message was checked by ESET Smart Security.
http://www.eset.com