upctp

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"

数值类型

类型名底层类型用途
TThostFtdcPriceTypec_double价格
TThostFtdcMoneyTypec_double金额
TThostFtdcVolumeTypec_int数量
TThostFtdcIntTypec_int整数
TThostFtdcSequenceNoTypec_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_RESTART0从本交易日开始重传
THOST_TERT_RESUME1从上次收到的续传
THOST_TERT_QUICK2只传送登录后的新数据
THOST_TERT_NONE3不重传