news 2026/7/4 2:39:24

【期货量化策略】期货量化交易策略均值回归(Python量化)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【期货量化策略】期货量化交易策略均值回归(Python量化)

一、前言

均值回归策略基于价格会回归均值的假设,在价格偏离均值时进行反向交易。本文将介绍各种均值回归策略的实现方法。

本文将介绍:

二、为什么选择天勤量化(TqSdk)

TqSdk均值回归支持:

功能说明
技术指标内置均值回归指标
实时数据支持实时行情数据
统计分析支持统计分析
灵活扩展支持自定义策略

安装方法

pipinstalltqsdk pandas numpy

三、均值回归基础

3.1 均值回归原理

原理说明
价格偏离价格会偏离均值
回归均值价格会回归均值
波动范围价格在均值附近波动
反向交易偏离时反向交易

3.2 适用条件

条件说明
震荡市场适合震荡市场
波动稳定波动率相对稳定
均值稳定均值相对稳定
流动性好有足够流动性

四、布林带策略

4.1 布林带均值回归

#!/usr/bin/env python# -*- coding: utf-8 -*-""" 功能:布林带均值回归策略 说明:本代码仅供学习参考 """fromtqsdkimportTqApi,TqAuthfromtqsdk.tafuncimportbollimportpandasaspddefbollinger_mean_reversion(api,symbol):"""布林带均值回归策略"""klines=api.get_kline_serial(symbol,3600,200)api.wait_update()boll_data=boll(klines['close'],20,2)upper=boll_data['upper']lower=boll_data['lower']middle=boll_data['middle']current_price=klines['close'].iloc[-1]# 价格触及下轨,买入ifcurrent_price<=lower.iloc[-1]:return1# 价格触及上轨,卖出elifcurrent_price>=upper.iloc[-1]:return-1# 价格回到中轨,平仓elifabs(current_price-middle.iloc[-1])/middle.iloc[-1]<0.001:return0return0# 使用示例api=TqApi(auth=TqAuth("快期账户","快期密码"))signal=bollinger_mean_reversion(api,"SHFE.rb2510")print(f"交易信号:{signal}")api.close()

4.2 布林带宽度策略

defbollinger_width_strategy(api,symbol,width_threshold=0.1):"""布林带宽度策略"""klines=api.get_kline_serial(symbol,3600,200)api.wait_update()boll_data=boll(klines['close'],20,2)upper=boll_data['upper']lower=boll_data['lower']middle=boll_data['middle']# 计算带宽bandwidth=(upper-lower)/middle current_price=klines['close'].iloc[-1]current_bandwidth=bandwidth.iloc[-1]# 带宽过窄,等待ifcurrent_bandwidth<width_threshold:return0# 价格偏离中轨deviation=(current_price-middle.iloc[-1])/middle.iloc[-1]ifdeviation<-0.02:# 价格低于中轨2%return1elifdeviation>0.02:# 价格高于中轨2%return-1return0

五、RSI策略

5.1 RSI均值回归

fromtqsdk.tafuncimportrsidefrsi_mean_reversion(api,symbol,period=14,overbought=70,oversold=30):"""RSI均值回归策略"""klines=api.get_kline_serial(symbol,3600,200)api.wait_update()rsi_value=rsi(klines['close'],period)current_rsi=rsi_value.iloc[-1]# RSI超卖,买入ifcurrent_rsi<oversold:return1# RSI超买,卖出elifcurrent_rsi>overbought:return-1return0

5.2 RSI背离策略

defrsi_divergence_strategy(api,symbol):"""RSI背离策略"""klines=api.get_kline_serial(symbol,3600,200)api.wait_update()rsi_value=rsi(klines['close'],14)prices=klines['close']# 检测背离# 价格创新高,RSI未创新高(顶背离)ifprices.iloc[-1]>prices.iloc[-20:].max()andrsi_value.iloc[-1]<rsi_value.iloc[-20:].max():return-1# 卖出# 价格创新低,RSI未创新低(底背离)elifprices.iloc[-1]<prices.iloc[-20:].min()andrsi_value.iloc[-1]>rsi_value.iloc[-20:].min():return1# 买入return0

六、价差回归策略

6.1 价差计算

defcalculate_price_deviation(klines,window=20):"""计算价格偏离"""mean_price=klines['close'].rolling(window).mean()std_price=klines['close'].rolling(window).std()current_price=klines['close'].iloc[-1]mean_value=mean_price.iloc[-1]std_value=std_price.iloc[-1]# Z-scorez_score=(current_price-mean_value)/std_valuereturnz_score

