我现在用的是 zeromq 通过 socket 接收到的行情数据,因为行情数据更新太频繁,太快了肉眼也查看不到,需要把频率控制在 100 毫秒刷新页面一次,请问有什么好的设计么,就是如果两个数据之间间隔小于 100 毫秒就丢弃。
1
jones2000 2020-11-12 10:10:32 +08:00
收到到本地以后, 自己发快照数据, 如 100ms 发一次变动品种的快照数据。
|
2
jones2000 2020-11-12 10:12:16 +08:00 1
另外高频数据一般不是用来展示的,浪费, 界面更不上数据变动的。 一般做量化交易,跑实时策略用的。
|
4
l00t 2020-11-12 12:35:42 +08:00
100ms 刷一次不是你自己说的嘛。你都想 100ms 刷一次了你说到底是实时还是定时?
|
6
kanezeng 2020-11-12 13:05:41 +08:00
感觉需求没有描述得很清楚。
如果是界面上只显示一个最新行情,那就每次接收到数据检查一下是否有变动,有变动再做后续处理比如更新显示。 如果时要画曲线图,也是每次接收到数据检查一下是否有变动,有变动再增加一条变动记录。 如果没变动就都丢弃呗 |
7
AlohaV2 2020-11-12 13:08:49 +08:00
自己维护一个 per instrument order book / price book,存一下上次更新的时间,下次来行情的时候检查一下呗
|
8
imn1 2020-11-12 13:40:03 +08:00
这个其实是两个步骤,数据还是要及时的,不应降频,显示上控制频率就好了
|
10
WispZhan 2020-11-12 13:52:02 +08:00
ReactiveX,Rx 系列库
|
11
SmiteChow 2020-11-12 17:00:26 +08:00
那要看你刻度单位,秒的话就按秒更新,以此类推
|
12
angryfish 2020-11-12 18:34:28 +08:00 via iPhone
才用订阅模式。来一次就推一次,不要主动拉。然后,如果数值不变。不用推。
|
13
Yoock 2020-11-12 21:02:54 +08:00 via iPhone
降维,算涨速和量比
|
14
mimi888 2020-11-12 21:17:53 +08:00 via Android
楼主接美股的数据吗?
|
15
BingoXuan 2020-11-12 21:22:22 +08:00 via Android
zmq poll 获取数据,写到缓存里面,时间到了就 publish 出去,页面 subscribe 就好了
|
16
jones2000 2020-11-12 22:54:18 +08:00
@marine2c 你直接对照市面上主流的高频软件 UI 上面是怎么更新的不就可以了。 用网路工具看下,他的发包频率, 这些东西不是新出来的,5,6年前就有高频数据,都有成熟的解决方案的。
|
17
pelloz 2020-11-12 23:04:36 +08:00
弄个实现 throttle 或 debounce 的 js 库,手动限制下就好
|
18
mepwang 2020-11-12 23:16:47 +08:00 via iPhone
高频数据降低频率给人看的话,简单的抽取数据做显示会有遗漏,不如漏掉了这一秒中间的最高价 /最低价等,最好做成 bar 数据
|
19
raycool 2020-11-13 01:17:47 +08:00
数据都有时间戳,判断时间戳,100ms 内的直接丢弃不推送 UI 显示组件
|
21
marine2c OP 其实是这样的,我订阅后就必须通过 socket 不断拉数据,我写的是一个 while true 拉数据,不然推送那边会有积压的,至于显不显示是我需要处理的,就是显示的频率肯定要低于拉的频率的,请问各位大佬这样怎么设计。
|
22
treblex 2020-11-13 13:19:16 +08:00
之前看过 okex 的文档,他们的做法是在建立链接之后 发送一条消息,告诉服务器要订阅的内容和更新频率,不知道服务端好不好实现
|
23
yuandong 2020-11-13 14:30:53 +08:00
|
24
hurricane1260 2020-11-13 14:49:25 +08:00
看看股票交易终端的分时行情怎么做的呗
|