我根据课堂的代码弄进去,利用资金曲线做单不开仓
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); } }