The level of support available in the online Reference is inadequate for accomplishing developing such a simple strategy.
Code is below:
private int numshares,numshares1;
private MACD MACDtest;
private MACD MACD1;
(in State.Defaults):
MACDlen=26;
AmountPerAsset = 2500;
asset1="INTC";
else if (State == State.DataLoaded)
{
MACDtest=MACD(12,26,9);
AddChartIndicator(MACDtest);
MACD1=MACD(BarsArray[1],12,26,9);
}
else if (State == State.Configure)
{
AddDataSeries(asset1,BarsPeriodType.Day, 1);
}
if (BarsInProgress == 0)
{
if (CurrentBar<MACDlen)
return;
bool buyStop1,buyExit1;
buyStop1 = false;
buyExit1 = false;
buyStop1 = CrossAbove(MACDtest, MACDtest.Avg, 1) ;
buyExit1 = CrossBelow(MACDtest, MACDtest.Avg, 1);
numshares = Convert.ToInt32(Math.Max(1,AmountPerAsset/Close[1]));
if ( buyStop1 && Positions[1].MarketPosition == MarketPosition.Flat)
{
EnterLong(0,numshares,"s0");
}
if (buyExit1 && Positions[1].MarketPosition == MarketPosition.Long)
ExitLong("s0");
}
if (BarsInProgress == 1)
{
if (CurrentBars[1]<MACDlen)
return;
numshares1 = Convert.ToInt32(Math.Max(1,AmountPerAsset/Close[1]));
bool buyStop2,buyExit2;
buyStop2 = false;
buyExit2 = false;
buyStop2 = CrossAbove(MACD1,MACD1.Avg,1);
buyExit2 = CrossBelow(MACD1,MACD1.Avg,1);
if ( buyStop2 && Positions[1].MarketPosition == MarketPosition.Flat)
{
EnterLong(1,numshares1,"s1");
}
if (buyExit2 && Positions[1].MarketPosition == MarketPosition.Long)
ExitLong("s1");
}

Comment