以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]K线走完模式出现信号消失问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=61859)

--  作者:laicsh
--  发布时间:2014/2/20 15:01:42
--  [求助]K线走完模式出现信号消失问题
如题,模型中条件判断都是以Close相关的变量做为判断条件的,模型设置为逐K线计算,K线走完模式,10s周期,未采用高频模式,开单代码如buy(1,1,market)。 出现的问题:信号消失。 疑问:1,公式中,单根K线上每个TICK更新,输出的变量也随之更新,这貌似和K线走完模式定义不符合,个人猜测公式运行机理:在K线走完模式下,公式会随着每根K线TICK更新后计算一次,但下单的语句如buy,sell等是K线走完之后发出指令,不知道对不对。 2,假如运行机理如1中猜想一致,那么也不会出现信号消失的问题,所以会不会是设置错误,感觉K线走完模式这个设置没起到作用。
[此贴子已经被作者于2014/2/20 15:03:08编辑过]

--  作者:jinzhe
--  发布时间:2014/2/20 15:11:47
--  
把公式代码 贴一下,光靠猜测不能判断问题
--  作者:laicsh
--  发布时间:2014/2/20 15:24:14
--  
也不能说是猜测,但很明显的是模型在K线没走完时出现开平仓导致信号闪,和我的设置不符合
--  作者:jinzhe
--  发布时间:2014/2/20 15:43:45
--  
帖成交明细,
--  作者:laicsh
--  发布时间:2014/2/20 16:02:58
--  
BBI:(MA(CLOSE,M1)+MA(CLOSE,M2)+MA(CLOSE,M3)+MA(CLOSE,M4))/4,COLORMAGENTA; DIFF := EMA(CLOSE,S) - EMA(CLOSE,P); DEA := EMA(DIFF,M); MACD1 := 2*(DIFF-DEA); k1:=STKINDI(\'\',\'KDJ.K\',0,KD大周期,0),NOAXIS; d1:=STKINDI(\'\',\'KDJ.D\',0,KD大周期,0),NOAXIS,COLORYELLOW; k:ref(k1,1),NOAXIS; d:ref(d1,1),NOAXIS; BBI做多区:=FALSE; BBI做空区:=FALSE; MACD做多区:=FALSE; MACD做空区:=FALSE; KD做多区:=FALSE; KD做空区:=FALSE; if CLOSE-OPEN>0 and CLOSE>BBI and HIGH-BBI>=(HIGH-LOW)*0.6 then BBI做多区:=TRUE; if CLOSE-OPEN<0 and="and" CLOSE=(HIGH-LOW)*0.6 then BBI做空区:=TRUE; if diff>dea and dea>0 then MACD做多区:=TRUE; if diffd then KD做多区:=TRUE; if k0 and ENTERBARS>=0 then BEGIN if 止损级别=1 then if ENTERPRICE-close>=固定止损 then sell(1,100%,market); end 贴了所用的指标和一部分开平仓代码,其他的类似
--  作者:jinzhe
--  发布时间:2014/2/20 16:04:06
--  
看下成交明细里面的情况,有没有记录下单日志?
--  作者:laicsh
--  发布时间:2014/2/20 16:05:45
--  
没有。。。
--  作者:jinzhe
--  发布时间:2014/2/20 16:25:10
--  

账户栏里面有成交明细,看看交易情况

如果可以必须要记录下单日志,看看是不是其他的下单干扰了正常的下单


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:laicsh
--  发布时间:2014/2/20 18:54:54
--  
if c>o and HOLDING<=0 then BEGIN
if holding<0 then sellshort(1,100%,MARKET);
buy(1,1,MARKET);
end 
if c<o and HOLDING>=0 then BEGIN
if holding>0 then sell(1,100%,MARKET);
buyshort(1,1,MARKET);
end 
比如这个简单模型,回测的时候就有信号消失

--  作者:jinzhe
--  发布时间:2014/2/21 9:18:55
--  
举个例子说明一下你认为的信号消失情况