pub fn first_valid_currency_for_account(
security_firm: Option<i32>,
trd_market: Option<i32>,
uni_card_num: Option<&str>,
trd_market_auth_list: &[i32],
) -> Option<i32>Expand description
真实持仓刷新 CMD3020 使用的默认查询币种。
对齐 C++:
APIServer_Trd_GetPositionList.cpp:197,210调INNProto_Trd_Acc::QueryPositionListNoLimit(...)NNProto_Trd_Acc.cpp:787-801内部调用QueryAssetInner(false, INNData_Trd_CommonCurrency::GetAccountFirstValidCurrency(accItem), ...)INNData_Trd_CommonCurrency.cpp:148-192对 futures/universal 账户取 supported currency set 的begin(),single-currency 账户走GetTrdMarketCurrency.
注意这不是用户侧 GetFunds 默认币种策略。GetFunds 为 UX 会按券商本地
币种补齐未传 currency;GetPositionList 没有 currency 字段,只是在
C++ 内部用 first-valid currency 拉一次 AccountInfoReq 来刷新持仓 cache。
Hardcoded / Assumption Ledger:
- supported currency set 来自本文件上方 C++ 对齐表,不按具体账号硬编码。
- C++ 用
std::set<NN_TrdCurrency>::begin(),Rust 用数值最小 currency 等价表达;若 C++ 改为保持插入顺序,这里必须同步调整。