Params
Numeric FastLength(20); // 短期指数均线
Numeric SlowLength(80); // 长期指数均线
Numeric WRLength(5);//WR周期
Numeric OverSold(20) ; //超卖
Numeric OverBought(80) ;//超买
Numeric ATRMultiplier(2); // ATR 倍数
Numeric ATRLength(14); // ATR 计算周期
Numeric ProtectStopATRMulti(1); //保护性止损的ATR乘数
Vars
Series<Numeric> AvgValue1(0); // 短期指数平均线
Series<Numeric> AvgValue2(0); // 长期指数平均线
Series<Numeric> ATR(0); // ATR 值
Series<Numeric> WRValue(0);
Series<Numeric> ProtectStopS; //基于ATR的保护性止损
Events
OnBar(ArrayRef<Integer> indexs)
{
// 计算短期和长期指数平均线
AvgValue1 = AverageFC(Close, FastLength);
AvgValue2 = AverageFC(Close, SlowLength);
// 计算威廉指标
WRValue = PercentR(WRLength);
// 计算 ATR
ATR = AvgTrueRange(ATRLength);
PlotNumeric(\"MA2\", AvgValue2);
PlotNumeric(\"ProtectStopS\", ProtectStopS);
// 只做空头的开仓条件
if (MarketPosition == 0 && AvgValue1[1] < AvgValue2[1] && Close[1] < AvgValue2[1] && WRValue[1] > OverBought)
{
SellShort(1, Open); // 在新的 Bar 的开盘价卖出做空
//基于ATR的保护性止损
ProtectStopS = High[1] + ProtectStopATRMulti * ATR[1];
}
//日内平仓
if ((MarketPosition == -1 && Time > 0.1455 && Time < 0.1500) || (MarketPosition == -1 && Time > 0.0225 && Time < 0.0230))
{
BuyToCover(1, Open); // 在新的 Bar 的开盘价平掉空头仓位
}
老师,麻烦帮忙看下,这个特定时间平掉日内仓位不能执行,该怎样修改呢?
老师,我是放在15分钟周期下的,然后回测不能平仓