金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 408|回复: 15

后台程序化漏单的处理

[复制链接]

16

主题

49

帖子

49

积分

Rank: 4

等级: 专业版

注册:
2023-12-7
曾用名:
发表于 2024-9-27 08:48 | 显示全部楼层 |阅读模式
我有几十套策略通过虚拟持仓引用的方式记录在全局变量中,如下:(运行走完K线模式。提前5秒模式)持仓1:=STKINDIEX('','多日内5F71.持仓',0,2,0,500);

持仓2:=STKINDIEX('','多日内5F71.持仓',0,2,0,500);
理论仓:持仓200+持仓210;
EXTGBDATASET(STKLABEL&'5',理论仓);

然后再读取各不同周期的全局变量总和下单,经常不知道是电脑问题还是数据传输问题,发生漏单。(收盘作业完整,本地数据保证完整),然后到下一个K线走完甚至好多K线走完金字塔再把漏单补回。
我如果单独在设置一个同样公式向前引用一个周期的公式进行3秒或者30秒轮询,公式如下:(运行固定3秒或者30秒轮询)
持仓1:=STKINDIEX('','多日内5F71.持仓',0,2,-1,500);

持仓2:=STKINDIEX('','多日内5F71.持仓',0,2,-1,500);
理论仓:持仓200+持仓210;
EXTGBDATASET(STKLABEL&'5',理论仓);


能否解决漏单问题?这样操作有什么潜在风险?



回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-9-27 09:03 | 显示全部楼层
你之前的漏单,大概率是图表模型本身信号闪烁造成的。 虽然你是走完K的,但是你周期不一样,小周期走完,大周期还在进行中,这样的确有问题的。

“我如果单独在设置一个同样公式向前引用一个周期的公式进行3秒或者30秒轮询,” 这样是可以的。


另外你为什么不直接调用然后累计理论持仓,而要写到全局变量中 ,这样其实是多走了一步的。
回复

使用道具 举报

16

主题

49

帖子

49

积分

Rank: 4

等级: 专业版

注册:
2023-12-7
曾用名:
 楼主| 发表于 2024-9-27 10:29 | 显示全部楼层
漏单不是信号闪烁造成的,我用2台电脑对比过,如果发现漏单,立即加载图表,马上后台就立即触发下单。
我每个品种上都运行几十个公式,从5分钟、30分钟、日线、60分钟各个周期都有,因为走完K线模式没有办法同时所有周期都刚好对准一个时间走完K线。所以把不同周期输出大全局变量就,再轮询几秒读取全局变量实现个周期在下单是多少走完K线的持仓数量;如果直接调用累计只能公式向前引用一个周期;不知道有什么其他好的解决方案吗?
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-9-27 11:07 | 显示全部楼层
本帖最后由 资深技术05 于 2024-9-27 11:09 编辑

“如果发现漏单,立即加载图表,马上后台就立即触发下单。” 你这个写全局变量的代码  交易得时候是在什么地方运行的?是在后台里运行的?   
然后你后台周期是什么周期?我看你是这样设置的:“(运行走完K线模式。提前5秒模式)” 那你后台它其实只会在你设置周期的最后5秒才会执行运行的。其他时间不执行的。
图表之所以能直接奏效,是因为你加载时候 它是一定运行一次全部数据的,所以会立即写值,并且最新K也会一直刷新。
回复

使用道具 举报

16

主题

49

帖子

49

积分

Rank: 4

等级: 专业版

注册:
2023-12-7
曾用名:
 楼主| 发表于 2024-9-27 11:53 | 显示全部楼层
写全局变量代码是在后台程序化运行的,后台每个公式是把所有5分钟周期的集中在一起运行5分钟周期,30分钟周期集中在一起运行运行30分钟周期,以此类推;设置为提前5秒的后台走完K线模式。
“那你后台它其实只会在你设置周期的最后5秒才会执行运行的。其他时间不执行的。”这种后台运行模式在电脑稍微有点效率跟不上就会漏单,有没有更好的改进方法?变成一直刷新?
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-9-27 13:05 | 显示全部楼层
除非指标计算量特别大,品种特别多,否则正常5秒应该也是足够的。你可以考虑把这个时间间隔弄长点。  

你也可以多拆分几个后台预警出来。这样程序本身也能启用到多核。让他们并发执行。
回复

使用道具 举报

16

主题

49

帖子

49

积分

Rank: 4

等级: 专业版

注册:
2023-12-7
曾用名:
 楼主| 发表于 2024-9-27 13:43 | 显示全部楼层
走完K线勾选tick刷新能不能变成图表一样一直收到数据后刷新然后到时间执行?
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-9-27 13:54 | 显示全部楼层
本帖最后由 资深技术05 于 2024-9-27 13:56 编辑

这种情况和勾选走完K没区别,就是还是按照走完K去执行的。


如果你调用的仓位已经是前一个K的情况下,你用固定间隔应该也无所谓。反正单根K内,那个值其实是确定的了,即便重复写入也不会有错。
回复

使用道具 举报

16

主题

49

帖子

49

积分

Rank: 4

等级: 专业版

注册:
2023-12-7
曾用名:
 楼主| 发表于 2024-9-27 14:14 | 显示全部楼层
就是后台执行写全局变量如果用走完K线模式,只能是从K线走完前开始执行,如果公式多而且复杂,就容易执行到后面的品种的时候程序认为已经过了时间需要下次K线走完再执行就跳过去了造成漏单;不漏单就只能用固定间隔掉用前一个K的情况,是吧?
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-9-27 14:19 | 显示全部楼层
“不漏单就只能用固定间隔掉用前一个K的情况”  如果确定是走完K时候密集计算导致的漏单,那就只能用这个方式了.

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 18:48 , Processed in 0.209091 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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