ビットコインの自動売買システムを作ってみた(bitFlyer)

ブラックフライデーセールでUdemyの動画が軒並み1,200円になってたので、前から気になっていた「Rubyで作る! ビットコイン自動売買システム」を購入してチャレンジしてみました。

Udemyは動画でプログラミングなどが学べるオンライン教材です。プログラミングの他にもデザインやビジネスマナーなど色々な動画があります。

71%OFFで1,200円

動画の値段なんですけど、71%OFFの1,200円でした。

ブラックフライデーセールでは他の動画も1,200円になってたんですけど、中には95%OFF以上とかもありました。

Udemyは頻繁にセールしてるから、定価では買えない……

やってみた

動画は全部で3時間ほどなんですけど、毎日ちょっとずつ進めてトータル5時間ぐらいで完成できました。

解説動画を観ながら、実際にプログラミングしていく感じです。一時停止と巻き戻し必須です。

ディスプレイ小さいとこういう時に不便ですね。

動画ではかなり初歩の初歩から説明されていて、分かりやすかったです。

必要なサービスのアカウント登録、足し算・掛け算などからなので、プログラミングしたことない人でもなんとかなりそうな印象でした。

動画を参考にコーディングして、1秒ごとに30回注文しているところ

1秒ごとに勝手に注文が出されるところを眺めるとシステムトレードやってる感がすごいです!

一部エラーが出て動かなかったりすることがあったので、動画を進めたり戻したりググったりと頑張りました。以下はつまずいた所です。

売り買いの注文を出すとエラー

bitFlyerに注文を出すところで以下のエラーが出ました。

/home/ec2-user/environment/method.rb:99:in `+': no implicit conversion of Float into String (TypeError)

原因は関数に引数で渡した価格と注文数量が数値だからみたいです。

body部のpriceとsizeに、数値を文字列に変換するメソッドの .to_s を追加して解決。

    body = '{
      "product_code": "BTC_JPY",
      "child_order_type": "LIMIT",
      "side": "' + side + '",
      "price": ' + price.to_s + ',
      "size": ' + size.to_s + ',
      "minute_to_expire": 10000,
      "time_in_force": "GTC"
    }'

ちなみに、利益は全く出てません……