老师在一个视频中讲了一个策略,该策略的交易思路为
// 开盘30分钟内不操作;
// 开盘30分钟后,如果价格突破前30分钟波动区间的最高点则做多;如果价格突破前30分钟波动区间的最低点,则做空
// 每天14:55平所有仓
// 交易头寸为1手
老师给出的代码为
Params
Numeric RangeEndTime(93000);
Numeric TradeEndTime(145500);
Numeric lots(1);
Vars
Series<Numeric> UpperBand;
Series<Numeric> LowerBand;
Events
OnBar(ArrayRef<Integer> indexs)
{
If(CurrentBar == 0 or Date <> Date[1])
{
UpperBand = High;
LowerBand = Low;
}
Else if (Time <= RangeEndTime * 0.000001)
{
UpperBand = Max(High,UpperBand);
LowerBand = Min(Low, LowerBand);
}
Else if (Time >= TradeEndTime * 0.000001)
{
Sell(0,Open);
BuyToCover(0,Open);
}
Else
{
If (High >= UpperBand)
Buy(lots,Max(Open,UpperBand));
If (Low <= LowerBand)
SellShort(lots,Min(Open,LowerBand));
}
PlotNumeric("Upperband",Upperband);
PlotNumeric("LowerBand",Lowerband);
}
在5分钟周期上测试,按策略的交易思想,也就是在每天第七根K线上开仓,但实际的结果是到了14:50策略还在开仓,如下图所示。很显示,在个策略的代码是错误 的
这个特策略交易思想还是不错的,哪位高手给改一下,谢谢!
你确定你公式写的正确?我用你的公式直接复制下来运行完全是正常的,建议你再仔细检查下代码,看看是不是粗心打开了错误的测试报告