关于均线上穿次数
//多头平仓 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才起作用
//多头平仓 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里所有的计算函数全部在主结构部分计算完毕,用变量容器直接保存计算结果,然后在分支结构里引用这些计算结果,不要放在分支结构里运算!话说你这个代码编译后,下面肯定会有警告的,你都不看吗?
回复:编译的时候没有提示,那你能举个例吗,我需要开仓以后记录上穿的次数就好,其余的我跟着你的举例修改就行。谢谢
回复:代码代写看投稿置顶帖
回复:没找到哪有投稿置顶
回复:https://www.tbquant.net/forumDetail?cur=tbquan&id=1110&cid=all