Skip to content

下單 ​

POST /api/v1.0/accounts/{acc_id}/orders

提交新的交易訂單。

下單結果怎麼看

  • 本接口需要 OAuth trade:write。若返回權限不足,請確認 Token 的 scope 已包含該項,見 快速開始 · 權限範圍。
  • s 為 ok:已受理,訂單號在 d.order_id。
  • s 為 error 且 need_order_confirm 為 true:還需確認(不是最終失敗),用頂層 confirm_id 調用二次確認。
  • 有 jump_url:請在瀏覽器打開該連結繼續。
  • 其他錯誤:按 errcode / errmsg 處理。

need_order_confirm、confirm_id、jump_url 在響應頂層,不在 d 裡。詳見二次確認。

路徑參數 ​

參數類型必填說明
acc_idstring是業務賬戶 ID。

請求參數 ​

參數類型位置必填說明
codestring請求體條件必填可交易標的代碼。格式:market.symbol,例如 US.AAPL,US.AAPL250926C235000。普通訂單必填;order_class 為 MLEG 時可不填,由 multi_leg_info.leg_infos 合成。
qtystring請求體是訂單數量。期權和期貨的單位為"合約"。
pricestring請求體否訂單價格。期貨賬戶精確到 9 位小數,外匯賬戶精確到 5 位小數,證券賬戶精確到 4 位小數,超出部分四捨五入。
sidetrd_side請求體是交易方向
order_typeorder_type請求體是訂單類型
time_in_forcetime_in_force請求體是有效期
expire_timeuint64請求體條件必填微秒級 Unix 時間戳。當 time_in_force 為 GTD 時必填。
sessiontrading_session請求體否交易時段(僅適用於美股)。市價單僅支持 RTH。
aux_pricestring請求體否觸發價格。當訂單類型為 STOP、STOP_LIMIT、MARKET_IF_TOUCHED、LIMIT_IF_TOUCHED 時必填。期貨賬戶精確到 9 位小數,外匯賬戶精確到 5 位小數,證券賬戶精確到 3 位小數,超出部分四捨五入。
trail_typetrail_type請求體否跟蹤止損類型。僅跟蹤止損單(TRAILING_STOP、TRAILING_STOP_LIMIT)可用。
trail_valuestring請求體否跟蹤金額或比例。僅跟蹤止損單可用。
trail_spreadstring請求體否指定價差。僅 TRAILING_STOP_LIMIT 可用。
lot_typelot_type請求體否手數類型,默認整手。適用於港股 / 日股交易。
remarkstring請求體否備註,UTF-8 編碼後最大長度 64 字節。
order_classorder_class請求體否訂單類別。多腿訂單需指定為 MLEG。日本券商不支持組合期權。
multi_leg_infomulti_leg_info請求體否多腿訂單信息,下多腿訂單時必填。
sub_acc_idstring請求體條件必填日本賬戶必填。子賬戶 ID,由客戶端從該賬戶的 sub_accounts[] 中選取(由「獲取授權交易賬戶」接口返回)。非日本券商忽略。
position_idstring請求體條件必填外匯平倉(SELL / BUY_BACK)必填。其他市場可選:傳入則平指定持倉,不傳則按同標的持倉自動分配。
position_open_typeposition_open_type請求體否開倉類型,僅跟蹤止損單(TRAILING_STOP、TRAILING_STOP_LIMIT)可用,控制是否允許開新倉
algo_infoalgo_info請求體否算法單參數,當 order_type 為算法單類型時必填。結構同響應 algo_info,其中 twap/vwap/pov/slicer/peg/iceberg 子結構的字段為各算法類型專屬必填項,參見 命名词典

支持的訂單類型 ​

本接口 order_type 以下列分類為準(完整取值見 命名詞典 · order_type)。是否可下還取決於賬戶所屬市場、標的和交易權限;不支持時接口會返回錯誤。

多腿組合期權用 order_class=MLEG + multi_leg_info 表達,不是新的 order_type。日本券商不支持組合期權。

常規 ​

order_type含義關鍵附加字段
LIMIT限價單通常傳 price
MARKET市價單一般不傳 price;美股 session 僅支持 RTH
AUCTION競價市價單多為港股競價場景
AUCTION_LIMIT競價限價單同上,通常還傳 price

止損 / 觸及 ​

order_type含義關鍵附加字段
STOP止損市價單必填 aux_price
STOP_LIMIT止損限價單必填 aux_price,通常還有 price
MARKET_IF_TOUCHED觸及市價單必填 aux_price
LIMIT_IF_TOUCHED觸及限價單必填 aux_price,通常還有 price

跟蹤止損 ​

order_type含義關鍵附加字段
TRAILING_STOP跟蹤止損市價單必填 trail_type、trail_value;可選 position_open_type
TRAILING_STOP_LIMIT跟蹤止損限價單上項 + 必填 trail_spread

