すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):TairSearchを使用して株式のローソク足チャートを生成する

最終更新日:Dec 05, 2024

このトピックでは、TairSearchを使用して株式のローソク足チャートを生成する方法について説明します。

背景情報

ローソク足チャートは、トレーダーや投資家が株価パターンのテクニカル分析を実行し、可能な価格変動を判断するためによく使用されます。 さらに、ローソク足は株式の基本的かつ中核的な技術指標です。 他の複数の指標は燭台から派生しています。 各ローソク足は、特定の時間枠内の株式の始値、高値、安値、終値を示します。 ローソク足は、多くの場合、30分、日、週、月、または四半期ごとに生成されます。

証券セクターの組織は通常、証券取引所から株価に関するほぼリアルタイムの生データを受け取ります。 次に、このデータを使用して、毎日のローソク足や5分のローソク足などのローソク足を生成します。 投資家やトレーダーは、データの適時性に対する高い要件を持っています。 これは、株式情報供給者が多数のリアルタイムコンピューティングおよびアクセス要求を処理するという大きな課題を提起する。

TairSearchは、メモリ内のフルテキスト検索データ構造で、キャッシュとコンピューティングを統合してリアルタイムのデータ取得を実現します。 これにより、ホットデータキャッシュやリアルタイムコンピューティングでローソク足を生成するのに理想的な選択肢となります。 このトピックでは、TairSearchを使用して株式の3分間のローソク足を生成する方法の例を示します。

説明

TairSearchの詳細については、「Search」をご参照ください。

例:

株式のスキーマを作成する

この例では、データレコードは3秒ごとに生成されます。 TFT.CREATEINDEXコマンドを実行して、ストックコードをキーとしてスキーマを作成できます。 スキーマには、highlowopencloseamountvolume、およびdateのフィールドが含まれます。 日付フィールドがインデックスとして指定されます。

説明 フィールドを追加または変更する場合は、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"}
        }
    }
}'

期待される出力:

OK

株式に関するデータのインポート

TairSearchドキュメントにデータを書き込みます。 サンプルコード:

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

ローソク足をリアルタイムで生成する

3分のローソク足を生成するために、過去3分以内の株式のオープン、ハイ、ロー、およびクローズ価格を計算します。 サンプルコード:

  • オープン価格を計算する:

    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"}}}
    }'

株式のローソク足チャートを生成する

次の図は、Pyechartsライブラリを使用して生成されたローソク足チャートを示しています。TairSearch构建股票效果图

パフォーマンスデータ

次のセクションでは、上記の価格を計算するためのパフォーマンスデータを示します。

  • オープン価格とクローズ価格:

    Command:

    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}}}}'

    出力:

    100.00% <= 5 milliseconds
    12078.75 requests per second
  • 高価格と低価格:

    Command:

    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"}}}}'

    出力:

    100.00% <= 2 milliseconds
    65019.51 requests per second