news 2026/9/12 10:46:34

【天勤量化教程】天勤量化TqSdk实战指南(从入门到精通)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【天勤量化教程】天勤量化TqSdk实战指南(从入门到精通)

一、前言

天勤量化(TqSdk)是专业的期货量化交易平台,提供了完整的API和工具。本文将详细介绍TqSdk的使用方法,从基础到高级应用。

本文将介绍:

二、TqSdk简介

2.1 核心特性

特性说明
实时行情支持实时行情数据
历史数据支持获取历史数据
交易接口支持实盘交易
回测框架内置回测功能
技术指标内置多种技术指标

2.2 适用场景

场景说明
策略开发快速开发交易策略
数据分析进行市场数据分析
实盘交易实盘自动化交易
回测验证策略回测验证

三、安装与配置

3.1 安装

pipinstalltqsdk

3.2 账户配置

#!/usr/bin/env python# -*- coding: utf-8 -*-""" 功能:TqSdk基础使用 说明:本代码仅供学习参考 """fromtqsdkimportTqApi,TqAuth# 创建API实例api=TqApi(auth=TqAuth("快期账户","快期密码"),web_gui=True# 可选:开启Web界面)# 使用示例quote=api.get_quote("SHFE.rb2510")api.wait_update()print(f"最新价:{quote.last_price}")api.close()

四、数据获取

4.1 实时行情

defget_realtime_quote(api,symbol):"""获取实时行情"""quote=api.get_quote(symbol)api.wait_update()return{'last_price':quote.last_price,'bid_price':quote.bid_price1,'ask_price':quote.ask_price1,'volume':quote.volume,'open_interest':quote.open_interest}# 使用示例quote_data=get_realtime_quote(api,"SHFE.rb2510")print(quote_data)

4.2 K线数据

defget_klines(api,symbol,duration_seconds=3600,count=500):"""获取K线数据"""klines=api.get_kline_serial(symbol,duration_seconds,count)api.wait_update()returnklines# 使用示例klines=get_klines(api,"SHFE.rb2510",3600,500)print(f"K线数量:{len(klines)}")print(klines[['datetime','open','high','low','close','volume']].tail())

4.3 订单簿数据

defget_orderbook(api,symbol):"""获取订单簿数据"""quote=api.get_quote(symbol)api.wait_update()return{'bid_prices':[quote.bid_price1,quote.bid_price2,quote.bid_price3,quote.bid_price4,quote.bid_price5],'bid_volumes':[quote.bid_volume1,quote.bid_volume2,quote.bid_volume3,quote.bid_volume4,quote.bid_volume5],'ask_prices':[quote.ask_price1,quote.ask_price2,quote.ask_price3,quote.ask_price4,quote.ask_price5],'ask_volumes':[quote.ask_volume1,quote.ask_volume2,quote.ask_volume3,quote.ask_volume4,quote.ask_volume5]}# 使用示例orderbook=get_orderbook(api,"SHFE.rb2510")print("买盘:",orderbook['bid_prices'])print("卖盘:",orderbook['ask_prices'])

五、技术指标

5.1 移动平均

fromtqsdk.tafuncimportmadefcalculate_ma(klines,period=20):"""计算移动平均"""ma_value=ma(klines['close'],period)returnma_value# 使用示例ma20=calculate_ma(klines,20)print(f"MA20:{ma20.iloc[-1]:.2f}")

5.2 MACD

fromtqsdk.tafuncimportmacddefcalculate_macd(klines):"""计算MACD"""macd_data=macd(klines['close'],12,26,9)returnmacd_data# 使用示例macd_data=calculate_macd(klines)print(f"MACD:{macd_data['macd'].iloc[-1]:.4f}")print(f"Signal:{macd_data['signal'].iloc[-1]:.4f}")

5.3 RSI

fromtqsdk.tafuncimportrsidefcalculate_rsi(klines,period=14):"""计算RSI"""rsi_value=rsi(klines['close'],period)returnrsi_value# 使用示例rsi_value=calculate_rsi(klines,14)print(f"RSI:{rsi_value.iloc[-1]:.2f}")

六、策略开发

6.1 简单策略示例

defsimple_strategy(api,symbol):"""简单策略示例"""klines=api.get_kline_serial(symbol,3600,200)api.wait_update()ma5=ma(klines['close'],5)ma20=ma(klines['close'],20)# 金叉买入,死叉卖出ifma5.iloc[-1]>ma20.iloc[-1]andma5.iloc[-2]<=ma20.iloc[-2]:return1# 买入信号elifma5.iloc[-1]<ma20.iloc[-1]andma5.iloc[-2]>=ma20.iloc[-2]:return-1# 卖出信号return0# 持有# 使用示例signal=simple_strategy(api,"SHFE.rb2510")print(f"交易信号:{signal}")

6.2 策略框架

