Params
Numeric FastLength(5);// 短期指数平均线参数
Numeric SlowLength(20);// 长期指数平均线参数
Vars
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Events
OnBar(ArrayRef<Integer> indexs)
{
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric(\"MA1\",AvgValue1);
PlotNumeric(\"MA2\",AvgValue2);
If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
{
Buy(0,Open);
}
If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
{
SellShort(0,Open);
}
SetDicValue(\"p_currentequity_sjx\",Symbol,Date+time,Portfolio_CurrentEquity,True);//存数据,读取资金曲线
}
//前面这个是双均线的策略
//下面的是读取上面的然后回测就没有开仓的单子
Params
Numeric FastLength(5);// 短期指数平均线参数
Numeric SlowLength(20);// 长期指数平均线参数
Vars
Series<Numeric> p1;
Series<Numeric> h4w;
Series<Numeric> l4w;
Series<Numeric> P_Capital;
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Series<bool> con_1;
Series<Numeric> sw_1(0);
Events
OnBar(ArrayRef<Integer> indexs)
{
Numeric p2;
GetDicValue(\"p_currentequity_sjx\",Symbol,Date+time,p2);//读取资金曲线
p1 = p2;
if(p1<>0)
PlotAuto(\"p1\",p1);
h4w = Highest(p1[1],20);
l4w = Lowest(p1[1],60);
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
//PlotNumeric(\"MA1\",AvgValue1);
//PlotNumeric(\"MA2\",AvgValue2);
con_1 = p1[1]<l4w[2];
if(con_1)
{
sw_1 = 1;
PlotString(\"S\",\"ss\",c);
}
If(MarketPosition <>1 And sw_1>0 && AvgValue1[1] > AvgValue2[1])
{
Buy(0,Open);
sw_1 = sw_1 -1;
}
If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
{
Sell(0,Open);
}
}
同问,能分享下吗,谢谢!我跟楼主问题一样,无法开仓,复刻编译运行视频的代码,无任何反应。
代码里面的下单手数都是0手,你看是不是这个原因
谢谢,我兴奋的去测试了,以为真的是0的原因,结果改成1还是一样的,奇怪了,明明按照课堂的视频抄下来的,不知道哪里原因。