//多头平仓
If (MarketPosition==1 And CROSS(A3,A4) && CountIf(CROSS(A3,A4),BarsSinceEntry())>=3 And BarsSinceLastEntry>0)
{
myPrice=Close;
Sell( 0,myPrice);
Commentary(\"多头平仓(上穿3次以上)\"); 这句有没有表达错误,我发现哪个3不起作用,只能填写0或者1才起作用
完整的源码贴一下
Params
Numeric m3(20);
Numeric m4(20);
Vars
Series<Numeric> a3;
Series<Numeric> a4;
//多头平仓
If (MarketPosition==1 And CROSS(A3,A4) && CountIf(CROSS(A3,A4),BarsSinceEntry())>=3 And BarsSinceLastEntry>0)
{
myPrice=Close;
Sell( 0,myPrice);
Commentary(\"多头平仓(上穿3次以上)\");
}
//空头平仓
If (MarketPosition==-1 And CROSS(A4,A3) && CountIf(CROSS(A4,A3),BarsSinceEntry())>=3 And BarsSinceLastEntry>0)
{
myPrice=Close;
BuyToCover( 0,myPrice);
Commentary(\"空头平仓(上穿3次以上\");
}
}
就是记录开仓以后均线上穿的次数,这样写为什么会不对,它就把上穿次数大于0,统统看作一个数了,针对1,2,3,4,。。。。。单独某个数字不起作用。
序列类型使用错误,crossover函数是序列类型,不能MarketPosition==1 And CROSS(A3,A4)这样写
把if里所有的计算函数全部在主结构部分计算完毕,用变量容器直接保存计算结果,然后在分支结构里引用这些计算结果,不要放在分支结构里运算!
话说你这个代码编译后,下面肯定会有警告的,你都不看吗?
编译的时候没有提示,那你能举个例吗,我需要开仓以后记录上穿的次数就好,其余的我跟着你的举例修改就行。谢谢
代码代写看投稿置顶帖
没找到哪有投稿置顶