下单

下单

签名

pub async fn place_order(&self, order: OrderRequest) -> Result<Option<PlaceOrderResult>, TigerError>

说明

提交真实订单。需要交易权限和足够购买力。建议先使用 preview_order 验证。

参数

OrderRequest 字段(均为 Option,SDK 在发送时跳过 None 字段):

参数类型必填说明
accountOption<String>账户,缺省时 SDK 自动注入
symbolOption<String>股票代码,如 AAPL
sec_typeOption<String>证券类型:STK/OPT/FUT/WAR/IOPT
actionOption<String>交易方向:BUY/SELL
order_typeOption<String>订单类型:MKT/LMT/STP/STP_LMT/TRAIL
total_quantityOption<i64>下单数量
limit_priceOption<f64>条件限价(LMT/STP_LMT 必填)
aux_priceOption<f64>条件止损触发价(STP/STP_LMT 必填);TRAIL 为跟踪额
trailing_percentOption<f64>跟踪止损百分比,与 aux_price 互斥
time_in_forceOption<String>有效期:DAY/GTC/GTD,默认 DAY
outside_rthOption<bool>是否允许盘前盘后交易
expire_timeOption<i64>条件GTD 必填,13 位毫秒时间戳
marketOption<String>市场:US/HK/CN
currencyOption<String>币种:USD/HKD/CNH
expiryOption<String>期权到期日 YYYYMMDD
strikeOption<String>期权行权价
rightOption<String>期权方向:PUT/CALL
adjust_limitOption<f64>价格微调幅度
secret_keyOption<String>机构交易员密钥
user_markOption<String>用户备注
order_legsOption<Vec<OrderLegRequest>>附加订单(止盈止损)
algo_paramsOption<AlgoParamsRequest>算法订单参数
contract_legsOption<Vec<ContractLegRequest>>组合订单腿

返回

Result<Option<PlaceOrderResult>, TigerError>

字段类型说明
idi64全局订单 ID
order_idi64订单编号
sub_idsVec<i64>子订单 ID 列表

示例

use tigeropen::config::ClientConfig;
use tigeropen::model::order::limit_order;
use tigeropen::trade::TradeClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = ClientConfig::builder().build()?;
    let account = config.account.clone();
    let trade = TradeClient::from_config(config);

    // 限价买入 100 股 AAPL
    let order = limit_order(&account, "AAPL", "STK", "BUY", 100, 195.50);
    let result = trade.place_order(order).await?;
    if let Some(r) = result {
        println!("下单成功, id={}, order_id={}", r.id, r.order_id);
    }
    Ok(())
}

返回示例

{
  "id": 31234567,
  "order_id": 100234,
  "sub_ids": []
}

预览订单

签名

pub async fn preview_order(&self, order: OrderRequest) -> Result<Option<PreviewResult>, TigerError>

说明

预览订单不实际提交,用于检查费用、保证金和可行性。

参数

下单

返回

Result<Option<PreviewResult>, TigerError>

字段类型说明
is_passbool是否通过
commissionf64预估佣金
commission_currencyString佣金币种
init_marginf64初始保证金
maint_marginf64维持保证金
equity_with_loanf64含贷权益
available_eef64可用资金
messageString提示信息

示例

let order = limit_order(&account, "AAPL", "STK", "BUY", 100, 195.50);
let preview = trade.preview_order(order).await?;
if let Some(p) = preview {
    println!("通过={} 佣金={} 保证金={}", p.is_pass, p.commission, p.init_margin);
}

返回示例

{
  "is_pass": true,
  "commission": 1.99,
  "commission_currency": "USD",
  "init_margin": 9775.0,
  "maint_margin": 9775.0,
  "equity_with_loan": 50000.0,
  "available_ee": 40225.0,
  "message": ""
}

Did this page help you?