Params
Numeric FastLength(5); // 短期指数平均线参数
Numeric SlowLength(20); // 长期指数平均线参数
Numeric Lots(1); // 交易手数
Vars
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Events
OnReady()
{
SetBackBarMaxCount(1 + Max(FastLength, SlowLength));
}
OnBar(ArrayRef<Integer> indexs)
{
AvgValue1 = AverageFC(Close, FastLength);
AvgValue2 = AverageFC(Close, SlowLength);
PlotNumeric("MA1", AvgValue1);
PlotNumeric("MA2", AvgValue2);
// 检测金叉和死叉
Bool goldenCross = AvgValue1[1] > AvgValue2[1] && AvgValue1[2] <= AvgValue2[2];
Bool deadCross = AvgValue1[1] < AvgValue2[1] && AvgValue1[2] >= AvgValue2[2];
// 处理多单信号
If(goldenCross)
{
If(MarketPosition == -1)
{
BuyToCover(Lots, Open);
}
Buy(Lots, Open);
}
// 处理空单信号
If(deadCross)
{
If(MarketPosition == 1)
{
Sell(Lots, Open);
}
SellShort(Lots, Open);
}
// 尾盘14:55平仓(添加部分)
If(Time == 0.1455) // 判断当前K线时间是否为14:55
{
If(MarketPosition == 1) // 平多仓
{
Sell(Lots, Open);
}
Else If(MarketPosition == -1) // 平空仓
{
BuyToCover(Lots, Open);
}
}
}
代写需求可以直接发代写
您好,回测不清仓什么意思?
尾盘到14:55有仓不会平掉,还有仓过夜,是不是代码错了
If(Time == 0.1455) 意思是K线的时间必须有14:55的K
比如你是两分钟的 那就不会有14:55,
因为时间是14:54, 14:56