行情高频数据显示

2020-11-12 09:03:15 +08:00
 marine2c

我现在用的是 zeromq 通过 socket 接收到的行情数据,因为行情数据更新太频繁,太快了肉眼也查看不到,需要把频率控制在 100 毫秒刷新页面一次,请问有什么好的设计么,就是如果两个数据之间间隔小于 100 毫秒就丢弃。

3306 次点击
所在节点    程序员
25 条回复
jones2000
2020-11-12 10:10:32 +08:00
收到到本地以后, 自己发快照数据, 如 100ms 发一次变动品种的快照数据。
jones2000
2020-11-12 10:12:16 +08:00
另外高频数据一般不是用来展示的,浪费, 界面更不上数据变动的。 一般做量化交易,跑实时策略用的。
marine2c
2020-11-12 10:16:41 +08:00
@jones2000 界面总得有实时行情显示吧,如果你说每 100ms 发一次不就变成定时任务了嘛。
l00t
2020-11-12 12:35:42 +08:00
100ms 刷一次不是你自己说的嘛。你都想 100ms 刷一次了你说到底是实时还是定时?
marine2c
2020-11-12 13:03:29 +08:00
@l00t 我的意思是消息来驱动,如果两个消息到达之间的间隔小于 100ms 则把消息丢弃,当然也可能会更长则显示。
kanezeng
2020-11-12 13:05:41 +08:00
感觉需求没有描述得很清楚。
如果是界面上只显示一个最新行情,那就每次接收到数据检查一下是否有变动,有变动再做后续处理比如更新显示。
如果时要画曲线图,也是每次接收到数据检查一下是否有变动,有变动再增加一条变动记录。
如果没变动就都丢弃呗
AlohaV2
2020-11-12 13:08:49 +08:00
自己维护一个 per instrument order book / price book,存一下上次更新的时间,下次来行情的时候检查一下呗
imn1
2020-11-12 13:40:03 +08:00
这个其实是两个步骤,数据还是要及时的,不应降频,显示上控制频率就好了
marine2c
2020-11-12 13:46:22 +08:00
@imn1 是的,数据是一直会接收的,关键是怎么显示降频,有什么好办法吗
WispZhan
2020-11-12 13:52:02 +08:00
ReactiveX,Rx 系列库
SmiteChow
2020-11-12 17:00:26 +08:00
那要看你刻度单位,秒的话就按秒更新,以此类推
angryfish
2020-11-12 18:34:28 +08:00
才用订阅模式。来一次就推一次,不要主动拉。然后,如果数值不变。不用推。
Yoock
2020-11-12 21:02:54 +08:00
降维,算涨速和量比
mimi888
2020-11-12 21:17:53 +08:00
楼主接美股的数据吗?
BingoXuan
2020-11-12 21:22:22 +08:00
zmq poll 获取数据,写到缓存里面,时间到了就 publish 出去,页面 subscribe 就好了
jones2000
2020-11-12 22:54:18 +08:00
@marine2c 你直接对照市面上主流的高频软件 UI 上面是怎么更新的不就可以了。 用网路工具看下,他的发包频率, 这些东西不是新出来的,5,6年前就有高频数据,都有成熟的解决方案的。
pelloz
2020-11-12 23:04:36 +08:00
弄个实现 throttle 或 debounce 的 js 库,手动限制下就好
mepwang
2020-11-12 23:16:47 +08:00
高频数据降低频率给人看的话,简单的抽取数据做显示会有遗漏,不如漏掉了这一秒中间的最高价 /最低价等,最好做成 bar 数据
raycool
2020-11-13 01:17:47 +08:00
数据都有时间戳,判断时间戳,100ms 内的直接丢弃不推送 UI 显示组件
marine2c
2020-11-13 07:48:33 +08:00
@mimi888 港股

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/724257

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX