[求问] 股票实时的周线和月线是怎么做的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ghostwind
V2EX    程序员

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

  •  
  •   ghostwind 2024-02-20 21:40:54 +08:00 3930 次点击
    这是一个创建于 688 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    23 条回复    2024-02-22 11:00:01 +08:00
    jones2000
        1
    jones2000  
       2024-02-20 23:46:06 +08:00
    只算 1 分钟,5 分钟, 日线,就可以了,其它周期都可以通过这几个基础周期合并下就能算出来。行情服务器一般都是双路采集, 一路断了,还是有另外一路。 如果真的 2 路都断了,基本就是重大事故了,需要有人来背锅了。 交易所有提供回放当天数据接口, 回放补齐就可以了。
    phrack
        2
    phrack  
       2024-02-21 01:10:49 +08:00 via iPhone
    挺巧我也在弄这些数据,个人用。

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

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

    普通投资者有了这些数据都不用去采集了
    phrack
        11
    phrack  
       2024-02-21 10:55:33 +08:00 via iPhone
    @Hariz interactive broker 那里买的,不少券商应该都有行情数据
    huxianguang
        12
    huxianguang  
       2024-02-21 11:09:33 +08:00
    @Hariz cXEldUZGMUExNTc4OTc2Mg==
    cloud107202
        13
    cloud107202  
       2024-02-21 11:34:58 +08:00
    tick 先处理成 snapshot. snapshot 携带日内的累计性质数值,最关键的是成交量与成交额

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

    分钟级别的没弄过,粗看用 tick 直接搞搞就好
    declandragon
        14
    declandragon  
       2024-02-21 12:01:19 +08:00
    以前看到别人的都是小单位的数据,使用 echarts 实现图表, 另外提供大单位的切换按钮,是需要这种效果吗?
    iorilu
        15
    iorilu  
       2024-02-21 14:21:10 +08:00
    没必要吧, 很多软件可以直接取啊

    tushare
    akshare
    ghostwind
        16
    ghostwind  
    OP
       2024-02-21 14:38:37 +08:00
    可能不是传统股票的
    @iorilu
    ghostwind
        17
    ghostwind  
    OP
       2024-02-21 15:35:32 +08:00
    感谢回复...那如果针对月线的话,比如现在有 5000 只股票,等于我需要把当月所有的日线都查询下来 5000*22 天 10W 条数据都在启动的时候加载吧
    @jones2000
    ghostwind
        18
    ghostwind  
    OP
       2024-02-21 15:47:34 +08:00
    @crazyweeds 这块是挺麻烦的.我也是一个人弄.......也没有参考的
    ghostwind
        19
    ghostwind  
    OP
       2024-02-21 15:49:47 +08:00
    @declandragon 是类似的...但是如果切换到大单位,应该是服务端重算一遍的吧,不然本地的数据如果日线没有算全的话,不同客户端会不一致
    xsen
        20
    xsen  
       2024-02-21 16:19:15 +08:00
    #13 楼的已经说的很清楚,
    对于大级别 k 线已经结束的,处理完之后当历史数据存储起来就可以
    有新的数据过来,只需要重新计算最新一根 k 线
    jones2000
        21
    jones2000  
       2024-02-21 16:28:44 +08:00
    @ghostwind 对,可以开并行同时,按单个股票查,只要数据库能顶住,就可以。
    willem1993
        22
    willem1993  
       2024-02-21 20:28:00 +08:00
    18 年做过期货的,常用的 K 线我都是用 tick 算好存到数据库的,自定义分钟的 K 线,用最大公约数的 K 线再计算的
    ghostwind
        23
    ghostwind  
    OP
       2024-02-22 11:00:01 +08:00
    @willem1993 这里最大公约数的 K 线不知道我理解的对不对,,比如说 保存的是 1min 5min 1H 的 K 线,,这个时候如果我需要 3H 的 K 线 这个时候就是用 1min 5min 1H 和需要 3 H 的最大公约数,把 1H 的 K 线全部取出来,再进行计算返回是吗?那这样的话对于单个品种,比如一些主力合约,如果查询长周期 超过 5 年的数据... 5*250*4 ,差不多是 db 里面一次性查询 5000 条数据,这种情况下怎么保证快速返回呢
    @jones2000 真的感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5491 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 03:26 PVG 11:26 LAX 19:26 JFK 22:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86