coincheckでのビットコイン自動売買プログラムをpythonで書いてみた.

こんにちは!スナフキンです.1週間ほど前から,ビットコインで遊んでいました.今日のMike Belshe氏の発表によりsegwit2xへの分裂騒動が収束し,市場参加者はしばらくは安心して(と言ってもbtc価格の変動は凄まじ位ですが)投資活動を続けられそうです.少なくともbtc価格がいきなりゼロになるようなドラスティックなイベントは避けられました.

さて,ぼくは3日ほど前からpythonでcoincheckApiを用いて,自動取引プログラムを書いていました.ビットコインは短期で値段が大きく変わりますから,この変化をプログラムで追いながら人間に不可能なほど高速で取引を行えば,儲かるのではないかと考えたためです.

結論から言うと,現物取引の場合はビットコインの相場全体が上がらない限り,簡単な売買ロジックで完全に自動で取引を行った場合は絶対に儲かりません.

以下,ぼくが作ったプログラムの仕組みを解説しつつ,なぜ儲からないのか説明していきます.

自動売買で現物取引ロングポジションにて利益を狙ってみる

まずはレバレッジをかけずに,現物ロングでの利益を狙って10秒ごとの価格を比較し,上昇トレンドでビットコインを購入.購入価格より上がっていれば売却.という単純な取引を繰り返すプログラムをかいてみました.すなわち,安く買って高く売れば稼げるはずということです.上の写真のようの板の情報を取って来てそれを比較するのです.

しかし,ここ1週間ほどのビットコイン価格は80-90万円/btcを行ったり来たりしており,このような状況でこのアルゴリズムを用いても絶対に儲かりません.と言うのは,ロングで利益を得ても,最終的に高値づかみをして損きりしたときの損失の方が大きいためです.

つまり,

1.価格が上昇しているときに安く買って,高く売る.

2.上昇トレンドの終わりに,高値付近で買ってしまう.

3.上昇トレンドは終わっているので2で買ったビットコインは損失になる.

ということです.これを繰り返してもほとんど利益にはなりません.

ビットコイン価格が上昇し続けていなければ,現物ロングで短期売買を繰り返しても利益は出ないのです.そして,常に価格が上昇しているならば,わざわざ短期売買するよりも上昇トレンドが終わるまで何もせずに待っている方が良いです.(利益も多く,時間も使わなくて良いため.)

現物ロングポジションしか取れない短期売買は何らかの工夫をしなければ全く機能しません.

金融商品の短期売買はゼロサムゲーム

このようなことになる理由は,「金融商品の短期売買はゼロサムゲームである」ことです.根本的に,市場全体の上昇を見込めない短期の取引では,市場参加者が出し合った資金を奪い合うゲームになります.なぜなら,資金の量は勝手には増えないからです.(新たに市場に参入してくる人がいなければ資金の総量は当然一定です.)

このような状況では,

なるべくよく当たる予想をした人は得をします.

これは当然のことのように思えますが,ぼくを含め市場参加者のほとんどは「下がってるからなんとなくこの後は上がりそう」という理由で意思決定をしていると思われます.

これでは当然いい結果が得られるはずはなく,運が良ければ当たり,運が悪ければ外れるだけです.

自動売買で儲けるためには5割以上の確率で勝てる売買ロジックを考える必要があります.これは当然のことなのですが,実際にこれを実装するのは簡単ではありません.

しかしこれで諦めるのも癪なので.レバレッジ取引でショートポジションでも儲けらるようにするなど工夫をして,なんとか実際に儲かるプログラムを書いてみようと思います.

ビットコイン自体に価値があるものかどうかという考察なども書けていければなと思っています.

ありがとうございました.

シェアする

  • このエントリーをはてなブックマークに追加

フォローする