スポンサーリンク

Pythonで自動売買Botを作る③~プライベートAPIを使って仮想通貨を売買する

前回はBitbank(ビットバンク)のパブリックAPIを使って取引所の価格(ticker)と板情報を取得しました。今回はプライベートAPIを使ってプログラムから取引所にビットコインの売買注文を出していきたいと思います。

APIの種類について

前回と同じですが、再確認のためにもう1回まずAPIとは、何ぞやというところから説明するとAPI(アプリケーションプログラミングインターフェース)とは自分のソフトウェアを一部公開して、他のソフトウェアと機能を共有できるようにしたものです。

APIとしてソフトウェアの一部をWEB上に公開することによって、誰でも外部からその機能を利用することができるようになります。それによって他のソフトウェアの機能を自分のプログラムの中に簡単に埋め込むことができるようになるので、アプリケーション同士で連携することが可能になります。

今回の場合であれば、取引所の内部の一部システムをAPIという形で公開してくれていることで、私たちユーザー側からすると口座残高や価格情報を調べたり、注文を送信するといったような処理が簡単に行うことができるようになります。

他にもLineやtwitterのAPIを利用することで自動で呟くbotを作ることができたり、今回のように取引所に注文を出したりなどなどAPIを利用すれば高度なプログラミングが簡単に行うことが可能になります。

そして、APIはパブリックAPIとプライベートAPIの2種類が存在します。パブリックAPIは価格情報など誰でも公に見ることのできるデータを取得するAPIなのに対して、プライベートAPIとは自分の口座残高や鍵垢の呟きなど見られる人が制限されている情報を取得する際に用いるAPIです。

プライベートAPIを使って仮想通貨を売買する

次はプライベートAPIを使ってPythonから取引所に売買する処理を行ってみます。ビットコインの板情報や価格を取得するAPIは誰でも使えるパブリックAPIですが、取引注文を出すためには上述したプライベートAPIが必要になってきます。

パブリックAPIはURLを指定された書式で入力するだけですが、プライベートAPIの場合は個人を識別するためのプライベート鍵を取得する必要があります。そして、プライベートAPIを使うとアカウント内の自分の口座の資産を売買したり他の取引所やウォレットに送金できてしまうので、逆に言えば漏れてしまうと自分の資産を勝手に注文されたり、他の取引所やウォレットに送金され兼ねないということでもあります。

なので、プライベート鍵は言うなれば家の裏口の鍵みたいなものですので、プライベートAPIのカギは絶対に第3者に漏らさないように厳重に管理してください。

そして、「bitbank(ビットバンク)」のプライベートAPI鍵の取得は以下のような感じで取得できます。「出金」のところは万が一悪用された場合の時のことを考えて有効にしないほうがいいと思います。

f:id:oruka199665:20180302000405j:plain

f:id:oruka199665:20180302000410j:plain

また取引所へログインする際には二段階認証を有効にしておきましょう。

仮想通貨はハッカーにとってもホットな分野なので、個人でできる範囲でのセキュリティーについての対策は怠らないように注意した方がいいです。また仮想通貨を年単位でガチホするならば複数の取引所とハードウェアに分散して管理するのがオススメです。

PythonでプライベートAPIを設定する

まずは自分のAPI鍵をPython内のオブジェクトに格納します。もしAPI鍵が〇〇〇だとすると、API_KEY= ’〇〇〇’みたいな感じで入力してください。

##API鍵を設定する###
API_KEY = 'BITBANK_API_KEY'
API_SECRET = 'BITBANK_API_SECRET'

 
###ヘッダーの乗せるAPI鍵を設定する###
prv = python_bitbankcc.private(API_KEY, API_SECRET)

プライベートAPIの設定が終わったらさっそく動かしていきましょう。まずはアカウント内の資産を確認します。

### アカウント内の資産を確認する ###
value = prv.get_asset()
print(json.dumps(value))


### APIを使って注文を出す ### 
value = prv.order( 'btc_jpy',#通貨ペア
'1000000',#価格
'0.0001',#数量
'buy', # 注文サイド 
'market'# 注文タイプ 
) 

print(json.dumps(value)) 


### 注文をキャンセルする ###   
value = prv.cancel_order('btc_jpy', # ペア  '111111111' # 任意の注文ID ) 
print(json.dumps(value))

これで資産確認と売買の注文/取り消しができます。‘buy’,を’sell’にすると売り注文になります。注文のキャンセルの際の注文IDは注文を送信したときの返り値にあるので、それを引っ張るといいと思います

②と③でやる価格の取得や資産の確認・売買の注文/取り消しみたいなことは単体だと意味があまりありませんが、シストレBotを作る際においてパズルのピースみたいに必要不可欠になるので、ちゃんと動くか確認しておきましょう。次は今までやってきたAPIでの処理を合体させて、実際に取引所で動くBotを作ってみます。

→(続き)PythonでシストレBotを作る④~簡易的な自動取引botで実際に取引してみる

スポンサーリンク

プログラミングの独学はとても難しい


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上でプログラミングはもはや出来て当たり前、出来なれば論外というエクセルレベルの必須スキルになりつつあります。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。



それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」「エンジニアとして若いうちから高収入を得たい」という気持ちから一念発起して「侍エンジニアのwebサービスコース」に申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解でき、今ではエンジニアとしてそこそこの暮らしができるようになりました。





侍エンジニアでは、とりあえずプログラミングやインターネットの基本を知っておきたい人から、HTML・cssなどでWebサイトやWebアプリを作ってみたい人やPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズに応えた様々なコースが用意されています。



IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習・ディープラーニングまで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけるのがエンジニアへの第一歩になります。ちなみに今侍エンジニアの無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。


自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。


シェアする

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

フォローする