【仮想通貨bot】 JavaScriptで作る仮想通貨自動取引bot 第6回 VIX戦術bot(2)
【概要】
・BTC暴騰によるbotへの影響と対策を見ていく
・以降のbotの実装全体の流れを解説
・GitHubにあげていくソースコードについて
前回はVIX戦術botに向けて、TradingViewの紹介とbot作成にあたっての注意点をお話しました。今回も引き続きVIX戦術botを作っていきたいと思ったのですが、前回そこそこ多くの方に見ていただいたようで、せっかくbotをわざわざ作ったのに大損をした!ということのないようにバックテストや、損をしている場合、その条件の解析を十分にする必要があると感じました。
また、4/12頃の暴騰により、その時点で売りポジションを持っていたbotは大損することになるはずですが、この点について作っていくbotが対処できるのか、などを見ていこうと思います。
【BTC暴騰によるbotへの影響と対策】
さて、今回作成するbotはTradingViewの「Noro's VixFix + RSI Strategy v1.0」というストラテジーを参考にするのでしたが、4/12のBTC急騰により、果たしてこのストラテジーに従うとどのような行動をとるのか?ということを見ていきます。
結論から言うと、急騰による影響はある程度回避できていたものの、おそらくこれはたまたまで、このような局面では単純な実装では損をする可能性が高いと思われます。
前回では、1月からのチャートでは全体としてかなり儲かっているが、3月末頃の履歴で損をしているというところが気になるということを話しました。3/15〜4/14までの1ヶ月間の損益のバックテストの画像を貼っておきます。
下のバーの270のあたりで大損をしていることがわかります。バックテストの結果では、このかなり急落している途中で買いを入れていたので、そのまま下落した結果損をしているということになります。
これから実装しようとしているストラテジーがこのままでは儲からないことがわかったので、残念に思うかもしれませんが、これはむしろラッキーで、損をしないための新しい方法を考えることができることになります。このような局面では決して買い注文をしない、というルールを新たに追加すればよいことになります。TradingViewで紹介されているストラテジーは、1つのアイデアにのみ基づいているものが結構多いためこのような結果になりがちですが、実装するbotにはVIX以外にも売買注文を行う条件に制限を設けることで、この問題を回避していきます。
【以降のbot作成の基本的な流れ】
さて、これからのbot作成ですが、基本的に次のような流れになります。
(1) まず実装するbotのストラテジーを決める(TradingViewや自分で考えた方法)
(2) 売買するストラテジーを実装する
(3) バックテストを実装する。結果が良くなければ(1)へ
(できればシミュレータも実装し、大きなバグがないことを確認する)
(4) 本番稼働するボットを実装し、小さい枚数で動作確認をする。結果が良くなければ(1)へ
(5) 回すと決めた枚数や金額で回す
この他にもやることは色々あるので、手順が結構多いと思うかもしれませんが、このくらいしないと、確実に利益の出る仕組みを作るのは難しいです。とはいえ何も無い所から作っていくのは面倒だとは思うので、必要な基本機能は整備して、随時GitHubにアップしていきます。基本的には1番と2番だけやれば良い仕組みにしたいと考えています。また、作成したbotが儲かるのか、自動的に判定する機能もそのうち作ろうと思っています。
最後にまとめとしては、
・1つのストラテジーで売買するようなロジックはなるべく作らない
・必ずバックテストを行う。儲かっていない場合、そのストラテジーがどうして儲かっていないのか、ということを分析する
・GitHubに上げるコードをうまく利用する
という事を意識していけば、より良いbotの作成ができるようになるはずです。
さて、数回座学が続いてしまったので、次回は手を動かしていきましょう。botのソースコードをGitHubにまるごとアップロードするので、そのまま実行して、売買ができることを確認してみましょう。
GitHub: https://github.com/tonaspace/tona-bitflyer-bot(随時更新します)
Twitterはこちらです。 https://twitter.com/tonacoin BitMEXのアフィリンクあるので踏んでくれると喜びます。 https://www.bitmex.com/register/1zrLfZ