BitflyerでビットコインFXの自動売買BOTを作ろう

第1回~設定編

「Python(プログラミング言語)を実行できる環境を作ろう!」

Bitflyerで自動売買BOTを作るために最初にやらなければならない設定編です。忙しいサラリーマンの方でも、頑張れば1日で終わります。今日やってしまいましょう!

1.Pythonというプログラミング言語を始めてみよう!
2.Anacondaという開発環境をパソコンに入れてみよう
3.Pythonプログラムを3行だけ書いて実行してみよう!

第2回~API入門編

「自動売買BOTを作るのに必要なAPIを理解しよう!」

自動売買BOTを作るのは簡単です。自分で0からプログラムを書かなくても、取引所が提供しているAPIを利用して組み合わせるだけで、ほとんどの自動売買ロジックは作れます。まずは「API」を学んでしまいましょう。以下の講座は、休日なら1日、平日なら2日で終わります。

1.APIって何?仮想通貨の価格データを取得してみよう
2.BitFlyerのパブリックAPIを使ってみよう!
3.JSON形式のデータから自由に欲しい数字を取り出そう!
4.CryptowatchのAPIで特定日のBitcoin価格を取り出そう
5.最低限必要なプログラミング構文を3つ覚える

第3回~売買注文編

「BitFlyerで自動で売買注文を出してみよう!」

いよいよ実際に売買の注文を出します! Bitflyerに「買い」「売り」の注文を出したり、注文が約定したかどうかを管理したり、キャンセルする方法をマスターしましょう。これと基本的な構文を組み合わせれば、基本的な売買ロジックは何でも実装できるようになります。

1.BitflyerのAPIキーとシークレットを取得しよう!
2.bitFlyerのAPI経由で「買い注文」を出してみよう!
3.便利なCCXTライブラリをインストールしてみよう
4.CCXTライブラリで注文を出す方法をマスターしよう
5.CCXTで未約定の注文を管理したりキャンセルする方法

第4回~BOT作成編

「売買ロジックを考えてそれをBOTにしてみよう!」

今まで勉強した内容を組み合わせて、自動売買BOTを作りましょう! 放置でも稼働しつづけて、売買のシグナルに基づいて自動的にエントリーし、手仕舞いのシグナルに基づいて決済までするプログラムをpythonで実装していきます。

1.自動売買BOTのアルゴリズムを考える
2.Bitflyerのローソク足(1分足)の情報を取得する
3.何度も使う処理を自作の関数にまとめよう
4.酒田五法「赤三兵」の買いシグナルのロジックを実装
5.過去の価格データを使ってシグナルを検証する
6.エントリーと手仕舞い(決済)を自動化しよう
7.実際に自動売買ができる試作版のコードを作る
8.通信エラー対策のために「例外処理」を書こう

第5回~WindowsVPS構築編

「24時間動作するWindowsPC(サーバー)環境を作ろう!」

コードはこれで完成ですが、実際に自動売買BOTを24時間動かすためには、24時間動作するPC環境が必要です。ここではWindowsVPS(サーバー)を使ってBOTを稼働させる方法を紹介します。また稼働状況をメールやLINEで通知させて、出先でも確認する方法を解説します。

1.自動売買BOTを24時間稼働させるためのWindowsVPSの環境作り
2.WindowsVPSでPython(Anaconda)環境を構築する手順
3.BOTの稼働状況の監視(1)出力内容をメールで受け取ろう!
4.BOTの稼働状況の監視(2)売買の状況をLINEで通知しよう!

第6回~バックテスト編

「過去データのバックテストで自作BOTの勝率を検証しよう!」

前回作成した練習BOTの勝率・平均リターン・総利益を、過去のヒストリカルデータを使って検証してみましょう! また有名なドンチャン・チャネルブレイクアウトをpythonで実装して、月別リターンの計算、資産曲線の描画、さらに最適なパラメーターの探索の方法まで一気に学びます!

1.勝率についての考え方と注意点の解説
2.バックテストに必要な過去の価格データを集めよう!
3.自動売買BOTの勝率・平均リターン・総利益を検証しよう!
4.ドンチャン・ブレイクアウトを実装してバックテストする
5.資産曲線をpythonで作って最大ドローダウンを調べよう!
6.Pandasを使って自動売買BOTの成績を月別に集計しよう!
7.一番成績のいい最適なパラメーターを自動的に探索しよう!

第7回~資金管理編

「資金量に応じた適切な注文サイズをBOTに計算させよう!」

同じ売買ルールの期待値を持つBOTでも、どのような資金管理の手法を使うか、どのようなロット数で運用するかによってパフォーマンスは全然違ってきます。この章では、BOTを使って自動的に損切り(ストップ)を入れたり、適切な注文サイズを計算する方法を解説します!

1.自動売買BOTに適切な注文数量を計算させよう!
2.1期間のボラティリティを基準に損切りを入れよう!
3.証拠金残高から最適な注文サイズを計算して注文しよう
4.1トレードの許容資金で分割エントリー(増し玉)しよう
5.損切りにトレイリングストップを実装してみよう!
6.パラボリックSARを使ったトレイリングストップを作ろう

第8回~破産確率編

「プラスの期待値なのに間違って破産する確率を計算しよう!」

よくあるバルサラ破産確率表の誤解から、破産確率の公式が何を計算しているのかを高校数学でわかるように解説します。また許容できるドローダウンの発生率から適切な口座のリスク率を考えます。pythonなど実践的な内容は(3)の後半からです!

1.高校数学で正しいFXの破産確率を理解しよう(1)
2.高校数学で正しいFXの破産確率を理解しよう(2)
3.高校数学で正しいFXの破産確率を理解しよう(3)
4.口座のリスク率別にドローダウンの発生確率表を作ろう!

第9回~フィルター編

「エントリー条件にフィルターを加えてBOTの精度を上げよう!」

前章までのBOTに、移動平均線などを用いたトレンドフィルターを追加してBOTのエントリー精度を向上させることを目指します! さらに今回からカウンタートレード(逆張り)型のBOTの作成にも着手し、各テクニカル指標を用いたBOTの売買ルールとフィルターの有効性を検証します!

1.運用BOTのリターン分布の特徴を度数表で理解しよう!
2.BirflyerFXの単純移動平均と指数移動平均を計算しよう!
3.ブレイクアウトBOTにトレンドフィルターを実装して検証する
4.出来高フィルターの有効性をScipyの「t検定」で検証する

 


本編の流れに入れきれなかったテーマ別の読み切り記事は、こちらの「テーマ別の記事一覧」にまとめていきます。本編で解説しきれなかったより深い内容の記事を載せていく予定です。

有料note

BOTの作り方はすべて本編で解説していますが、自分で試行錯誤する時間を短縮したい方のために、そのまま動かせるBitflyer用の実践コードも有料noteで扱っていきます。

ドンチアン・チャネルブレイクアウトのBitflyer用実践コード