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 );