欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 【zzc_PEL】追撤单

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5534人关注过本帖树形打印复制链接

主题:【zzc_PEL】追撤单

帅哥哟,离线,有人找我吗?
yukizzc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
【zzc_PEL】追撤单  发帖心情 Post By:2019/7/4 15:04:56 [只看该作者]

追撤单的代码必须在后台实现,我们平时写的时候经常会出错,出错代码可以看我3楼的代码,那个应该大部人都是那样写的。但其实是不对的
我这里1楼给出一种写法,2楼给出对应的日志。三楼和四楼是错误代码,以及对应的下单日志,这样大家也可以看出为何那种写法会有问题吧





开仓条件:tbuyholding(1)=0;
平仓条件:tbuyholding(1)>0;
//正常开平程序
if 开仓条件 then
begin 
tbuy(1,1,lmt,close-5*MINDIFF);
end

if 平仓条件 then 
BEGIN
tsell(1,1,lmt,close+5*MINDIFF);
end 


//开仓的简单,撤单后直接再开就可以了
if TISPRVREMAIN(1)=1 and currenttime-TORDERTIME( 1,1 )>20 then 
BEGIN
TCANCEL(1,1);
tbuy(1,1,mkt);
end 


//平仓时候,因为你撤单动作发出去,单子并不是立即解冻的,需要用一个全局变量去记录
//然后根据变量=1,表示执行过撤单了等下次轮训时候配合持仓大于0进行撤单
if TISPRVREMAIN(2)=1 and  currenttime-TORDERTIME( 2,1 )>20 then 
BEGIN
TCANCEL(1,2);
EXTGBDATASET(STKLABEL,1);
end 

if EXTGBDATA(STKLABEL)=1 and tbuyholding(1)>0 then 
begin 
tsell(1,1,mkt);
EXTGBDATASET(STKLABEL,0);
end



