こんにちは!ゆとひとです!!
仮想通貨はまだまだ市場規模が小さく、大規模な投資家が少ないため、値動きがわかりやすいと言われています。個人でもシステムトレードに参入して利益を出すチャンスが転がっています!
今回はコインチェックでビットコインのシステムトレードをやってみようと思います。
いままではzaifでシステムトレードをしていたのですが、サーバーが弱すぎて常にエラー発生、注文できない事態が多すぎたため、コインチェックに引っ越してきました。
とても安定していてコインチェックでのシステムトレードはかなり快適です。
1.APIキーを取得しよう
コインチェックのウォレット画面「設定」からAPIキーを選ぶと上記のような画面になります。
新たにAPIキーを追加するボタンを押しましょう。
続いてAPIに付与する権限を選択します。
取引をするAPIと出金をするAPIは分けた方がセキュリティ的には安心です。
APIキーが流出しないとも限りませんので。
これで、
APIキーと
シークレットキーが発行されました。
<注意!>
APIキーとシークレットキーは絶対に他人に漏らさないようにしましょう。
万が一、漏れてしまったら、
あなたの資産は全て奪われたと考えてよいでしょう!
2.開発環境を準備しよう
ここは以前書いた記事を参考にお願いします。
3.HTTPリクエストを簡易に扱うライブラリを作りましょう
開発環境に「coincheckApi.py」というファイル名で以下のソースファイルを作成します。
————–
# -*- coding: utf-8 -*- import json import requests import time import hmac import hashlib class ApiCall: def __init__(self,api_key,api_secret,api_endpoint): self.api_key = api_key self.api_secret = api_secret self.api_endpoint = api_endpoint def get_api_call(self,path): if path == '/api/order_books': timestamp = str(int(time.time()) + 86401) elif path == '/api/trades': timestamp = str(int(time.time()) + 86402) elif path == '/api/exchange/leverage/positions': timestamp = str(int(time.time()) + 86403) text = timestamp + self.api_endpoint + path sign = hmac.new(bytes(self.api_secret.encode('ascii')), bytes(text.encode('ascii')), hashlib.sha256).hexdigest() request_data=requests.get( self.api_endpoint+path ,headers = { 'ACCESS-KEY': self.api_key, 'ACCESS-NONCE': timestamp, 'ACCESS-SIGNATURE': sign, 'Content-Type': 'application/json' }) return request_data def post_api_call(self,path,body): body = json.dumps(body) if path == '/api/exchange/orders': timestamp = str(int(time.time()) + 86404) else : timestamp = str(int(time.time()) + 86405) text = timestamp + self.api_endpoint + path + body sign = hmac.new(bytes(self.api_secret.encode('ascii')), bytes(text.encode('ascii')), hashlib.sha256).hexdigest() request_data=requests.post( self.api_endpoint+path ,data= body ,headers = { 'ACCESS-KEY': self.api_key, 'ACCESS-NONCE': timestamp, 'ACCESS-SIGNATURE': sign, 'Content-Type': 'application/json' }) return request_data
————–
4.APIキーとシークレットキーは別ファイルに保存
「cc_keys.json」という名前でjsonファイルを作り、発行したAPIキーとシークレットキーを切り出しておきましょう。ソースコード中にAPIキーとシークレットキーを直書きしておくと、コードを公開した際に漏れてしまうなど、危険があります!
————–
{ "key": "xxxxxxxxxxxxxxx", "secret": "yyyyyyyyyyyyyyyyyyyyyyyyyyyy", }
————-
<繰り返し注意!>
APIキーとシークレットキーは絶対に漏らさないように!
5.いざ、取引の要となるプログラムを書きましょう!
以下「main.py」のサンプルコードを置いておきます。
1万円分のBTCを成行で買うだけのコードです。
———-
# -*- coding: utf-8 -*- import json from pprint import pprint # 表示用(jsonをきれいに表示してくれる) import coincheckApi cc_keys_json = open('cc_keys.json', 'r') cc_keys = json.load(cc_keys_json) api_endpoint = 'https://coincheck.com' order_path = '/api/exchange/orders' if __name__ == '__main__': api = coincheckApi.ApiCall(cc_keys["key"], cc_keys["secret"], api_endpoint) action = "market_buy" body = { "pair": "btc_jpy", "order_type": action, "market_buy_amount": 10000 } try: result = api.post_api_call(order_path, body).json() if result["success"] != True: pprint(result) except Exception as e: print(e)
———-
6.botトレードで勝利するには回線速度が超重要
システムトレードで勝利するためには、アルゴリズムは最も重要なのは言うまでもありませんが、botを動かす環境によって勝率が大きく変わってきます。
本気で勝つbot開発に挑むなら、環境整備もぜひ始めておきましょう!
・ネット遅延を減らす
今はほとんどの方が光回線でインターネットに接続していると思いますが、最もアクセス速度が早く安定しているのは「NURO 光」です。自宅のPCを利用してbotトレードするならば、インターネット環境の速度アップは必須です。
下記サイトを参考にしてみてください。
あとはエントリーのタイミングを考えて、プログラミングしていきましょう!ここからが本当の勝負です!一緒に頑張りましょう!
では!
コメント