全部 TBQuant功能 TBL语言 TB开户 问答专区 其他
请看下这段代码为什么会产生信号闪烁
2022-05-07 08:01

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个活跃品种叠加,无论统一周期在日线、周线、小时线,都会产生信号闪烁,百思不得其解,麻烦给看下。

202****1172640092

修改固定手数如下:

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

2022-05-07 12:24
kyover

你把手数改成固定手数再试试

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

2022-05-07 08:43
您未登录,请先 登录注册 后发表评论
顶部