以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]能开多,但是为啥立刻平多呢?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=84387)

--  作者:jason123
--  发布时间:2015/8/25 11:25:10
--  [求助]能开多,但是为啥立刻平多呢?
2015-08-25 11:17:35.802    【后台】IC09 TBuy 第 132 行出现信号
2015-08-25 11:17:35.805    【后台】IC09 TBuy 已成功触发下单操作 价格:6181.499512 数量:1 类型:0 账户:512810491 品种:IC09
2015-08-25 11:17:35.805    【后台】多账户及策略系数 委托账户或者组: 512810491
2015-08-25 11:17:35.806    【后台】CTP登录账户 1 个
2015-08-25 11:17:35.807    【后台】CTP组 512810491 下单
2015-08-25 11:17:35.807    【后台】CTP账户 512810491 下单系数为1.000000 
2015-08-25 11:17:35.808    【后台】账户 512810491 下单,系数调整后下单量:1 
2015-08-25 11:17:35.809    【后台】下单已发送
2015-08-25 11:17:35.810    【后台】金仕达登录账户 0 个
2015-08-25 11:17:35.811    【后台】恒生登录账户 0 个
2015-08-25 11:17:35.811    【后台】子账户 登录账户 0 个
2015-08-25 11:17:35.812    【后台】扩展接口 登录账户 0 个
同一秒马上平掉,这不是我的目的啊
2015-08-25 11:17:59.484    【后台】IC09 TSell 第 190 行出现信号
2015-08-25 11:17:59.485    【后台】IC09 TSell 已成功触发下单操作 价格:6197.000000 数量:0 类型:0 账户:512810491 品种:IC09
2015-08-25 11:17:59.485    【后台】多账户及策略系数 委托账户或者组: 512810491
2015-08-25 11:17:59.486    【后台】CTP登录账户 1 个
2015-08-25 11:17:59.486    【后台】CTP组 512810491 下单
2015-08-25 11:17:59.487    【后台】CTP账户 512810491 下单系数为1.000000 
2015-08-25 11:17:59.487    【后台】账户 512810491 下单,系数调整后下单量:0 
2015-08-25 11:17:59.488    【后台】实际账户 512810491 持仓 0

--  作者:jason123
--  发布时间:2015/8/25 11:27:43
--  
输出
2015-08-25 11:02:09.690       平空T前DYNAINFO2(7,PZ):6153.60   C06:0   TSELLHOLDINGEX(AC,PZ,2):0   THOLDING:1   LONG:0  SHORT:1   A09:-1   TQXD:50.00   XDSJ:50.00   B01:0   TISREMAIN:0   B01:0   A43:-1   B02:0   A15:0   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:-1
2015-08-25 11:17:35.806       开盘了开多:6208.40   TACCOUNT2(3,AC):3213204.52   B04:1   A01:6181.50   LONG:1  SHORT:0   A14:0   LOW:6170.20   TSELLHOLDINGEX(AC,PZ,2):0.00   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING2:0   A43:0   B02:0   A15:0   A14:0   A15:0
2015-08-25 11:17:35.807       做多信号DYNAINFO2(7,PZ):6208.40   A00:1   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:1   TREMAINQTY(4,AC,PZ):0   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0
2015-08-25 11:17:35.808       做多信号止损前(7):6208.40   TSELLHOLDINGEX(AC1,PZ,1):0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:1   TREMAINQTY(4,AC,PZ):0   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0
2015-08-25 11:17:35.811       平多T前DYNAINFO2(7,PZ):6208.40   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:1  SHORT:0   A09:-1   TQXD:24.00   XDSJ:50.00   B01:1   TISREMAIN:1   B01:1   A43:1   B02:0   A15:0   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:-1
2015-08-25 11:17:35.925       做多信号DYNAINFO2(7,PZ):6206.80   A00:0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:1   TREMAINQTY(4,AC,PZ):0   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0
2015-08-25 11:17:35.926       做多信号止损前(7):6206.80   TSELLHOLDINGEX(AC1,PZ,1):0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:1   TREMAINQTY(4,AC,PZ):0   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0