6.2 价差回归策略

defprice_deviation_strategy(api,symbol,threshold=2):"""价差回归策略"""klines=api.get_kline_serial(symbol,3600,200)api.wait_update()z_score=calculate_price_deviation(klines)# Z-score过大,卖出ifz_score>threshold:return-1# Z-score过小,买入elifz_score<-threshold:return1return0

七、统计套利

7.1 协整配对

fromstatsmodels.tsa.stattoolsimportcointdefcointegration_pair_trading(api,symbol1,symbol2,klines1,klines2,threshold=2):"""协整配对交易"""# 协整检验price1=klines1['close']price2=klines2['close']score,pvalue,_=coint(price1,price2)ifpvalue>0.05:return0# 不协整# 计算价差spread=price1-price2 spread_mean=spread.rolling(20).mean()spread_std=spread.rolling(20).std()current_spread=spread.iloc[-1]z_score=(current_spread-spread_mean.iloc[-1])/spread_std.iloc[-1]# Z-score过大,做空价差ifz_score>threshold:api.insert_order(symbol1,"SELL","OPEN",1)api.insert_order(symbol2,"BUY","OPEN",1)return1# Z-score过小,做多价差elifz_score<-threshold:api.insert_order(symbol1,"BUY","OPEN",1)api.insert_order(symbol2,"SELL","OPEN",1)return-1return0

八、总结

8.1 均值回归要点

要点说明
均值识别准确识别均值
偏离判断判断偏离程度
回归确认确认回归趋势
止损设置设置止损

8.2 注意事项

  1. 趋势市场- 趋势市场可能亏损
  2. 均值漂移- 注意均值漂移
  3. 止损设置- 必须设置止损
  4. 市场环境- 适合震荡市场

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

更多资源

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

智慧工地安全帽佩戴检测系统

智慧工地安全帽佩戴检测系统的设计与实现 第一章 设计背景与核心目标 建筑施工现场人员安全帽佩戴不规范是安全事故高发的重要诱因&#xff0c;传统人工巡检方式存在漏检率高、实时性差、人力成本高的问题&#xff0c;难以适配工地大范围、高频次的安全监管需求。本设计依托计算…

作者头像 李华
网站建设 2026/7/2 3:07:55

基于PLC的电机伺服随动系统的开发与设计

基于PLC的电机伺服随动系统的开发与设计 第一章 设计背景与核心目标 在自动化生产线、数控机床、工业机器人等领域&#xff0c;电机伺服随动系统是实现高精度轨迹跟踪、同步联动的核心环节。传统伺服随动系统多依赖专用运动控制器&#xff0c;存在成本高、与PLC控制系统兼容性…

作者头像 李华
网站建设 2026/7/2 3:05:58

【开题答辩全过程】以 基于Springboot停车场后台管理系统的设计与实现为例,包含答辩的问题和答案

个人简介 一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等 开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。 感谢大家…

作者头像 李华
网站建设 2026/7/2 3:03:27

2026年OpenClaw(Clawdbot)一键部署保姆级教程及快速接入QQ指南

2026年OpenClaw(Clawdbot)一键部署保姆级教程及快速接入QQ指南&#xff01;OpenClaw是什么&#xff1f;OpenClaw&#xff08;Clawdbot&#xff09;是什么&#xff1f;OpenClaw&#xff08;原Clawdbot/Moltbot&#xff09;是一个开源的AI智能体平台&#xff0c;凭借其强大的任务…

作者头像 李华
网站建设 2026/7/2 4:17:51

一文读懂 Agent、MCP、Skill:2026 年 AI 自动化核心能力组合

INTRODUCTION 你有没有过这样的经历&#xff1f;每天被报表、数据查询和客服回复这些重复工作填满&#xff0c;明明已经接入了 AI 工具&#xff0c;却总觉得"用不顺"。不是不同工具的调用方式五花八门&#xff0c;就是复杂任务仍然需要人工反复介入&#xff0c;时间和…

作者头像 李华
网站建设 2026/6/26 16:26:49

*我的编码哲学:『满意解』

动态生长满意解&#xff0c;认知扩张趋最优。 笔记模板由python脚本于2026-02-09 12:54:28创建&#xff0c;本篇笔记适合喜欢思考的coder翻阅。 学习的细节是欢悦的历程 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;而不仅仅是知识的简单复述。 Python官网&#…

作者头像 李华