public void ReceiveCandle(sCandle pCandle) { Candle = pCandle; ATR.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C); BB.ReceiveTick(pCandle.C); CCI.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C); Derivatives.ReceiveTick(pCandle.C); EMA.ReceiveTick(pCandle.C); FMA.ReceiveTick(pCandle.C); HMA.ReceiveTick(pCandle.C); MACD.ReceiveTick(pCandle.C); Momemtum.ReceiveTick(pCandle.C); RSI.ReceiveTick(pCandle.C); Renko.ReceiveTick(pCandle.C); SMA.ReceiveTick(pCandle.C); STARCBands.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C); STDDEV.ReceiveTick(pCandle.C); Slope.ReceiveTick(pCandle.C); StochRSI.ReceiveTick(pCandle.C); Stochastics.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C); Stub.ReceiveTick(pCandle.C); Trend.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C); TrueRange.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C); WMA.ReceiveTick(pCandle.C); }
// called from CandleBuilder public override void ReceiveCandle(sCandle pCandle, int pPeriod, string pCBTitle) { if ((pPeriod == Minutes) && (pCBTitle == "cbx")) { StochRSI.ReceiveTick(pCandle.C); RSISlope.ReceiveTick(StochRSI.Value()); DecisionFunction(); } }
private void DecisionFunction() { BBands.Value(out BPlus, out SMA, out BMinus, out PctB, out BW); BWidth = BPlus - BMinus; SMASlope.ReceiveTick(SMA); HMAv = HMA.Value(); // preprocessing StateMachine(); switch (Framework.Account.InTrade()) { case 0: { if (Framework.Account.InTrade() == 0) { if (EntryCriteriaLong()) { Framework.Account.EnterTrade(1); Framework.Account.SetTrailingStop(TrailingStop); } } if (Framework.Account.InTrade() == 0) { if (EntryCriteriaShort()) { Framework.Account.EnterTrade(-1); Framework.Account.SetTrailingStop(TrailingStop); } } break; } case 1: { if (ExitCriteriaLong()) { Framework.Account.ExitTrade(); } break; } case -1: { if (ExitCriteriaShort()) { Framework.Account.ExitTrade(); } break; } } double logInTrade = Framework.Account.InTrade(); double logMargin = Framework.Account.GetAccount().C; //Framework.WriteGraphLine("InTrade,Margin,B+,C,HMA,SMA,B-,State,BWidth,MinBWidth,EntryRecommend"); Framework.WriteGraphLine(logInTrade + "," + logMargin + "," + BPlus + "," + Candle.C + "," + HMAv + "," + SMA + "," + BMinus + "," + State + "," + BWidth + "," + MinBWidth + "," + EntryRecommend); }