以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  不开仓,可平仓  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=161941)

--  作者:大豆0911
--  发布时间:2018/3/8 15:12:07
--  不开仓,可平仓
为什么我的代码,平仓和开多单都正常,但是却没有按照要求开空单?可能是什么原因呢?谢谢版主
--  作者:FireScript
--  发布时间:2018/3/8 15:40:31
--  
描述下具体的现象,然后帖下你的代码  说明下你开空条件初始的思路是什么样子的。 这种可能是你的代码并没有实现你需求。具体我还要看下你的描述和代码。
--  作者:大豆0911
--  发布时间:2018/3/8 17:47:57
--  
开多: =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



--  作者:大豆0911
--  发布时间:2018/3/8 17:49:52
--  
代码贴上来了,麻烦帮我看一下,谢谢~!
平多和开空的条件是一样的,但是系统平掉了多单,却没有开空单(实盘账户资金是够开2手的)

--  作者: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;

--  作者:大豆0911
--  发布时间:2018/3/8 23:52:28
--  
 
仔细核对了一下,确实是红色部分条件出了问题,中文字符我以后注意,非常感谢版主!
以下是引用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;