[求问] 股票实时的周线和月线是怎么做的

79 天前
 ghostwind

众所周知,交易所来的数据都是 tick 级别的数据,之后都需要合成自己的 1min,5min 的数据,但是在周线的合成上有点卡住了.主要是考虑到服务重启之后数据怎么处理.数据怎么落地 在设计这个系统的时候有点卡住了.想请教下大家都有没有类似的需求.. 简单来说就是要做一个实时的行情系统,包括分时,5 分钟,1 天..周,月这些维度的设计

不知道怎么弄,想请教下大家,谢谢了

2741 次点击
所在节点    程序员
23 条回复
jones2000
79 天前
只算 1 分钟,5 分钟, 日线,就可以了,其它周期都可以通过这几个基础周期合并下就能算出来。行情服务器一般都是双路采集, 一路断了,还是有另外一路。 如果真的 2 路都断了,基本就是重大事故了,需要有人来背锅了。 交易所有提供回放当天数据接口, 回放补齐就可以了。
phrack
79 天前
挺巧我也在弄这些数据,个人用。

所有的 bar 不都是从 tick 来的吗? 1 minute bar 就把这一分钟里面的 tick 全部取出来,算一下就有 ohlc 数据了呀。一周的不应该也是一样的吗?
ghostwind
79 天前
@jones2000 谢谢大佬回复, 想比如说在交易的时候,我需要实时推送某个品种月线数据,
那这个时候是把所有的日线数据都读进来重新计算的么,这时候实时的周线月线又怎么处理呢?
另外请教下这些数据一般存在哪里
iyiluo
79 天前
做过类似的,分钟数据合成日线。其实逻辑都一样,明白 k 线的生成规则就行,开、收、最高、最低,就四个值,做一下时间片分割,然后对每个时间片遍历一遍就出来了
iyiluo
79 天前
可以参考一下股票软件的设计,底层需要落地的交易数据有 tick ,1 分钟、5 分钟、日线,其他周期的 k 线图都是从这四种数据算出来的,周线和月线用日线数据遍历一遍就出来了
crazyweeds
79 天前
数据这块确实麻烦,小弟不才,大概搞了一个月才搞定,只要服务起来就能最终一致,细节确实多。总之呢,服务一定是会重启的,所以设计之初我就考虑到了服务宕机、网络故障等逻辑。
不过目前高可用还差一点,代理高可用了,但是行情节点还没有。
Hariz
79 天前
@phrack 请问一下个人用数据从哪里来的,哪里买的吗?还是某个券商那里?
Sawyerhou
79 天前
@ghostwind 举例,以实时日线更新月线,初始化预计算上个交易日月线 OHLCV ,实时更新 O1=O0,H1=max(H0,P),L1=min(L0,P),C1=P,V1=V0+V ,其他字段、级别类似
jones2000
79 天前
@ghostwind 推送一般只推动最新一个周期的, 启动的时候你只需要读取最新一个周期需要的数据, 然后新的数据过来,合并下就可以。 日线级的数据存关系型数据库,tick 级的存 Hadoop
nealot
79 天前
富途的 OpenAPI 其实挺慷慨的 (除了美股要付费)

可以查询 8 年的分钟级 K 线 (以前好像是 2 年)

普通投资者有了这些数据都不用去采集了
phrack
79 天前
@Hariz interactive broker 那里买的,不少券商应该都有行情数据
huxianguang
79 天前
@Hariz cXEldUZGMUExNTc4OTc2Mg==
cloud107202
79 天前
tick 先处理成 snapshot. snapshot 携带日内的累计性质数值,最关键的是成交量与成交额

对于日级别以上的 K ,用 snapshot 触发最新一根周期 K 线的数值变更(最高、最低价、成交量、成交额),这里带一点日期逻辑,比如周 K 线里面,归属于当周就是处理归并到最近一根周 K 线,周一当天这种新的一周开始,就创建全新一根周 K.

分钟级别的没弄过,粗看用 tick 直接搞搞就好
declandragon
79 天前
以前看到别人的都是小单位的数据,使用 echarts 实现图表, 另外提供大单位的切换按钮,是需要这种效果吗?
iorilu
78 天前
没必要吧, 很多软件可以直接取啊

tushare
akshare
ghostwind
78 天前
可能不是传统股票的
@iorilu
ghostwind
78 天前
感谢回复...那如果针对月线的话,比如现在有 5000 只股票,等于我需要把当月所有的日线都查询下来 5000*22 天 10W 条数据都在启动的时候加载吧
@jones2000
ghostwind
78 天前
@crazyweeds 这块是挺麻烦的.我也是一个人弄.......也没有参考的
ghostwind
78 天前
@declandragon 是类似的...但是如果切换到大单位,应该是服务端重算一遍的吧,不然本地的数据如果日线没有算全的话,不同客户端会不一致
xsen
78 天前
#13 楼的已经说的很清楚,
对于大级别 k 线已经结束的,处理完之后当历史数据存储起来就可以
有新的数据过来,只需要重新计算最新一根 k 线

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

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

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

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

© 2021 V2EX