bitflyerのGET系のAPIを全部関数にして番号で呼び出せるpythonコード
何度も動かしてデータとコードを見比べるとBitflyerのAPIがよく理解できる
その前に key ,secretを隠しておくconfig.json
特定のフォルダ(c:\config\)に入れておけばコピーを作ることはなくなる
{ "key": " Your api key ", "secret": " Your secret code", "line_notify_token": " Your LINE token" "discord_token":" Your discord token" }
config.jsonを読み込むクラスConfig()
import json class Config: def __init__(self, json_path="c:\config\config.json"):#絶対パス指定 config = json.load(open(json_path, "r")) self.api_key = config["key"] self.api_secret = config["secret"] self.line_token = config["line_notify_token"] self.discord_token = config["discord_token"]
パラメーターを保存しておくparameter.json
{ "product_code": "FX_BTC_JPY", "size": 0.01, "side":"BUY", "fileName": "chart.csv", "order_type":"BUY", "price":798000, "trigger":798000, "expire":36800, "condition":"", "health":"", }
parameter.jsonを読み込むクラスParameter()
''' parameter.py config.iniを読み込んで外部から値を変更できる ''' import json from os import path #同じフォルダからファイルを読み込むにはpath.dirname(__file__) from pprint import pprint class Parameter: def __init__(self, fname="parameter.json"): json_path = path.join(path.dirname(__file__), fname) #print(json_path)path・ファイル名を表示 prmt = json.load(open(json_path, "r")) self.product_code = prmt["product_code"] self.filename = prmt["fileName"] self.size=prmt["size"] self.side=prmt['side'] self.child_order_type=prmt['order_type'] self.price=prmt['price'] self.trigger=prmt['trigger'] self.minute_to_expire=prmt["expire"] self.condition_type=prmt['condition'] self.health = prmt["health"] self.interval = prmt["sleepTime"]
bitflyerのGET系のAPIを全部関数にして番号で呼び出せるpythonコード
マニュアル代わりのpybitflyerの関数一覧がページの最後の方にあります。出力一覧もあり。
''' getbf.py last update 2019/12/29 ''' from pprint import pprint #辞書を整形出力 import time #タイマーとか現在時刻とか import pybitflyer #ラッパー from config import Config #規定フォルダのConfig()クラスを読み込む,api_key & api_secretをコードに書かない from parameter import Parameter #パラメーター類はコードと別にしておく import json #データ形式 import requests #webサイトへの送受信 import datetime #日時・時間を扱う cfg = Config() #keyとsecretを読み込み、クラスで__init__する prmt=Parameter() #パラメーターの読み込み、同上 ''' 設定の外部ファイル化が面倒な場合ここにベタ書きすれば良い api_key='your key' 関数の引数は(api_key,api_secret,prodect_code)とシンプルで良い api_secret='your secrt' product_code='FX_BTC_JPN' size=0.01 ''' api = pybitflyer.API(api_key=cfg.api_key, api_secret=cfg.api_secret) #pybirflyerラッパーのインスタンス化 def getmarkets():#pybitflyerに無いhttps://tokyo559.com/page-6751/api-getmarkets/に解説有り pprint(requests.get('https://api.bitflyer.com/v1/getmarkets').json()) def py_board(): #https://tokyo559.com/page-6751/getboard/に解説有り response = api.board(product_code=prmt.product_code) print(prmt.product_code,'midprice =',response['mid_price']) print('asks 件数',len(response['asks'])) print('bids 件数',len(response['bids'])) def py_ticker(self, **params): #https://tokyo559.com/page-6751/page-6806/に解説有り response = api.ticker(product_code=prmt.product_code) pprint(response) def py_executions(self, **params): response = api.executions(product_code=prmt.product_code) pprint(response[0])#全7種類 print('このexecutionsセットが 個数 ',end="") print(len(response)) def py_getboardstate(self, **params): #https://tokyo559.com/page-6751/getboardstate/に解説有り response = api.getboardstate(product_code=prmt.product_code) print('getboardstate') print(response) def py_gethealth(self, **params): #https://tokyo559.com/page-6751/gethealth/に解説有り response = api.gethealth(product_code=prmt.product_code) print('gethealth') print(response['status']) def py_getchats(self, **params): #https://tokyo559.com/page-6751/getchats/に解説有り td=datetime.datetime.now() td=td - datetime.timedelta(days=1) #1日減算 response = api.getchats(from_date=td.strftime('%Y-%m-%d'))#T%H:%M:%S')) print('getchats 1日前の100件だけ表示') for i in range(100):#response: print(response[i]['message']) #-----------Private API-------------- # 返り値格納オブジェクト response の中身によって[0]や['キー値']などがつけてあるので、 # データをじっくり見れば、[リスト]や{辞書}を自然に覚えてしまいます def py_getbalance(): response = api.getbalance() print('getbalance') pprint(response)#全7種類 def py_getcollateral(): response = api.getcollateral() print('getcollateral') pprint(response) def py_getcollateralhistory(): response = api.getcollateralhistory() print('getcollateralhistory') pprint(response[0],indent=4) def py_getaddresses(): response = api.getaddresses() print('getaddresses') pprint(response) def py_getcoinins(): response = api.getcoinins() print('getcoinins') pprint(response[0]) ''' def py_sendcoin(): response = api.sendcoin(currency_code='BTC') print('sendcoin') print(response)''' def py_getcoinouts(): response = api.getcoinouts() print('getcoinouts') pprint(response[0]) def py_getbankaccounts(): response = api.getbankaccounts() print('getbankaccounts') pprint(response) def py_getdeposits(): response = api.getdeposits() print('getdeposits') pprint(response[0]) ''' def py_withdraw(): response = api.withdraw(currency_code='JPY') print('withdraw') print(response)''' def py_getwithdrawals(): response = api.getwithdrawals() print('getwithdrawals') pprint(response[0]) ''' def py_sendchildorder(): response = api.sendchildorder(product_code=prmt.product_code,child_order_type='MARKET',side='BUY',) print('sendchildorder') print(response) def py_cancelchildorder(): response = api.cancelchildorder(product_code=prmt.product_code,child_order_id='',child_order_acceptance_id='') print('cancelchildorder') print(response) def py_sendparentorder(): response = api.sendparentorder(order_method='OCO',minute_to_expire=5256,product_code=prmt.product_code,condition_type='',side='BUY',size=0.01,price=1000000,trigger_price=999000) print('sendparentorder') print(response) def py_cancelparentorder(): response = api.cancelparentorder(product_code=prmt.product_code,parent_order_id='',) print('cancelparentorder') print(response) def py_cancelallchildorders(): response = api.cancelallchildorders() print('cancelallchildorders') print(response)''' def py_getchildorders(): response = api.getchildorders() print('getchildorders') pprint(response[0]) def py_getparentorders(): response = api.getparentorders() print('getparentorders') pprint(response[0]) def py_getparentorder(): response = api.getparentorder() print('getparentorder') pprint(response) def py_getexecutions(): response = api.getexecutions(product_code=prmt.product_code) print('getexecutions') pprint(response[0]) def py_getposition(): response = api.getpositions(product_code=prmt.product_code) if response: for i in response: #持ち玉の個数だけ繰り返す print( response[i]['side'],response[i]['size'],int(response[i]['pnl']),int(response[i]['price'])) else: print('建玉はありません\n') #print( response[0]) def py_gettradingcommission(): response = api.gettradingcommission() print('gettradingcommission') print(response) if __name__ == '__main__': try: while True: inp=input(''' <<<HTTP Public API>>> 0:getmarket 1:py_board 2:py_ticker 3:py_executions 4:py_getboardstate 5:py_gethealth 6:py_getchats <<<HTTP Private API>>> 7:py_getbalance 8:py_getcollateral 9:py_getcollateralhistory 10:py_getaddresses 11:py_getcoinins :py_sendcoin 13:py_getcoinouts 14:py_getbankaccounts 15:py_getdeposits :py_withdraw 17:py_getwithdrawals :py_sendchildorder :py_cancelchildorder :py_sendparentorder :py_cancelparentorder :py_cancelallchildorders 23:py_getchildorders 24:py_getparentorders 25:py_getparentorder 26:py_getexecutions 27:py_getposition: 28:py_gettradingcommission end:END Input Number! ''' ) if inp=='0': print('0: get markets') getmarkets() if inp=='1': print('1:py_board') py_board() if inp=='2': print('2:py_ticker') py_ticker('FX_BTC_JPY') if inp=='3': print('3:py_executions') py_executions('FX_BTC_JPY') if inp=='4': print('4:py_getboardstate') py_getboardstate('FX_BTC_JPY') if inp=='5': print('5:py_gethealth') py_gethealth('FX_BTC_JPY') if inp=='6': print('6:py_getchats') py_getchats('') if inp=='7': print('7:py_getbalance') py_getbalance() if inp=='8': print('8:py_getcollateral') py_getcollateral() if inp=='9': print('9:py_getcollateralhistory') py_getcollateralhistory() if inp=='10': print('10:py_getaddresses') py_getaddresses() if inp=='11': print('11:py_getcoinins') py_getcoinins() '''if inp=='12': print('12:py_sendcoin') py_sendcoin()''' if inp=='13': print('13:py_getcoinouts') py_getcoinouts() if inp=='14': print('14:py_getbankaccounts') py_getbankaccounts() if inp=='15': print('15:py_getdeposits') py_getdeposits() '''if inp=='16': print('16:py_withdraw') py_withdraw()''' if inp=='17': print('17:py_getwithdrawals') py_getwithdrawals() '''if inp=='18': print('18:py_sendchildorder') py_sendchildorder() if inp=='19': print('19:py_cancelchildorder') py_cancelchildorder() if inp=='20': print('20:py_sendparentorder') py_sendparentorder() if inp=='21': print('21:py_cancelparentorder') py_cancelparentorder() if inp=='22': print('22:py_cancelallchildorders') py_cancelallchildorders()''' if inp=='23': print('23:py_getchildorders') py_getchildorders() if inp=='24': print('24:py_getparentorders') py_getparentorders() if inp=='25': print('25:py_getparentorder') py_getparentorder() if inp=='26': print('26:py_getexecutions') py_getexecutions() if inp=='27': print('27:py_getposition:') py_getposition() if inp=='28': print('28:py_gettradingcommission') py_gettradingcommission() elif inp=='end'or inp=='END'or inp=='' or inp=='100': print(' -- bye --') break else: pass except KeyboardInterrupt: pass
こんな感じで動かします。
エラーが出たら自分で直してね。
おまけ pybitflyerの関数一覧
def board (self, **params):板情報 endpoint = “/v1/board” return self.request (endpoint, params=params) def ticker (self, **params):Ticker endpoint = “/v1/ticker” return self.request (endpoint, params=params) def executions (self, **params):約定履歴 endpoint = “/v1/executions” return self.request (endpoint, params=params) def getboardstate (self, **params):板の状態 endpoint = “/v1/getboardstate” return self.request (endpoint, params=params) def gethealth (self, **params):取引所の状態> endpoint = “/v1/gethealth” return self.request (endpoint, params=params) def getchats (self, **params):チャット endpoint = “/v1/getchats” return self.request(endpoint, params=params) HTTP Private API def getbalance (self, **params):資産残高を取得 endpoint = “/v1/me/getbalance” return self.request (endpoint, params=params) def getcollateral (self, **params):証拠金の状態を取得 endpoint = “/v1/me/getcollateral” return self.request (endpoint, params=params) def getcollateralhistory (self, **params):証拠金の変動履歴を取得 endpoint = “/v1/me/getcollateralhistory” return self.request (endpoint, params=params) def getaddresses (self, **params):預入用アドレス取得 endpoint = “/v1/me/getaddresses” return self.request (endpoint, params=params) def getcoinins (self, **params):仮想通貨預入履歴 endpoint = “/v1/me/getcoinins” return self.request (endpoint, params=params) def sendcoin (self, **params): endpoint = “/v1/me/sendcoin” return self.request (endpoint, “POST”, params=params) def getcoinouts (self, **params):仮想通貨送付履歴 endpoint = “/v1/me/getcoinouts” return self.request (endpoint, params=params) def getbankaccounts (self, **params):銀行口座一覧取得 endpoint = “/v1/me/getbankaccounts” return self.request (endpoint, params=params) def getdeposits (self, **params):入金履歴 endpoint = “/v1/me/getdeposits” return self.request (endpoint, params=params) def withdraw (self, **params):出金 endpoint = “/v1/me/withdraw” return self.request (endpoint, “POST”, params=params) def getwithdrawals (self, **params):出金履歴 endpoint = “/v1/me/getwithdrawals” return self.request (endpoint, params=params) def sendchildorder (self, **params):新規注文を出す endpoint = “/v1/me/sendchildorder” return self.request (endpoint, “POST”, params=params) def cancelchildorder (self, **params):注文をキャンセルする endpoint = “/v1/me/cancelchildorder” return self.request (endpoint, “POST”, params=params) def sendparentorder (self, **params):新規の親注文を出す(特殊注文) endpoint = “/v1/me/sendparentorder” return self.request (endpoint, “POST”, params=params) def cancelparentorder (self, **params):<親注文をキャンセルする endpoint = “/v1/me/cancelparentorder” return self.request (endpoint, “POST”, params=params) def cancelallchildorders (self, **params):すべての注文をキャンセルする endpoint = “/v1/me/cancelallchildorders” return self.request (endpoint, “POST”, params=params) def getchildorders (self, **params):<注文の一覧を取得 endpoint = “/v1/me/getchildorders” return self.request (endpoint, params=params) def getparentorders (self, **params):親注文の一覧を取得 endpoint = “/v1/me/getparentorders” return self.request (endpoint, params=params) def getparentorder (self, **params):親注文の詳細を取得 endpoint = “/v1/me/getparentorder” return self.request (endpoint, params=params) def getexecutions (self, **params):約定の一覧を取得 endpoint = “/v1/me/getexecutions” return self.request (endpoint, params=params) def getpositions (self, **params):建玉の一覧を取得 endpoint = “/v1/me/getpositions” return self.request (endpoint, params=params) def gettradingcommission (self, **params):取引手数料を取得
もっとおまけ 蛇足 全番号出力画面一覧
PS C:\Users\leoco\documents> python setandorder.py <<<HTTP Public API>>> 0:getmarket 1:py_board 2:py_ticker 3:py_executions 4:py_getboardstate 5:py_gethealth 6:py_getchats <<<HTTP Private API>>> 7:py_getbalance 8:py_getcollateral 9:py_getcollateralhistory 10:py_getaddresses 11:py_getcoinins :py_sendcoin 13:py_getcoinouts 14:py_getbankaccounts 15:py_getdeposits :py_withdraw 17:py_getwithdrawals :py_sendchildorder :py_cancelchildorder :py_sendparentorder :py_cancelparentorder :py_cancelallchildorders 23:py_getchildorders 24:py_getparentorders 25:py_getparentorder 26:py_getexecutions 27:py_getposition: 28:py_gettradingcommission end:END Input Number! 0 0: get markets [{'product_code': 'BTC_JPY'}, {'product_code': 'FX_BTC_JPY'}, {'product_code': 'ETH_BTC'}, {'product_code': 'BCH_BTC'}, {'product_code': 'ETH_JPY'}, {'alias': 'BTCJPY_MAT3M', 'product_code': 'BTCJPY27MAR2020'}, {'alias': 'BTCJPY_MAT1WK', 'product_code': 'BTCJPY03JAN2020'}, {'alias': 'BTCJPY_MAT2WK', 'product_code': 'BTCJPY10JAN2020'}] #メニュー表示省略------------------------------------------------- Input Number! 1 1:py_board FX_BTC_JPY midprice = 818069.0 asks 件数 2009 #実際のデータは展開されたベタデータが bids 件数 2331 #これらの数字だけやってくる #メニュー表示省略 Input Number! 2 2:py_ticker {'best_ask': 818085.0, 'best_ask_size': 0.20208196, 'best_bid': 818066.0, 'best_bid_size': 0.01, 'ltp': 818085.0, 'product_code': 'FX_BTC_JPY', 'tick_id': 183854786, 'timestamp': '2019-12-30T07:12:07.213', 'total_ask_depth': 6439.97909451, 'total_bid_depth': 7584.09610845, 'volume': 81579.93122723, 'volume_by_product': 81574.60972833} #メニュー表示省略------------------------------------------------- Input Number! 3 3:py_executions {'buy_child_order_acceptance_id': 'JRF20191230-071205-004031', 'exec_date': '2019-12-30T07:12:05.917', 'id': 1487032484, 'price': 818053.0, 'sell_child_order_acceptance_id': 'JRF20191230-071205-311330', 'side': 'SELL', 'size': 0.03203363} このexecutionsセットが 個数 100 #メニュー表示省略------------------------------------------------- Input Number! 4 4:py_getboardstate getboardstate {'health': 'NORMAL', 'state': 'RUNNING'} #メニュー表示省略------------------------------------------------- Input Number! 5 5:py_gethealth gethealth NORMAL #メニュー表示省略------------------------------------------------- Input Number! 6 6:py_getchats getchats 1日前の100件だけ表示 もう司馬遷 お局様になっとる? ええんやで 下のエリオット3波を期待 9時いいいいいいいいいいいいいいい よし みんや集中してんねん!(してない)(居ない) ちょっと早い気もするが これ81割ったらバイーン着そうで怖いなw 割ってバイーン期待 805割ったら買いやね うるせーぞ うるせーよ 次が下降エリオット3波なら十分ありますよ ごめんなさい 誠意を見せてもらおうか わっしょいわっしょい 大概は足更新で動いた逆にいくんやでw すいませんですた_○/l_=3ブッ てか起きたら全然動いてなくてドンピシャいやドンビキ!★ でも今回はどちらにも動いてない つまり なにらき☆すたみたいにゆーてんねん ゆごいてきた すみませんでした☆ ええんやで 来年は爆上げの年になるでしょう! え VIP★STAR 低迷の時代を生き抜いた皆さん、おめでとうございまーす! なにがチップスターじゃぷちこりょすぞ 垂直成長に期待!ってなーに? 提灯合戦ヤメろや〜 なおオンドレラは昨夜スキャってたら寝てしまって上で捕まっております たぁすけてくれえええええええええええぇええええええええええええええええええええええええええええええええええええええええええええええええええええええええ もぅマジ無理…ナンピンしょ… 目の毒に.....あ、気の毒に..... やめてください 💢͏̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣͔͙͎͎̘̣ すいませんですた いいんだよ いいんなら言うなよな! ごめんなさい ごめんなさい ええんやで ええんならいうな すいませんですた でぶは罪 でぶから税金を ここのオッサンみんなデブじゃん ワシゎスレンダー デブは7つの大罪のひとつ そしてカレぴのサレンダー 怠慢やっけ? 強欲じゃないよね デブ、ハゲ、虫歯、腰痛 腰痛は許してあげて 来年のカレンダー買ったけど、画びょうねえお 釘で打ち込め 町内会の掲示板から取ってくるか セロハンテープでもええで 業務用粘着テープでもええんやで 唾でも(ry どっかに画びょう落ちてそうなとこあっかな クラシックに米粒でOK 窃盗だあああああああああああああ 通報しょ… マンションの掲示板にあるかな そのくらい買いなよぉ… カレンダーひとつの為に買いたくねえお 画鋲そんなに要らんよな だからって盗んだらだめー ωフグリィ 壁に穴があくなんて許せない じゃごはん粒か ω フグリィ 使ってないやつを有効利用や 雨の日においちゃんの傘を持ってくやつよりはマシニダ ま じ そういう人が居るからコンビニのトイレからトイレットペーパーがなくなるねん き ち 速 報 さすがにトイレっとペーパーはあかんやろ うむ好調 やはり籠城戦は有効だ トイレットペーパーなかったら、大惨事 清掃道具とか洗浄剤も盗られるって張り紙してあって悲しくなった どんだけ乞食根性やねん… トイレにカメラはつけれんからなあ そそ だから盗むという・・・ 多分フグリ氏みたいにお金に困ってる人が… 逆もあるよー どうなるかねここ 東芝って、今シャイン3000人になってもうたんやな 派遣・・・ 東芝なくなってもうたんか #メニュー表示省略------------------------------------------------- end:END Input Number! 7 7:py_getbalance getbalance [{'amount': 98.0, 'available': 98.0, 'currency_code': 'JPY'}, {'amount': 0.0180202, 'available': 0.0180202, 'currency_code': 'BTC'}, {'amount': 0.0, 'available': 0.0, 'currency_code': 'BCH'}, {'amount': 3.28e-06, 'available': 3.28e-06, 'currency_code': 'ETH'}, {'amount': 0.0, 'available': 0.0, 'currency_code': 'ETC'}, {'amount': 0.0, 'available': 0.0, 'currency_code': 'LTC'}, {'amount': 0.0, 'available': 0.0, 'currency_code': 'MONA'}, {'amount': 0.0, 'available': 0.0, 'currency_code': 'LSK'}, {'amount': 0.0, 'available': 0.0, 'currency_code': 'XRP'}] #メニュー表示省略------------------------------------------------- end:END Input Number! 8 8:py_getcollateral getcollateral {'collateral': 5918.114503976, 'keep_rate': 1.4384066953392192, 'open_position_pnl': -25.57, 'require_collateral': 4096.5775} #メニュー表示省略------------------------------------------------- Input Number! 9 9:py_getcollateralhistory getcollateralhistory { 'amount': 3272.0, 'change': -93.0, 'currency_code': 'JPY', 'date': '2019-12-29T15:12:13.42', 'id': 7938, 'reason_code': 'CLEARING_COLL'} #メニュー表示省略------------------------------------------------- Input Number! 10 10:py_getaddresses getaddresses [{'address': '3DyiMuCSXczDkBirqC1cJeg16Ktie3G8Ag', 'currency_code': 'BTC', 'type': 'NORMAL'}, {'address': '3DyiMuCSXczDkBirqC1cJeg16Ktie3G8Ag', 'currency_code': 'BCH', 'type': 'NORMAL'}, {'address': '0x0ad6ef514ab3013cffccc0dae4d2da7661f7a1f4', 'currency_code': 'ETH', 'type': 'NORMAL'}, {'address': '0x0ad6ef514ab3013cffccc0dae4d2da7661f7a1f4', 'currency_code': 'ETC', 'type': 'NORMAL'}] #メニュー表示省略------------------------------------------------- Input Number! 11 11:py_getcoinins getcoinins {'address': '0x0ad6ef514ab3013cffccc0dae4d2da7661f7a1f4', 'amount': 0.8091934, 'currency_code': 'ETH', 'event_date': '2019-06-15T23:25:03.597', 'id': 6775983, 'order_id': 'CDP20190615-232503-619314', 'status': 'COMPLETED', 'tx_hash': '0xe2bd3d0cc270196727646437f6113223c555f5642df37fd5d29b0c7447c50152'} #メニュー表示省略------------------------------------------------- Input Number! 13 13:py_getcoinouts getcoinouts {'additional_fee': 0.0, 'address': '3NrXbiow8LFnfcikikh5h6Cnhq6Kgu9nqc', 'amount': 0.012093, 'currency_code': 'BTC', 'event_date': '2019-06-22T22:00:40.857', 'fee': 0.0004, 'id': 6811988, 'order_id': 'CWD20190622-220040-612243', 'status': 'COMPLETED', 'tx_hash': 'c3816a7cdf700d559a5b541b466f830213d787a97ad1d7aaab0523c813464f40'} #メニュー表示省略------------------------------------------------- end:END Input Number! 14 14:py_getbankaccounts getbankaccounts {'data': None, 'error_message': 'Permission denied', 'status': -500} (エラー:許可されていません・・・していません) #メニュー表示省略------------------------------------------------- Input Number! 15 15:py_getdeposits getdeposits {'amount': 20000.0, 'currency_code': 'JPY', 'event_date': '2019-12-23T03:11:07.833', 'id': 7521819, 'order_id': 'MDP20191223-031107-774085', 'status': 'COMPLETED'} #メニュー表示省略------------------------------------------------- Input Number! 17 17:py_getwithdrawals getwithdrawals {'amount': 200000.0, 'currency_code': 'JPY', 'event_date': '2017-12-27T04:59:49.497', 'id': 2308839, 'order_id': 'MWD20171227-045949-177924', 'status': 'COMPLETED'} #メニュー表示省略------------------------------------------------- Input Number! 23 23:py_getchildorders getchildorders {'average_price': 829792.0, 'cancel_size': 0.0, 'child_order_acceptance_id': 'JRF20191223-031934-214273', 'child_order_date': '2019-12-23T03:19:34', 'child_order_id': 'JOR20191223-031934-182540', 'child_order_state': 'COMPLETED', 'child_order_type': 'MARKET', 'executed_size': 0.018, 'expire_date': '2020-01-22T03:19:34', 'id': 1645596827, 'outstanding_size': 0.0, 'price': 0.0, 'product_code': 'BTC_JPY', 'side': 'BUY', 'size': 0.018, 'total_commission': 1.98e-05} #メニュー表示省略------------------------------------------------- Input Number! 24 24:py_getparentorders getparentorders {'average_price': 483000.0, 'cancel_size': 0.0, 'executed_size': 0.26605051, 'expire_date': '2017-10-30T16:40:34.693', 'id': 7460771, 'outstanding_size': 0.0, 'parent_order_acceptance_id': 'JRF20171001-014025-043853', 'parent_order_date': '2017-09-30T16:40:34.693', 'parent_order_id': 'JCP20170930-164035-970267', 'parent_order_state': 'COMPLETED', 'parent_order_type': 'STOP_LIMIT', 'price': 482900.0, 'product_code': 'BTC_JPY', 'side': 'SELL', 'size': 1.0, 'total_commission': 0.0} #メニュー表示省略------------------------------------------------- Input Number! 25 25:py_getparentorder getparentorder {'data': None, 'error_message': 'Order not found', 'status': -111} #メニュー表示省略------------------------------------------------- end:END Input Number! 26 26:py_getexecutions getexecutions {'child_order_acceptance_id': 'JRF20191229-151215-781788', 'child_order_id': 'JFX20191229-151216-461624F', 'commission': 0.0, 'exec_date': '2019-12-29T15:12:16.193', 'id': 1486062850, 'price': 819319.0, 'side': 'BUY', 'size': 0.01} #メニュー表示省略------------------------------------------------- Input Number! 27 27:py_getposition: BUY 0.01 -13 819312 #メニュー表示省略------------------------------------------------- Input Number! 28 28:py_gettradingcommission gettradingcommission {'Message': "No HTTP resource was found that matches the request URI 'https://api.bitflyer.jp/v1/me/gettradingcommission'."} #メニュー表示省略------------------------------------------------- Input Number! end -- bye --