金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 5865|回复: 68

撤单语句未执行

[复制链接]

30

主题

198

帖子

198

积分

Rank: 4

等级: 专业版

注册:
2024-9-22
曾用名:
发表于 2024-10-11 15:19 | 显示全部楼层 |阅读模式
五分钟K线 1秒轮询
TCANCEL(XCLS=1 AND TISREMAIN(1)>0,1);                                                                 //所有未成交挂单撤单      
TCANCEL(XCLS=1 AND TISREMAIN(2)>0,2);  
TCANCEL(XCLS=1 AND TISREMAIN(3)>0,3);  
TCANCEL(XCLS=1 AND TISREMAIN(4)>0,4);  
TSELL(XCLS=1 AND TISREMAIN(1)=0 AND TISREMAIN(2)=0,       TBUYHOLDING(1),LMT,XCLOSE-3*MINDIFF);        //正常平仓
TSELLSHORT(XCLS=1 AND TISREMAIN(3)=0 AND TISREMAIN(4)=0,TSELLHOLDING(1),LMT,XCLOSE+3*MINDIFF);   
平仓预警动作了,但是因为没有撤回卖单,所有持仓可卖是0.
查了日志,确实没有撤单动作。
请教一下,这是上面的代码有问题吗?


回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-10-11 15:24 | 显示全部楼层
没有触发撤单,那要输出条件,看XCLS和TISREMAIN(2)、TISREMAIN(4)是否满意撤单条件啊。另外发送撤单指令到柜台,然后柜台返回可用持仓,这个中间是有时间差的,不可能你撤单指令一发送,就立马能够返回可用持仓的。你的平仓条件中需要在条件中判断有可用持仓了,再触发平多和平空。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

198

帖子

198

积分

Rank: 4

等级: 专业版

注册:
2024-9-22
曾用名:
 楼主| 发表于 2024-10-11 15:30 | 显示全部楼层
这个判断我马上加上去。
但是日志里,前面的TCANCELL语句,没有撤单动作,这个怎么弄
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-10-11 15:32 | 显示全部楼层
这个只能加debugfile输出来条件排查原因了,不执行撤单,肯定是条件没有满足。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

198

帖子

198

积分

Rank: 4

等级: 专业版

注册:
2024-9-22
曾用名:
 楼主| 发表于 2024-10-11 15:38 | 显示全部楼层
TSELL的这个条件 XCLS=1 AND TISREMAIN(1)=0 AND TISREMAIN(2)=0,都成立了,但是撤单还没做,这个逻辑上也是有点奇怪
没有查到TISREMAN()这个函数的返回值,是怎么定义的。账户里的4手多单,都挂着高价卖单未成交,这个是肯定的。
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-10-11 15:45 | 显示全部楼层
你输出下就知道了啊,TISREMAIN函数是依赖于后台程序化交易明细的,在后台程序化中部分成交算成交的,那这个函数就不会返回还有未成交单的,且这个函数只能读取到程序化开的仓,手工开的仓是读取不到的,该函数不是直接读取的实际账户的未成交单情况啊。用TGLOBALSUBMITEX这个函数是直接读取的账户栏上的未成交数量的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

198

帖子

198

积分

Rank: 4

等级: 专业版

注册:
2024-9-22
曾用名:
 楼主| 发表于 2024-10-11 15:48 | 显示全部楼层
感谢!
函数很多,一下子没有都了解,我用这个TGLOBALSUBMITEX重写
回复

使用道具 举报

30

主题

198

帖子

198

积分

Rank: 4

等级: 专业版

注册:
2024-9-22
曾用名:
 楼主| 发表于 2024-10-11 16:31 | 显示全部楼层
TREMAINQTY函数是不是也可以?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-10-11 16:35 | 显示全部楼层
具体要看你的整个策略交易逻辑的,这个函数也是依赖后台程序化交易明细的。
截图202410111635118120.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

198

帖子

198

积分

Rank: 4

等级: 专业版

注册:
2024-9-22
曾用名:
 楼主| 发表于 2024-10-14 10:31 | 显示全部楼层
新写的代码,还是不做撤单动作,但是能做持有仓位的平仓。老师再帮看一下,谢谢!
日志:
2024-10-14 09:10:04.949    【后台】OI01 TCancel 第 135 行出现信号 类型:2
2024-10-14 09:10:04.949    【后台】OI01 TSell 第 169 行 策略:<DL-X111RDL-X111R> K线:2024.10.14 13:15:00 出现信号
2024-10-14 09:10:04.949    【后台】OI01 TSell 已成功触发下单操作 价格:9598.088867 数量:1 类型:0 账户: 品种:OI01

代码:
IF XCLS=1 THEN                                                                                                         //正常平仓
BEGIN
TCANCEL(TGLOBALSUBMITEX(1,'','',0)>0,1);                                                                  //撤所有未成交委托                                                                                                                TCANCEL(TGLOBALSUBMITEX(2,'','',0)>0,2);  
TCANCEL(TGLOBALSUBMITEX(3,'','',0)>0,3);  
TCANCEL(TGLOBALSUBMITEX(4,'','',0)>0,4);               
TSELL(TGLOBALSUBMITEX(1,'','',0)=0 AND TGLOBALSUBMITEX(2,'','',0)=0 AND TBUYHOLDING(1)>0,                  
          TBUYHOLDING(1),LMT,XCLOSE+3*MINDIFF);                                                                                       
TSELLSHORT(TGLOBALSUBMITEX(3,'','',0)=0 AND TGLOBALSUBMITEX(4,'','',0)=0 AND TSELLHOLDING(1)>0,
          TSELLHOLDING(1),LMT,XCLOSE+3*MINDIFF);   
END

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-28 08:12 , Processed in 0.157364 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表