Plotly のローソク足チャート

Vaibhav Vaibhav 2023年6月20日
  1. Python のローソク足
  2. ローソク足プロットと一緒にボリューム プロットを表示する
Plotly のローソク足チャート

データ サイエンスは、アルゴリズム、プロセス、システム、数学、および科学的手順を使用して、構造化データ、非構造化データ、およびノイズの多いデータから洞察と知識を抽出し、それらの学習を使用してビジネス上の問題を解決し、学習ベースのソリューションを作成するコンピューター サイエンスの分野です。

Python と R は、これらの言語が提供するサポートと機能により、データ サイエンス コミュニティで有名な 2つのプログラミング言語です。

データ ビジュアライゼーションはデータ サイエンスの重要な要素であるため、Python はインタラクティブなチャートやマップの作成に役立つライブラリ Plotly を提供しています。

散布図、折れ線グラフ、棒グラフ、円グラフ、バブル チャート、エラー バー、ヒストグラム、2D ヒストグラム、ヒートマップ、ローソク足、Mapbox コロプレス マップ、クラスターグラムなど、さまざまな種類のプロットをサポートしています。

この記事では、Plotly がサポートするプロットの 1つ、つまりローソク足について説明します。

Python のローソク足

ローソク足チャートは、特定の x 座標の 安値始値、および 終値 の値を表す金融チャートの一種です。 ローソク足のボックスは、open 値と close 値の間のスプレッドを表します。

ボックスの端を延長する線は、低い値と高い値の間の広がりを表します。

Plotly を使用してローソク足チャートを作成できます。 簡単な例については、次の Python コードを参照してください。

import pandas as pd
from datetime import datetime
import plotly.graph_objects as go

dataFrame = pd.read_csv(
    "https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv"
)

figure = go.Figure(
    data=[
        go.Candlestick(
            x=dataFrame["Date"],
            open=dataFrame["AAPL.Open"],
            high=dataFrame["AAPL.High"],
            low=dataFrame["AAPL.Low"],
            close=dataFrame["AAPL.Close"],
        )
    ]
)
figure.show()

出力:

アップル株ローソク足プロット

ファイル内のデータは次のようになります。 以下は、CSV ファイルの最初の 10 行です。

Date,AAPL.Open,AAPL.High,AAPL.Low,AAPL.Close,AAPL.Volume,AAPL.Adjusted,dn,mavg,up,direction
2015-02-17,127.489998,128.880005,126.919998,127.830002,63152400,122.905254,106.7410523,117.9276669,129.1142814,Increasing
2015-02-18,127.629997,128.779999,127.449997,128.720001,44891700,123.760965,107.842423,118.9403335,130.0382439,Increasing
2015-02-19,128.479996,129.029999,128.330002,128.449997,37362400,123.501363,108.8942449,119.8891668,130.8840887,Decreasing
2015-02-20,128.619995,129.5,128.050003,129.5,48948400,124.510914,109.7854494,120.7635001,131.7415509,Increasing
2015-02-23,130.020004,133,129.660004,133,70974100,127.876074,110.3725162,121.7201668,133.0678174,Increasing
2015-02-24,132.940002,133.600006,131.169998,132.169998,69228100,127.078049,111.0948689,122.6648335,134.2347981,Decreasing
2015-02-25,131.559998,131.600006,128.149994,128.789993,74711700,123.828261,113.2119183,123.6296667,134.0474151,Decreasing
2015-02-26,128.789993,130.869995,126.610001,130.419998,91287500,125.395469,114.1652991,124.2823333,134.3993674,Increasing
2015-02-27,130,130.570007,128.240005,128.460007,62014800,123.510987,114.9668484,124.8426669,134.7184854,Decreasing
...

次に、Figure クラスを使用して、data プロパティを Candlestick クラスのオブジェクトに設定するインスタンスを作成します。 Candlestick クラスのインスタンスでは、x 値を Date 列に、openAAPL.Open 列に、highAAPL.High 列に、low をそれぞれ設定します。 AAPL.Low 列、および close から CSV ファイルの AAPL.Close 列。

次に、Figure インスタンスで利用可能な show() メソッドを使用してローソク足チャートを表示します。

ローソク足プロットと一緒にボリューム プロットを表示する

ローソク足プロットと一緒にボリューム プロットを表示するには、ローソク足プロットに小さなサブプロットを追加します。 このプロットは、ローソク足プロットの下にあり、毎日販売される在庫量に関する詳細が含まれています。

グリッド構造を作成するには、make_subplots() メソッドを使用し、2 行と 1 列を指定します。 次に、上記のローソク足プロットと出来高を表すバー プロットを作成します。

最後に、作成したばかりのグリッドまたはサブプロットに両方のプロットを追加し、両方のプロットを表示します。 figure.update(layout_xaxis_rangeslider_visible = False) ステートメントは、ローソク足プロットによって提供される rangeslider を無効にすることに注意してください。

同じものについては、次の Python コードを参照してください。

import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots

dataFrame = pd.read_csv(
    "https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv"
)

figure = make_subplots(
    rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.05, row_width=[0.2, 0.7]
)
appleStockPlot = go.Candlestick(
    x=dataFrame["Date"],
    open=dataFrame["AAPL.Open"],
    high=dataFrame["AAPL.High"],
    low=dataFrame["AAPL.Low"],
    close=dataFrame["AAPL.Close"],
)
volume = go.Bar(x=dataFrame["Date"], y=dataFrame["AAPL.Volume"], showlegend=False)
figure.add_trace(appleStockPlot, row=1, col=1)
figure.add_trace(volume, row=2, col=1)
figure.update(layout_xaxis_rangeslider_visible=False)
figure.show()

出力:

出来高のあるアップル株ローソク足プロット

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.