2015-08-25 11:17:59.480       平多T前DYNAINFO2(7,PZ):6206.40   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:1  SHORT:0   A09:7207   TQXD:60.00   XDSJ:50.00   B01:1   TISREMAIN:1   B01:1   A43:0   B02:0   A15:-1   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:6842

--  作者:jinzhe
--  发布时间:2015/8/25 11:28:44
--  
不是你的目的但是根据你代码触发的,而且不是同一秒,而是过了20多秒,触发平仓信号表示当时是平仓条件满足的,所以才会触发平仓信号
--  作者:jason123
--  发布时间:2015/8/25 11:59:47
--  
2015-08-25 09:51:02.019    【后台】IC09 TBuy 第 132 行出现信号
2015-08-25 09:51:02.020    【后台】IC09 TBuy 已成功触发下单操作 价格:6231.566406 数量:1 类型:0 账户:521810491 品种:IC09
2015-08-25 09:51:02.020    【后台】多账户及策略系数 委托账户或者组: 521810491
2015-08-25 09:51:02.021    【后台】CTP登录账户 1 个
2015-08-25 09:51:02.021    【后台】CTP账户 521810491 未有效登录,不做下单处理
2015-08-25 09:51:02.022    【后台】金仕达登录账户 0 个
2015-08-25 09:51:02.022    【后台】恒生登录账户 0 个
2015-08-25 09:51:02.022    【后台】子账户 登录账户 0 个
2015-08-25 09:51:02.023    【后台】扩展接口 登录账户 0 个
2015-08-25 09:51:02.023    【后台】IC09 TCANCELEX 出现信号 类型:2 帐号:521810491
2015-08-25 09:51:02.024    【后台】IC09 TCANCELEX 出现信号 类型:3 帐号:521810491

2015-08-25 09:51:59.635    【后台】IC09 TSell 第 190 行出现信号
2015-08-25 09:51:59.636    【后台】IC09 TSell 已成功触发下单操作 价格:6255.600098 数量:0 类型:0 账户:521810491 品种:IC09
2015-08-25 09:51:59.637    【后台】多账户及策略系数 委托账户或者组: 521810491
2015-08-25 09:51:59.637    【后台】CTP登录账户 1 个
2015-08-25 09:51:59.638    【后台】CTP账户 52810941 未有效登录,不做下单处理
2015-08-25 09:51:59.639    【后台】金仕达登录账户 0 个
2015-08-25 09:51:59.640    【后台】恒生登录账户 0 个
2015-08-25 09:51:59.640    【后台】子账户 登录账户 0 个
2015-08-25 09:51:59.641    【后台】扩展接口 登录账户 0 个

2015-08-25 09:51:02.012       平多T前DYNAINFO2(7,PZ):6230.80   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:1  SHORT:0   A09:-1   TQXD:57.00   XDSJ:50.00   B01:0   TISREMAIN:0   B01:0   A43:1   B02:0   A15:0   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:-1
2015-08-25 09:51:02.159       做多信号DYNAINFO2(7,PZ):6230.80   A00:0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:0   TREMAINQTY(4,AC,PZ):0   B01:0   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0
2015-08-25 09:51:02.161       做多信号止损前(7):6230.80   TSELLHOLDINGEX(AC1,PZ,1):0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:0   TREMAINQTY(4,AC,PZ):0   B01:0   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0
2015-08-25 09:51:02.163       平多T前DYNAINFO2(7,PZ):6230.80   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:0  SHORT:0   A09:0   TQXD:57.00   XDSJ:50.00   B01:0   TISREMAIN:0   B01:0   A43:1   B02:0   A15:0   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:-292
2015-08-25 09:51:02.164       多仓后替换信息:6230.80   LONGX2:0   OPEN:6220.00   HIGH:6230.80   LONG:0  SHORT:0   A09:6231   THOLDING:0   THOLDING2:0   B01:0   TISREMAIN:0   B01:0   A43:1   B02:0   A15:0   A14:0   A06:5617
2015-08-25 09:51:02.670       做多信号DYNAINFO2(7,PZ):6230.80   A00:0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:0   TREMAINQTY(4,AC,PZ):0   B01:0   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0