算法單 ​

算法類 order_type 必須傳 algo_info。各類型專屬子結構見 命名詞典 · algo_info。

order_type含義專屬約束(摘要)
TWAP / TWAP_LIMITTWAP 市價 / 限價algo_info.twap.participation_rate
VWAP / VWAP_LIMITVWAP 市價 / 限價algo_info.vwap.participation_rate
POV / POV_LIMITPOV 市價 / 限價(成交量佔比)algo_info.pov.participation_rate
SLICER / SLICER_LIMITSlicer 市價 / 限價(切片)algo_info.slicer;slice_interval 與 display_qty 至少其一
PEG / PEG_LIMITPEG 市價 / 限價display_qty、peg_offset
ICEBERG_LIMIT冰山限價algo_info.iceberg.display_qty;非美股還需 start_time / end_time,美股可豁免

請求示例 ​

限價買入。以 150 美元買入 100 股 US.AAPL,當日有效。

bash
curl -X POST 'https://webapi.moomoo.com/api/v1.0/accounts/{acc_id}/orders' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <AccessToken>' \
  -d '{
    "code": "US.AAPL",
    "qty": "100",
    "price": "150.00",
    "side": "BUY",
    "order_type": "LIMIT",
    "time_in_force": "DAY"
  }' | jq

市價賣出。賣出 100 股 HK.00700,當日有效。市價單不傳 price。

bash
curl -X POST 'https://webapi.moomoo.com/api/v1.0/accounts/{acc_id}/orders' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <AccessToken>' \
  -d '{
    "code": "HK.00700",
    "qty": "100",
    "side": "SELL",
    "order_type": "MARKET",
    "time_in_force": "DAY"
  }' | jq

止損限價。STOP_LIMIT 必須帶觸發價 aux_price,同時帶上限價 price。GTC 表示撤單前有效。

bash
curl -X POST 'https://webapi.moomoo.com/api/v1.0/accounts/{acc_id}/orders' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <AccessToken>' \
  -d '{
    "code": "US.NVDA",
    "qty": "100",
    "price": "999.00",
    "aux_price": "1000.00",
    "side": "SELL",
    "order_type": "STOP_LIMIT",
    "time_in_force": "GTC"
  }' | jq

跟蹤止損限價。TRAILING_STOP_LIMIT 必須帶 trail_type、trail_value 和 trail_spread。GTD 必須帶晚於當前時間的微秒 expire_time。RATIO 時 trail_value 填 0.5 表示 0.5%。

bash
curl -X POST 'https://webapi.moomoo.com/api/v1.0/accounts/{acc_id}/orders' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <AccessToken>' \
  -d '{
    "code": "US.NVDA",
    "qty": "100",
    "side": "SELL",
    "order_type": "TRAILING_STOP_LIMIT",
    "time_in_force": "GTD",
    "expire_time": 1814313600000000,
    "trail_type": "RATIO",
    "trail_value": "0.5",
    "trail_spread": "1.2"
  }' | jq

TWAP 限價算法單。必須帶 algo_info,其中 start_time、end_time 必填且結束晚於開始,並帶 twap.participation_rate。限價類同時帶 price。

bash
curl -X POST 'https://webapi.moomoo.com/api/v1.0/accounts/{acc_id}/orders' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <AccessToken>' \
  -d '{
    "code": "US.AAPL",
    "qty": "100",
    "side": "BUY",
    "order_type": "TWAP_LIMIT",
    "time_in_force": "DAY",
    "price": "150.00",
    "algo_info": {
      "start_time": 1798761600000000,
      "end_time": 1798765200000000,
      "pricing_strategy": "ADAPTIVE",
      "layering": "AUTO",
      "twap": {
        "participation_rate": "20"
      }
    }
  }' | jq

響應參數 ​

字段類型說明
order_idstring新建訂單的訂單 ID。

響應頂層還可能返回 need_order_confirm、confirm_id、jump_url,含義見下方示例與提示。

響應示例 ​

json
{
  "s": "ok",
  "d": {
    "order_id": "FH1D5B797DAC864000"
  }
}

失敗響應:

業務錯誤:

json
{
  "s": "error",
  "errcode": 344,
  "errmsg": "Trading for this market not activated.",
  "need_order_confirm": false
}

需要二次確認:

json
{
  "s": "error",
  "errcode": 108330261,
  "errmsg": "Due to liquidity and market conditions, you may be unable to open or close positions for this security. Do you want to continue?",
  "need_order_confirm": true,
  "confirm_id": "0a1984f400616ae1b2100008eb430000"
}

鑑權失敗。Access Token 無效時各接口都返回這段,字段是 code 和 trace_id,不是 s / errcode:

json
{
  "code": -12006,
  "trace_id": "385e116c10c8d386334acfc839f63251"
}