以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  策略测试中,一根K线同时出现开平仓的问题,请教版主  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=83254)

--  作者:rainbowqqm
--  发布时间:2015/8/13 22:35:46
--  策略测试中,一根K线同时出现开平仓的问题,请教版主
平多条件:从开仓后的最高值回撤5个ATR OR 开仓损失率达到设定值
平空条件:从开仓后的最低值回撤5个ATR OR 开仓损失率达到设定值

代码:
平多条件:=(HHv(c,enterbars+1)-c)>=5*ATR or (enterprice-c)/enterprice>=(最大损失率/1000);
平空条件:=(c-LLv(c,enterbars+1))>=5*ATR or (C-enterprice)/enterpirce>=(最大损失率/1000);

//如果当前是没有持仓的状态
IF holding=0 THEN BEGIN
//多头进场
IF 开多条件 THEN BEGIN
BUY(1,1,market);
END 
//空头进场
IF 开空条件 THEN BEGIN
BUYSHORT(1,1,market);
END
END

aa:=ref(平多条件,1);
IF holding>0 and aa then begin
SELL(aa,HOLDING,market);
end

bb:=ref(平空条件,1);
IF holding<0 and bb then begin
SELLshort(bb,HOLDING,market);
end

此代码在图表测试过程中,经常出现开平仓出现在同一根K线上的情况,导致测试结果严重失真,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看

请教版主,这代码是哪儿出了问题??!!万分感谢。



--  作者:jinzhe
--  发布时间:2015/8/14 8:54:35
--  
不明白失真在哪里?条件不满足但是有信号?还是不好看就觉得失真了?
--  作者:rainbowqqm
--  发布时间:2015/8/14 13:38:38
--  
开仓和平仓在同一根K线上,不是反手的,就是开了就平掉,和止损止盈条件不符,我估计是代码错了,可我换了thisclose,market,nextopen,还是存在这种情况。
--  作者:rainbowqqm
--  发布时间:2015/8/14 13:39:24
--  
开仓是对的,就是不知道怎么刚开就在同一K线上就平了。
--  作者:jinzhe
--  发布时间:2015/8/14 13:49:41
--  
平多条件:=(HHv(c,enterbars+1)-c)>=5*ATR or (enterprice-c)/enterprice>=(最大损失率/1000);
平空条件:=(c-LLv(c,enterbars+1))>=5*ATR or (C-enterprice)/enterpirce>=(最大损失率/1000);

把这两句写在开仓语句和平仓语句之间
--  作者:rainbowqqm
--  发布时间:2015/8/15 19:45:07
--  
平仓条件调到开仓后也不行,还是存在这问题。版主,请帮忙看看,是不是代码哪儿有逻辑错误?
--  作者:wzywzy292
--  发布时间:2015/8/16 9:28:33
--  
 
aa:=ref(平多条件,1);
IF holding>0 and aa  and enterbars>0 then begin
SELL(aa,HOLDING,market);
end

bb:=ref(平空条件,1);
IF holding<0 and bb  and enterbars>0 then begin
SELLshort(bb,HOLDING,market);
end

--  作者:jinzhe
--  发布时间:2015/8/17 9:09:03
--  
那么你在平仓条件里面加上enterbars>0