2015-08-25 09:51:59.620       平多T前DYNAINFO2(7,PZ):6258.80   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:0  SHORT:0   A09:7500   TQXD:60.00   XDSJ:50.00   B01:1   TISREMAIN:0   B01:1   A43:0   B02:0   A15:-1   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:7018
2015-08-25 09:52:59.467       开盘了开多:6269.40   TACCOUNT2(3,AC):0.00   B04:1   A01:6271.80   LONG:1  SHORT:0   A14:0   LOW:6268.80   TSELLHOLDINGEX(AC,PZ,2):0.00   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING2:0   A43:0   B02:0   A15:0   A14:0   A15:0
2015-08-25 09:52:59.468       做多信号DYNAINFO2(7,PZ):6269.40   A00:1   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:1   TREMAINQTY(4,AC,PZ):0   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0

--  作者:jason123
--  发布时间:2015/8/25 12:22:22
--  
输入这样
平多T前DYNAINFO2(7,PZ):6230.80   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:1  SHORT:0   A09:-1   TQXD:57.00   XDSJ:50.00   B01:0   TISREMAIN:0   B01:0   A43:1   B02:0   A15:0   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:-1

代码
IF (C06 AND (TQXD <= XDSJ)) THEN 
BEGIN
平多T:=TSELL(1,TBUYHOLDINGEX(AC,PZ,2),MKT,0,0,AC,PZ);
END

奇怪啊 C06:0 不满足条件,QXD <= XDSJ(这个也不满足啊)
怎么会进去发生TSELL???? 




--  作者:jason123
--  发布时间:2015/8/25 12:29:54
--  
输出如下

2015-08-25 09:52:59.470       平多T前DYNAINFO2(7,PZ):6269.40   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:1  SHORT:0   A09:-1   TQXD:60.00   XDSJ:50.00   B01:1   TISREMAIN:0   B01:1   A43:1   B02:0   A15:0   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:-1
2015-08-25 09:52:59.857       做多信号DYNAINFO2(7,PZ):6269.40   A00:0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:1   TREMAINQTY(4,AC,PZ):0   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0
2015-08-25 09:52:59.860       做多信号止损前(7):6269.40   TSELLHOLDINGEX(AC1,PZ,1):0   TAVGENTERPRICEEX2(AC,PZ,1):0.00   TENTERPRICE:-1.#R  SHORT:0   A14:0   LONG:1   TREMAINQTY(4,AC,PZ):0   B01:1   TBUYHOLDINGEX(AC,PZ,2):0   TSELLHOLDINGEX(AC,PZ,1):0   A43:1   B02:0   A15:0   A14:0   A15:0
2015-08-25 09:52:59.863       平多T前DYNAINFO2(7,PZ):6269.40   C06:0   TBUYHOLDINGEX(AC,PZ,2):0   THOLDING:0   LONG:1  SHORT:0   A09:0   TQXD:60.00   XDSJ:50.00   B01:1   TISREMAIN:0   B01:1   A43:1   B02:0   A15:0   A14:0   TAVGENTERPRICEEX(AC,PZ):0   A06:-284
2015-08-25 09:52:59.865       多仓后替换信息:6269.40   LONGX2:0   OPEN:6268.80   HIGH:6269.40   LONG:1  SHORT:0   A09:6269   THOLDING:0   THOLDING2:0   B01:1   TISREMAIN:0   B01:1   A43:1   B02:0   A15:0   A14:0   A06:5674

--  作者:jason123
--  发布时间:2015/8/25 12:33:49
--  
IF (((A43 = 1) AND (BARPOS > 1)) AND (HIGH > LOW)  ) THEN

