見出し画像

[トレンドフォロー型]仮想通貨自動取引botのソース公開

はじめに

仮想通貨bot を作り初めて約 1 年経ち、やっと安定して利益が出せるようになって来ました。

自分は今までに ml, mm, アビトラなど色々な bot を試して来ましたが、なかなか利益が出ませんでした。そして、色々な本を読んで試行錯誤した結果、トレンドフォロー型の bot で利益が出せるようになりました。
各 bot の所感などは別記事で書こうと思います。

今まで結構な量の bot のプログラムを書いて来て、自分の中で定型のようなものが出来上がって来ました。ここでは、今動かしている最終系の bot のソースコードをほぼそのまま載せようと思います。ただ、仮想通貨の相場の動きは常に変動しており、自分もパラメーターの調整等は実施しているため、ソースコードをそのまま動かして利益が出ることを保証するものではありません。公開したソースコードを元に、対象の銘柄やパラメータ、独自の指標などを色々試してもらえればと思います。

ソースコードは python で書いています。細かく解説を入れていくので、python 自体をあまり触ったことがない人でも bot を作れるようになるかと思います。

ソースコードを公開する理由
利益が出るプログラムを書いたならソースコードを公開する必要はないんじゃないか?と思われるかもしれません。
その通りなのですが、如何せん元手が少ないため、note でソースコードを有料公開して得た資金を全額 bot に投入することにしました。
有料記事にするということで、少なくともこれを読んだ方が一歩も二歩も先に進めるような内容になっていると思います。
あとは、公開したソースコードを改良して多くの人が海外取引所で利益を上げられるようになれば、日本人の総所得が増えて経済が活性化するのではないかという壮大な目論みもあります。

対象とする読者

  • 自動売買のアイディアはあるけど、python でどのようにプログラムを組んで良いか分からない方

  • 自動取引を題材に python を学習したい方

  • 他の記事のソースコードにいまいちピンと来なかった方

  • トレンドフォローに興味がある方

  • 海外勢に勝って少しでも日本にお金を流入させたいと考えている方

取引の内容

  • 一時間足を使用

  • KuCoin で取引する

  • MA と RSI を使って売買する

  • トレンドフォロー

  • 現物取引

  • 複利

一時間足を使用
最初は日足で取引していたのですが、それだと多くても一日に一度しか取引が実施されないため、試行回数が少なくプログラムの有用性の確認に時間がかかってしまう状態でした。対して一時間足を使えば単純計算で試行回数が 24 倍になります。日足よりもトレンドの形が分かりづらくなりますが、海外のメジャーな取引所やメジャーな銘柄を扱うことでボリュームを増やすことで影響を少なくできると思い、一時間足を使うことにしました。

KuCoin で取引する
国内取引所より海外取引所の方がボリュームが多くトレンドフォローに向いていると考えました。
また、日本人同士でお金を取り合っても仕方ないと考えているため、海外の取引所にしました。あと、数年前になぜか KuCoin でアカウントを作っていたため KuCoin を使うことにしました。(当時は適当に買った KCS が 6 倍になったりと夢がありました。。)
公開したソースコードは KuCoin 用ですが、少し弄れば Binance だったり国内の取引所にも対応できるかと思います。

MA と RSI を使って売買する
ここは個性が出てくる部分だと思いますが、自分は MA と RSI を使っています。もちろんソースコードは色々な手法を試せるように柔軟な形に書いています。慣れ親しんでいる手法等があれば組み込んで使ってみてください。

トレンドフォロー
簡単にいうと、流れに乗る作戦です。ローソク足を分析し、トレンド形成のサインが出たら買い、トレンド終了のサインが出たら売ります。そんな簡単にトレンドが分かるのか?と思うのですが、良い戦略とパラメータさえ見つけられれば、意外と利益が出ます。もちろん毎回うまくいくわけではなく、むしろ負ける取引の方が多いですが、たまにくる大きな波に乗っかることで、平均して利益を得ることができます。難点としては、買いも売りもワンテンポ遅れるため、どうしても利益が取りきれない取引が多発してしまうことです。

自動取引(botter)とは

取引所の API を利用し、自動で売買を行うことです。API とは、自動売買のために取引所が用意している口で、python などのプログラムから呼び出すことで取引を実行することができます。

使用技術

  • python

  • polars

  • ta

python
bot を作るにあたり、多くの人が使っていて参入障壁が低そうだったため python を選びました。私が使っている IntelliJ IDEA というエディタと相性が良いという理由もあります。
個人的には python のような動的な型付け言語は実行時エラーが多発するので苦手なのですが、気軽に色々書いて試せるというメリットもあります。

polars
時系列で取得したローソク足のデータを行列形式で操作したかったため使用しました。
同系統の有名なライブラリに pandas がありますが、polars の方が処理速度が速いそうです。その理由として polars は裏側の処理を Rust で実装している点があるのですが、今後 Rust で bot を作りたくなった時に気軽に移行できそうだと考えました。

ta
RSI などの指標を計算するために使います。
ただ、この ta はよく見る TA-Lib では無いです。
こちらの ta を使っています。
TA-Lib に比べると、ta の方がインストールが劇的に楽になります。

事前準備

コードを実行する前に、いくつか準備が必要です。一旦簡単に書きますが、分かりづらいかと思うので別記事にまとめようと思います。

KuCoin にアカウントを作成する
まずは KuCoin のアカウントを作成します。日本語のサイトもあります。
実際に取引をするためには、アカウント作成後に顔写真認証などが必要になります。

KuCoin に資産を移動する
アカウントを作成したら、次に KuCoin に資産を移動します。資産を移動するためには、まず日本の取引所で BTC や ETH を日本円で買い、その通貨資産を KuCoin のウォレットに送金します。
私は日本の取引所は CoinCheck を使い、ETH を KuCoin に送金しました。

KuCoin の API を使用できるようにする
KuCoin のサイトの上部メニューから、「API サービス」という箇所をクリックし、「API キーを作成」ボタンをクリックします。
作成されると、API KEY, API PASSWORD, API PASSPHRASE が取得できます。この値は後々必要となるため、人目につかないところに保存しておいてください。

コード作成・解説

それではソースコードを作成・解説していきます。
コード自体は 600 行程度ですが、解説を多く入れているので記事は結構長くなっています。
とりあえず先にソースコードだけ欲しい、という方のためにまずは全コードを zip でおいておきます。

ここから先は

22,474字 / 1ファイル

¥ 1,000

期間限定 PayPay支払いすると抽選でお得に!

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