チャネルブレイクアウト戦略を使ったBTCFX自動取引Bot(pythonコード)

こんにちは!スナフキンです.先日チャネルブレイクアウト戦略を使ったbotを作成したのですが,そのコードを公開します.コードを全て解説する時間はさすがにないので,概要を述べたあとに重要な変数と重要な関数のみを解説します.本botはヒストリカルデータを用いてバックテストを行う機能も搭載しており,botの勉強を始める方にとってはそのあたりの実装についての勉強教材になるかもしれません.実運用・バックテストともに可能です.また,自分の設定したローソク足の時間軸でのトレードが可能です.

ちなみに2018/2/21-2018/3/10の5分足でのバックテスト結果は以下です.

ぼく個人の感情から,なるべく早く公開したいので,さしあたってチャネルブレイクアウト戦略そのものの説明などはGoogle先生にお任せします.(気が向いたら更新して細かい解説もします.)

概要と変数の説明

本botはチャネルブレイクアウト戦略を少し改良したものになります.具体的には以下のような点を改良(拡張)しています.

  1. チャネルブレイクアウト戦略は期間安値・期間高値の更新でエントリーおよびクローズ,ドテン売買するが,何期間高値・安値でエントリーし何期間高値・安値でクローズするかを設定可能.→ex. エントリー5期間でクローズ3期間ならドテン売買は行わなくなる.(もちろん,エントリーとクローズの期間を同じにすれば通常のチャネルブレイクアウト戦略のようにドテン売買する)
  2. レンジ相場でのエントリーを減らすために,レンジ判定ロジックを導入している.(レンジ判定は,一定期間の値幅または価格の標準偏差の変動で行います.)
  3. 大きな値幅をとったあとのnトレードではロットを1/10に減らす処理を入れている.(大きいトレンドのあとの大きなリバや戻りで損をしやすいため)
  4. 成行注文のスリッページによる執行コストを考慮したバックテストが可能(ただし定額固定)

さて,重要な変数の解説ですが今書いていて眠くなってきたのでまた明日以降に気が向いたときに書きます.コードは載せておくので販売・商用目的以外はご自由にご利用ください.