仮想通貨システムトレードのバックテスト環境を構築する

FXのシステムトレードと言えばMT4です。

一度MT4を用いたシステムトレードを行ったことがある方であれば、その便利さは手放せないと思う方も多いでしょう。

非常に優れたトレード環境を提供してくれます。

FXでMT4を使用する場合は、各FX業者が用意したMT4をインストールして取引を行うことになります。
仮想通貨のシステムトレードでMT4を使いたいと思っても、提供している仮想通貨取引所は非常に限られています。
MT4を使うために取引所が限られてしまうということも好ましいことではありません。

理想としては、どの仮想通貨取引所でもMT4のようなトレード環境を実現できることです。
どうすれば実現できるのか考察して、最終的にはトレード環境を構築することを目指します。

MT4の何が優れているのか

まずMT4のどのような機能を実現したいのか、何が優れているからこれを真似したいと思ったのかというところから考えていきます。

バックテストを実行可能

まず、作成したプログラム(EA)のバックテストを行うことができるという点です。
作成したロジックに対して通貨ペアと時間足、テスト実行期間等を指定することで、バックテストを行うことが可能です。

またパラメーターを変更することも可能で、パラメーターをずらしながらテストを繰り返すことができるので最適なパラメーターを見つけることも可能です。
バックテストを行ったEAに何も手を加えずに同じ条件で実運用に投入することも簡単です。

過去のデータを用いてパフォーマンスを事前に確認できるということはシステムトレードにとって非常に大きなメリットです。

運用実績やバックテスト結果の詳細レポート

バックテストを実行することも簡単ですが、その結果確認することも簡単です。
簡単に確認できますが、非常に詳細なトレードレポートを見る事ができます。

資産残高のグラフでは、時系列にそって損益の変化を一目で確認することができます。

またレポートでは、取引回数や純益、勝率、最大ドローダウン等、トレード結果の評価に必要な数値が表示されています。

ヒストリカルデータを管理可能

バックテストを行うためにはヒストリカルデータが必要ですが、FX業者がヒストリカルデータを用意しているのであれば自動で読み込んでくれます。

ツール>ヒストリーセンターを開いて読み込みたい通貨ペアを開きます。
1分足、5分足等、時間足が表示されるので、使いたい時間足を選択します。

また、証券会社でヒストリカルデータを用意されていない場合は、外部から取得したデータを読み込ませることも可能です。
ヒストリーセンターでインポートすれば可能です。

トレード関数やインジケーター関数が用意されている

移動平均やボリンジャーバンド、MACDなど、主要なインジケーター関数が用意されています。
インジケーター関数がなかったら、それぞれのインジケーターを算出する数式をプログラミングしないといけない訳ですから、非常に使い勝手が良いということはお分かりでしょう。

また、自動売買ができるようにトレード関数も用意されています。
成行注文や指値注文はもちろん、ストップロス価格(ストップライン)やリミット価格(利確ライン)を設定することも可能です。

構築したいバックテスト環境

MT4の機能をまとめた上で、どのような機能がバックテスト環境に必要か考えてみます。

まずは大前提のこれ。

任意の期間、時間足、通貨でバックテストが可能

バックテストを行う際には、各種パラメーターや対象期間、時間足、通貨(どのアルトコインを対象にするか)などを変更しながらテストを繰り返します。
作成したトレードプログラムに対してどのような条件でパフォーマンスが上がるのかを確認するのもバックテストの目的の一つです。

パラメーター、時間足といった条件を変えながらテストを繰り返し行えるのが理想的ですね。

トレードプログラムを改変せずにバックテスト、実運用のどちらも可能

バックテストで動かしたプログラムを変更することなく、そのまま実運用で使えるということも重要です。
バックテストと実運用時では価格データの取得元や注文発生時のアクセス先などが異なりますが、トレードプログラム側ではどちらの場合でも処理は同一で、バックテスト環境側でその切り替えを行える必要があります。

バックテスト結果を一目で確認できる

これも重要です。
MT4のテスト結果表示と同様に資産残高推移を表すグラフの表示とトレード結果を確認するためのデータ集計が欲しいですね。
バックテスト実行時にトレード結果を随時保存していくのと、終了時にテスト結果の集計を行うようにします。

ヒストリカルデータの管理

取得したヒストリカルデータをインポートしたりなど、バックテストに使用するヒストリカルデータを管理できる機能です。

仮想通貨システムトレードのバックテスト環境構築のまとめ

システムトレードを行う上でMT4は理想的な環境です。

仮想通貨システムトレードを行う環境としても、今回紹介したMT4で実現できる機能が欲しいところです。

一番は、任意の仮想通貨取引所でMT4を使えることです。
これが可能なのかの調査に取り組みつつ、仮想通貨システムトレード環境構築に取り組んでいきます。

このブログで進捗や成果を報告していきます。