override protected void StrategyExecute() { MACD macd = Indicators.MACD.Series(data.Close, parameters[0], parameters[1], parameters[2],""); ADX adx=new ADX(data.Bars,parameters[3],""); int cutlosslevel = (int)parameters[4]; int takeprofitlevel = (int)parameters[5]; double delta = 0, lastDelta = 0; for (int idx = 1; idx < macd.Values.Length; idx++) { delta = (macd.HistSeries[idx] - macd.HistSeries[idx - 1]); //If there is a trend if (adx[idx] > 25) { if (delta > 0 && lastDelta < 0) BuyAtClose(idx); } if (delta < 0 && lastDelta > 0) SellAtClose(idx); if (is_bought && CutLossCondition(data.Close[idx], buy_price, cutlosslevel)) SellCutLoss(idx); if (is_bought && TakeProfitCondition(data.Close[idx], buy_price, takeprofitlevel)) SellTakeProfit(idx); lastDelta = delta; } }
protected override void StrategyExecute() { Indicators.ADX adx = new Indicators.ADX(data.Bars, parameters[0], ""); int Bar = adx.Count - 1; if (Bar < adx.FirstValidValue) { return; } BusinessInfo info = new BusinessInfo(); info.SetTrend(AppTypes.MarketTrend.Unspecified, AppTypes.MarketTrend.Unspecified, AppTypes.MarketTrend.Unspecified); info.Weight = adx[Bar]; SelectStock(Bar, info); }
override protected void StrategyExecute() { MACD macd = Indicators.MACD.Series(data.Close, parameters[0], parameters[1], parameters[2],""); ADX adx=new ADX(data.Bars,parameters[3],""); double delta = 0, lastDelta = 0; for (int idx = 1; idx < macd.Values.Length; idx++) { delta = (macd.HistSeries[idx] - macd.HistSeries[idx - 1]); //If there is a trend if (adx[idx] > 25) { if (delta > 0 && lastDelta < 0) BuyAtClose(idx); } if (delta < 0 && lastDelta > 0) SellAtClose(idx); lastDelta = delta; } }