CTP Rust 绑定库 v0.10.0 - 完整文档
upctp 从 CTP C++ 头文件自动生成了 838 个数据类型定义,这些类型是 CTP API 的基础。
大多数 CTP 类型是固定长度的字符数组,用于存储字符串数据:
| 类型名 | 底层类型 | 用途 | 示例值 |
|---|---|---|---|
TThostFtdcInstrumentIDType | [c_char; 81] | 合约代码 | "rb2501" |
TThostFtdcBrokerIDType | [c_char; 11] | 经纪公司代码 | "9999" |
TThostFtdcInvestorIDType | [c_char; 13] | 投资者代码 | "259093" |
TThostFtdcUserIDType | [c_char; 16] | 用户代码 | "259093" |
TThostFtdcPasswordType | [c_char; 41] | 密码 | "123456789+ff" |
TThostFtdcExchangeIDType | [c_char; 9] | 交易所代码 | "SHFE" |
TThostFtdcDateType | [c_char; 9] | 日期 | "20250101" |
TThostFtdcTimeType | [c_char; 9] | 时间 | "09:00:00" |
TThostFtdcOrderRefType | [c_char; 13] | 报单引用 | "1" |
TThostFtdcAppIDType | [c_char; 33] | App 代码 | "simnow_client_test" |
TThostFtdcAuthCodeType | [c_char; 17] | 认证码 | "0000000000000000" |
TThostFtdcCurrencyIDType | [c_char; 4] | 币种代码 | "CNY" |
TThostFtdcBankIDType | [c_char; 4] | 银行代码 | "ICBC" |
TThostFtdcBankAccountType | [c_char; 41] | 银行账号 | "6222021234567890" |
| 类型名 | 底层类型 | 用途 |
|---|---|---|
TThostFtdcPriceType | c_double | 价格 |
TThostFtdcMoneyType | c_double | 金额 |
TThostFtdcVolumeType | c_int | 数量 |
TThostFtdcIntType | c_int | 整数 |
TThostFtdcSequenceNoType | c_int | 序列号 |
/// 将 Rust 字符串填充到 CTP 字符数组中
fn fill_cstr(buf: &mut [c_char], s: &str) {
for (i, &b) in s.as_bytes().iter().enumerate() {
if i < buf.len() {
buf[i] = b as c_char;
}
}
}
// 使用示例
let mut broker_id: [c_char; 11] = [0; 11];
fill_cstr(&mut broker_id, "9999");
let mut instrument_id: [c_char; 81] = [0; 81];
fill_cstr(&mut instrument_id, "rb2501");
/// 从 CTP 字符数组读取 Rust 字符串
fn read_cstr(buf: &[c_char]) -> String {
buf.iter()
.take_while(|&&c| c != 0)
.map(|&c| c as u8 as char)
.collect()
}
// 使用示例
let instrument_id: [c_char; 81] = [0; 81];
// ... 填充数据后
let id_str = read_cstr(&instrument_id);
println!("合约代码: {}", id_str);
| 常量名 | 值 | 说明 |
|---|---|---|
THOST_FTDC_OF_Open | '0' | 开仓 |
THOST_FTDC_OF_Close | '1' | 平仓 |
THOST_FTDC_OF_ForceClose | '2' | 强平 |
THOST_FTDC_OF_CloseToday | '3' | 平今 |
THOST_FTDC_OF_CloseYesterday | '4' | 平昨 |
THOST_FTDC_OF_ForceOff | '5' | 强减 |
THOST_FTDC_OF_LocalForceClose | '6' | 本地强平 |
| 常量名 | 值 | 说明 |
|---|---|---|
THOST_FTDC_HF_Speculation | '1' | 投机 |
THOST_FTDC_HF_Arbitrage | '2' | 套利 |
THOST_FTDC_HF_Hedge | '3' | 套保 |
THOST_FTDC_HF_MarketMaker | '5' | 做市商 |
| 常量名 | 值 | 说明 |
|---|---|---|
THOST_FTDC_D_Buy | '0' | 买入 |
THOST_FTDC_D_Sell | '1' | 卖出 |
| 常量名 | 值 | 说明 |
|---|---|---|
THOST_FTDC_OPT_AnyPrice | '1' | 任意价 |
THOST_FTDC_OPT_LimitPrice | '2' | 限价 |
THOST_FTDC_OPT_BestPrice | '3' | 最优价 |
THOST_FTDC_OPT_LastPrice | '4' | 最新价 |
THOST_FTDC_OPT_AskPrice1 | '7' | 卖一价 |
THOST_FTDC_OPT_BidPrice1 | '9' | 买一价 |
| 常量名 | 值 | 说明 |
|---|---|---|
THOST_FTDC_TC_IOC | '1' | 立即完成,否则撤销 |
THOST_FTDC_TC_GFS | '2' | 本节有效 |
THOST_FTDC_TC_GFD | '3' | 当日有效 |
THOST_FTDC_TC_GTC | '4' | 撤销前有效 |
THOST_FTDC_TC_GFA | '5' | 集合竞价有效 |
| 常量名 | 值 | 说明 |
|---|---|---|
THOST_FTDC_VC_AV | '1' | 任何数量 |
THOST_FTDC_VC_MV | '2' | 最小数量 |
THOST_FTDC_VC_CV | '3' | 全部数量 |
| 常量名 | 值 | 说明 |
|---|---|---|
THOST_TERT_RESTART | 0 | 从本交易日开始重传 |
THOST_TERT_RESUME | 1 | 从上次收到的续传 |
THOST_TERT_QUICK | 2 | 只传送登录后的新数据 |
THOST_TERT_NONE | 3 | 不重传 |