コピペでいける!「 Pythonを使って仮想通貨(ビットコイン)で売買注文する方法 」を解説します。
(bitFlyerのアカウントが必要です)
この記事は初心者向けに解説しています。
とはいえ、普段からあまりプログラミングとは縁のない人にとっては簡単ではないかと思います。
忙しかったりしますし、そうした人は過去にプログラミング知識が不要で少額からはめることのできる自動売買サービスを解説した1万円からはじめるbotライフ ~ 無料で仮想通貨の自動売買 ~の記事があるので参考にしてみてください。
この記事では売買注文を入れるためにbitFlyerを使います。(2019年7月にbitFlyerは再び新規口座を開設できるようになりました。bitFlyerの公式サイト)
API注文を行うにあたって、事前にPythonを扱える環境を用意しておく必要があります。
また、この記事ではPythonをVisual Studio Codeと呼ばれるエディターに記述して解説します。(任意のエディターで大丈夫です)
こうした環境がない人は【 コピペ◎ 】 ビットコイン板情報(価格)をPythonで取得する方法という記事を参考に環境を用意してみてください。
Pythonのダウンロード方法からVisual Studio Code(VScode)をインストールするところまで解説しています。
※できる限り注意ポイントは載せたり、最低限の金額で済むように解説していきますが、コード・操作ミスや何らかの形で損失を被った場合も自己責任で行える方のみ参考にするようお願いします。
草猫店長の目次ノート
Pythonを使ってbitFlyer APIで売買注文を入れるまでの手順
❶. APIを取得する
❷. ファイルを準備する
❸. ライブラリ(ccxt)をインストールする
❹. 実際に注文を入れてみよう
❺. 指値注文・成り行き注文を使い分けよう
APIもファイル作成(VScode)も大丈夫だよという場合はライブラリ(ccxt)をインストールするところから読んでみてください。
bitFlyerでAPIキーを取得しよう
まず、最初に必要なのはAPIキーです。
順序としては
「bitFlyerへログイン」→
「bitFlyer Lightningのページを開く」→
「メニューの中のAPIを選択する」→
「APIページの下記のAPI作成ボタンをクリック」→
「入出金以外は権限チェックを入れておく」→
「APIキーが生成されるので絶対に誰にもバレないように管理する」


bitFlyer Lightningでの入金は済んでいますか?
この記事ではbitFlyerのFXの方での注文を行います。
bitFlyerのFX(Lightning)の最低購入額は 0.01BTC です。
最低購入額に合わせた金額を入金しましょう(0.01BTCの2倍くらいの日本円があれば十分かと)
bitFlyerに入金が済んでいない人は画像の手順で入金しましょう。(ビットコイン以外は手数料の高い”販売所”になっているので日本円を入金した方が安くつきやすいです。)


bitFlyer Lightningのページから上の画面で証拠金を入金すればOKです。もともと口座に入っていたお金がFX用の資金(証拠金)に移せます。
ファイル(フォルダ)を作成
自分のパソコンの好きな所にフォルダを作成しましょう。名前は何でも良いですが、ここでは「bitFlyerAPI」にしておきます。
VScodeを開いたら「New Window」→「Open folder」を開きます。

作っておいた「bitflyerAPI」を開きましょう。

ファイル名も何でも良いですが「order_sample.py」としておきます。

このファイルにコードを入力していきましょう。ターミナルも開いておきましょう。

ライブラリ(ccxt)をインストールする