[此贴子已经被作者于2019/7/4 15:19:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/7/4 15:14:42 [只看该作者]

2019-07-04 15:12:10.894    【后台】T00 TBuy 第 8 行 策略:<Formula103> 出现信号
2019-07-04 15:12:10.895    【后台】T00 TBuy 已成功触发下单操作 价格:98.174995 数量:1 类型:0 账户: 品种:T00
2019-07-04 15:12:10.896    【后台】下单已发送
2019-07-04 15:12:10.898    【后台】T00 运行结束
2019-07-04 15:12:10.899    【下单】T09 价98.174995 量1 买卖0 类型0 开平0 账户88 Formula 1
2019-07-04 15:12:10.900    【下单】已提交,订单ID :662294523
2019-07-04 15:12:10.913    【指令】收到回报指令 ID = 662294523
2019-07-04 15:12:10.921    【回报】88 : T09 - 已报单 1 价格:98.175 开 买
2019-07-04 15:12:10.922    【指令】收到回报指令 ID = 662294523
2019-07-04 15:12:10.922    【指令】收到Order回报指令 ID = 662294523 Status = 3

2019-07-04 15:12:31.096    【后台】T00 TCancel 出现信号 类型:1
2019-07-04 15:12:31.101    【后台】T00 TBuy 第 24 行 策略:<Formula103> 出现信号
2019-07-04 15:12:31.102    【后台】T00 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:T00
2019-07-04 15:12:31.103    【后台】下单已发送
2019-07-04 15:12:31.106    【后台】T00 运行结束
2019-07-04 15:12:31.106    【下单】T09 价0.000000 量1 买卖0 类型1 开平0 账户88 Formula 1
2019-07-04 15:12:31.107    【下单】已提交,订单ID :662294524
2019-07-04 15:12:31.126    【回报】88 : T09 10年国债1909 - 已撤单 量:1
2019-07-04 15:12:31.127    【指令】收到回报指令 ID = 662294523
2019-07-04 15:12:31.137    【指令】收到回报指令 ID = 662294524
2019-07-04 15:12:31.145    【回报】88 : T09 - 已报单 1 价格:98.225 开 买
2019-07-04 15:12:31.146    【指令】收到回报指令 ID = 662294524
2019-07-04 15:12:31.146    【指令】收到Order回报指令 ID = 662294524 Status = 3
2019-07-04 15:12:31.150    【指令】收到回报指令 ID = 662294524
2019-07-04 15:12:31.169    【指令】收到成交回报指令 ORDERID = 662294524
2019-07-04 15:12:31.175    【回报】88 : T1909 - 已成交 1 价格:98.210 开 买
2019-07-04 15:12:31.175    【回报】88 : T1909 - 全部成交 1


2019-07-04 15:12:31.203    【后台】T00 TSell 第 14 行 策略:<Formula103> 出现信号
2019-07-04 15:12:31.204    【后台】T00 TSell 已成功触发下单操作 价格:98.235001 数量:1 类型:0 账户: 品种:T00
2019-07-04 15:12:31.204    【后台】实际账户持仓 1
2019-07-04 15:12:31.205    【后台】下单已发送
2019-07-04 15:12:31.206    【后台】T00 运行结束
2019-07-04 15:12:31.206    【下单】T09 价98.235001 量1 买卖1 类型0 开平1 账户88 Formula 1
2019-07-04 15:12:31.207    【下单】已提交,订单ID :662294525
2019-07-04 15:12:31.220    【指令】收到回报指令 ID = 662294525
2019-07-04 15:12:31.227    【回报】88 : T09 - 已报单 1 价格:98.235 平 卖
2019-07-04 15:12:31.228    【指令】收到回报指令 ID = 662294525
2019-07-04 15:12:31.228    【指令】收到Order回报指令 ID = 662294525 Status = 3

2019-07-04 15:12:52.079    【后台】T00 TCancel 出现信号 类型:2
2019-07-04 15:12:52.080    【后台】T00 运行结束
2019-07-04 15:12:52.120    【回报】88 : T09 10年国债1909 - 已撤单 量:1
2019-07-04 15:12:52.131    【指令】收到回报指令 ID = 662294525
2019-07-04 15:12:52.175    【后台】T00 TSell 第 41 行 策略:<Formula103> 出现信号
2019-07-04 15:12:52.175    【后台】T00 TSell 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:T00
2019-07-04 15:12:52.176    【后台】实际账户持仓 1
2019-07-04 15:12:52.176    【后台】下单已发送
2019-07-04 15:12:52.262    【后台】T00 运行结束
2019-07-04 15:12:52.262    【下单】T09 价0.000000 量1 买卖1 类型1 开平1 账户88 Formula 1
2019-07-04 15:12:52.265    【下单】已提交,订单ID :662294526
2019-07-04 15:12:52.271    【指令】收到回报指令 ID = 662294526
2019-07-04 15:12:52.282    【回报】88 : T09 - 已报单 1 价格:98.190 平 卖
2019-07-04 15:12:52.290    【指令】收到回报指令 ID = 662294526
2019-07-04 15:12:52.290    【指令】收到Order回报指令 ID = 662294526 Status = 3
2019-07-04 15:12:52.296    【后台】T00 运行结束
2019-07-04 15:12:52.300    【指令】收到回报指令 ID = 662294526
2019-07-04 15:12:52.316    【指令】收到成交回报指令 ORDERID = 662294526
2019-07-04 15:12:52.316    【指令】平仓计量 EBuy:0 ESell:0
2019-07-04 15:12:52.321    【回报】88 : T1909 - 已成交 1 价格:98.205 平 卖
2019-07-04 15:12:52.322    【回报】88 : T1909 - 全部成交 1
2019-07-04 15:12:52.413    【后台】T00 运行结束

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/7/4 15:16:43 [只看该作者]

//如果不做记录,直接撤单后马上追单,代码如下。
if TISPRVREMAIN(1)=1 and currenttime-TORDERTIME( 1,1 )>20 then 
BEGIN
TCANCEL(1,1);
tbuy(1,1,mkt);
end 

if TISPRVREMAIN(2)=1 and  currenttime-TORDERTIME( 2,1 )>20 then 
BEGIN
TCANCEL(1,2);
tsell(1,1,mkt);
end 


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/7/4 15:21:26 [只看该作者]

2019-07-04 15:09:47.044    【下单】已提交,订单ID :662294519
2019-07-04 15:09:47.056    【指令】收到回报指令 ID = 662294519
2019-07-04 15:09:47.099    【回报】88 : T09 - 已报单 1 价格:98.175 开 买
2019-07-04 15:09:47.100    【指令】收到回报指令 ID = 662294519
2019-07-04 15:09:47.101    【指令】收到Order回报指令 ID = 662294519 Status = 3

2019-07-04 15:10:00.025    【后台】T00 TCancel 出现信号 类型:1
2019-07-04 15:10:00.036    【后台】T00 TBuy 第 19 行 策略:<Formula103> 出现信号
2019-07-04 15:10:00.037    【后台】T00 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:T00
2019-07-04 15:10:00.038    【后台】下单已发送
2019-07-04 15:10:00.041    【后台】T00 运行结束
2019-07-04 15:10:00.041    【下单】T09 价0.000000 量1 买卖0 类型1 开平0 账户88 Formula 1
2019-07-04 15:10:00.041    【下单】已提交,订单ID :662294520
2019-07-04 15:10:00.056    【回报】88 : T09 10年国债1909 - 已撤单 量:1
2019-07-04 15:10:00.059    【指令】收到回报指令 ID = 662294519
2019-07-04 15:10:00.069    【指令】收到回报指令 ID = 662294520
2019-07-04 15:10:00.077    【回报】88 : T09 - 已报单 1 价格:98.220 开 买
2019-07-04 15:10:00.081    【指令】收到回报指令 ID = 662294520
2019-07-04 15:10:00.082    【指令】收到Order回报指令 ID = 662294520 Status = 3
2019-07-04 15:10:00.089    【指令】收到回报指令 ID = 662294520
2019-07-04 15:10:00.104    【指令】收到成交回报指令 ORDERID = 662294520
2019-07-04 15:10:00.110    【回报】88 : T1909 - 已成交 1 价格:98.205 开 买
2019-07-04 15:10:00.111    【回报】88 : T1909 - 全部成交 1



2019-07-04 15:10:00.135    【后台】T00 TSell 第 11 行 策略:<Formula103> 出现信号
2019-07-04 15:10:00.136    【后台】T00 TSell 已成功触发下单操作 价格:98.224998 数量:1 类型:0 账户: 品种:T00
2019-07-04 15:10:00.136    【后台】实际账户持仓 1
2019-07-04 15:10:00.136    【后台】下单已发送
2019-07-04 15:10:00.138    【后台】T00 运行结束
2019-07-04 15:10:00.138    【下单】T09 价98.224998 量1 买卖1 类型0 开平1 账户88 Formula 1
2019-07-04 15:10:00.139    【下单】已提交,订单ID :662294521
2019-07-04 15:10:00.156    【指令】收到回报指令 ID = 662294521
2019-07-04 15:10:00.165    【回报】88 : T09 - 已报单 1 价格:98.225 平 卖
2019-07-04 15:10:00.174    【指令】收到回报指令 ID = 662294521
2019-07-04 15:10:00.174    【指令】收到Order回报指令 ID = 662294521 Status = 3

2019-07-04 15:10:21.106    【后台】T00 TCancel 出现信号 类型:2
2019-07-04 15:10:21.107    【后台】T00 TSell 第 28 行 策略:<Formula103> 出现信号
2019-07-04 15:10:21.108    【后台】T00 TSell 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:T00
2019-07-04 15:10:21.109    【后台】实际账户持仓 0
2019-07-04 15:10:21.110    【后台】T00 运行结束
2019-07-04 15:10:21.135    【回报】88 : T09 10年国债1909 - 已撤单 量:1
2019-07-04 15:10:21.139    【指令】收到回报指令 ID = 662294521


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/7/4 15:26:20 [只看该作者]

四楼的日志,我们可以发现撤单后立即出发tsell指令时,发现持仓是0导致我们无法进行平仓,因为时间间隔只有
2019-07-04 15:10:21.106    【后台】T00 TCancel 出现信号 类型:2
2019-07-04 15:10:21.107    【后台】T00 TSell 第 28 行 策略:<Formula103> 出现信号
0.001秒太短了

二楼的日志我们可以看到
2019-07-04 15:12:52.079    【后台】T00 TCancel 出现信号 类型:2
2019-07-04 15:12:52.080    【后台】T00 运行结束
2019-07-04 15:12:52.120    【回报】88 : T09 10年国债1909 - 已撤单 量:1
2019-07-04 15:12:52.131    【指令】收到回报指令 ID = 662294525
2019-07-04 15:12:52.175    【后台】T00 TSell 第 41 行 策略:<Formula103> 出现信号

tsell的撤单动作是在回报已撤单之后,此时我们的仓位是可卖的状态,这个也是因为我们用exgbdata全局变量做记录加上判断可卖持仓大于0来完成。


 回到顶部
帅哥哟,离线,有人找我吗?
yydkyet
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:261 积分:0 威望:0 精华:0 注册:2016/11/22 10:06:11
  发帖心情 Post By:2019/12/4 16:27:55 [只看该作者]

非常感谢版主的分享

 回到顶部