見出し画像

システムトレードを自作する part.1

今回の進捗:チャートの表示

久々に投資系なんか触りたいなと思いました。

せっかく自分はプログラマーなんで、
システムトレード自作してみたいと思います。

今回はチャートを表示するところまで。
以前はTradingViewを使ってたんだけど有料なんでね。
全部作っちゃいます。

チャートの表示はPythonが一番簡単そうだったんでPythonのmplfinaceで。
ローソク足での価格推移は当然、テクニカルも表示できるらしい。

コード(チャート表示)

import mplfinance as mpf
from pandas_datareader import data
from pandas.tseries.offsets import BDay
import pandas as pd 
######################################

# 株価データを取得
df = data.DataReader('7203.JP', 'stooq')

# 日付の古い順に並び替え
df.sort_index(inplace=True)

# 営業日の範囲を指定
start_date = df.index[-50].strftime('%Y-%m-%d')
end_date = df.index[-1].strftime('%Y-%m-%d')
business_dates = pd.date_range(start=start_date, end=end_date, freq=BDay())

# 営業日のデータのみを抽出
df_business_days = df[df.index.isin(business_dates)]

# ローソクの色の設定
marketcolors = mpf.make_marketcolors(
    up='#00BFFF',                   # 上昇時のろうそくの塗りつぶし色
    down='#DC143C',                 # 下降時のろうそくの塗りつぶし色
    edge='lightgray',               # ろうそくの端の線の色
    wick={
        # 辞書形式で、ろうそく足の真の色を指定
        'up':'#00BFFF',             # 上昇時のろうそくの芯の色
        'down':'#DC143C'            # 下降時のろうそくの芯の色
    }
)

# グラフ全体の設定
custom_style = mpf.make_mpf_style(
    marketcolors=marketcolors,
    gridcolor='lightgray',          # チャートのグリッドの色
    facecolor='white',              # チャートの背景の色
    edgecolor='black',              # チャートの外枠の色
    figcolor='white',               # チャートの外側の色
    gridstyle='-',                  # チャートのグリッドの種類 "--":実線, "--":破線, ":":点線, "-.":破線と点線の組み合わせ
    gridaxis='both',                # チャートのグリッドの有無を指定 both:縦横双方, horizontal:横線のみ, vertical:縦線のみ
    y_on_right=False,               # y軸を右に表示するかどうかを指定
    rc = {
        'xtick.color': 'black',     # X軸の色
        'xtick.labelsize': 8,       # X軸の文字サイズ
        'ytick.color': 'black',     # Y軸の色
        'ytick.labelsize': 8,       # Y軸の文字サイズ
        'axes.labelsize': 10,       # 軸ラベルの文字サイズ
        'axes.labelcolor': 'black', # 軸ラベルの色
        # 'font.family': 'IPAexGothic', # タイトル,ラベルのフォントを指定
    }
)

# 移動平均の期間
mav_periods = [5, 10, 20]

# ローソク足チャートのプロット設定
plot_config = {
    'style': custom_style,          # カスタムテーマを指定
    'type': 'candle',               # ローソク足チャート
    'volume': True,                 # 出来高の表示
    'show_nontrading': False,       # 非取引日の非表示
 
    # 軸の設定
    'datetime_format': '%Y-%m-%d',  # X軸の日付フォーマット
    'xrotation': 45,                # X軸の日付の回転角度

    # ラベルの設定
    'title':'TBD',                  # チャートのタイトル
    'ylabel': 'Price',              # チャートのY軸ラベル
    'ylabel_lower': 'Volume',       # ボリュームを表示する場合は、ボリュームのグラフのY軸ラベル

    # テクニカル指標
    'mav': mav_periods,             # 移動平均線の期間を指定
}

# ローソク足チャートをプロット
mpf.plot(df_business_days, **plot_config)

実行結果

こんなライブラリ関数のオプション指定するだけでチャート表示できるなんてmplfinaceヤバいっすね。
これはもうコーディングじゃなくて、ただの設定ファイル作成なんよ。

ただこれだと銘柄指定やテクニカル指標を変える度にコードを編集しなきゃいけない。
そこら辺はGUIで指定できるようにしたいけどC#で作った方が早そう。
自動売買はPython-Seleniumを予定(他にもっといい方法あるかもだけど)

開発環境

環境:Visual Studio Code
言語:Python

この記事が気に入ったらサポートをしてみませんか?