public HybridTestRules(DataBars db, double atrperiod, double shortperiod, double longperiod) { rules = new Rule[3]; rules[0] = new TwoSMARule(db.Close, shortperiod, longperiod); rules[1] = new BasicATRRule(db, atrperiod, "atr"); rules[2] = new BasicMACDRule(db.Close, 12, 26, 9); adxTrend = new ADXMarketTrend(db, 14); //Kiem tra volume volumeRule = new PriceTwoSMARule(db.Volume, 10, 30); data = db; Volume_Filter = 50000; }
public SMAATRRules(DataBars db, double atrperiod, double shortperiod, double longperiod) { rules = new Rule[2]; rules[0] = new TwoSMARule(db.Close, shortperiod, longperiod); rules[1] = new BasicATRRule(db, atrperiod, "atr"); }
public MACDHistATRRules(DataBars db, double atrperiod, double fast, double slow,double signal) { rules = new Rule[2]; rules[0] = new MACD_HistogramRule(db.Close, fast, slow,signal); rules[1] = new BasicATRRule(db, atrperiod, "atr"); }
public SARATRRules(DataBars db, double atrperiod, double optInAcc,double optLnMax) { rules = new Rule[2]; rules[0] = new BasicSARRule(db, optInAcc, optLnMax); rules[1] = new BasicATRRule(db, atrperiod, "atr"); }
public TwoSMABasicMACDRule(DataSeries ds, double fast, double slow, double signal, double shortperiod, double longperiod) { rules = new Rule[2]; rules[0] = new BasicMACDRule(ds, (int)fast,(int)slow,(int)signal); rules[1] = new TwoSMARule(ds, shortperiod, longperiod); }
protected void TrailingStopWithBuyBack(Rule rule, double price, double trailingstoplevel, int idx, BusinessInfo info) { //Trailing stop strategtest double new_trailing_stop = data.Close[idx] * (1 - trailingstoplevel / 100); if (new_trailing_stop > trailing_stop) { trailing_stop = new_trailing_stop; //Buy back share if if ((!is_bought) && rule.UpTrend(idx)) BuyAtClose(idx,info); } else if (data.Close[idx] < trailing_stop) { SellTakeProfit(idx,info); trailing_stop = -1; } }