以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 为什么图上没有任何开平仓的成交显示 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166529) |
-- 作者:627048 -- 发布时间:2018/11/16 13:31:26 -- 为什么图上没有任何开平仓的成交显示 //该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!! //适用模式:“走完一根K线以后” //若用户模式选为“固定时间间隔”,请将"交易条件"中的CLOSE改为OPEN,避免信号闪烁。 // //中间变量 MA1:=MA(CLOSE,5); MA2:=MA(CLOSE,10); MA3:=MA(C,60); S1:=MA1>REF(MA1,1); X1:=MA1<REF(MA1,1); S2:=MA1>REF(MA2,1); X2:=MA1<REF(MA2,1); S3:=MA3>REF(MA3,1); X3:=MA3<REF(MA3,1); 手数:=ss; //交易条件 开多平空条件:=S1 AND S2 AND S3 AND S1>S2 AND S2>S3 ;//开多平空条件 开空平多条件:=X1 AND X2 AND X3 AND X1<X2 AND X2<X3 ;//开空平多条件 //交易系统 平空:SELLSHORT(开多平空条件,手数,MARKET); 平多:SELL(开空平多条件,手数,MARKET); 开多:BUY(开多平空条件,手数,MARKET); 开空:BUYSHORT(开空平多条件,手数,MARKET); 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; //注意交易系统先开后平的原则
|
-- 作者:FireScript -- 发布时间:2018/11/16 13:37:32 -- S1 AND S2 AND S3 AND S1>S2 AND S2>S3 这个判断语句是永远不成立的。 这个判断语句是前后矛盾的,s1,s2,s3的值都只有0 和1 种情况,假设s1成立,s2,s3也成立相当于要求他们都是1,同时还要求1大于1,肯定不行的。 |
-- 作者:627048 -- 发布时间:2018/11/16 13:46:26 -- 我是这么认为的,S1是5日线上涨的,S2是10日线上涨的,S3是60日线上涨的 买入条件是,3条线都上涨,而且是正排列,这样写错了吗?那要怎么写?谢谢老师! |
-- 作者:FireScript -- 发布时间:2018/11/16 14:05:45 -- 问题是你拿s1和s2对比是什么意思,也就是 s1>s2 和s2>s3。你要判断的是ma1 ma2 ma3 而不是s1 s2 s3. |
-- 作者:627048 -- 发布时间:2018/11/16 14:19:12 -- 明白了,我把SI 改成M1后,还是没有成交信号?哪里又错了吗?另外,MA1>MA2 AND MA2>MA3,我可以写MA1>MA2>MA3吗? MA1:=MA(CLOSE,A); MA2:=MA(CLOSE,B); MA3:=MA(C,D); S1:=MA1>REF(MA1,1); X1:=MA1<REF(MA1,1); S2:=MA1>REF(MA2,1); X2:=MA1<REF(MA2,1); S3:=MA3>REF(MA3,1); X3:=MA3<REF(MA3,1); 手数:=ss; //交易条件 开多平空条件:=S1 AND S2 AND S3 AND MA1>MA2 AND MA2>MA3 ;//开多平空条件 开空平多条件:=X1 AND X2 AND X3 AND MA1<MA2 AND MA2<MA3 ;//开空平多条件 //交易系统 平空:SELLSHORT(开多平空条件,手数,MARKET); 平多:SELL(开空平多条件,手数,MARKET); 开多:BUY(开多平空条件,手数,MARKET); 开空:BUYSHORT(开空平多条件,手数,MARKET); 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; //注意交易系统先开后平的原则
|
-- 作者:627048 -- 发布时间:2018/11/16 14:23:11 -- 有信号了。谢谢!又出来一个问题,怎么样才能一开一平,而不是连续的开,连续的平。 |
-- 作者:FireScript -- 发布时间:2018/11/16 14:28:42 -- 做下调整: 平空:SELLSHORT(开多平空条件,手数,MARKET); 开多:BUY(开多平空条件 and holding=0,手数,MARKET); 平多:SELL(开空平多条件,手数,MARKET); 开空:BUYSHORT(开空平多条件 and holding=0,手数,MARKET); 1.一般代码顺序是先平后开 2.加一个holding=0的限制就可以限制连续开仓了。
|
-- 作者:627048 -- 发布时间:2018/11/16 15:55:16 -- 还有个问题,能不能,不要连续交易,平仓的同时又开仓?就是说可以加个止损或者止盈吗?一个开仓BUY,可以又多个SELL吗?这个有点搞,买开跟买平开,是一个函数吗? 另外,MA1>MA2 AND MA2>MA3,我可以写MA1>MA2>MA3吗?
|
-- 作者:FireScript -- 发布时间:2018/11/16 16:12:21 -- 1.“不要连续交易” 这个是指开平错开不在一个K上?没太明白。我的理解是连续多个K,持续发出同样类型信号。比如连续的K连续开多这种。 可以添加单独的止损止盈代码,可用一个BUY 多个sell。 2.开多 开空 平多 平空 分别是四个函数。范例里面是反手,所以平多和开空条件一致而已。语句不一样的。 3.不可以 只能用and连接。 |