以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 加了全局变量,止损后还是会重新开仓如何解决 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=55010) |
|
-- 作者:michael000 -- 发布时间:2013/8/12 15:35:48 -- 加了全局变量,止损后还是会重新开仓如何解决 止损已经用了全局变量来限定 k线走完模式 [此贴子已经被作者于2013/8/12 15:37:02编辑过]
|
|
-- 作者:jinzhe -- 发布时间:2013/8/12 15:36:45 -- 帖代码 |
|
-- 作者:michael000 -- 发布时间:2013/8/12 15:40:57 -- variable:zs=c,hl=c,b=0,s=0; ROC:=(CLOSE-REF(CLOSE,N))/REF(CLOSE,N)*100; 手数:=ss; //交易条件 开多条件 :=C<REF(C,1) AND ROC>ROCMA and b=0;
//止损止盈 if 开空条件 and HOLDING>0 then sell(1,手数,MARKET),ORDERQUEUE; if 开多条件 and HOLDING=0 then begin
if 开空条件 and HOLDING=0 then begin
if holding<0 and l<hl then begin//上移最高点 |
|
-- 作者:michael000 -- 发布时间:2013/8/12 15:47:20 -- 具体情况是如果止损的那条k线符合开仓条件的话,那下一条k线又会重新开仓,但如果止损那条k线不符合开仓条件,那么就正常了,在同方向都不会再开仓了 |
|
-- 作者:jinzhe -- 发布时间:2013/8/12 16:03:11 -- 你这有两个开仓语句啊,全局变量只限定了一个,没有限定另外一个 |
|
-- 作者:michael000 -- 发布时间:2013/8/12 16:11:33 -- 有两个?只有一个啊
if 开多条件 and HOLDING=0 then begin
if 开空条件 and HOLDING=0 then begin |
|
-- 作者:jinzhe -- 发布时间:2013/8/12 16:25:32 -- S要限定平空开多,B要限定平多开空, 同向限定不行 |
|
-- 作者:michael000 -- 发布时间:2013/8/12 16:41:06 -- 但是我止损平仓已经有控制平空仓不能再开空仓的
if holding<0 and h>zs then begin 开空条件也限定了s=0才能开空仓: 开空条件 :=C>REF(C,1) AND ROC<ROCMA and s=0;
就是不明白为什么还是会出现平仓后又重新开仓的情况,我个人认为是不是因为是历史回测,在同一条k线里面的话,这个赋值体现不出来的缘故呢,因为出现错误的地方都是因为那条k线既符合止损平仓条件又符合开仓条件的 |
|
-- 作者:michael000 -- 发布时间:2013/8/12 17:26:39 -- ? |
|
-- 作者:michael000 -- 发布时间:2013/8/13 11:15:35 -- 请管理员回答一下好吗? |