classStrategyFramework:"""策略框架"""def__init__(self,api,symbol):self.api=api self.symbol=symbol self.klines=Nonedefupdate_data(self):"""更新数据"""ifself.klinesisNone:self.klines=self.api.get_kline_serial(self.symbol,3600,200)else:self.api.wait_update()defgenerate_signal(self):"""生成信号(子类实现)"""raiseNotImplementedErrordefrun(self):"""运行策略"""whileTrue:self.update_data()signal=self.generate_signal()ifsignal!=0:# 执行交易self.execute_trade(signal)time.sleep(1)defexecute_trade(self,signal):"""执行交易"""ifsignal==1:# 买入self.api.insert_order(self.symbol,"BUY","OPEN",1)elifsignal==-1:# 卖出self.api.insert_order(self.symbol,"SELL","OPEN",1)

七、交易执行

7.1 下单

defplace_order(api,symbol,direction,offset,volume,price=None):"""下单"""ifprice:order=api.insert_order(symbol,direction,offset,volume,limit_price=price)else:order=api.insert_order(symbol,direction,offset,volume)api.wait_update()returnorder# 使用示例order=place_order(api,"SHFE.rb2510","BUY","OPEN",1)print(f"订单ID:{order.order_id}")

7.2 查询持仓

defget_position(api,symbol):"""查询持仓"""position=api.get_position(symbol)api.wait_update()return{'pos_long':position.pos_long,'pos_short':position.pos_short,'pos':position.pos_long-position.pos_short}# 使用示例position=get_position(api,"SHFE.rb2510")print(f"持仓:{position['pos']}")

7.3 查询账户

defget_account(api):"""查询账户"""account=api.get_account()api.wait_update()return{'balance':account.balance,'available':account.available,'margin':account.margin,'profit':account.profit}# 使用示例account=get_account(api)print(f"账户余额:{account['balance']:.2f}")

八、高级功能

8.1 多品种监控

defmonitor_multiple_symbols(api,symbols):"""监控多个品种"""quotes={}forsymbolinsymbols:quotes[symbol]=api.get_quote(symbol)api.wait_update()forsymbol,quoteinquotes.items():print(f"{symbol}:{quote.last_price}")returnquotes

8.2 数据订阅

defsubscribe_data(api,symbols):"""订阅数据"""quotes={}klines={}forsymbolinsymbols:quotes[symbol]=api.get_quote(symbol)klines[symbol]=api.get_kline_serial(symbol,3600,200)# 持续更新whileTrue:api.wait_update()# 处理数据forsymbolinsymbols:# 处理逻辑passtime.sleep(1)

九、总结

9.1 TqSdk使用要点

要点说明
数据更新使用wait_update()更新数据
错误处理完善的错误处理
资源管理及时关闭API连接
性能优化合理使用数据订阅

9.2 注意事项

  1. 数据更新- 必须调用wait_update()
  2. 资源释放- 使用完后关闭API
  3. 错误处理- 处理网络异常
  4. 性能优化- 避免频繁请求

免责声明:本文仅供学习交流使用,不构成任何投资建议。期货交易有风险,入市需谨慎。

更多资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:54:30

5分钟搞定!OFA VQA模型镜像快速入门教程

5分钟搞定&#xff01;OFA VQA模型镜像快速入门教程 你有没有试过部署一个视觉问答模型&#xff0c;结果卡在环境配置上一整天&#xff1f;装完CUDA又报错PyTorch版本不匹配&#xff0c;下载模型时网络中断&#xff0c;改了三次requirements.txt还是提示transformers和tokeniz…

作者头像 李华
网站建设 2026/9/2 9:39:05

Banana Vision Studio本地部署指南:离线运行高清拆解生成

Banana Vision Studio本地部署指南&#xff1a;离线运行高清拆解生成 想不想把身边复杂的物品&#xff0c;一键变成那种极具设计感的平铺拆解图&#xff1f;就是那种所有零件整整齐齐摆开&#xff0c;充满工业美学的效果。以前这需要专业的设计师花大量时间&#xff0c;现在&a…

作者头像 李华
网站建设 2026/9/4 4:00:45

零基础玩转Qwen3-Reranker-8B:手把手教你用Gradio调用API

零基础玩转Qwen3-Reranker-8B&#xff1a;手把手教你用Gradio调用API 1. 导语&#xff1a;为什么你需要关注这个重排序模型&#xff1f; 如果你正在搭建一个智能客服系统、企业知识库&#xff0c;或者任何需要从海量文档里精准找到答案的应用&#xff0c;那你一定遇到过这样的…

作者头像 李华
网站建设 2026/9/8 1:39:15

Qwen3-ASR-1.7B语音识别5分钟快速部署教程:小白也能轻松上手

Qwen3-ASR-1.7B语音识别5分钟快速部署教程&#xff1a;小白也能轻松上手 1. 为什么你需要这个语音识别模型&#xff1f; 你有没有遇到过这些场景&#xff1f; 开会录音整理成会议纪要要花两小时&#xff1b; 采访音频转文字靠手动敲&#xff0c;错一个字都要反复核对&#xf…

作者头像 李华
网站建设 2026/9/8 16:23:15

零代码集成指南:将丹青识画接入你的小程序/网站

零代码集成指南&#xff1a;将丹青识画接入你的小程序/网站 引言&#xff1a;让AI艺术触手可及 想象一下&#xff0c;你的用户上传一张照片&#xff0c;几秒钟后就能获得一幅充满诗意的书法题跋——这不是科幻电影的场景&#xff0c;而是「丹青识画」智能影像雅鉴系统带来的现…

作者头像 李华