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


はじめまして、リョータです。
このnoteでは、BitflyerのBTCFXでそのまま使えるドンチアン・チャネルブレイクアウトBOTの実践用コードを販売しています。

私のブログの「バックテスト編」「資金管理編」で紹介したバックテスト用コードを実践用に修正したものです。バックテストの検証結果やパラメーター設定の方法なども全てブログで紹介しています。

文系でもわかる!自動売買BOTの始め方
https://ryota-trade.com/

上記のブログでは、pythonの環境構築の方法、APIの使い方、CCXTライブラリの使い方、BOTの作成方法、バックテストの検証方法などを全て無料で公開しています。良かったらブログの方も見てください。以下はBOTの内容です。

BOTの概要

・Bitflyer用のドンチアンチャネルブレイクアウトBOT
・CCXTライブラリを使用
・CryptowatchAPIを使用
(1時間足ではCryptocompareも使用可)

Bitflyer用のドンチアン・チャネルブレイクアウトBOTです。一定期間での最高値・最安値の更新をエントリーの条件とし、逆方向のブレイクアウトを手仕舞い・ドテンの条件とします。また平均ボラティリティから自動的に損切り(ストップ)を入れます。

口座のリスク率に応じてロット数の自動的に調整する機能、2~4回に分けてポジションを積み増しする機能、パラボリックSARを用いてストップ位置をトレイリングする機能が付いています。

設定できる項目

1.使用する時間軸
2.価格APIの取得元(Cryptowatch/Cryptocompare)
3.上値ブレイクアウトの判定期間
4.下値ブレイクアウトの判定期間
5.ブレイクアウトの判定方法(高値・安値/終値のどちらか)
6.平均ボラティリティの計算期間
7.損切のレンジ幅(直近のATRを使用)
8.口座のリスク率
9.レバレッジ倍率設定
10.ポジション積み増しの回数
11.ポジション積み増しの基準レンジ幅
12.  パラボリックSARを使ったトレイリングストップの設定
(初期値・加速度・加速上限)
13.   LINE通知機能、ログファイルの出力機能
14.   移動平均線を使ったトレンドフィルターの設定

※  ポジションの積み増し・トレイリングストップ・トレンドフィルター・ログ出力・LINE通知の機能は無効にできます。

注文の仕様

エントリー・積み増し・損切り・手仕舞いなどの注文はすべて成行注文で実行します。指値注文には対応していません。

注文条件の判定には、基準となる時間軸の確定足と、リアルタイムに形成中の足を使い分けることができます。例えば、1時間足を使用する場合、ブレイクアウトの判断を「終値」でするなら確定足を使い、「高値」「安値」でするなら形成中の足を使います。

ポジションの積み増しや損切りの判定には、リアルタイムで形成中の足を30秒おきに取得して使用します。トレイリングストップの条件の発動は、確定足の最高値・最安値の更新で判定しています。

▽「確定足」と「形成中の足」の意味

確定足・・・「終値」で何かを判定するときの最新の足(右から2番目)
形成中の足・・・「安値」「高値」で判定するときの最新の足(一番右)

バックテスト結果

バックテストの検証結果などは、私のブログの「バックテスト編」「資金管理編」を読んでいただければ、パラメーターが設定できるようになっているので、良いところも悪いところも、ご自身で納得いくまで徹底的に検証できます。

計算の過程やコードも全て公開しているので、まず先に私のブログを読むことを推奨します。特に「資金管理編」は読んで欲しいです。

参考までにオーソドックスな設定例の検証結果を貼っておきます。
パラメータはご自身で最適なものを研究して使ってください。

検証結果1(2017年9月13日~2018年5月21日)2144%

【検証の条件】

・1時間足を使用
・上値/下値ともに30期間ブレイクアウト
・ブレイクアウトの判断基準は高値・安値
・平均ボラティリティ(ATR)計算期間 30足
・初期ストップ位置 2ATR幅
・ポジションの積み増し 4回(1/2ATR幅ごと)
・パラボリックSARの設定(初期値0.02 / 加速度合0.02 / 上限0.2)
・初期資金 30万円
・レバレッジ 3倍
・スリッページ考慮 0.2%(追加ポジション取得時・手仕舞い時に考慮)
・1トレードの上限リスク 口座の4%

【検証の結果】
--------------------------
テスト期間:
開始時点 : 2017/09/13 01:00
終了時点 : 2018/05/21 03:00
6000件のローソク足データで検証
-----------------------------------
総合の成績
-----------------------------------
全トレード数 : 128回
勝率 : 33.6%
平均リターン : 0.71%
平均利益率 : 8.54%
平均損失率 : -3.25%
損益レシオ : 2.62
平均保有期間 : 33.4足分
損切りの回数 : 105回

