bitbankの取引履歴をAPIを使って一括ダウンロード
年末になり、確定申告を意識する季節になりました。損益を確かめるには取引履歴をダウンロードする必要があります。
bitbank取引所はwebから取引履歴をダウンロードできますが、500件ずつしかダウンロード出来なくて不便です。
pythonを使って、一括ダウンロードするスクリプトを作ったので自由に使って下さい。コードは下にあります。python_bitbankccライブラリを使用するので、使用前にpipコマンドでライブラリをインストールして下さい。
import datetime
import pandas as pd
import python_bitbankcc
import csv
pair = 'btc_jpy'
apiKey = 'your_api_key'
secret = 'your_secret_key'
bitbank = python_bitbankcc.private(apiKey, secret)
def day_to_unixtime(date_str):
# date_str = '2018-02-01 12:30:00' or date_str = '2018-02-01'
l = len(date_str.split())
if l == 1:
date_str = date_str + ' 00:00:00'
time = pd.to_datetime(date_str) + datetime.timedelta(hours=-9)
return int(time.timestamp() * 1000)
def get_trade_history_mod(pair, order_count, order_id = None, since = None, end = None, order = None):
params = {'pair': pair,'count': order_count}
if order_id != None: params['order_id'] = order_id
if since != None: params['since'] = since
if end != None: params['end'] = end
if order != None: params['order'] = order
return bitbank._get_query('/user/spot/trade_history?', params)
def get_trade_history_bitbank(since,end,pair):
data = []
time = end
data.append(['side','amount','price','fee','timestamp','date'])
total_amount_buy = 0
total_amount_sell = 0
total_buy = 0
total_sell = 0
total_fee = 0
while(time>since):
t = get_trade_history_mod(pair=pair, order_count = '1000', end=str(time))
trades = t['trades']
if len(trades)==0:
break
for item in trades:
timestamp = item['executed_at']
date = datetime.datetime.fromtimestamp(int(item['executed_at'])/1000)
side = item['side']
amount = float(item['amount'])
price = float(item['price'])
fee = float(item['fee_amount_quote'])
time = timestamp - 1
if time<since:
break
data.append([side,amount,price,fee,timestamp,date])
total_fee += fee
if side=='buy':
total_amount_buy += amount
total_buy += round(amount*price,4)
if side=='sell':
total_amount_sell += amount
total_sell += round(amount*price,4)
print('総購入数量',total_amount_buy)
print('総売却数量',total_amount_sell)
print('総購入金額',total_buy)
print('総売却金額',total_sell)
print('手数料総額',total_fee)
return data
since = day_to_unixtime(date_str='2022-01-01')
end = day_to_unixtime(date_str='2022-12-31')
data = get_trade_history_bitbank(since,end,pair)
with open('trade_history_'+pair+'.csv', 'w') as f:
writer = csv.writer(f, lineterminator='\n')
writer.writerows(data)
apiKey = 'your_api_key'
secret = 'your_secret_key'
にあなたのAPIキーをセットして下さい。
pair = 'btc_jpy'
で通貨ペアを指定します。
since = day_to_unixtime(date_str='2022-01-01')
end = day_to_unixtime(date_str='2022-12-31')
で開始時刻と終了時刻を指定します。
私の使ったバージョンでは
python_bitbankcc.get_trade_history
にバグがあって時刻指定できなかったので、
get_trade_history_mod
メソッドで定義し直して使ってます。
適当に改造して利用してください。
~こんなマガジンやってます~
~広告~
【Bybit】日本人にも人気のある、世界トップレベルの仮想通貨取引所
無料登録はこちら:https://www.bybit.com/register?affiliate_id=22416&group_id=0&group_type=1
☆高金利ステーキング、USDTステーキング年利最大12%
☆豊富なレバレッジトークンの取り扱い
【Binance】世界最大の仮想通貨取引所
無料登録はこちら:https://accounts.binance.com/en/register?ref=KJWM1JMM
☆上記リンクからの登録で取引手数料10%OFF
☆350種類以上の取扱コイン
☆豊富なセービングとステーキング
この記事が気に入ったらサポートをしてみませんか?