auカブコム証券 kabuステーションAPI 先物取引用プログラム(6) エントリ発注

スポンサーリンク

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秒としています。

先物取引
スポンサーリンク
システムトレードでそこそこ設ける方法

コメント