PureBytes Links
Trading Reference Links
|
Greetings all --
I have received a couple of inquiries about using the equity curve to
control the logic of a trading system. Pasted into this posting is a
trading system that includes two examples. There are a lot of other
ways the equity curve can be used.
Thanks,
Howard
// EquityCurveLogicSwitcher.afl
//
// Howard Bandy
// February 2009
//
// In response to an inquiry from the forums --
//
// This is an example of using the daily equity
// to control the logic of a trading system.
//
// Code two trading systems -- System 1 and System 2
// For this example, they are the reverse of each other.
//
// Compute a moving average of daily equity of System 1.
// Refer to either today's value, or yesterday's,
// depending on when you want to measure and when you
// want to act and are able to act.
// When the moving average of the equity curve of System 1 is
// higher than it was the previous day, trade System 1.
// When the moving average is lower, trade System 2.
//
// An alternative is to use only System 1.
// Take signals in the original direction
// when the equity curve is rising,
// take signals in the opposite
// direction when the equity curve is falling.
//
// ==========================================================
// Disclaimer
//
// This is only an EXAMPLE, it is NOT A FINISHED TRADING SYSTEM.
// There are a lot of subtleties to consider when coding
// and potentially trading this.
//
// For example:
// When do you enter and exit trades
// When do you calcaulate the original equity curve
// When do you measure the slope of the original equity curve
// Making certain that a signal to go Short causes a Long position to exit
// And so forth
//
//
// I have probably forgotten to do something important,
// and this code is probably incorrect in exactly the way that
// will cause you problems.
// ==========================================================
//
// System 1 is a moving average crossover -- replace this
// with whatever you want to use.
// Code the two trading systems.
MA1Len = Optimize("MA1Len",4,1,25,1);
MA2Len = Optimize("MA2Len",5,1,25,1);
MA1 = MA(C,MA1Len);
MA2 = MA(C,MA2Len);
System1Buy = Cross(MA1,MA2);
System1Sell = Cross(MA2,MA1);
System2Buy = Cross(MA2,MA1);
System2Sell = Cross(MA1,MA2);
// Compute the equity curve resulting from trading System 1.
Buy = System1Buy;
Sell = System1Sell;
eSystem1 = Equity();
EquitySmoothLen = 252;
SmoothedEquity = EMA(eSystem1,EquitySmoothLen);
SmoothedEquityRising = SmoothedEquity > Ref(SmoothedEquity,-1);
// The two options --
// TRUE == trade two systems
// FALSE == trade System 1 in the opposite direction
LogicOption = False;
if (LogicOption)
{
// Use the slope of the equity curve of System 1 to
// decide whether to trade System 1 or System 2.
Buy = IIf(SmoothedEquityRising,System1Buy,System2Buy);
Sell = IIf(SmoothedEquityRising,System1Sell,System2Sell);
}
else
{
// Use the slope of the equity curve of System 1 to
// decide whether or Buy or Short when the System1Buy signal appears
Buy = IIf(SmoothedEquityRising,System1Buy,0);
Sell = IIf(SmoothedEquityRising,System1Sell,0);
Short = IIf(NOT(SmoothedEquityRising),System1Buy,0);
Cover = IIf(NOT(SmoothedEquityRising),System1Sell,0);
Sell = Sell OR Short;
Cover = Cover OR Buy;
}
e = Equity();
// Plot
Plot(C,"C",colorBlack,styleCandle);
Plot(MA1,"MA1",colorRed,styleLine);
Plot(MA2,"MA2",colorBlue,styleLine);
Plot(SmoothedEquity,"SmoothedEquity",colorRed,styleLine|styleLeftAxisScale);
Plot(eSystem1,"eSystem1",colorBlue,styleLine|styleLeftAxisScale);
Plot(e,"eUsingSwitch",colorGreen,styleLine|styleLeftAxisScale);
// The End
// ----------------------------------------------
------------------------------------
**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
*********************
TO GET TECHNICAL 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
*********************************
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|