githubのオープンソースとして公開されているライブラリなのでこちらを利用します。
ccxtは複数の取引所のAPIを簡単に扱えるようにしたライブラリです。各APIで同じ命令であっても命令の名前が異なることがあり統一感がありません。
こちらのライブラリを利用すればコードがごちゃごちゃせずに済むので、ccxtを使っていきたいと思います。
ccxtをインストールしましょう
1 |
$ pip install ccxt |
ちなみにPythonにanaconda環境を使っている人はうまくccxtをインストールできない声が少なくないようです。
3.6系に変えてインストールしてみたり、anacondaプロンプト上で実行してみたりするとうまくいくようです。
私の場合は、下記のメッセージが出たので、certifiを sudo pip install –ignore-installed certifi のコマンドを打った後に再インストールしたら上手くいきました。
ERROR: Cannot uninstall ‘certifi’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
試しにccxtライブラリで板情報を取得
ccxtを無事にインストールできた人は板情報を試しに取得してみましょう。
1 2 3 4 5 |
import ccxt bf = ccxt.bitflyer() getboard = bf.fetch_ticker('BTC/JPY', params = { "product_code" : "FX_BTC_JPY" }) print( getboard ) |
「$ python order_sample.py」で結果として以下のような文字列が帰って来ればOKです。
1 2 |
{'symbol': 'BTC/JPY', 'timestamp': 1562482961015, 'datetime': '2019-07-07T07:02:41.015Z', 'high': None, 'low': None, 'bid': 1258534.0, 'bidVolume': None, 'ask': 1258770.0, 'askVolume': None, 'vwap': None, 'open': None, 'close': 1258554.0, 'last': 1258554.0, 'previousClose': None, 'change': None, 'percentage': None, 'average': None, 'baseVolume': 76750.48117386, 'quoteVolume': None, 'info': {'product_code': 'FX_BTC_JPY', 'timestamp': '2019-07-07T07:02:41.15', 'tick_id': 44409063, 'best_bid': 1258534.0, 'best_ask': 1258770.0, 'best_bid_size': 0.01, 'best_ask_size': 0.03, 'total_bid_depth': 8028.74149833, 'total_ask_depth': 6699.02916571, 'ltp': 1258554.0, 'volume': 83077.75978567, 'volume_by_product': 76750.48117386}} awakewalker:bitFlyerAPI awakewalker$ python order_sample.py |
これだけだと読みにくいので別にpprintと呼ばれるライブラリをインストールして、pprintで出力してみましょう。
1 2 3 4 5 6 |
import ccxt from pprint import pprint bf = ccxt.bitflyer() getboard = bf.fetch_ticker('BTC/JPY', params = { "product_code" : "FX_BTC_JPY" }) pprint(getboard) |
結果として改行と空白で整った結果が返ってきました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
{'ask': 1259344.0, 'askVolume': None, 'average': None, 'baseVolume': 76775.26631518, 'bid': 1259245.0, 'bidVolume': None, 'change': None, 'close': 1259344.0, 'datetime': '2019-07-07T07:12:24.287Z', 'high': None, 'info': {'best_ask': 1259344.0, 'best_ask_size': 0.06002073, 'best_bid': 1259245.0, 'best_bid_size': 0.1, 'ltp': 1259344.0, 'product_code': 'FX_BTC_JPY', 'tick_id': 44456678, 'timestamp': '2019-07-07T07:12:24.287', 'total_ask_depth': 6698.09188969, 'total_bid_depth': 8034.40946899, 'volume': 83041.13213578, 'volume_by_product': 76775.26631518}, 'last': 1259344.0, 'low': None, 'open': None, 'percentage': None, 'previousClose': None, 'quoteVolume': None, 'symbol': 'BTC/JPY', 'timestamp': 1562483544287, 'vwap': None} |
この中から買い気配値(best_ask)のみを取得する場合はgetboardオブジェクトの中のinfoの中のbest_askの値を取り出す訳になるのでpprintの中身を以下に変えて再度実行してみてください。
1 |
pprint(getboard["info"]["best_ask"] |
1 |
1256348.0 |
上のようなbest_askの値のみが返ってきます。
コピペOK!実際に注文を入れてみよう

それでは準備ができたので”指値”で”買い”の注文を入れてみたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import ccxt from pprint import pprint bf = ccxt.bitflyer({ 'apiKey' : 'あなたのAPIキー', 'secret' : 'あなたのAPIシークレットキー' }) order = bf.create_order( symbol = 'BTC/JPY', type = 'limit', side = 'buy', price = '現在のビットコイン価格よりも安い価格 現在120万円なら1100000など', amount = '0.01', params = { "product_code" : "FX_BTC_JPY" } ) pprint(order) |
注文オプションの詳細を解説します。
1 2 3 4 5 6 7 8 |
order = bf.create_order( symbol = 'BTC/JPY', type = 'limit', side = 'buy', price = '現在のビットコイン価格よりも安い価格 現在120万円なら1100000など', amount = '0.01', params = { "product_code" : "FX_BTC_JPY" } ) |
symbolは通貨ペア
typeは注文方法。limitは指値です
sideは買いか売りか
priceは指値にする価格
amountはここではビットコイン枚数(最小の0.01BTCにまずはしましょう)
paramsはAPIへ送る値。bitFlyerはFXの信用取引を行う場合はFX_BTC_JPYの指定が必要です
1 2 |
{'id': 'JRF20190707-090550-171079', 'info': {'child_order_acceptance_id': 'JRF20190707-090550-171079'}} |
注文後は注文番号などが出力されます。

指値注文・成り行き注文を使い分けよう
1 2 3 4 5 6 7 8 |
order = bf.create_order( symbol = 'BTC/JPY', type = 'limit', side = 'buy', price = '1200000', amount = '0.01', params = { "product_code" : "FX_BTC_JPY" } ) |
また、typeが”買い(buy)”か”売り(sell)”を決めるところになります。これら二つのキーの値を変えてあげれば良いですね。
指値注文で買いにする場合
1 2 |
type = 'limit', side = 'buy', |
指値注文で売りにする場合
1 2 |
type = 'limit', side = 'sell', |
成行注文で買いにする場合
1 2 |
type = 'market', side = 'buy', |
成行注文で売りにする場合
1 2 |
type = 'market', side = 'sell', |
Pythonを使って仮想通貨(ビットコイン)で売買注文する方法 まとめ

これで注文を入れることができるところまではできたと思います。
あとは、注文するまでの間に、時間感覚を置いて板情報の価格を取得していって条件を満たしてから注文を入れてみたり、テクニカル分析のアルゴリズムを取り入れて条件を満たしたら注文を入れてみればOKです。
そう考えるととても簡単ですね。
さらに踏み込んだ記事も今後アップロードしていきます。
ちょっとこの記事読んだけど自分にはちょっと簡単ではないかな。という人はプログラミング知識0で始められるbotサービスを紹介しています。
1万円からはじめるbotライフ ~ 無料で仮想通貨の自動売買 ~の記事があるので参考にしてみてください。
良かったらシェアしてね♪ /