Pythonによるauカブコム証券kabuステーションAPIを利用したトレーニングストップブログラム解説 4 成行返済注文発注 /sendorder

スポンサーリンク

settle_now.py

import urllib.request
import json
import pprint
import settings
import sys
import password

#利食いor損切り成行き決済注文
def settle_now():
    obj = { 'Password': password.password,
            'Symbol': settings.symbol,
            'Exchange': 1,
            'SecurityType': 1,
            'Side': settings.side_settle,
            'CashMargin': 3,
            'MarginTradeType': 1,
            'DelivType': 2,
            'AccountType': 4,
            'Qty': settings.qty,
            'ClosePositionOrder': 0,
            'Price': 0,
            'ExpireDay': 0,
            'FrontOrderType': 10}
    json_data = json.dumps(obj).encode('utf-8')

    url = 'http://localhost:' + settings.port + '/kabusapi/sendorder'
    req = urllib.request.Request(url, json_data, method='POST')
    req.add_header('Content-Type', 'application/json')
    req.add_header('X-API-KEY', settings.token)

    isException = True
    try:
        print('###settle_now')
        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)
            return

    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
    
    settle_now()

利食い or 損切りに関わらず、ただただ成行返済注文を即時で出すプログラムです。それ以上でもそれ以下でもありません。前ともほとんど変わっていません。

ただ、前はこのプログラム内にsys.exit()を書き、プログラムが終了するようにしていたのですが、今後再利用したときに、この後の処理も行えるようにしたがったので、それは削除しました。

全建玉決済です

このトレーリングストッププログラムは、発注を行わないので、建玉を取捨選択せず、今ある建玉を全決済します。ご注意ください。

プログラム内で発注を行い、その建玉のみを選択して返済するプログラムは、現在、鋭意テスト中です。近日中に公開します。

コメント