请问老师,写的这个跨周期均线交易模型有没有什么问题,策略研究加载到品种上只开仓了一次,平仓是在最后一天平的。
-----------------------------------------------------------
Params
array<string> mysymbol(["i9888.DCE","rb888.SHFE"]);
Numeric Length1(5);
Numeric Length2(10);
Numeric Length3(20);
Numeric Length4(40);
Vars
Numeric pinzhon;
Numeric ma;
Numeric ma1;
Numeric ma2;
Numeric ma3;
Numeric ma4;
Events
OnInit()
{
for pinzhon = 0 to GetArraySize(mysymbol)
{
SubscribeBar(mysymbol[pinzhon],"1h",20220101);
SubscribeBar(mysymbol[pinzhon],"15m",20220101);
SubscribeBar(mysymbol[pinzhon],"3m",20220101);
}
}
OnBar(ArrayRef<Integer> indexs)
{
Data0.ma1 = data0.Average(Data0.Close,Length1);//小时级别的5ma
Data0.ma2 = data0.Average(Data0.Close,Length2);//小时级别的10ma
Data0.ma3 = data0.Average(Data0.Close,Length3);//小时级别的20ma
Data1.ma1 = data1.Average(Data1.Close,Length1);//15分钟级别的5ma
Data1.ma2 = data1.Average(Data1.Close,Length2);//15分钟级别的10ma
Data1.ma3 = data1.Average(Data1.Close,Length3);//15分钟级别的20ma
Data2.ma1 = data2.Average(Data2.Close,Length1);//3分钟级别的5ma
Data2.ma2 = data2.Average(Data2.Close,Length2);//3分钟级别的10ma
Data2.ma3 = data2.Average(Data2.Close,Length3);//3分钟级别的20ma
If( Marketposition == 0
and data0.ma1 > data0.ma2
and data1.ma1 > data1.ma2 and data1.ma2 > data1.ma3
and data2.ma1 > data2.ma2 and data2.ma2 > data2.ma3)
{
Buy(1,Open);
}
If(Marketposition == 1
and data0.ma1 > data0.ma2
and data1.ma1 < data1.ma2 and data1.ma2 < data1.ma3
Or data0.ma1 < data0.ma2
and data1.ma1 > data1.ma2 and data1.ma2 > data1.ma3)
{
Sell(1,Open);
}
}
//------------------------------------------------------------------------
// 编译版本 2022/05/06 180517
// 版权所有 xian99
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
需要代写策略或者体验策略的,可以加V13129075960,备注来意
上面的代码订阅了三个周期,实际运行图表有4个图表,是什么原因?
图表最多只能显示四个数据源
打开策略单元设置 里面能看到剩下的两个数据源
那就说明你平仓条件没写对啊,一个一个诊断你的平仓条件啊