4. HistoryPanel 視覚化

前の章 HistoryPanel (履歴データ パネル) では、複数のターゲットおよび指標からの履歴データを同じパネルに配置する方法を紹介しました。この章では、パネルを使用してデータを直接プロットする方法について説明します。「最初に to_share_frame を使用し、次に matplotlib コードを手動で記述する」場合と比較して、HistoryPanel.plot() は、現在の htypes に基づいてローソク足チャート、出来高、MACD、折れ線グラフなどのビューを自動的に組み合わせ、データ探索のコンテキストと戦略調査フェーズの間の一貫性を確保します。


4.1. hp.plot(): 推奨される統合エントリ ポイント

このプロジェクトでは、HistoryPanel.plot() がプロットに推奨される唯一のエントリ ポイントです** (古いインターフェイスがまだ存在する場合は、意味的に同じパイプラインに委任する必要があります)。必要なのは、パネルが空ではなく、プロットに必要な列が含まれていることを確認することだけです (たとえば、ローソク足チャートを生成するには完全な OHLC が必要です)。他のチャート タイプは、htypes に基づいて内部で自動的に決定されます。

一般的に使用されるパラメータの意味は次のとおりです (完全な署名については、HistoryPanel API を参照してください)。

パラメータ

機能概要

shares

描画されるターゲットのサブセット。デフォルトでは、パネル内のすべてのターゲットが使用されます。

layout

マルチターゲット レイアウト: 「オーバーレイ」(同じ座標系内でオーバーレイ)、「スタック」(グループ化および垂直方向のファセット)、「自動」(例: 2 つのターゲットがオーバーレイされる傾向があり、さらに多くのターゲットがスタックされる)。

interactive

Falsematplotlib の静的プロットを使用します。 TruePlotly の対話型プロット (ズーム、パン、ホバーなど) を使用します。

highlight

「max」/「min」などの極端な値を強調表示するか、構成辞書に渡します。

plotly_backend_app

interactive=True: 'auto' (FigureWidget を優先し、失敗した場合は HTML ラッパーにフォールバックする)、'FigureWidget''html' の場合にのみ有効です。

注意: 要求されたターゲットの数が多い場合、実装では 実際に描画されるターゲットの数を制限し、単一のグラフの過負荷を避けるために警告を発行することがあります。特定の動作は現在のバージョンに依存します。複数のターゲットのレイアウトに対する細かい調整と過去の修正の詳細については、RELEASE_HISTORY 2.2.x の関連エントリを参照してください。

4.2. 静的ダイアグラムとインタラクティブなダイアグラム

  • **interactive=False (デフォルト): matplotlib に依存し、スクリプトを使用したバッチ プロットおよび静的ファイルの生成に適しています。 Plotly のインストールは強制されません。

  • interactive=True: plotly に依存します。 Jupyter では、anywidgetipywidgets が利用可能な場合、通常、ヘッダーと軸の間でより完全な相互作用を持つ FigureWidget を取得できます。それ以外の場合は、HTML ラッパー フォームにフォールバックする可能性があり、基本的な操作は引き続き可能ですが、エクスペリエンスはウィジェット パスとは若干異なります。

最小限の例 (既存の OHLCV または同等の列がローカルに必要です。デモンストレーションのみを目的としています):

import qteasy as qt

hp = qt.get_history_data(
    htype_names='open, high, low, close, vol',
    shares='000300.SH',
    rows=120,
    as_data_frame=False,
)
fig = hp.plot()                      # 静态
# fig2 = hp.plot(interactive=True)  # 交互(需安装 plotly 等)

メイン チャートがローソク足チャートの場合、静的チャートにはタイムライン上の 最後のローソク足 に OHLC サマリーが表示されます。インタラクティブ チャートはデフォルトで一貫性があり、ローソク足をクリックするとそのローソク足のサマリーが更新されます (ユーザー向けのサマリー テキストは英語です)。完全な OHLC がない場合、この概要領域は表示されません。

4.3. レイアウトと複数のターゲット

  • オーバーレイ: 同じ価格スケールでいくつかのターゲット (2 つの株式など) の価格変動を比較するのに適しています (Y 軸を共有するかどうかは現在の実装によって異なります)。

  • **stack: 各ターゲット (またはグループ) は、多数のターゲットに適しており、同じ座標系に詰め込まれるのを避けるために、個別のサブプロットを占有します。

  • auto: ターゲットの数が少ない場合、それらを積み重ねる傾向があります。数が大きい場合は、それらをファセットに分割する傾向があり、手動による試行錯誤が減ります。

新しいバージョンでレイアウト セマンティクスが調整された場合、対応するバージョンの RELEASE_HISTORY の説明が優先されます。

4.4. 依存関係とインストールのヒント

  • 静的プロット: 通常、matplotlib (qteasy で一般的に使用されるのと同じ環境) が必要です。

  • インタラクティブなグラフ: plotly が必要です。 Notebook の完全な対話型エクスペリエンスを実現するには、ipywidgetsanywidget の両方をインストールすることをお勧めします。オプションの依存関係のバージョン範囲は、プロジェクトの pyproject.toml またはインストール ドキュメントに基づいています。このドキュメントにはバージョン番号を個別に記載しません。

基礎となるレンダリング モジュール名と拡張ポイントは、開発者がソース コードを読み取るときにのみ使用します。ユーザードキュメントでは、ファイルレベルの実装の詳細については詳しく説明されていません。

4.5. まとめ

  • データの準備は、前の章 と同様に get_history_data を使用して行われます。プロットは hp.plot() を使用して行われます。

  • interactivelayout は、日常使用で最も頻繁に変更される 2 つのスイッチです。高度なパラメータについては、API ドキュメントを参照してください。

  • 動作の変更と視覚化関連の修正については、RELEASE_HISTORY を参照してください。実践的な演習については、チュートリアル HistoryPanel を使用した履歴データの操作と分析 を参照してください。