# 組み合わせ注文

place_combo_order(combo_leg_list, price, qty, order_type=OrderType.NORMAL, trd_env=TrdEnv.REAL, acc_id=0, acc_index=0, remark="", time_in_force=TimeInForce.DAY, expire_time=None)

  • 概要

    コンボオプション/コンボ戦略の注文を提出します。

    提示

    Python API は同期的ですが、ネットワークの送受信は非同期です。place_combo_order の応答データパケットと約定プッシュコールバックまたは注文プッシュコールバックの間隔が非常に短い場合、place_combo_order のデータパケットが先に返されるにもかかわらず、コールバック関数が先に呼び出されることがあります。

  • パラメータ

    パラメータ 説明
    combo_leg_list list コンボレッグリスト
    price float 注文価格
    qty float 注文数量
    order_type OrderType 注文タイプ
    trd_env TrdEnv 取引環境
    acc_id int 取引口座 ID
    acc_index int 取引口座リスト内の口座インデックス
    remark str 備考
    time_in_force TimeInForce 有効期限
    expire_time str 注文有効期限
    • ComboLeg オブジェクトフィールド:
      フィールド 説明
      code str 銘柄コード。形式例: US.AAPL、US.AAPL260529C302500
      trd_side TrdSide 当該レッグの取引方向
      qty_ratio float 数量比率
      position_id int ポジションID
  • 戻り値

    パラメータ 説明
    ret RET_CODE API呼び出し結果
    data pd.DataFrame ret == RET_OK の場合、注文リストを返す
    str ret != RET_OK の場合、エラー説明を返す
    • 注文リストフォーマットは以下の通り:
      フィールド 説明
      order_id str 注文番号
      code str コンボ戦略コード
      strategy_type OptionStrategyType コンボ戦略タイプ
      trd_side TrdSide 取引方向
      order_type OrderType 注文タイプ
      order_status OrderStatus 注文ステータス
      qty float 注文数量
      price float 注文価格
      amount float 注文金額
      time_in_force TimeInForce 有効期限
      expire_time str 有効期限
      dealt_qty float 約定数量
      dealt_avg_price float 約定平均価格
      create_time str 作成日時
      updated_time str 最終更新日時
      last_err_msg str 最新のエラー説明
      remark str 備考
      combo_legs list コンボレッグリスト
  • Example

from moomoo import *
trd_ctx = OpenSecTradeContext(filter_trdmarket=TrdMarket.US, host='127.0.0.1', port=11111, security_firm=SecurityFirm.FUTUINC)
leg1 = ComboLeg()
leg1.code = 'US.AAPL260529C302500'
leg1.trd_side = TrdSide.BUY
leg1.qty_ratio = 1
leg2 = ComboLeg()
leg2.code = 'US.AAPL'
leg2.trd_side = TrdSide.SELL
leg2.qty_ratio = 100
combo_legs = [leg1, leg2]
ret, data = trd_ctx.place_combo_order(combo_legs, price=9.9, qty=1, order_type=OrderType.NORMAL, trd_env=TrdEnv.SIMULATE)
if ret == RET_OK:
    print(data)
    print(data['order_id'][0])
else:
    print('place_combo_order error: ', data)
trd_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • Output
              order_id  code strategy_type trd_side order_type order_status  qty  price  ...
0  FH1C79E90941477000   ...           ...      ...     NORMAL   SUBMITTING  1.0  9.9  ...
FH1C79E90941477000
1
2
3

APIレート制限

  • 同一口座 ID(acc_id)につき、30秒以内に発注APIを最大15回までリクエスト可能です。また、連続するリクエストの間隔は 0.02 秒以上必要です。発注 とレート制限を共有します。
  • 本番口座で発注APIを呼び出す前に、ロック解除が必要です。デモ口座ではロック解除は不要です。

提示

  • combo_leg_list の各レッグ銘柄は同一取引市場に属する必要があります。システムは最初のレッグの市場に基づいて trd_market を決定します。
  • 各レッグの qty_ratio と qty が合わさって、各レッグの実際の注文数量を決定します。