Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

Basic Trend Following Strategy, MA cross MA for Amibroker (AFL)

Rating:
5 / 5 (Votes 1)
Tags:
amibroker, trend

Trend Following Code in AmiBroker

Strategy: Basic Trend Following Strategy, MA cross MA
Trades: Long only
Result: Acceptable

Screenshots

Indicator / Formula

Copy & Paste Friendly
//Trend Following Code in AmiBroker
{/*DESCRIPTION
	Strategy: 	Basic Trend Following Strategy, MA cross MA
	Trades:		Long only
	Result:		Acceptable
*/}
 
{//OPTION
	SetOption("InitialEquity", 1000000);
	SetOption("MaxOpenPositions", 4);
	SetOption("MinShares", 100);
	RoundLotSize = 100;
	SetOption("CommissionMode", 1);
	SetOption("CommissionAmount", 0.16);
	SetTradeDelays(1, 1, 0, 0);
	BuyPrice = SellPrice = Open;
}
 
{//SPLIT
	C1 = Ref(C, 1);
	O1 = Ref(O, 1);
	O2 = Ref(O, 2);
	detectSplit = 0.35;
	buyAvoidSplit = !(C1/O1 < 1-detectSplit) AND !(C1/O1 > 1+detectSplit) AND
					!(O2/C1 < 1-detectSplit) AND !(O2/C1 > 1+detectSplit);
	sellAvoidSplit = (C1/O1 < 1-detectSplit) OR (C1/O1 > 1+detectSplit) OR
					(O2/C1 < 1-detectSplit) OR (O2/C1 > 1+detectSplit);	
}
 
{//SIGNAL
	//Stock Conditions
	buyCon1 = BarsSince(Cross(MA(C, 10),MA(C, 20))) < 10 AND C > 1;
	buyCon2 = ADX() > 25 AND PDI() > MDI();
	buyCon3 = MACD() > Signal();
	buyCon4 = MA(C, 20) > MA(C, 60);
	buyCon5 = C*V > Ref(HHV(C*V, 20), -1) AND C*V > 1000000;	
	sellCon1 = MACD() < Signal();
	sellCon2 = MA(C, 20) < MA(C, 60);
	//Executing Signals
	Buy = buyCon1 AND buyCon2 AND buyCon3 AND buyCon4 AND buyCon5 AND buyAvoidSplit;
	Sell = (sellCon1 AND sellCon2) OR sellAvoidSplit;	
	
	Buy = ExRem(Buy, Sell);
	Sell = ExRem(Sell, Buy);
	Short = Cover = 0;
}
 
{//POSITION
	SetPositionSize(5, spsPercentOfEquity);
	PositionScore = C*V/Ref(MA(C*V, 20), -1);
}
 
{//STOP
	ApplyStop(stopTypeLoss, stopModePercent, 10);
	ApplyStop(stopTypeProfit, stopModePercent, 25);
	ApplyStop(stopTypeTrailing, stopModePercent, 20);
}
 
{//MC
}

0 comments

Leave Comment

Please login here to leave a comment.

Back