老师,麻烦帮忙看下下面这个ATR止损策略该怎样修改,编译出错,提示ATR函数没有被声明
Params
Numeric ATRPeriod(14); // ATR计算周期
Numeric StopLossMultiplier(2.0); // 止损倍数
Vars
Series<Numeric> ATR(0); // ATR值
Events
OnBar(ArrayRef<Integer> indexs)
{
// 计算ATR值
ATR = ATR(Close, ATRPeriod);
// 如果当前持有多头仓位且价格低于买入价格减去ATR的2倍,则执行止损
if(MarketPosition == 1 && Close < EntryPrice - StopLossMultiplier * ATR)
{
Sell(1, Close); // 平多单
}
// 如果当前持有空头仓位且价格高于卖出价格加上ATR的2倍,则执行止损
if(MarketPosition == -1 && Close > EntryPrice + StopLossMultiplier * ATR)
{
BuyToCover(1, Close); // 平空单
}
}
AvgTrueRange
计算atr的函数是这个
如果你不知道怎么计算,可以打开公式内部的对应指标代码看一下怎么调用代码的
收到,谢谢老师
问题已解决,非常感谢