見出し画像

プログラミング初心者がビットコインの自動取引BOTをPythonで構築してみた


みなさん、こんにちわ。
高橋勇気です。
本日は、ビットコインを自動で取引するシステムをPythonでコーディングしましたので、これについて書きたいと思います。

また別の記事ですが、機械学習のランダムフォレストを用いてビットコインを自動取引するシステムについても書いております。→URL

仮想通貨の自動取引について

仮想通貨の取引を自動で実行するプログラムがあることがご存じでしょうか。
私が調べる限り、Pythonを用いてコーディングするケースが多いように見受けられます。
この自動取引の界隈では、そのシステムのことをBOT(ボット)と呼びます。優秀なプログラマ達が寝る時間を惜しんで取引のロジックを考え、データを集め、バックテストをし、少額で実践し、取引金額を増やし、収益を上げております。

私のプログラムスキルについて

残念ながら私はまだその域には到達しておりません。私はプログラミング初心者です。
大学でプログラミングを学んだことはありません。社会人になり、趣味程度で少し勉強した程度ですし、現在の仕事はプログラミングに全く触れることのない資産運用業務に従事しております。
エンジニアの方と比較すると、そのプログラミングのスキルは本当に天と地ほど離れていると思います。

プログラムを提供しようとした動機

さて皆さんの中には、Pythonで仮想通貨を自動で取引することができることは知っているけれども敷居が高くできていない、またはコーディングを挑戦してみたがエラーが多すぎて挫折した、という人はいませんでしょうか。

私が開発に挑戦した際、いろいろなブログやサイトを拝見したのですが、その方々のレベルが高過ぎたため理解することができず、参考にならないことが多かったです。
またその方々が公表しているプログラムのコードをコピペし、実行したとしてもエラーが起きてしまい、直すことがもきず、何度も挫折しそうなりました

そのような中、私が感じたこととしては、”ここまで高度ではなくても、初心者向けの、まずは動くプログラムを見たい”でございます。
そのため、プログラミング初心者である私が開発した最低限動くプログラムを提供したいと思います。

現在、Pythonを用いて仮想通貨の自動取引をやってみたい方、これからやろうとしている方、とりあえず動くものを作ってみたい方向けの提供になります。

開発前提はこのようになっております。

開発環境と取引戦略のアイデア

【開発前提】
使用言語:Python
仮想通貨取引所:ビットフライヤー
対象通貨ペア:BTCJPY_FX

【取引戦略のアイデア】
まずFXにせよ、株にせよ、仮想通貨にせよ、トレーディングを行う際は板を使用いたします。この板にはBid(買いたい人のオーダー)とAsk(売りたい人のオーダー)が羅列されておりますが、この板データを使用した取引戦略になります。
買いたい人の合計金額と売りたい人の合計金額を比較し、買いたい人の金額の方が多い場合は価格は上がる可能性が高いだろうと考えたわけです。(もちろん売りたい人の金額の方が多ければ価格は下がると予測します)

具体的には以下のような戦略になります。
x円:現在の価格から何円まで離れた価格までのオーダーを計算するか。(以下の例ではx=10万円)
y:エントリーする際の比率(Bidの合計値÷Askの合計値)の閾値。(以下の例ではy=2)
t:ポジションをキープする時間(以下の例ではt=1分)
現在の価格:100万円

Bidの合計値=90万円~100万円の間にある買いオーダーの合計金額
Askの合計値=100万円~110万円の間にある売りオーダーの合計金額
比率(Bidの合計値÷Askの合計値)>2の時、買い注文を行う。
1分後に再び比率を計算し、条件を満たしている場合はポジションの保有を継続。そして再び1分後に同じ確認を実施。
上記の比率を満たしていない場合は含み損益のプラスマイナスに関わらずポジションをクローズする。
また含み損が一定以上でロスカットも実施。
これを無限に繰り返す。

このプログラムで分かること・できること

このBOTは上記の戦略を実行する上で以下のプログラムも含んでおります。
・現在の価格を取得する
・自分のポジションを確認する
・板の情報を取得し、上記の比率を計算する
・指値で買い・売りオーダーを発注する
・成行で買い・売りオーダーを発注する
・自分が注文している全てのオーダーをキャンセルする

最後に

さていかがでしょうか。
取引のアイデア自体は悪くないと思っておりますが、いざプログラム実行し、実際の相場で儲けるのは非常に難しいです。

そうだとしても今後、仮想通貨の自動取引に挑戦したい方、とりあえず動くものを開発したいという方には非常におすすめだと思います。
提供させていただいているプログラムをコピペすればすぐに動かせると思います。
ぜひこちらのプログラムを元に皆さんのオリジナルの戦略を考えてみてください。

またご購入を検討されている方は必ず以下の注意点をご覧ください。

【注意点】
・私が使用しているPython環境での動作確認はしておりますが、購入された方の環境で動くことを保証するものではありません。
・エラーにより動作が止まらないよう工夫しておりますが、これを保証するものではありません。
・返品や修正の対応は不可とさせてください。
・投資を勧誘するものではありません。
・提供するプログラムを用いた損益について一切の責任を負いません。
・提供しているプログラムは、儲けるためではなく、勉強するためにご購入ください。
・このプログラムを実行し、そのまま放置することは止めてください。あくまでも勉強用になります。
・高度なプログラムをご所望の方はご遠慮ください。

ここから先は

10,587字

¥ 4,800

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