見出し画像

Pythonで仮想通貨の相場を読む ~第1回:GC/DCでトレンドを把握~

今回は仮想通貨の値動きをプログラムで分析する方法を紹介していきます。分析する方法はかの有名なゴールデンクロス(GC)デッドクロス(DC)です。ひとたびチャートを開けば簡単に目で確認することができますが、例えば100個の銘柄を全部目視で確認するなんていうのは簡単ではないですよね。今回はPythonを使って多数の銘柄を一気にチェックしていい感じの銘柄を見つける手がかりにしましょう、という話です。例えば、Binance上場の全銘柄から4時間足GC直後の銘柄を簡単に抽出することができます。これらに絞って銘柄を精査すれば効率よく有望銘柄を探すことができるかもしれません。

Binance上場銘柄のゴールデンクロス比率(BUSD建て)

また、上の図はBinance上場の全銘柄のうちGC後の銘柄とDC後の銘柄の比率を示したグラフです。アルトコイン投資で有名なあおいさんのツイートを参考に作成してみましたが、このグラフから相場全体が上昇傾向にあるのかはたまた下降傾向にあるのか読み取れます。

さて、こうしたプログラムを作成するにはざっくり以下のようなステップが必要となります。順に解説していきましょう。

  1. 仮想通貨銘柄の値動き情報を取得する。

  2. 銘柄毎に値動き情報からGC/DCを算出する。

  3. 集計結果を表示する。

①仮想通貨銘柄の値動き情報を取得する。

Binance API

値動きを取得するためには何かしら値動き情報を提供してくれるサービスを用いる必要があります。私が主に使っているのはBinance APIです。Binanceに登録しているユーザであれば無料で使うことができます。Binance APIの使い方についてはいくつも解説サイトが存在していますが、特に難しくはありません。BinanceにログインしてAPIの作成を行い、APIキーシークレットキーを入手することができれば準備完了です。2つのキーを手に入れてしまえばそれらを使ってAPIを呼び出せば所望の出力を得ることができます。Pythonから簡単にBinance APIを呼び出すパッケージ(python-binance)も公開されています。

CoinGecko API

他にCoinGeckoもチャート取得のAPIを提供しています。こちらは登録も不要なので誰でも簡単に使えますが、呼び出し回数が毎分50回に制限されており、大量の銘柄を処理したい場合には呼び出しに時間をかける必要があります。また、ローソク足を取得してみるとデータに少し違和感があることが多いです。open/closeの値がhigh/lowの値と同じことが多かったり、連続する足のcloseとopenがつながらないことが多かったりします。
これもPythonから簡単に呼び出せるパッケージ(pycoingecko)が公開されています。とても便利で良いですね。

各APIの具体的な呼び出し方法については後段で紹介します。

②銘柄毎に値動き情報からGC/DCを算出する。

各銘柄の適当な時間足で値動きが取れたらGC/DCを計算して行きましょう。一般的なGC/DCとは、長いスパンの移動平均線(長期MA)と短いスパンの移動平均線(短期MA)を比較し、短期MAが長期MAの上に出ると”ゴールデンクロス”,逆に短期MAが長期MAの下に出ると”デッドクロス”と呼びます。細かい計算方法は様々で色々と設定に幅があるのですが、今回はMoving Average Convergence and Divergence(MACD)を用いた方法を採用します。MACDは2つの指数平滑移動平均線(EMA:移動平均線をちょっとおしゃれにしたやつ)の差を見る指標で、短期EMA-長期EMAをMACDとして表現します。前述のGC/DCの定義からMACDが正の時にGC,負の時にDCと言うことができます。更に、MACDから更に移動平均線を計算したシグナルと呼ばれる指標があり、GCの時にこのシグナルが負であれば"買い"DCの時にシグナルが正であれば"売り"と言われています。このような買いサイン、売りサインを抽出しやすくするためにMACDを採用しました。
やや難しいのはそれぞれの移動平均線の幅をどれくらいに設定するかです。何がベストかの判断は難しいので、計算結果を見ながら適当な値を試していきましょう。用途に応じて平均線の幅を最適化する試みもいずれ記事にしたいと思います。

指標の具体的な算出にはやはり便利なPythonのパッケージが存在しています。TA-Libpytiを導入すると簡単に算出可能です。以下のサンプルコードではインストールにトラブルが生じにくいpytiを採用しています。

Binance全銘柄のGC/DC確認プログラム

ここからは実際のPythonコードを用いて具体的な実装方法を紹介します。Python実行環境の構築やパッケージのインストールについては詳細に解説しませんのでご承知おきください。

ではまず、Binance APIから全銘柄のローソク足情報を取得するコードを見ていきましょう。

ここから先は

10,634字 / 4画像

¥ 980

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