我根据课堂的代码弄进去,利用资金曲线做单不开仓
2023-09-14 21:10

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);

}

}


评论区
lzxzzq

谢谢,我兴奋的去测试了,以为真的是0的原因,结果改成1还是一样的,奇怪了,明明按照课堂的视频抄下来的,不知道哪里原因。

2023-09-15 22:13
顶部