bookloveru2
2021年3月15日8 分
最終更新: 2021年11月1日
皆様、こんにちは。
今回は、大人気シリーズ「pythonで株価分析」の第10弾です❕
※ストラテジー:システムトレードにおける戦略のこと。
今回も、コピペで行ける様、しっかりとpythonコードの解説をしていきますので、グーグルコラボのご準備をお願い致します。
では、早速行ってみましょう!(^^)!
イメージ図👇
マネックス証券より https://info.monex.co.jp/technical-analysis/indicators/001.html
※私もマネックス証券を愛用しています(^_-)-☆
ボリンジャーバンドのイメージ図👇
※余談ですが、数理モデルとは、数学的な手段を用いて記述された、対象のデータ生成ルールを模擬した数式のことを言ったります。
つまり、世の中で起きている現象などを、一般化された数式で記述する。その数式を見つけることが、数理モデルを構築する、という意味です。
『株の自動売買で言えば、この数式に沿って、株価は日々変動しているんじゃないか!?』
といった、利益の根源になりそうな数式を探す作業が、数理モデルの構築と言えます。
HODL:100ドル分買って、放置した場合。
EMA return:100ドル分買って、ストラテジー通り自動売買した場合。
では、コードです👇
はい!ドン❕
import numpy as np
import pandas as pd
import datetime
import pandas_datareader.data as web
import fix_yahoo_finance as yf
import matplotlib.pyplot as plt
start = datetime.date(2007,3,15)
end = datetime.date.today()
codelist = ["AAPL"]
AAPL = yf.download(codelist, start=start, end=end)["Adj Close"].dropna()
AAPL
# データを可視化する
AAPL.plot()
以下グラフです👇
何かまとめが意味分かりませんが、数理モデルよりも利益よりも、ビールとビキニが好きだぜっ❕という最低な言葉で締めくくりたいと思います。(`・ω・´)ゞ(面倒くさくなってきた(笑))
❹機械学習でApple株の今後の株価を予測して見たのPythonのコードが見たい方はこちらの過去記事をご覧下さい。👇
コード全部載せてるので、コピペでOK(^_-)-☆です。
あっ、一括コード載せときますね(^_-)-☆
以下です。👇今後ともよろしくお願いいたします。
import numpy as np
import pandas as pd
import datetime
import pandas_datareader.data as web
import fix_yahoo_finance as yf
import matplotlib.pyplot as plt
start = datetime.date(2007,3,15)
end = datetime.date.today()
codelist = ["AAPL"]
AAPL = yf.download(codelist, start=start, end=end)["Adj Close"].dropna()
# データを可視化する
AAPL.plot()
# 変化率を計算する
change = AAPL.pct_change()
print(change)
change.plot()
# 変化率からトータルリターン(累積変化率)を計算する
#この累積変化率のスタートを1として、100倍すると、HODLしていたという計算。
trade_return = (change + 1).cumprod()
trade_return
#100ドル分Apple株を買って、ホールドしていた場合のリターン
trade_return[0] = 1
trade_return = trade_return*100
trade_return
#ここでApple株の移動平均を計算する
#EMA5には5日移動平均を代入。
#EMA25には25日移動平均を代入。
EMA5 = AAPL.rolling(5).mean()
EMA25 = AAPL.rolling(25).mean()
EMA5
EMA25
#トレード戦略から売買シグナルを計算する
signal = []
for i in range(len(AAPL)):
#5日平均が25日平均より上なら買い=1とする
if EMA5[i] > EMA25[i]:
signal.append(1)
# 5日平均が25日平均より下なら売り=-1とする
elif EMA5[i] < EMA25[i]:
signal.append(-1)
else: signal.append(0)
print(signal)
# プロット用ライブラリの読み込み
from pylab import rcParams
import matplotlib as mpl
#キャンバスのサイズを大きくする
rcParams['figure.figsize'] = 10,5
# 日次変化率×トレードシグナルの累積変化率で
# トレード戦略に従ってトレードした累積リターンを算出する
backtest_return = ((change[1:-1] * signal[0:-2]) + 1).cumprod()*100
x = AAPL.index[0:-2]
backtest_return
# matplotlibでリターンの推移を可視化
plt.title('trade return')
plt.plot(x, trade_return[0:-2], 'b', label='HODL', alpha=0.8, linewidth=0.5)
plt.plot(x, backtest_return, 'orange', label='EMA return', alpha=1, linewidth=1.5)
plt.grid(which='both')
plt.legend()
plt.show()
pythonでプログラミングがしたい!!
pythonを学びたい!という方には、
オンラインプログラミング教室『Aidemy アイデミー』がお勧めです。
ご自身でプログラム環境を用意する必要は無く、サイトへアクセスするだけです。 創業者は東京大学工学部卒の石川聡彦さん。
著書に『人工知能プログラミングのための数学がわかる本』(KADOKAWA/2018年)など。
無料で、お試しもできますので安心です。
お時間ある方は下記リンクを覗いてみてはいかがでしょうか(*'ω'*)。