This should do what you want. I took
the liberty of defining the Sell and Cover as when the EMAs cross again.
nPeriods = Param("n Periods",10,2,100,1);
nDiff = Param("n Diff",40,0,500,1);
SmallPeriods = Param("Small EMA Periods",5,2,40,1);
LargePeriods = Param("Large EMA Periods",20,6,200,1);
SmallEMA = EMA(C,
SmallPeriods);
LargeEMA = EMA(C,
LargePeriods);
EMAxUp = Cross(SmallEMA, LargeEMA);
EMAxDn = Cross(LargeEMA, SmallEMA);
Buy = Ref(EMAxUp,-nPeriods) AND
SmallEMA - LargeEMA > nDiff AND
BarsSince(EMAxUp) < BarsSince(EMAxDn);
Sell = EMAxDn;
Short = Ref(EMAxDn,-nPeriods) AND
LargeEMA - SmallEMA > nDiff AND
BarsSince(EMAxDn) < BarsSince(EMAxUp);
Cover = EMAxUp;
Regards,
David
From: amibroker@xxxxxxxxxxxxxxx
[mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of drk_411
Sent: 03/12/2007 2:45 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Please help
Hi Folks,
I am stuck. Could someone help with few lines of code.
All I need is that after a crossover (small over large ema or vice
versa) the crossover should hold for "n" periods and "n"
diff (the
value where the cross took place for example if the crossover took
place at the closing price of 4000, then the min diff of n should
take place). this is to take care of the whip saws.
so after a cross over say at 4000 (small ema crosses the large ema
from below) the valid buy signal should be if the small ema is still
above large ema for 4 bars (10 minute each) and has min value of 4020
( 20 being the minimum diff).
regards
__._,_.___
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
SPONSORED LINKS
__,_._,___