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); // 对小数取整
仍然会产生闪烁,无论周期选日、周、时都是。
你把手数改成固定手数再试试
你的这个问题我记得回复过了,手数根据资金量计算,资金量根据最新价格会浮动,自然会产生闪烁