# 注文変更・注文取消

modify_order(modify_order_op, order_id, qty, price, adjust_limit=0, trd_env=TrdEnv.REAL, acc_id=0, acc_index=0, aux_price=None, trail_type=None, trail_value=None, trail_spread=None)

  • 概要

    注文の価格と数量の変更、注文取消、注文の失効・生効の操作、注文の削除など。
    A株通市場の場合は注文変更に非対応です。注文取消は可能です。注文削除はOpenDのローカル操作です。

  • パラメータ

    パラメータ 説明
    modify_order_op ModifyOrderOp 注文変更操作タイプ
    order_id str 注文番号
    qty float 注文変更後の数量
    price float 注文変更後の価格
    adjust_limit float 価格微調整幅
    trd_env TrdEnv 取引環境
    acc_id int 取引口座 ID
    acc_index int 取引口座リスト内の口座インデックス
    aux_price float トリガー価格
    trail_type TrailType トレーリングタイプ
    trail_value float トレーリング金額/パーセント
    trail_spread float 指定スプレッド
  • 戻り値

    パラメータ 説明
    ret RET_CODE API呼び出し結果
    data pd.DataFrame 当 ret == RET_OK 时,返す注文変更情報
    str 当 ret != RET_OK 时,返すエラー説明
    • 注文変更情報フォーマットは以下の通り:
      フィールド タイプ 説明
      trd_env TrdEnv 取引環境
      order_id str 注文番号
  • Example

from moomoo import *
pwd_unlock = '123456'
trd_ctx = OpenSecTradeContext(filter_trdmarket=TrdMarket.US, host='127.0.0.1', port=11111, security_firm=SecurityFirm.FUTUINC)
ret, data = trd_ctx.unlock_trade(pwd_unlock)  # 本番口座で注文変更/取消する場合は先にロック解除が必要です。ここではデモ口座での注文取消のため、ロック解除を省略できます。
if ret == RET_OK:
    order_id = "8851102695472794941"
    ret, data = trd_ctx.modify_order(ModifyOrderOp.CANCEL, order_id, 0, 0)
    if ret == RET_OK:
        print(data)
        print(data['order_id'][0])  # 注文変更の注文番号を取得
        print(data['order_id'].values.tolist())  # list に変換
    else:
        print('modify_order error: ', data)
else:
    print('unlock_trade failed: ', data)
trd_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  • Output
    trd_env             order_id
0    REAL      8851102695472794941
8851102695472794941
['8851102695472794941']
1
2
3
4

cancel_all_order(trd_env=TrdEnv.REAL, acc_id=0, acc_index=0, trdmarket=TrdMarket.NONE)

  • 概要

    全注文を取消します。デモ取引およびA株通口座では一括注文取消は現在ご利用いただけません。

  • パラメータ

    パラメータ 説明
    trd_env TrdEnv 取引環境
    acc_id int 取引口座 ID
    acc_index int 取引口座リスト内の口座インデックス
    trdmarket TrdMarket 指定取引市場
  • 戻り値

    パラメータ 説明
    ret str API呼び出し結果。ret == RET_OK 代表API呼び出し正常,ret != RET_OK 代表API呼び出し失败
    data str 当 ret == RET_OK,返す"success"
    ret != RET_OK の場合、エラーの説明を返す
    • 全注文取消情報フォーマットは以下の通り:
      フィールド タイプ 説明
      trd_env TrdEnv 取引環境
      order_id str 注文番号
  • Example

from moomoo import *
pwd_unlock = '123456'
trd_ctx = OpenSecTradeContext(filter_trdmarket=TrdMarket.US, host='127.0.0.1', port=11111, security_firm=SecurityFirm.FUTUINC)
ret, data = trd_ctx.unlock_trade(pwd_unlock)  # 本番口座で注文変更/取消する場合は先にロック解除が必要です。ここではデモ口座での一括注文取消のため、ロック解除を省略できます。
if ret == RET_OK:
    ret, data = trd_ctx.cancel_all_order()
    if ret == RET_OK:
        print(data)
    else:
        print('cancel_all_order error: ', data)
else:
    print('unlock_trade failed: ', data)
trd_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
  • Output
success
1

APIレート制限

  • 同一口座 ID(acc_id)につき、30秒以内に注文変更・注文取消APIを最大20回までリクエスト可能です。また、連続するリクエストの間隔は 0.04 秒以上必要です。
  • 本番口座で注文変更・注文取消APIを呼び出す前に、ロック解除が必要です。デモ口座ではロック解除は不要です。

ご注意

  • 注文変更操作を実行する場合、各注文タイプに対応する必須パラメータについてはこちらをご覧ください。
  • 注文変更操作注文数量を変更する場合、このAPIの入力パラメータの注文数量 qty は、期待する約定の合計数量に等しくする必要があります。
    例: 注文数量が N 株で、すでに n 株が一部約定済みの場合。未約定の (N-n) 株のうち x 株を取り消したい場合、modify_order_op は NORMAL を選択し、qty には (N-x) を指定してください。 order_quantity
  • 注文取消操作を実行する場合、このAPIの入力パラメータ modify_order_op は CANCEL を選択してください。
    例: 注文数量が N 株で、すでに n 株が一部約定済みの場合。未約定の (N-n) 株をすべて取り消したい場合、modify_order_op は CANCEL を選択してください。この場合、qty と price の入力パラメータは無視されます。