以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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; |