请看下这段代码为什么会产生信号闪烁

Params Numeric FastLength(5);// 短期指数平均线参数 Numeric SlowLength(20);// 长期指数平均线参数 Vars Numeric RiskRatio(1); // % Risk Per N ( 0 - 100) Numeric ATRLength(20); // 平均波动周期 ATR Length Series<Numeric> AvgValue1; Series<Numeric> AvgValue2; Series<Numeric> AvgTR; // ATR Numeric N; // N 值 Numeric TotalEquity; // 按最新收盘价计算出的总资产 Numeric TurtleUnits; // 交易单位 Events OnBar(ArrayRef<Integer> indexs) { Range[0:datacount()] { AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric("MA1",AvgValue1); PlotNumeric("MA2",AvgValue2); AvgTR = XAverage(TrueRange,ATRLength); N = AvgTR[1]; TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin(); TurtleUnits = (TotalEquity*RiskRatio/100) /(N * ContractUnit()*BigPointValue()); TurtleUnits = IntPart(TurtleUnits); // 对小数取整 If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]) { Buy(TurtleUnits,Open); } If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1]) { SellShort(TurtleUnits,Open); } //PlotNumeric("PL",Portfolio_TotalProfit); } } 随机选取40个活跃品种叠加,无论统一周期在日线、周线、小时线,都会产生信号闪烁,百思不得其解,麻烦给看下。

修改固定手数如下: TurtleUnits = 10; //IntPart(TurtleUnits); // 对小数取整 仍然会产生闪烁,无论周期选日、周、时都是。

你把手数改成固定手数再试试 你的这个问题我记得回复过了,手数根据资金量计算,资金量根据最新价格会浮动,自然会产生闪烁

回复:Portfolio_CurrentCapital()是按开盘价吧,不会变化的。

回复:tbquant叠加品种,bar对齐问题会导致因为最新价格变动发生信号闪烁放单品种是不会闪烁的tbquant不要叠加品种