見出し画像

【初心者向け】チャネル・ブレイクアウト戦略で仮想通貨を取引するPythonコード

チャネルブレイクアウト戦略(channel breakout strategy)でビットコインを取引するbotを製作して欲しいと言う依頼があったので実装してみました。

【依頼内容要約】

・trading viewの内蔵ストラテジーにあるようなchannel breakout strategyを使いたい

・コインチェック用の仮想通貨 bot が欲しいので、ショートからのエントリーはできなくても良い

・取引量の変更、ロングエントリー、手仕舞いと期間の変更は必須

・付随して取引履歴の取得などがあれば尚可

チャネル・ブレイクアウト戦略とは

チャネルブレイクアウト戦略は、トレンドに従って利益を出そうとする投資手法です。

高値を抜けてきた時に買いを入れ、底値を抜けた時には売りを入れる
という素直なトレード手法ですね。

例えば直近10分間の最高値を超えたらロングエントリーし、
その後また直近10分間の底値を抜けたらポジションを手仕舞いする、といった動きになります。

その昔、タートルズという投資の素人集団が、このチャネルブレイクアウト戦略を含むトレード手法でバカ勝ちしたことから有名になったそうです。

作成した Python プログラムの動作概要

今回、作成したPythonチャネルブレイクアウトbotはおおよそ以下のようなものです。

0. コードの最初の方で取引量と期間を指定する変数を作成(size=0.05 や interval_sec = 300 など。ここを手動で変更すれば取引量と期間変更可)

1. 実行時、まずは一定期間価格データを集める

2. 集まったら一定期間中の最大値、最小値を算出

3. BTCを持っていない状態で現在価格が2の最大価格を超えたら購入(エントリー)。超えなければ何もしない

4. BTCを持っている状態で2の最小価格を下回ったら売り注文(手仕舞い)

5. 永遠に2~4をループ

※ループ時に取引履歴や保有ポジションなどをprintで表示します。

※エントリーと手仕舞いの時、使用ライブラリに実装されていない都合上、成行き注文ではなく指値注文を使います。
指値注文でも買いならば相場よりも高い価格での注文にすることで、実質的に成行き注文と同じように運用可能ではあります。
(例えば、相場の1割上の価格で指値買い注文を入れておくと、一瞬でBTC価格が1割以上上昇しない限り、相場の価格で約定します。)

※また、自宅のパソコンで動かす場合はPCの電源を落とすとプログラムが停止します。
安定してbotを長時間稼働させるためには、別途VPSサーバーの契約が必要になります。

参考記事)自動売買プログラム用のVPSサーバーの解説とおすすめのサービス

※今回のコードはイレギュラーを減らす為、bot運用中に並行して手動取引や他のbotを運用することを想定していません。コードを一部改造すれば可能ですが、基本的に推奨しません。

プログラム実行時の所要時間の注意

今回作成したプログラムでは、自分で時間足や Channel breakout strategy の時間幅をかなり自由に変更できるようになっています。
例えば時間足を10秒とすることも可能です。
(プログラム的には1秒足などの超短期も設定できるのですが、あまり頻繁にコインチェックサーバーにリクエストを送ると負荷をかけすぎてアクセス制限されてしまうので10秒以上を推奨しています)

時間足を自由に設定できる反面、プログラム実行時の最初だけ全く売買せずにただ価格データを収集するだけの空白の時間が生まれてしまいます。
例えばチャネルブレイクアウト戦略の時間幅を15分とした場合、最初の15分間は全くエントリーせずに価格データを集めるだけです。

(プログラム実行時に過去の価格データを引っ張ってくるのではなく、実行時から自力で価格を観測してデータを収集しているというわけです。)

これに伴って、例えば1分足(interval_sec=60)で考えた場合、先程述べたプログラムのステップごとの所要時間はおおよそ以下のようになります。

0. 0分
1. N分
2. 0分
3. 1分
4. 1分

※Nはチャネルブレイクアウト戦略の時間幅(コード内の表記で言えばinterval_sec*channelbreakout_duration)

実際にコードを動かすと

N分⇒1分⇒1分⇒1分⇒1分⇒1分……

という感じで各ステップを推移していくことになります(0分の部分は省いてあります)。


今回のPython botを動かすために必要な準備

まず今回のプログラムを動かすためにはコインチェックでの口座開設や、APIキーの発行が必要になります。

それらの作業は下記記事で画像付きで説明しているので参考にしてみてください。

【コピペOK】仮想通貨をPythonで自動売買する方法を初心者向けに解説

※必要ライブラリのインストールなども併せて解説しています。

チャネル・ブレイクアウト戦略コード本体

今回のコードは、ギリギリ1つのPythonファイルにまとめても問題ないくらいの分量に収めたので、初心者の方でも改造しやすいはずです。

最後に注意点ですが、本プログラムは特定の投資行為の推奨や勧誘を行うわけではなく、必ず利益が出ることを保証するものでもありません。
技術的なサポートを目的として提供されています。

さて、それではコードの本体です。

ここから先は

3,750字

¥ 4,800

ご覧いただきありがとうございます! 少しでもサポートいただければモチベーションになります!