//------------------------------------------------------------------------
// 简称: MA20_Breakout_Strategy
// 名称: 基于20周期均线突破的交易策略
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
Params
Numeric Length(20); // 20周期均线参数
Vars
Series<Numeric> MA20; // 20周期均线
Bool InPosition(False); // 是否持仓
Numeric EntryPrice(0); // 开仓价格
Events
OnBar(ArrayRef<Integer> indexs)
{
// 计算20周期均线
MA20 = AverageFC(Close, Length);
// 绘制20周期均线
PlotNumeric("MA20", MA20, Rgb(150, 150, 150));
// 交易策略
If(!InPosition And CROSS(Close,MA20[1])
{
Buy(1, Open); // 开仓买入
EntryPrice = Open;
InPosition = True;
Commentary("开仓买入");
}
If(InPosition And CrossUnder(Close,MA20[1])
{
Sell(1, Open); // 平仓卖出
InPosition = False;
Commentary("平仓卖出");
}
}
老师,我这个买卖策略有问题,出不来,请帮我修改一下
序列类型使用的问题吧
crossover和crossunder是序列问题
两个选择
第一 好好把零基础课程学完整了,学会了再写
第二 置顶帖,收费代编
老师,我开仓的那根k线所对应的atr值,怎么写,我下面这样总感觉不对劲,总感觉是最新k线的atr值
Close < longEntryPrice - ATR
两个if 小括号没配对
InPosition改成序列型才有传递效果
Series<bool> InPosition(False);