最大の勝ちトレード : 1669154円
最大の負けトレード : -301529円
最大連敗回数 : 10回
最大ドローダウン : -1009481円 / -18.5%
利益合計 : 10822349円
損失合計 : -4689589円
最終損益 : 6132760円

初期資金 : 300000円
最終資金 : 6432760円
運用成績 : 2144.0%
手数料合計 : -642804円
-----------------------------------
月別の成績
-----------------------------------
2017年9月の成績
-----------------------------------
トレード数 : 8回
月間損益 : -4109円
月末資金 : 295891円
-----------------------------------
2017年10月の成績
-----------------------------------
トレード数 : 16回
月間損益 : 133929円
月末資金 : 429820円
-----------------------------------
2017年11月の成績
-----------------------------------
トレード数 : 15回
月間損益 : 334125円
月末資金 : 763945円
-----------------------------------
2017年12月の成績
-----------------------------------
トレード数 : 9回
月間損益 : 563800円
月末資金 : 1327745円
-----------------------------------
2018年1月の成績
-----------------------------------
トレード数 : 19回
月間損益 : 865642円
月末資金 : 2193387円
-----------------------------------
2018年2月の成績
-----------------------------------
トレード数 : 16回
月間損益 : 768625円
月末資金 : 2962012円
-----------------------------------
2018年3月の成績
-----------------------------------
トレード数 : 14回
月間損益 : 2434229円
月末資金 : 5396241円
-----------------------------------
2018年4月の成績
-----------------------------------
トレード数 : 17回
月間損益 : 335931円
月末資金 : 5732172円
-----------------------------------
2018年5月の成績
-----------------------------------
トレード数 : 14回
月間損益 : 700588円
月末資金 : 6432760円

検証結果2(直近3カ月での検証結果)223.0%

-----------------------------------
総合の成績
-----------------------------------
全トレード数 : 49回
勝率 : 24.5%
平均リターン : -0.32%
平均利益率 : 7.52%
平均損失率 : -2.86%
損益レシオ : 2.63
平均保有期間 : 31.6足分
損切りの回数 : 42回

最大の勝ちトレード : 172671円
最大の負けトレード : -30480円
最大連敗回数 : 10回
最大ドローダウン : -103324円 / -18.3%
利益合計 : 737185円
損失合計 : -367821円
最終損益 : 369364円

初期資金 : 300000円
最終資金 : 669364円
運用成績 : 223.0%
手数料合計 : -50160円

購入前の注意事項

本コードの内容は、ブログ「文系でもわかる!自動売買BOTの作り方」の付録教材のような位置づけでの販売になります。

そのため、pythonをご自身で勉強する気のない方や、BOTを運用する環境構築の自信がない方、コピペするだけで放置で利益を期待している方は購入しないでください。初心者向けに個別にサポートすることもできません。

あくまでコーディングの例の教材としての価格設定なので、それをご理解いただける方のみご購入ください。もちろん私が実際に運用しているので、動作することは確認済ですが、想定外の不具合が出て対応が可能であればコード修正は対応します。

以下有料部分です。

------以下有料箇所------

この続きをみるには

この続き:58,330文字/画像2枚

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

ryota_0808

3,000円

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

83

ryota_0808

bot

3つのマガジンに含まれています

コメント47件

返信ありがとうございます。(もう、返事はいただけないかと半分諦めていました…)
Line通知を含め、エラー処理については自分なりに調べて自力で改良して解決していました。
ただ、最近は日に日にLine通知のConnectionエラーが頻発するようになってきた気がします。そんなに大量なLine通知でなくてもエラーが起きます。
いえ、遅れて申し訳なかったです。
私も今月から突然エラーが頻発するようになりました。大量でなくてもエラーが出ることがある、というのも確認しました。今のところ私の環境ではLINEnotifyとの通信でしか発生していないので、例外処理すれば動作に問題はなさそうですが、LINEが届かないのは不便ですね。

iwdesireさんの動作環境はwindowsでしょうか? windows環境に特有の接続エラーなのかどうかは気になります。
windows環境でもAWS Cloud9環境でもどちらでも発生します。
今日いろいろテストしましたが、テストではエラーが発生してexcept処理してもLINEは届くんですよ…1度postしたら内部的にリトライしているんでしょうかね?
本番では届かなかったLINEもあった気がするので、エラーが起きても届くときと届かない時があるのかもしれません。(謎)

ちなみに、timeout=30.0 とかすればエラーはほぼ起きませんがそれでは肝心のロジックの方が遅れてしまうのでそんなことは出来ず…
エラー処理すればクリティカルな問題ではないので諦めるしかないのかな?
なるほど、windows環境だけじゃないのですね。
たしかに接続エラーが出る際でもLINEが届く場合と届かない場合がありそうです。LINE通知のための処理で注文等が遅れるのは、やや本末転倒な感があって悩ましいですね。少し様子を見てみます。貴重な情報ありがとうございます。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。