システムトレードここまでにOHLCデータを取得してDataFrameに入れるという所までを解説しました。ここからチャートの描画もやってみましょう。DataFrameにデータを入れる所までできれば、後はわりと簡単にできてしまうのですが、画面描画の部分などを少し解説していきます。ちなみに、チャートの画面描画はシステムトレードを行う上では必須ではないのですが、チャートが描画できた方が扱っているデータへの理解も深まると思います。それに、チャートとして表示を行う事で、後々の取引結果の分析なども実施しやすくなりますよ。まとめDataFrameに入れたOHLCデータをチャートとして描画では、最初に、今回作成するプログラムの流れをまとめておきます。APIからOHLCデータを取得3)対象のOHLCデータをDataFrameに投入4)DataFrameのデータをチャートとしてプロット5)チャート(表)のフォーマット作成と表示処理ざっくり言うとこんな感じです。ちなみに、チャートを描画するためには事前の準備が必要です。事前準備の方法についてはこちらをご確認下さい。Pythonでチャートを描画するための準備また、DataFrameという名前を出しましたが詳細を知りたい!という場合はこちらの記事を参考にして下さい。実際にコードを書いて実行してみるでは、先ほどの処理の流れ通りのコードを作成して実行してみます。細かい解説は後で行います。chart')plt.show()■実行結果コードの解説ちょっと小さいですが、無事にローソク足のチャートを描画する事ができました。処理のおおよその流れは冒頭でお伝えした通りになりますが、今回は描画のために必要なコードがたくさんありますので、(その辺について)少し長めの解説をしていきます。Eをリストにしてまとめてdataに入れるzipというと圧縮形式をイメージしますが、Pythonの場合は複数の要素(変数など)をまとめて扱う場合に使用されます。そんなに難しく考える必要はなく、今回のケースでは元々別々の変数であるOHLCデータを、まとめて「ohlc」に代入していると思えばOKです。※ちなみにzipファイルを読み込むにはzipfileというモジュールを使います。date2numについて「matplotlib.dates.date2num(d)」※unix時間への変換OHLCを表示する関数に渡す値はunix時間にする必要があります。逆に、Matplotlibを使ってグラフ描画を行う際には、X軸に時刻を設定する事が多いと思います。そんな時には両方の値を保持しなければなりません。unix時間を算出する際だけ、date2num関数を行う事が多いです。datetimeオブジェクトの(d)を、この後で説明するcandlestick_ohlc用の日付(Unix時間)へと変換する事ができます。「ax.xaxis」と「ax.yaxis」についてそもそも描画領域の全ての要素をまとめてArtistオブジェクトと言うそうです。Artistの中にはcontainerがあり、その中のFigureが含まれます。※いくつかのコードを見ていると、fig=plt.figure()としてFigureを呼ぶことが多いですね。Figureオブジェクトの中にはAxesオブジェクトというものがあり、さらにその中にAxisオブジェクトが存在しています。その中に今回使用しているxaxisメソッド、yaxisメソッドが存在しています。※まとめると、Figure.Axes.Axisの中にxaxis、yaxisというメソッドが存在するちなみに、この辺りの記述方法は色々な流派があります。いくつか使いながら自分の書きやすいコードを書けばよいと思います。candlestick_ohlc関数についてcandlestick_ohlcは今回のコードの中では一番大切な部分かもしれません。ちなみに、事前準備でmpl_financeをインストールしましたが、それはこの関数を使いたいがためです。ローソク足描画専門の素晴らしい関数です^^candlestick_ohlc関数を呼ぶ時には以下を指定する必要があります。代表的な引数をあげます。その後にデータが続く事もある。今回は日単位の精度に落としてあるので、0.7日分の幅になる。colorup=’g’,#陽線の色を指定(ここでは緑(’g’))colordown=’r’#陰線の色を指定(ここでは赤(’r’)))ローソク足を表示する専用関数だけあって、引数で陽線や陰線の色も指定できる作りになっています。※オブジェクト指向らしい作りになっていると思います。最初は使い方もちょっと分からないなと思うかもしれませんが、使っていくうちに慣れてくると思います。細かい部分については少しずつ調べて知識を深めていけばOKだと思います。※mpl_finance関数の仕様についてはこちらもご参考にhttps://matplotlib.org/api/finance_api.htmlその他その他にもいくつか簡単に解説しておきます。■set_major_formatter関数グラフの目盛に表示される名称を定義する関数。この場合は「月日」を表示しています。■grid関数ここでは使用していませんが、グリッドを表示するための関数。ax.grid()と記述して使用する事が多い。描画グラフのタイトルを指定する関数。plt.title(‘タイトル名’)として使用する事が多い。まとめさて、チャート描画ができれば、OHLCデータのプロットイメージはバッチリです!実際に、OHLCが時間毎に変化していくというのが、明確にイメージできたのではないでしょうか。ここに移動平均線などのシグナル情報も付与できれば、システムトレードを行う上でも大きな力になると思います。自分自身のトレード手法が有効かどうかを判断するためには、非常に役に立ちますので、今回の描画までの流れはしっかりと覚えておいてほしいなと思います。新しい投稿をメールで受け取るサイト案内人:リーベル現役エンジニアのリーベルです。PV数ランキングPythonの基本文法とサンプルソース|これで大抵の事はできてしまう!今回はPythonの基本文法について解説していきます。Pythonは非常に分かりやすくて読みやすい。豊富なライブラリを活用すれば高度な数...Pythonの使い方|こうしてプログラムを作っていく!この記事ではPythonの使い方について解説をしていきます。Pythonは記述方法が簡単で、人工知能のライブラリが非常に豊富な言語です。できれば最適なサイズをしっかりと把握しておきたいものですよね。...WEB画像の最適な解像度・画素・サイズを徹底解説!今回はWEBで使用する画像の最適な解像度・画素・サイズについて解説をしていきたいと思います。WEBデザインをしている方にとっては、WEB画像の解像度など...Pythonの日付計算ならdatetime!簡単に加算・減算も可能!今回は、Pythonを使って日付を操作したり計算する方法などについてご紹介します。プログラミングをしていると、日付を取得したり、足したり、引いたりする機...Pythonによるdatetime⇔unixtimeの変換方法を学ぼう!今回はPythonによるdatetime、unixtimeの変換方法を見ていきましょう。APIなどを使用する場合にはunixtimeで(...HMAC認証とは?|Pythonを使って署名をしてみよう!プライベートAPIを操作する場合にはHMACというメッセージ認証コードを使うのが主流です。Promptで実行してみよう!anacondaに標準で同梱されているjupyterやspyderを使ってPythonでコードが書ける様になったとしても、実際にPythonのプログラムを実行す...Pythonの例外処理にはtry-exceptを使おう!Pythonでコードを書いていると例外処理を行いたい事があります。エラーの内容は基本的には実行時にエラーチェックをしてくれます。それに機能的な事前に一覧...PHPの基本文法とサンプルソース|大抵の事はこれでできてしまいます!PHPの基本文法についてまとめました。今でも国内のWEBサービスでは一番使われている言語と言われていますからね。なんだかんだで学習が必要な分野です。2018-2020Liibercraft|リーベルクラフト。