見出し画像

ビットコイン自動売買トレードbot(バックテスト実装編)

皆さんこんにちは!Hirofumiです。
今回は「バックテストの実装」について説明します。
本編の最後には前回のnoteでも説明した、ゴールデンクロス、デッドクロスを検知してトレードを行うbotにバックテストを実装してみます。
バックテストの実装方法がわからない方にとって参考となるnoteになっていると思います。

バックテストとは

そもそもバックテストとはなんなのでしょうか。
一言で言うなら、「過去データを使ったテスト」だと思います。これではそのままなのでもう少し詳しく説明します。

botを作成した時に誰しもが最も知りたいことがあります。それはそのbotがどれだけ収益をあげることが出来るかということです。
最も簡単なのは実際に動かしてみることです。しかしこれには実時間がかかります。例えば先日話題になったチャネルブレイクbotの場合、最適な"期間"を算出したい場合は実際に値を変えつつ実行する必要があります。
チューニング対象の変数が一つならまだなんとかなるかもしれませんが、複数ある場合その組み合わせは膨大であり、大量の実時間が必要となってしまいます。
そこで考えられたのがこのバックテストというものだと思います。
つまり実際に確定している過去のデータを使って実行するというものです。

バックテストの問題点とは

実はバックテストには問題点があります。それは正確な結果ではないということです。
これは当然です。バックテストで使用するデータはあくまで1分足や一時間足のデータでしかないですが、実際のbot稼働では、10秒から60秒程度毎で取得するデータを元にトレードを行っているからです。
なのであくまでも参考だと私は思います。

バックテストの実装方法

おおまかに下記のフローになります。

①APIから過去データを取得
②データを整理し、計算処理を実行

フロートしては実にシンプルなものになります。ちなみに今回は下記APIを使って過去データを取得します。

https://min-api.cryptocompare.com/data/histohour?fsym=BTC&tsym=JPY&limit=2000&e=bitFlyer

これは過去2000件分のデータを取得することができるため、十分なバックテストを実施することができます。
ではあとはソースコードを見てみてください。

ここから先は

2,796字

¥ 300

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?