見出し画像

ビットコイン自動売買トレードbot(GOLDEN_CROSS_BOTソースコード公開)

皆さんこんにちは!Hirofumiです。
このnoteでは、bot開発をこれからはじめてみようかなと考えている人を対象に考えています。そして実際にbotを開発する流れを説明し、noteの最後では、単純移動平均線からゴールデンクロスとデッドクロスを検出し、ドテンを行うbotをコーディングし動作させるところまで説明します。
(このbotをGOLDEN_CROSS_BOTと名付けました。そのまま。)
当該botはある程度のチューニング可能なものになっているため色々いじれると思います。なお当該bot使用により生じた問題については一切の責任を負いかねます。

はじめに

まずこれからbot開発を初めてみたいと思われている方のほとんどの疑問は、"まず何をしたらいいの??"かと思います。
ざっくり説明すると、bot開発は下記のフェーズで進めていくのが一般的です。

①環境構築
②ロジック考察
③コーディング
④テスト&実行

今回はこのそれぞれのフェーズで何をしたらいいのかを明らかにします。
では順に説明していきます。

環境構築

まず"環境構築"についてです。おそらくプログラミング開発経験がない方のほとんどはここでつまづいてしまうかと思います。
このフェーズは必須なのですが、プログラミング開発経験者にとっては常識であるが故にきちんと説明していることが少ない内容でもあるからです。

環境構築とは、一言で言うなら、「PCやサーバをbotが動く環境にする」ことです。
実はbotをコーディングし、プログラミングを実行してもそのままでは動きません。
Python(プログラミング言語の一つ)で開発しているのであれば、まずPythonが動かせる環境にPCを設定する必要があります。そしてその他にもライブラリの導入などがあります。環境構築とは、そのような事前にしておくべきことのことを指します。

ではPCにPythonを導入していきましょう。
まずWindowsならコマンドプロンプト、Macならターミナルを起動してください。そこで以下のコマンドを入力してみてください。($以降の文字列)

$ python --version
Python 3.6.5

私の端末ではPython 3.6.5が表示されましたが、皆さんはおそらく違う結果になったはずです。ここでPython [バージョン名] が表示された方はPythonがすでにPCにインストールされています。
インストールされていないことがわかった場合は下記Webサイトからインストールしておいてください。なおバージョン3以降をインストールしてください。


次にpipコマンドを使ってパッケージをインストトールしていきます。
まずpipについてですが、これはPythonをインストールすると標準でついてきます。Pythonのライブラリを管理するためのツールだと思っていただければいいです。

$ pip install [パッケージ名]

上記コマンドでライブラリを導入することができます。とても簡単ですね。
では、続いて下記コマンドを入力し、一般的によく使われるPythonライブラリを導入してみます。

$ pip install pybitflyer
$ pip install requests
$ pip install selenium

次に下記コマンドを入力すると先ほどインストールしたライブラリが一覧で表示されるはずですので確認してみてください。(下記は私の端末の出力です)

$ pip list
certifi    2018.4.16
chardet    3.0.4    
idna       2.6      
pip        10.0.1   
pybitflyer 0.1.9    
requests   2.18.4   
selenium   3.11.0   
setuptools 39.0.1   
urllib3    1.22 

さあここまででざっくりと環境構築は完了です。

ロジック考察

ロジック考察は実際に動かすbotをイメージし、どのような条件でトレードを行っていきのか考えるフェーズです。
今回は単純移動平均線を元にゴールデンクロスとデッドクロスを検知し、トレードを実施するbotを作成することとします。

ゴールデンクロス、デッドクロスとはなんなのか簡単に説明しておきます。
下図を参照してください。

これは私が記事作成時点での直近のビットコインの一時間足チャートです。
少し分かりにくいですが、オレンジ色の線がものが短期移動平均線、水色の線が長期移動平均線になります。

次に一つ目の(一番左)の白丸をみてください。ここで短期移動平均線と長期移動平均線が交差し短期移動平均線が追い越す形になっています。これはゴールデンクロスと呼び一般な買いのサインとされます。実際にこのチャートでも、上昇していることがわかりますね。

そして二つ目の白丸では先ほどと逆のことが発生しています。つまり、長期移動平均線が短期移動平均線を追い越す形になっています。これはデッドクロスと呼ばれ一般的な売りのサインとされます。実際にこのチャートでも下落しています。

さて、ここまで来ると実際にbotの動きがイメージできてくるかと思います。
つまり移動平均線の値を算出し、短期移動平均線が長期移動平均線より強ければ、ロングポジション、長期移動平均線が強ければショートポジションを行い。
逆の事象が発生した時にドテンします。

つまり下記フローとなります。

①移動平均線を算出(https://api.cryptowat.ch)
②ゴールデンクロス、デッドクロスを検知した際にロングポジションもしくはショートポジション
③次のクロスが発生した時にクローズもしくはドテン
④繰り返す

コーディング

次はコーディングのフェーズになります。
下記のファイル構成とします。またbitFlyerを使った取引のみサポートしています。

ここから先は

4,840字

¥ 400

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