メインコンテンツまでスキップ

株式注文

REQUEST I/F の利用制限

REQUEST I/F は一問一答方式です。要求を送信したら、応答を受信してから次の要求を送信してください。HTTP プロトコルの性質上、同時並列にリクエストを送ることは可能ですが、動作保証はされません。

また、要求データに含まれる送信通番p_no)は、前回の送信通番より大きい値を設定する必要があります。同じまたは小さい値を送信するとエラーになります(ブラウザ等の自動再送による重複送信の回避機構です)。

新規注文

import requests
import json

order_params = json.dumps({
"sCLMID": "CLMKabuNewOrder",
"sZyoutoekiKazeiC": "3", # 特定口座
"sIssueCode": "6501", # 銘柄コード
"sSizyouC": "00", # 東証
"sBaibaiKubun": "3", # 買
"sCondition": "0", # 指定なし
"sOrderPrice": "1500", # 指値 1,500円
"sOrderSuryou": "100", # 100株
"sGenkinShinyouKubun": "0", # 現物
"sOrderExpireDay": "0", # 当日限り
"sGyakusasiOrderType": "0", # 通常注文
"sSecondPassword": "",
})

response = requests.get(url_request, params=order_params)
result = response.json()

if result["sResultCode"] == "0":
print(f"注文番号: {result['sOrderNumber']}")
print(f"営業日: {result['sEigyouDay']}")
else:
print(f"注文失敗: {result['sResultText']}")

売買区分

コード説明
1
3
5新規(信用)
7返済(信用)

執行条件

コード説明
0指定なし
2引け
4寄付
6不成

注文訂正

変更しないフィールドには "*" を指定します。

correct_params = json.dumps({
"sCLMID": "CLMKabuCorrectOrder",
"sOrderNumber": "20250317-001",
"sEigyouDay": "20250317",
"sOrderPrice": "1600", # 価格を変更
"sOrderSuryou": "*", # 変更なし
"sCondition": "*", # 変更なし
"sOrderExpireDay": "*", # 変更なし
"sGyakusasiZyouken": "*", # 変更なし
"sGyakusasiPrice": "*", # 変更なし
"sSecondPassword": "",
})

response = requests.get(url_request, params=correct_params)

注文取消

cancel_params = json.dumps({
"sCLMID": "CLMKabuCancelOrder",
"sOrderNumber": "20250317-001",
"sEigyouDay": "20250317",
"sSecondPassword": "",
})

response = requests.get(url_request, params=cancel_params)

全注文取消

cancel_all_params = json.dumps({
"sCLMID": "CLMKabuCancelOrderAll",
"sSecondPassword": "",
})

response = requests.get(url_request, params=cancel_all_params)