見出し画像

Bitcoin自動売買アプリ製作。bitFlyerのAPIでPythonでプログラミングする方法。

 仮想通貨 ビットコイン(bitcoin)の自動売買プログラムをPythonで製作する方法を解説します。無料で利用できるbitFlyerのAPIを利用して、プログラム初心者や未経験者でもほとんどコピペで簡単に作れるように説明します。
 目的は自動売買プログラムを起動させてビットコインの収益を得ることですので、重要なのは自動売買のロジック(売り買いのタイミング)ですので、それ以外の部分はほとんどコピペで作れるようにしております。

APIって何? bitFlyerのAPIを利用するのはなぜ?

 APIとはプログラムの部品のような物です。bitFlyerという暗号資産の取引所を運営している会社が無料で提供しております。部品というのは、ビットコインの値段を取得していくれる部品や売り買い注文を出してくれる部品などが揃ってます。もちろんイーサリアムやモナコインなど他の暗号資産でも使える部品も揃ってます。この部品を利用することでコードをタイピングしなくても、それぞれの部品を組み合わせるだけで自動売買アプリを作ることが出来るのです。

PythonでスキャルピングBotを製作。スキャルピングって何?Botって何?

 スキャルピングとは短期間に売買を繰り返して薄利を積み上げる投資法です。人間がパソコンを利用するとはいえ、パソコンのモニターとにらめっこしながら繰り返し売り買いをし続けることは大変ですよね。自動売買であればミリ秒(1秒の1000分の1)単位での売り買いも可能です。Botとは自動で動いてくれるロボットと考えれば大丈夫です。要するにミリ秒単位でビットコインの売り買いを自動でしてくれるロボットを製作します。

プログラム製作の準備(環境構築)

①Pythonのインストール
Pythonというプログラミング言語でプログラミングできる環境をパソコンにセッティングします。無料でできます。
Pythonのダウンロードとインストール方法

②bitFlyerのアカウント取得
暗号資産の取引所であるbitFlyerに口座開設して下さい。口座開設することでbitFlyerのAPIを利用することができます。
bitFlyerの口座開設

実際にプログラミング

ロジック(売買手法)
 上昇したら売り、下降したら買いを価格を監視して繰り返すプログラムになります。
 bitFlyerから提供されるapiキーとapiシークレットを入力し、価格監視サイクルと、乖離率を入力するとbotが起動して売り買いを行います。例えば監視サイクルを"1"、乖離率を"5"と入力すれば、1秒サイクルでビットコインの価格を監視して、5%上昇すれば売り注文、5%下降すれば買い注文を行います。以下がコードになります。コピペして試して下さい。

import pybitflyer
import time

api_key = input("bitFlyerのapi_keyを入力し、Enterキーをクリックして下さい。")
api_secret =input("bitFlyerのapi_secretを入力し、Enterキーをクリックして下さい。")
cycle_time =input("監視サイクル(単位:秒)を入力し、Enterキーをクリックして下さい。")
spread_price =input("乖離率(5%なら5)を入力し、Enterキーをクリックして下さい。")

api = pybitflyer.API(api_key=api_key, api_secret=api_secret)
 #直近のBTC取引価格 
base_price = api.ticker(product_code="BTC_JPY")["ltp"]
print("bot起動時の価格は"+str(base_price)+"です。")


while True:
   time.sleep(cycle_time )
   price_now = api.ticker(product_code="BTC_JPY")["ltp"]
   print("現在のビットコインの価格は "+str(price_now)+" です。")
   if base_price*(1-spread_price/100) >= price_now:
       print("ビットコインの価格が下落していますので、成行きで買い注文を入れます。")
       print("bitFlyerからの応答は以下の通りです。")
       print(api.sendchildorder(product_code="BTC_JPY",child_order_type="MARKET",side="BUY",size=0.005,minute_to_expire=10000,time_in_force="GTC"))
       base_price = price_now

   elif base_price*(1+spread_price/100) <= price_now:
       print("ビットコインが上昇しています。成行きで売り注文を入れます。")
       print("bitflyerからの応答は以下の通りです。")
       print(api.sendchildorder(product_code="BTC_JPY",child_order_type="MARKET",side="SELL",size=0.005,minute_to_expire=10000,time_in_force="GTC"))
       base_price = price_now

   else:
       print("ビットコインの価格に変化はありません。"

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