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