if Islastbar then
begin
DEBUGFILE(\'D:\\TEST500.TXT\',\'   做多信号DYNAINFO2(7,PZ):\'&numtostr(DYNAINFO2(7,PZ),2)&\'   A00:\'&numtostr(A00,0)&\'   TAVGENTERPRICEEX2(AC,PZ,1):\'&numtostr(TAVGENTERPRICEEX2(AC,PZ,1),2)&\'   TENTERPRICE:\'&numtostr(TENTERPRICE,2)&\'  SHORT:\'&numtostr(SHORT,0)&\'   A14:\'&numtostr(A14,0)&\'   LONG:\'&numtostr(LONG,0)&\'   TREMAINQTY(4,AC,PZ):\'&numtostr(TREMAINQTY(4,AC,PZ),0)&\'   B01:\'&numtostr(B01,0)&\'   TBUYHOLDINGEX(AC,PZ,2):\'&numtostr(TBUYHOLDINGEX(AC,PZ,2),0)&\'   TSELLHOLDINGEX(AC,PZ,1):\'&numtostr(TSELLHOLDINGEX(AC,PZ,1),0)&\'   A43:\'&numtostr(A43,0)&\'   B02:\'&numtostr(B02,0)&\'   A15:\'&numtostr(A15,0)&\'   A14:\'&numtostr(A14,0)&\'   A15:\'&numtostr(A15,0),0); 
END

上面是输出的代码
begin

--  作者:jason123
--  发布时间:2015/8/25 13:10:17
--  
代码如下
 {没有仓位}
if A43=0 and 多信号 and ((TBUYHOLDINGEX(AC,PZ,1)=0 AND (TSELLHOLDINGEX(AC,PZ,1) )= 0)then begin
TBUY(1,B04,LMT,A01,0,AC,PZ); 
A43:=1;
END 
if A43=0 and 空信号 and ((TBUYHOLDINGEX(AC,PZ,1)=0 AND (TSELLHOLDINGEX(AC,PZ,1) = 0)) then begin
TBUYSHORT(1,B04,LMT,A01,0,AC,PZ); 
A43:=-1;
END 
{有买持仓位}
if A43:=1   then begin
TCANCELEX(1,2,AC,PZ);//取消未成交的平多单
TCANCELEX(1,3,AC,PZ);//取消未成交的开空单
{如有没有平仓的空单,止损50个点}
IF (TSELLHOLDINGEX(AC,PZ,1)>0 AND (DYNAINFO(7)-TAVGENTERPRICEEX2(AC,PZ,1)>=ZSDS))then BEGIN
TSELLSHORT(1,TSELLHOLDINGEX(AC,PZ,1),MKT,0,0,AC,PZ);
END{如有没有平仓的空单,全部取消}
if 平多信号 then begin
TSELL(1,TBUYHOLDINGEX(AC,PZ,2),LMT,A02,0,AC,PZ);
A43:=0;
END
if 开空信号 and (TBUYHOLDINGEX(AC,PZ,1)>=0)then begin
TBUYSHORT(1,B04,LMT,A01,0,AC,PZ);
A43:=-(1)
END
END
{有卖持仓位}
if A43:=-1   then begin
A43=-1TCANCELEX(1,4,AC,PZ);//取消未成交平空单
A43=-1TCANCELEX(1,1,AC,PZ);//取消未成交开多单
{如有没有平仓的多单,止损50个点}
IF (TBUYHOLDINGEX(AC,PZ,1)>0 AND (TAVGENTERPRICEEX2(AC,PZ,0)-DYNAINFO(7)>=ZSDS))then BEGIN
TSELL(1,TBUYHOLDINGEX(AC,PZ,1),MKT,0,0,AC,PZ);
END{如有没有平仓的多单,止损50个点}
if 平空信号 then begin
TSELLSHORT(1,TSELLHOLDINGEX(AC,PZ,2),LMT,A02,0,AC,PZ);
A43=0;
END
if 开多信号 then begin
B02=1TBUY((TSELLHOLDINGEX(AC,PZ,1)>=0),B04,LMT,A01,0,AC,PZ);
A43:=1;
END
A43=1
END
.........................
以上是我的代码结构

--  作者:jinzhe
--  发布时间:2015/8/25 13:12:35
--  
你的调试语句是在这段平仓代码之前还是之后?你要写在平仓代码之前,而且是紧挨着这段平仓代码,中间如果有其他语句会失真
--  作者:jason123
--  发布时间:2015/8/25 13:15:17
--  
已经按照版主的意思,把条件全部写到 if 里面了啊