Tushare实盘交易接口怎么用才能安全又高效?

发布时间:2026-09-25 23:35阅读:12625评论:0

从模拟到实盘,理解Tushare的交易能力

很多人用Tushare获取行情数据,却不知道它也能连接实盘交易。Tushare本身不提供交易通道,而是通过对接券商接口,让你在Python里直接下单。股票和期货都支持,前提是券商开放了API。

股票与期货的差异

股票实盘接口通常走券商官方API,比如中泰、华泰、国金等。期货则多通过CTP接口,Tushare封装了部分功能。股票T+1,期货T+0,代码里要区分开。

第一步 环境与权限准备

安装Tushare库,版本建议1.2.89以上。

Tushare实盘交易接口怎么用才能安全又高效?


pip install tushare --upgrade

注册Tushare账号,获取token。实盘交易需要单独申请权限,部分接口是付费的。

期货CTP接口要额外安装tushare的扩展包,比如pip install tushare[ctp]。

第二步 绑定交易账户

股票券商API需要你提供资金账号、密码、通讯密码。Tushare的trader模块负责连接。


import tushare as ts

# 初始化交易接口

trader = ts.Trader(

    broker='zhongtai',  # 券商代码

    user='你的资金账号',

    password='交易密码',

    comm_password='通讯密码',

    token='你的Tushare token'

)

期货CTP连接参数不同,需要经纪商代码、投资者账号、密码、服务器地址。


trader = ts.Trader(

    broker='ctp',

    user='投资者账号',

    password='密码',

    broker_id='经纪商ID',

    server='tcp://期货公司服务器地址'

)

连接成功后,trader.login()返回状态。账户资金、持仓可以通过trader.get_account()和trader.get_position()查询。

第三步 编写下单逻辑

股票下单用trader.order(),指定股票代码、价格、数量、买卖方向。


# 买入100股平安银行,限价12.5元

order_id = trader.order(

    code='000001.SZ',

    price=12.5,

    volume=100,

    direction='buy',

    order_type='limit'

)

期货下单类似,但要指定合约代码,比如rb2310.SHF。期货有开平仓标志,offset='open'或offset='close'。


# 开多1手螺纹钢

order_id = trader.order(

    code='rb2310.SHF',

    price=3800,

    volume=1,

    direction='buy',

    offset='open',

    order_type='limit'

)

撤单用trader.cancel_order(order_id)。

第四步 实时行情与策略触发

实盘交易依赖实时行情。Tushare的realtime_quote可以获取股票实时盘口,期货用realtime_ctp。


# 获取股票实时行情

quotes = ts.realtime_quote(ts_code='000001.SZ')

策略里常结合均线、突破等条件。每次行情更新后判断是否下单。


price = quotes['price'][0]

if price > ma20:

    trader.order(code='000001.SZ', price=price, volume=100, direction='buy')

第五步 风控与异常处理

实盘交易必须设置风控。单笔最大亏损、总仓位限制、撤单次数都要控制。


# 检查账户可用资金

account = trader.get_account()

available = account['available']

if available < 10000:

    print('资金不足,停止交易')

网络断开、券商服务器维护都会导致连接失败。用try-except包裹交易操作,记录日志。


try:

    trader.order(...)

except Exception as e:

    print(f'下单失败: {e}')

    # 重连或告警

常见坑与注意事项

股票实盘接口有频率限制,每秒最多几笔。期货CTP接口需要自行处理回报,比如成交、撤单。

Tushare的实盘功能依赖券商,不是所有券商都支持。开户前问清楚是否提供API。

期货保证金交易,杠杆放大风险。代码里务必计算保证金占用。


# 计算螺纹钢保证金

margin = price * 10 * 0.1  # 假设10吨/手,保证金率10%

股票卖出需要T+1,当天买入不能卖出。期货可以日内平仓。

一个完整的股票实盘示例


import tushare as ts

import time

trader = ts.Trader(broker='zhongtai', user='123456', password='xxx', comm_password='xxx', token='xxx')

trader.login()

while True:

    quotes = ts.realtime_quote(ts_code='000001.SZ')

    price = quotes['price'][0]

    if price < 12.0:

        trader.order(code='000001.SZ', price=price, volume=100, direction='buy')

        break

    time.sleep(3)

运行前先用模拟盘测试。Tushare有模拟交易接口,参数与实盘一致。

期货实盘的特殊处理

期货CTP接口需要订阅行情,trader.subscribe(['rb2310.SHF'])。收到行情后触发策略。

持仓管理用trader.get_position(),返回多头、空头持仓。平仓时方向相反,offset为close。


# 平掉多头持仓

trader.order(code='rb2310.SHF', price=3800, volume=1, direction='sell', offset='close')

期货有夜盘,注意交易时间。不同品种保证金和手续费不同,代码里动态获取。

安全与合规提醒

不要把密码硬编码在代码里,用环境变量或配置文件。

实盘交易接口需要券商授权,个人使用也要遵守规定。高频交易可能被限制。

Tushare社区有实盘案例,可以参考但不要直接复制。每个券商接口细节不同。

定期检查交易日志,对比成交记录。发现异常立即停止程序。

  1. 安装Tushare并获取token

  2. 申请实盘权限,确认券商支持API

  3. 用ts.Trader连接账户

  4. 获取实时行情,编写策略

  5. 调用order()下单,cancel_order()撤单

  6. 加入风控和异常处理

  7. 模拟盘验证后再实盘

股票和期货流程类似,期货多开平仓和保证金计算。Tushare实盘接口降低了程序化交易门槛,但风险控制永远第一。

上一篇如何用龙行虎步战法在涨停板中捕捉牛股股票开户万一免五到底能省多少钱下一篇
联系管理员
联系管理员