为什么我的代码,平仓和开多单都正常,但是却没有按照要求开空单?可能是什么原因呢?谢谢版主
描述下具体的现象,然后帖下你的代码 说明下你开空条件初始的思路是什么样子的。 这种可能是你的代码并没有实现你需求。具体我还要看下你的描述和代码。
开多: =CROSS(MA1,MA2);
平多:=CROSS(MA2,MA1);
开空: =CROSS(MA2,MA1);
平空:=CROSS(MA1,MA2);
滤多:=sumbars(开空,1)>70 ;
滤空:=sumbars(平空,1)>90 ;
//交易系统
if 开多 and 滤多 then begin
SELLSHORT(HOLDING<0,100%,market),PERTRADER; //交易系统之平空操作
end
if 开多 and 滤多 then begin//交易系统之开多操作
BUY(HOLDING=0,100%,market),PERTRADER;
end
if 开空 and 滤空 then begin
SELL(HOLDING>0,100%,market),PERTRADER; //交易系统之平多操作
end
if 开空 and 滤空 then begin
BUYSHORT(HOLDING=0,100%,market),PERTRADER; //交易系统之开空操作
end
代码贴上来了,麻烦帮我看一下,谢谢~!
平多和开空的条件是一样的,但是系统平掉了多单,却没有开空单(实盘账户资金是够开2手的)
你的缕空条件不成立吧。
你把你的代码中的条件输出看下就知道了,还有编写中不要夹带中文字符。可能会造成问题。
ma1:ma(close,5);
ma2:ma(close,10);
开多:=CROSS(MA1,MA2);
平多:=CROSS(MA2,MA1);
开空:CROSS(MA2,MA1);
平空:=CROSS(MA1,MA2);
滤多:sumbars(开空,1)>70 ;
滤空:sumbars(平空,1)>90 ;
//交易系统
if 开多 and 滤多 then begin
SELLSHORT(HOLDING<0,100%,market),PERTRADER; //交易系统之平空操作
end
if 开多 and 滤多 then begin//交易系统之开多操作
BUY(HOLDING=0,100%,market),PERTRADER;
end
if 开空 and 滤空 then begin
SELL(HOLDING>0,100%,market),PERTRADER; //交易系统之平多操作
end
if 开空 and 滤空 then begin
BUYSHORT(HOLDING=0,100%,market),PERTRADER; //交易系统之开空操作
end
aaa:holding;
仔细核对了一下,确实是红色部分条件出了问题,中文字符我以后注意,非常感谢版主!
以下是引用wenarm在2018/3/8 18:27:22的发言:
你的缕空条件不成立吧。
你把你的代码中的条件输出看下就知道了,还有编写中不要夹带中文字符。可能会造成问题。
ma1:ma(close,5);
ma2:ma(close,10);
开多:=CROSS(MA1,MA2);
平多:=CROSS(MA2,MA1);
开空:CROSS(MA2,MA1);
平空:=CROSS(MA1,MA2);
滤多:sumbars(开空,1)>70 ;
滤空:sumbars(平空,1)>90 ;
//交易系统
if 开多 and 滤多 then begin
SELLSHORT(HOLDING<0,100%,market),PERTRADER; //交易系统之平空操作
end
if 开多 and 滤多 then begin//交易系统之开多操作
BUY(HOLDING=0,100%,market),PERTRADER;
end
if 开空 and 滤空 then begin
SELL(HOLDING>0,100%,market),PERTRADER; //交易系统之平多操作
end
if 开空 and 滤空 then begin
BUYSHORT(HOLDING=0,100%,market),PERTRADER; //交易系统之开空操作
end
aaa:holding;