请问怎么解决反手不开仓的问题 [金字塔]
- 咨询内容:
老师你好,下面是我的交易代码示例,其中,平多条件(PD)想表达的意思是:如果开空条件已成立,即使持有多单也马上平多开空(PK亦然),这时候系统就只有平仓,没有开仓,请问是什么原因?
dif:=ema(c,12)-ema(c,26);dea:=ema(dif,9);macd:=2*(dif-dea);cpx:=ma(c,14);entertime:=time<150000 and time>091600;exittime:=time>=151400;
//交易条件kd:=cross(c,cpx) and cpx>ref(cpx,1) and macd>0 and entertime;//开多条件kk:=cross(cpx,c) and cpx<ref(cpx,1) and macd<0 and entertime;//开空条件pd:=(macd<0 and cpx<ref(cpx,1)) or kk or exittime;//平多条件(如果开空条件成立,即使持有多单,马上平多开空)pk:=(macd>0 and cpx>ref(cpx,1)) or kd or exittime;//平空条件(如果开多条件成立,即使持有空单,马上平空开多)
//交易系统 if holding<>0 then begin sell(pd,0,limit,c),orderqueue; sellshort(pk,0,limit,c),orderqueue;end
if holding=0 then begin buy(kd,1,limit,c),orderqueue; buyshort(kk,1,limit,c),orderqueue;end - 金字塔客服:
if holding<>0 then begin
sell(pd,0,limit,c),orderqueue;
sellshort(pk,0,limit,c),orderqueue;
end
if holding=0 then begin buy(kd,1,limit,c),orderqueue; buyshort(kk,1,limit,c),orderqueue; end这样的顺序是不正确的,软件的公式编辑界面有说明是如何写的。而且,用户是不是不明白ORDERQUEUE是用来干什么的?加上来是不是为了好看?
if kd then begin
sellshort(1,0,thisclose);
buy(holding=0,1,thisclose);
end
if kk then begin
sell(1,0,thisclose);
buyshort(holding=0,1,thisclose);
end
if pd then sell(1,0,thisclose);
if pk then sellshort(1,0,thisclose);
- 用户回复:
谢谢老师,我改过来了!如果我加上移动止赢的全局变量(YDZY),麻烦老师看一下下面的格式和逻辑对不对呢?
if ydzy=1 and holding<>0 then begin if h>highprice then highprice:=h; if (highprice-enterprice>=49 and highprice-h>=6) or (highprice-enterprice>=19 and h-enterprice<=17) then sell(1,0,limitr,c); if l<lowprice then lowprice:=l; if (enterprice-lowprice>=30 and l-lowprice>=16) or (enterprice-lowprice>=19 and enterprice-l<=13) then sellshort(1,0,limitr,c);end - 网友回复:
谢谢老师,我改过来了,如果加上移动止赢变量,麻烦老师再看看下面的公式格式和逻辑对不对?谢谢!
variable:ydzy=1; //移动止盈开关variable:highprice=0,lowprice=0; //记录开仓价
if kd then begin sellshort(1,0,limitr,c); buy(holding=0,1,limitr,c); highprice:=enterprice; end if kk then begin sell(1,0,limitr,c); buyshort(holding=0,1,limitr,c); lowprice:=enterprice;end if pd or enterprice-c>=10 then sell(1,0,limitr,c);if pk or c-enterprice>=10 then sellshort(1,0,limitr,c);
if ydzy=1 and holding<>0 then begin if h>highprice then highprice:=h; if (highprice-enterprice>=49 and highprice-h>=6) or (highprice-enterprice>=19 and h-enterprice<=17) then sell(1,0,limitr,c); if l<lowprice then lowprice:=l; if (enterprice-lowprice>=30 and l-lowprice>=16) or (enterprice-lowprice>=19 and enterprice-l<=13) then sellshort(1,0,limitr,c);end
- 网友回复: 现在是哪里不对的问题?
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容