sendorder_entry.py
import urllib.request
import json
import pprint
import order_info
import settings
import time
def sendorder_entry():
print('###sendorder_entry -START-')
obj = { 'Password': settings.password,
'Symbol': settings.symbol_trade,
'Exchange': settings.exchange,
'TradeType': 1 ,
'TimeInForce': 2 ,
'Side': settings.side,
'Qty': settings.qty,
'ClosePositionOrder': 0,
'FrontOrderType': 120,
'Price': 0,
'ExpireDay': 0}
json_data = json.dumps(obj).encode('utf-8')
url = 'http://localhost:' + settings.port + '/kabusapi/sendorder/future'
req = urllib.request.Request(url, json_data, method='POST')
req.add_header('Content-Type', 'application/json')
req.add_header('X-API-KEY', settings.token)
try:
print('###sendorder_entry')
with urllib.request.urlopen(req) as res:
print(res.status, res.reason)
for header in res.getheaders():
print(header)
print()
content = json.loads(res.read())
pprint.pprint(content)
#エントリ注文の注文IDを保存
settings.entryOrderID = content['OrderId']
pprint.pprint(settings.entryOrderID)
#約定するまで待つ
time.sleep(settings.intervalAfterOrder)
# 約定した価格を調査する
order_info.orders_info()
except urllib.error.HTTPError as e:
print(e)
content = json.loads(e.read())
pprint.pprint(content)
except Exception as e:
print(e)
if __name__ == "__main__":
import sys
sendorder_entry()
成行き発注の処理をしています。他で公開しているブログラムと同じです。発注していから約定値を調査するまで、ある程度間を開ける必要があります。私は通常、余裕を持って10秒としています。
コメント