前回買った通貨の情報を確認します。
取引所はbitFlyerで、通貨はイーサリアムとします。
背景や前提については、以下のカテゴリーページをご覧ください。
注意事項
- 本サイトで掲載されている評価や感想等は、あくまでサイト運営者の主観であり、広告主に保証されたものではありません。
- 暗号資産(仮想通貨)取引は、元本を保証するものでなく、価格変動により損失が生じるリスクがあります。
お取引される際には、取引内容をよく理解し、ご自身の判断で行ってください。
ファイルを作成する
買ったポジション情報を確認するためのコードを書くファイルを作成してください。
私は「get_executions.py」としました。
サンプルコード
import credential
import requests
import time
import hmac
import hashlib
import urllib.parse
url = 'https://api.bitflyer.com'
product_code = 'ETH_JPY'
path_getexecutions = '/v1/me/getexecutions'
method = 'GET'
param_getexecutions = {
'product_code': product_code,
'child_order_acceptance_id': 'JRF20220306-072234-084896'
}
param_getexecutions_encode = urllib.parse.urlencode(param_getexecutions)
access_key = credential.api_key
access_timestamp = str(int(time.time()))
text = access_timestamp + method + path_getexecutions + '?' + param_getexecutions_encode
access_sign = hmac.new(
bytearray(credential.api_secret.encode('utf-8')),
text.encode('utf-8'),
digestmod = hashlib.sha256
).hexdigest()
headers = {
'ACCESS-KEY': access_key,
'ACCESS-TIMESTAMP': access_timestamp,
'ACCESS-SIGN': access_sign,
'Content-Type': 'application/json'
}
result_getexecutions = requests.get(
url + path_getexecutions,
params = param_getexecutions,
headers = headers
).json()
print(result_getexecutions)
実行結果
[
{
"id": 2314423788,
"side": "BUY",
"price": 304325.0,
"size": 0.01,
"exec_date": "2022-03-06T07:22:34.767",
"child_order_id": "JOR20220306-072234-462247H",
"commission": 1.5e-05,
"child_order_acceptance_id": "JRF20220306-072234-084896"
}
]
成行で買った時のレートや日付が表示されます。
「commission」というのは、どうやら手数料のようですね。
「1.5e-05」は「0.000015」で(bitFlyer Lightningの取引履歴で分かる)、単位はETHのようなので、
ということですかね。
こうして見ると、安くはない気がする。笑
説明
意外と買った時のコードとそこまで変わらないので、かいつまんで説明します。
モジュールインポート
import urllib.parse
まぁ後で説明しますが、必要なのです。
変数設定1
path_getexecutions = '/v1/me/getexecutions'
method = 'GET'
param_getexecutions = {
'product_code': product_code,
'child_order_acceptance_id': 'JRF20220306-072234-084896'
}
param_getexecutions_encode = urllib.parse.urlencode(param_getexecutions)
公式ドキュメントの「約定の一覧を取得」するAPIを使用します。
paramの「child_order_acceptance_id」には、前回買った際の出力結果に表示されたIDを入力してください。
これを指定しなくても実行できますが、その場合は一覧が出力されるはずです。
17行目のencodeのやつは、GETの場合のPrivate APIの認証でパラメータ形式にする必要があるため変換していますが、また下で説明します。
変数設定2
text = access_timestamp + method + path_getexecutions + '?' + param_getexecutions_encode
このtextですが、POSTの場合は以下のような内容が入ります。
これがGETだと以下のような内容にする必要があります。
この形式にするためにインポートしたり、encodeしたりが必要でした。
他は省略
まぁここまで試してきた方は、もうわかるかと思います。
不明点あればご質問いただければ回答します。
最後に
定期的にレートを取得して、このポジションと比較し、自分が設定した利益になったら売る、ということを自動でやれば、それはもうBotと言えるのではないでしょうか。
ということで次回からは、Botとして動かすために必要なことをやっていこうと思います。
本シリーズの一覧ページは以下にまとめています。
それでは。
コメント