auカブコム証券APIとPythonでトレードアプリ開発。
初心者向けにアプリ開発方法を解説します。
streamlit上でplotlyチャートを描画させる方法、
移動平均の算出方法と描画について解説します。
次回の第5回目は、いよいよトレード戦略について解説をする予定です。
まずは、今回算出した移動平均線をつかった戦略です。
おなじみの、移動平均線交差によるトレードで利益が出るのか?
検証や、最適な移動平均線の組み合わせをPythonで算出します。
その前段階の移動平均線をマスターしましょう。
第4回動画解説
動画の目次
【目次】
01:04 前回の振り返り
01:57 本編 Plotlyチャート
02:10 タイトルの表示 マークダウンを使った表記
03:25 Streamlitでplotlyチャートを表示させる
05:46 ローソク足チャートを描画
08:54 トヨタ自動車の株価をYahooAPIから取得して描画
13:42 移動平均線を追加する
17:58 任意の株価をYahooAPIから取得して描画
21:03 次回の動画について
解説
動画で解説したPythonコード
動画で解説したPythonコードはこちらです。
「新しく覚えることを最小にして、動くものを作る」これを最優先としています。
初心者が理解しやすいように、コード記述の美しさや、推奨されている記述ルールよりも、単純であることを優先しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
'◇株価を取得する2 銘柄指定◇' '移動平均を描画する銘柄を入力してください。' '<入力例>' 'トヨタ自動車 : 7203.T' '日立製作所 : 6501.T' '日経平均株価 : ^N225' Security_code = st.text_input('銘柄を入力してください。') '入力された銘柄名:', Security_code if st.button('入力された銘柄のローソク足を表示する。'): # 株価をインターネット上から取得するライブラリーをインポート import plotly.graph_objects as go from pandas_datareader import data as web # 任意の銘柄の株価を米国Yahoo!から取得 df_Security_code = web.DataReader(Security_code, data_source='yahoo', start='01-01-2020') st.write('取得したデーター') st.dataframe(df_Security_code) # 日付がインデックスだとplotlyで描画されないようなので、インデックスから外す df_Security_code_ri = df_Security_code.reset_index() # st.print(df7203_reset_index) st.write('Date をインデックスから外した') st.dataframe(df_Security_code_ri) # 終値(Close)の移動平均線 5日、10日、25日を算出してデータフレームに追加します df_Security_code_ri['SMA005'] = df_Security_code_ri['Adj Close'].rolling(window=5).mean() df_Security_code_ri['SMA010'] = df_Security_code_ri['Adj Close'].rolling(window=10).mean() df_Security_code_ri['SMA025'] = df_Security_code_ri['Adj Close'].rolling(window=25).mean() st.write('移動平均を算出') st.dataframe(df_Security_code_ri) print(df_Security_code_ri) # 初期化 fig6 = go.Figure() st.write('ローソク足に移動平均線を追加') fig6 = go.Figure(data=[go.Candlestick(x=df_Security_code_ri['Date'], open=df_Security_code_ri['Open'], high=df_Security_code_ri['High'], low=df_Security_code_ri['Low'], close=df_Security_code_ri['Adj Close'], name=Security_code)]) # 移動平均線を追加 fig6.add_traces(go.Scatter(x=df_Security_code_ri['Date'], y=df_Security_code_ri['SMA005'], name='移動平均05日')) fig6.add_traces(go.Scatter(x=df_Security_code_ri['Date'], y=df_Security_code_ri['SMA010'], name='移動平均10日')) fig6.add_traces(go.Scatter(x=df_Security_code_ri['Date'], y=df_Security_code_ri['SMA025'], name='移動平均25日')) # チャートのタイトルを表示 fig6.update_layout(title_text=Security_code) #スライドバー非表示 fig6.update_layout(xaxis_rangeslider_visible=False) # fig.show() st.plotly_chart(fig6, use_container_width=True) |
この記事を書いた人
あしおゆたか
投資歴21年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。(現在自粛中)
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら