日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于TairSearch構(gòu)建股票K線實(shí)時計算服務(wù)

本文介紹如何基于TairSearch構(gòu)建一個實(shí)時的股票K線指標(biāo)服務(wù)。

背景信息

投資者在進(jìn)行股票投資活動前,通常需要借助股票行情數(shù)據(jù)進(jìn)行分析、判斷。在眾多股票行情指標(biāo)中,K線是基礎(chǔ)指標(biāo),也是核心指標(biāo),K線可以演繹出多種其他指標(biāo)。K線由開盤價、收盤價、最低價、最高價組成,可繪制成日K線、周K線、月K線、季度K線或者30分鐘K線等。

證券商會從交易所接收近乎實(shí)時的股票行情原始數(shù)據(jù),并從以上數(shù)據(jù)中實(shí)時地計算出日K線、5分鐘K線等指標(biāo),而且投資交易行業(yè)對行情分析的實(shí)時性要求極高,大量的實(shí)時計算和訪問請求是證券商等股票行情提供應(yīng)商的重要挑戰(zhàn)。

TairSearch是集緩存與計算于一體的實(shí)時全內(nèi)存檢索系統(tǒng),可作為股票行情的熱數(shù)據(jù)緩存系統(tǒng),服務(wù)于K線等需大量實(shí)時計算的指標(biāo)服務(wù)。本文將介紹如何基于TairSearch構(gòu)建股票3分鐘K線實(shí)時計算服務(wù)。

說明

關(guān)于TairSearch的詳細(xì)介紹及命令示例,請參見TairSearch

Demo演示

創(chuàng)建股票Schema

本示例中模擬每3秒產(chǎn)生一條原始行情數(shù)據(jù)。可通過TFT.CREATEINDEX命令以股票代碼為Key名稱創(chuàng)建該股票的對應(yīng)Schema,Schema中包含最高價(high)、最低價(low)、開盤價(open)、收盤價(close)、成交量(amount)、成交總額(volume)與時間戳(date)字段,以時間戳(date)為索引。

說明

如需增加或調(diào)整字段,可直接執(zhí)行TFT.UPDATEINDEX

代碼示例如下:

TFT.CREATEINDEX 58Z074 '{
    "mappings": {
        "properties": {
            "high": {"index": false,"type": "double"},
            "low": {"index": false,"type": "double"},
            "open": {"index": false,"type": "double"},
            "close": {"index": false,"type": "double"},
            "volume": {"index": false,"type": "long"},
            "amount": {"index": false,"type": "long"},
            "date": {"index": true,"type": "long"}
        }
    }
}'

預(yù)計輸出:

OK

導(dǎo)入股票數(shù)據(jù)

整理股票數(shù)據(jù),寫入TairSearch文檔,代碼示例如下:

TFT.ADDDOC 58Z074 '{
    "high": 1237.53,
    "low": 887.54,
    "open": 987.36,
    "close": 997.53,
    "volume": 110,
    "amount": 2809,
    "date": 1659922202
}'

計算實(shí)時K線

模擬計算3分鐘K線,需要獲取3分鐘內(nèi)的開盤價、收盤價、最低價和最高價,代碼示例如下:

  • 計算開盤價:

    TFT.SEARCH 58Z074 '{
        "size": 1,
        "_source": {"includes": "open"},
        "sort": [{"date": {"order": "asc"}}],
        "query": {"range": {"date": {"gte": 1659922200,"lte": 1659922380}}}
    }'
  • 計算收盤價:

    TFT.SEARCH 58Z074 '{
        "size": 1,
        "_source": {"includes": "close"},
        "sort": [{"date": {"order": "desc"}}],
        "query": {"range": {"date": {"gte": 1659922200,"lte": 1659922380}}}
    }'
  • 計算最高價和最低價:

    TFT.SEARCH 58Z074 '{
        "size": 0,
        "query": {"range": {"date": {"gte": 1659922200,"lte": 1659922380}}},
        "aggs": {"high": {"max": {"field": "high"}},"low": {"min": {"field": "low"}}}
    }'

繪制K線

通過Python Pyecharts庫,將上述搜索結(jié)果數(shù)據(jù)繪制K線的效果如下:TairSearch構(gòu)建股票效果圖

性能數(shù)據(jù)

計算開盤價或收盤價以及最高價、最低價的性能數(shù)據(jù)如下:

  • 計算開盤價或收盤價。

    測試命令:

    redis-benchmark -r 1 -n 100000 TFT.SEARCH 58Z074 '{"size": 1, "_source": {"includes": "open"}, "sort": [{"date": {"order": "asc"}}], "query": {"range": {"date": {"gte": 1659922200,"lte": 1659922380}}}}'

    測試結(jié)果:

    100.00% <= 5 milliseconds
    12078.75 requests per second
  • 計算最高價、最低價:

    測試命令:

    redis-benchmark -r 1 -n 100000 TFT.SEARCH 58Z074 '{"size": 0,"query": {"range": {"date": {"gte": 1659922200,"lte": 1659922380}}},"aggs": {"high": {"max": {"field": "high"}},"low": {"min": {"field": "low"}}}}'

    測試結(jié)果:

    100.00% <= 2 milliseconds
    65019.51 requests per second