ビットコインのボット作成(その2)~ 微分っぽいことをしてみる

スポンサーリンク

シェアする

前回の投稿で、ボットのサンプルデータとして、Zaif の1日分のビットコイン価格チャート(10秒ごと)を収集しました。今回は、これを元に、売り/買いを判断する、ごく単純なプログラムを作成してみます。

自動売買のロジックを考えよう!

要するに、安く買って高く売ればいいわけですから、チャートの谷底で買って、山頂で売ればいいわけです。実際は10秒後の価格は分からないので、きっかり頂点(谷底)は分かりません。よって、次のロジックで判定する事にします。

10秒前は上昇してた価格が今下降してたら、ほぼ山頂なので売り
10秒前は下降してた価格が今上昇してたら、ほぼ谷底なので買い

価格の変化量は次の式で求めます。これは差分近似という数値微分の手法です。

今の価格 - 前回(10秒前)の価格 = 変化量

変化量>0のとき上昇
変化量<0のとき下降
変化量=0のとき変化なし

先の判定ロジックは、変化量を使って次のように表現出来ます。

10秒前の変化量≧0 かつ 今の変化量<0 のとき、(ほぼ山の頂点なので)売り
10秒前の変化量≦0 かつ 今の変化量>0 のとき、(ほぼ谷の底なので)買い

ここまで来れば、プログラムに落とし込むことができます。

サンプルデータで仮想的に自動売買してみよう!

先述のロジックを組んで、サンプルのチャートデータで仮想的な売買をしてみました。売りは緑の点、買いは赤の点で示しています。

小さな山と谷を拾ってしまい、かなり無駄な売買をしているのが分かります。


※チャートの間隔は10秒です

自動売買ロジックの評価基準を決めよう!

ビットコインを10個まで買える資産を持っている前提で、チャートの買いポイントでビットコインを1つ買い、売りポイントで買ったビットコインを全て売る、という仮想取引をした場合の収支を計算してみました。

仮想取引の結果は…

買いポイント数:1952
売りポイント数:1926
売り収益ポイント数:391
最大購入コイン数:6
総収益:3890円

ビットコインを10個まで買えるので、買いポイントが連続すれば10個までビットコインを買えるのですが、最大購入コイン数は6にとどまってます。ビットコイン1つが約12万なので、約72万運用したことになります。

意外なことに、3890円の収益を上げています。ただし、この結果は手数料0%で計算したものです。(2017年3月時点でZaif の売買手数料は0%です)

手数料1.5%として計算すると、次のようになります

買いポイント数:1952
売りポイント数:1926
売り収益ポイント数:1
最大購入コイン数:6
総収益:-70万6212円

総収益 -70万?…ダメだこりゃ…実際は現物取引しかしないのでマイナスにはなりませんが。

ここは自分に厳しく、手数料0.15%の仮想取引の結果を、自動取引ロジックの評価基準にしたいと思います。改良しなくちゃ…

↓↓次回、ちょっとだけロジックを改良してます。
ビットコインのボット作成(その3)~ トレンドに乗ってみる

スポンサーリンク

フォローする