期权行权
提交行权
签名
pub async fn submit_option_exercise(&self, mut req: OptionExerciseSubmitRequest) -> Result<Option<bool>, TigerError>说明
提交期权行权或到期处理请求。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| req.account | Option<String> | 否 | 账户,缺省时 SDK 自动注入 |
| req.contract_id | Option<i64> | 是 | 合约 ID |
| req.exercise_type | Option<String> | 是 | 行权类型:Exercise(行权)或 Expire(到期处理) |
| req.quantity | Option<f64> | 是 | 行权数量 |
| req.executing_date | Option<String> | 条件 | Exercise 类型必填,行权日期 |
| req.is_force | Option<bool> | 条件 | Exercise 类型必填,是否强制行权 |
| req.itm_rate | Option<i32> | 否 | Expire 类型可选,实值比例 0..10 |
| req.secret_key | Option<String> | 否 | 机构用户交易员密钥 |
返回
Result<Option<bool>, TigerError>
返回 Some(true) 表示请求已受理。
示例
use tigeropen::model::trade_requests::OptionExerciseSubmitRequest;
let success = trade.submit_option_exercise(OptionExerciseSubmitRequest {
contract_id: Some(55678),
exercise_type: Some("Exercise".into()),
quantity: Some(1.0),
executing_date: Some("2026-09-19".into()),
is_force: Some(false),
..Default::default()
}).await?;
println!("行权提交: {:?}", success);返回示例
true取消行权
签名
pub async fn cancel_option_exercise(&self, mut req: OptionExerciseCancelRequest) -> Result<Option<bool>, TigerError>说明
取消已提交的行权记录,仅 New 等可撤状态的行权记录可取消。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| req.account | Option<String> | 否 | 账户 |
| req.id | Option<i64> | 是 | 行权记录 ID |
| req.secret_key | Option<String> | 否 | 机构用户交易员密钥 |
返回
Result<Option<bool>, TigerError>
返回 Some(true) 表示取消成功。
示例
use tigeropen::model::trade_requests::OptionExerciseCancelRequest;
let cancelled = trade.cancel_option_exercise(OptionExerciseCancelRequest {
id: Some(12345),
..Default::default()
}).await?;
println!("取消行权: {:?}", cancelled);返回示例
true行权检查
签名
pub async fn option_exercise_check(&self, mut req: OptionExerciseCheckRequest) -> Result<Option<bool>, TigerError>说明
检查期权行权可行性,验证持仓是否满足行权条件。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| req.account | Option<String> | 否 | 账户 |
| req.contract_id | Option<i64> | 是 | 合约 ID |
| req.exercise_type | Option<String> | 是 | 行权类型 |
| req.quantity | Option<f64> | 是 | 行权数量 |
| req.executing_date | Option<String> | 条件 | Exercise 类型必填 |
| req.secret_key | Option<String> | 否 | 机构用户交易员密钥 |
返回
Result<Option<bool>, TigerError>
返回 Some(true) 表示可以行权。
示例
use tigeropen::model::trade_requests::OptionExerciseCheckRequest;
let ok = trade.option_exercise_check(OptionExerciseCheckRequest {
contract_id: Some(55678),
exercise_type: Some("Exercise".into()),
quantity: Some(1.0),
executing_date: Some("2026-09-19".into()),
..Default::default()
}).await?;
println!("行权检查通过: {:?}", ok);返回示例
true获取行权持仓
签名
pub async fn get_option_exercise_positions(&self, mut req: OptionExercisePositionsRequest) -> Result<Vec<OptionExercisePosition>, TigerError>说明
获取可行权的期权持仓列表。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| req.account | Option<String> | 否 | 账户 |
| req.page | Option<i32> | 否 | 页码 |
| req.page_size | Option<i32> | 否 | 每页条数 |
| req.secret_key | Option<String> | 否 | 机构用户交易员密钥 |
返回
Result<Vec<OptionExercisePosition>, TigerError>
| 字段 | 类型 | 说明 |
|---|---|---|
| contract_id | i64 | 合约 ID |
| symbol | String | 股票代码 |
| sec_type | String | 证券类型 |
| expiry | String | 到期日 |
| strike | f64 | 行权价 |
| right | String | PUT/CALL |
| position | f64 | 持仓数量 |
| market | String | 市场 |
| currency | String | 币种 |
示例
use tigeropen::model::trade_requests::OptionExercisePositionsRequest;
let positions = trade.get_option_exercise_positions(
OptionExercisePositionsRequest::default()
).await?;
for p in &positions {
println!("{} {} strike={} qty={}", p.symbol, p.right, p.strike, p.position);
}返回示例
[
{
"contract_id": 55678,
"symbol": "AAPL",
"sec_type": "OPT",
"expiry": "20260919",
"strike": 200.0,
"right": "CALL",
"position": 2.0,
"market": "US",
"currency": "USD"
}
]获取行权记录
签名
pub async fn get_option_exercise_records(&self, mut req: OptionExerciseRecordsRequest) -> Result<Vec<OptionExerciseRecord>, TigerError>说明
获取历史行权/到期处理记录。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| req.account | Option<String> | 否 | 账户 |
| req.page | Option<i32> | 否 | 页码 |
| req.page_size | Option<i32> | 否 | 每页条数 |
| req.secret_key | Option<String> | 否 | 机构用户交易员密钥 |
返回
Result<Vec<OptionExerciseRecord>, TigerError>
| 字段 | 类型 | 说明 |
|---|---|---|
| id | i64 | 记录 ID |
| contract_id | i64 | 合约 ID |
| symbol | String | 股票代码 |
| expiry | String | 到期日 |
| strike | f64 | 行权价 |
| right | String | PUT/CALL |
| exercise_type | String | Exercise/Expire |
| quantity | f64 | 行权数量 |
| status | String | 状态 |
| executing_date | String | 执行日期 |
| create_time | i64 | 创建时间(毫秒) |
示例
use tigeropen::model::trade_requests::OptionExerciseRecordsRequest;
let records = trade.get_option_exercise_records(
OptionExerciseRecordsRequest::default()
).await?;
for r in &records {
println!("{} {} qty={} status={}", r.symbol, r.exercise_type, r.quantity, r.status);
}返回示例
[
{
"id": 12345,
"contract_id": 55678,
"symbol": "AAPL",
"expiry": "20260919",
"strike": 200.0,
"right": "CALL",
"exercise_type": "Exercise",
"quantity": 1.0,
"status": "Submitted",
"executing_date": "2026-09-19",
"create_time": 1719216000000
}
]Updated 8 days ago
Did this page help you?
