老师好
我昨天晚上测试发现,我的保本程序不动作,我试了好多下了,麻烦请帮忙看一下。
白糖1505合约,5分钟周期,测试日期2月27日
HH:=HHV(H,enterbars+1); //买开仓位置到现在最高价
A1:=ENTERPRICE+11*A; //止盈点差起始位置
A2:=A1+2*A; //追踪点差起始位置
A3:=A1-2*A; //最小止盈位置(止盈的数值要大于这行的系数最小2.5倍)
A4:=HH-2*A; //以上为根据止赢点差计算多单追踪止赢位置||
if ((HH>=A1 && HH<=A2 && C<=A3 && c<=o)||(HH>A2 && C<=A4 ) and abb) ||
((A1>=HH>(enterprice+4)) && CROSS(ENTERPRICE+3*A ,C))
&& c>(enterprice+a) && holding>0 then
sell(1,0,limitr,c);//多单止盈、保本和追踪止盈
cond1:enterprice+4;
附图中,最高价是5140,保本线是5137,开仓价是5133,最高价那根的K线收盘价是5135,。
我算了好多遍,((A1>=HH>(enterprice+4)) && CROSS(ENTERPRICE+3*A ,C))
这个语句应该是成立的,但是为什么却不执行呢?
此主题相关图片如下:qq截图20150305231246.png
1,你这整个平仓语句里还有其他条件,我们这边没完整指标和环境不好调试
2,你把SELL里面的IF 条件分开用变量在图上做输出看下,在具体位置是否取值都为1
如果不为1,看下到底是那个条件影响的就可以了哦
谢谢,那请问,单独看这个语句是否有问题呢?
我现在把前面的条件都删掉了,单独执行sell(((A1>=HH>(enterprice+4*a)) && CROSS(ENTERPRICE+3*A ,C)) ,0,limitr,c);
这个都不动作,真是怪了啊,条件上应该都满足啊,这是为什么呢?
cond:(A1>=HH>(enterprice+4*a)) && CROSS(ENTERPRICE+3*A ,C))
sell(cond,0,limitr,c)
看下cond是否满足,或者你自己修改一个容易点额条件比如c>o去看看。
拆开了,应该是A1>=HH>(enterprice+4*a)中的>(enterprice+4*4)这句有问题,加上后就没有执行条件了。
其后再把+4*a给去掉了,也是不执行了。
这个有点解释不通吧,假设我开多单,哪怕是阴线,只要最高价超过了开仓价加4个点并且不高于我止盈起始点,那这个条件应该是成立的了啊,因为我后面还跟了一个&& CROSS(ENTERPRICE+3*A ,C))这条件,低于开仓价加3个点,那就直接平掉了。
为什么呢?有点想不通了。