Skip to main content

modify_order

Function modify_order 

Source
pub async fn modify_order(
    __arg0: State<RestState>,
    rec: Option<Extension<Arc<KeyRecord>>>,
    headers: HeaderMap,
    __arg3: Json<Value>,
) -> Result<Json<Value>, (StatusCode, Json<Value>)>
Expand description

POST /api/modify-order — 改单/撤单

v1.2:和 place_order 类似但 ModifyOrder protobuf 给不出 symbol/qty/value (只有 order_id),只能做 market 白名单 + hours 检查;symbol/value/side 留空让 check_full_skip_rate 自动跳过。

响应语义(v1.4.111 P2-5 doc 沉淀,对齐 C++ APIServer_Trd_ModifyOrder by-design): ret_type=0 仅表示 backend 接受了 modify 操作 (operation ACK), 不是最终成交 / 撤单状态证明;最终状态仍来自 UpdateOrder push 或后续查询。

正确 client pattern (ack-based):

  1. modify-order 返 ret_type=0 → assume backend 接受
  2. wait push event (REST /ws 订阅 trade notify) 或 retry query
  3. 单笔 CancelOrder 成功时,Rust 额外在返回 ACK 前做 bounded authoritative orders refresh;这不是本地 patch,也不改变 ACK 语义,只是缩短 /api/orders 立即读到 stale cache 的窗口。can_sell_qty 仍以后续交易 push 或显式 refresh_cache=true 持仓查询为准。