老师您好!我是一个学生,毕业设计需要用到这个,帮忙解决一下。公式中弄不能加个再次开多条件,那么这次开多在KDJ上穿0后如果说价格没有上次开多的价格低,则不买入!还有这个交易系统怎么不能自动平仓!
//中间变量
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*D;
MA1:=MA(close,A);
MA2:=MA(close,B);
手数:=ss;
//交易条件
开多平空:=CROSS(J,0); //买入条件
开空平多:=CROSS(MA2,MA1);//卖出条件
//交易系统
开多:BUY(开多平空,手数,MARKET);
平多:SELL(开空平多,holding,MARKET);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
variable:n=0;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*D;
MA1:=MA(close,A);
MA2:=MA(close,B);
手数:=ss;
//交易条件
开多平空:=CROSS(J,0); //买入条件
开空平多:=CROSS(MA2,MA1);//卖出条件
//交易系统
if 开多平空条件 and holding=0 and n=0 then begin
BUY(开多平空,手数,MARKET);
n:=1;
end
if 开多平空条件 and holding=0 and n=1 and c>enterprice then buy(holding=0,1,marketr);
平多:SELL(开空平多,holding,MARKET);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
老师,这个variable:n=0这个是做什么用的能解释一下吗。
还有这个条件 if 开多平空条件 and holding=0 and n=1 and c>enterprice then buy(holding=0,1,marketr);
是不是持仓量为0的时候才能买入,为什么我执行交易的时候一直都是达到开多条件的时候执行下单,达到平多条件的时候没有执行平仓。
对了,我是设定了按幅度止盈止损点了,这个会有影响平仓吗
1.n的作用是记录开仓的标记,用来标记第一次单独的开仓,因为第一次开仓不需要做认为操作,只要满足条件就开仓,后面的开仓需要比上次的开仓价格低,所以要做特殊的标记
2.你看一下上面给你的链接,你照着做一遍启动图表交易,然后看一下交易回报里面有什么回报
老师,我按照链接那启动了程序化交易,还是那样,有开多信号的时候回自动买入,出现平多信号的时候没反应了,不会自动平仓,我手动平仓试了下显示委托数量小于1,是不是代码哪里编写错了
代码这样改:
variable:bj=0;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*D;
MA1:=MA(close,A);
MA2:=MA(close,B);
手数:=ss;
//交易条件
开多平空:CROSS(J,0); //买入条件
开空平多:=CROSS(MA2,MA1);//卖出条件
//交易系统
if 开多平空 and holding=0 and bj=0 then begin
BUY(开多平空,手数,MARKET);
bj:=1;
end
if 开多平空 and holding=0 and bj=1 and c>enterprice then buy(holding=0,1,marketr);
平多:SELL(开空平多,holding,MARKET);
bb:bj;
ee:enterprice;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
你先检查一下你帐号有没有登录
交易连续合约时有没有勾选允许交易连续合约
再看看下单记录里面的信息是怎么提示的