量化交易:财务选股RSRS择时的策略

哈喽,大家好,我是木头左!

引言

本文将介绍一种结合财务指标选股和RSRS(Risk-Adjusted Return to Strength Ratio)择时的策略,旨在帮助投资者在复杂的市场环境中做出更明智的决策。
感兴趣的朋友,可以在下方公号内回复:001,即可获取源码,共同交流!

策略原理

财务指标选股

财务指标选股是一种基于公司财务报表数据来评估股票价值的方法。常见的财务指标包括市盈率(PE)、市净率(PB)、净资产收益率(ROE)等。这些指标可以帮助投资者判断公司的盈利能力、资产状况和成长潜力。在本策略中,使用市净率(PB)和净资产收益率(ROE)作为选股的主要依据。

RSRS择时

RSRS择时是一种基于历史价格数据的技术分析方法,用于评估市场的风险和收益。RSRS通过计算价格序列的回归斜率来衡量市场趋势的强度。当斜率大于买入阈值时,认为市场风险在合理范围内,可以进行买入操作;当斜率小于卖出阈值时,认为市场风险过大,应保持空仓状态。

在聚宽平台运行Python代码

初始化函数

在聚宽平台上,首先需要导入所需的函数库,并在initialize函数中设置策略的基本参数,如股票交易的手续费、基准指数等。

def initialize(context):set_option('use_real_price', True)set_parameter(context)set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')run_daily(before_market_open, time='before_open', reference_security='000300.XSHG')run_daily(market_open, time='open', reference_security='000300.XSHG')

参数设置

set_parameter函数中,设置了RSRS指标中N和M的值,以及买入和卖出的阈值。此外,还计算了2005年1月5日至回测开始日期的RSRS斜率指标。

def set_parameter(context):g.N = 18g.M = 1100g.init = Trueg.stock_num = 10g.security = '000300.XSHG'set_benchmark(g.security)g.days = 0g.buy = 0.7g.sell = -0.7# ... 省略部分代码 ...

开盘前和开盘时运行函数

before_market_openmarket_open函数中,根据RSRS指标的计算结果来决定是否进行交易。如果RSRS指标大于买入阈值,则调用trade_func函数进行交易;如果小于卖出阈值且持有股票,则卖出所有股票。

security = g.security# 填入各个日期的RSRS斜率值beta=0r2=0if g.init:g.init = Falseelse:#RSRS斜率指标定义prices = attribute_history(security, g.N, '1d', ['high', 'low'])highs = prices.highlows = prices.lowX = sm.add_constant(lows)model = sm.OLS(highs, X)beta = model.fit().params[1]g.ans.append(beta)#计算r2r2=model.fit().rsquaredg.ans_rightdev.append(r2)# 计算标准化的RSRS指标# 计算均值序列    section = g.ans[-g.M:]# 计算均值序列mu = np.mean(section)# 计算标准化RSRS指标序列sigma = np.std(section)zscore = (section[-1]-mu)/sigma  #计算右偏RSRS标准分zscore_rightdev= zscore*beta*r2# 如果上一时间点的RSRS斜率大于买入阈值, 则全仓买入if zscore_rightdev > g.buy:# 记录这次买入log.info("市场风险在合理范围")#满足条件运行交易trade_func(context)# 如果上一时间点的RSRS斜率小于卖出阈值, 则空仓卖出elif (zscore_rightdev < g.sell) and (len(list(context.portfolio.positions.keys())) > 0):# 记录这次卖出log.info("市场风险过大,保持空仓状态")# 卖出所有股票,使这只股票的最终持有量为0for s in list(context.portfolio.positions.keys()):order_target(s, 0)

策略选股买卖部分

trade_func函数中,首先获取股票池,然后根据市净率(PB)和净资产收益率(ROE)进行筛选和打分,最后根据得分选取前10只股票进行买入或卖出操作。

def trade_func(context):#获取股票池df = get_fundamentals(query(valuation.code,valuation.pb_ratio,indicator.roe))#进行pb,roe大于0筛选df = df[(df['roe']>0) & (df['pb_ratio']>0)].sort('pb_ratio')#以股票名词作为indexdf.index = df['code'].values#取roe倒数df['1/roe'] = 1/df['roe']#获取综合得分df['point'] = df[['pb_ratio','1/roe']].rank().T.apply(f_sum)#按得分进行排序,取指定数量的股票df = df.sort('point')[:g.stock_num]pool = df.indexlog.info('总共选出%s只股票'%len(pool))#得到每只股票应该分配的资金cash = context.portfolio.total_value/len(pool)#获取已经持仓列表hold_stock = list(context.portfolio.positions.keys()) #卖出不在持仓中的股票for s in hold_stock:if s not in pool:order_target(s,0)#买入股票for s in pool:order_target_value(s,cash)

回测效果

通过在聚宽平台上运行上述策略,得到了以下回测效果:

image-20240507001155518

从回测结果可以看出,该策略收益实在不怎么样,后续反向优化。

策略的缺点

  1. 适用性 :在高波动性或快速变化的市场中,RSRS策略可能难以适应,导致投资组合表现不佳。

  2. 交易成本 :为了降低交易成本,应合理控制交易频率,或者通过设置较长的交易周期或采用定期再平衡的方式来减少交易次数。

**市场有风险,交易需谨慎。**感兴趣的朋友,可以在下方公号内回复:001,即可获取源码,共同交流!

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3018751.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

前端 | 自定义电子木鱼

文章目录 &#x1f4da;实现效果&#x1f4da;模块实现解析&#x1f407;html&#x1f407;css&#x1f407;javascript &#x1f4da;实现效果 &#x1f4da;模块实现解析 &#x1f407;html 搭个框架<!DOCTYPE html> <html lang"en"> <head>&l…

搭建电商ERP系统电商独立站最实用的电商API商品数据采集接口||电商API接口接入

通常搭建电商独立站需要接入的商品数据接口包括&#xff1a; 1. 商品信息接口&#xff1a;包括商品基本信息&#xff08;名称、描述、价格等&#xff09;、图片信息、库存信息、分类信息等。 2. 库存信息接口&#xff1a;用于同步更新商品的库存情况&#xff0c;保证实时性…

同城组局同城活动找搭子小程序JAVA源码面芽组局的实现方案

功能概述 基于微信小程序开发的一款软件&#xff0c;支持用户动态发布、私信聊天关注、礼物充值打赏、发起活动组局、用户报名参与、支持商家入驻&#xff0c;对接广告功能等。 活动发布&#xff1a;用户可以在平台上发布各种类型的活动&#xff0c;如户外徒步、音乐会观赏、…

森林消防新利器:高扬程水泵的革新与应用/恒峰智慧科技

随着全球气候变化的加剧&#xff0c;森林火灾的频发已成为威胁生态安全的重要问题。在森林消防工作中&#xff0c;高效、快速的水源供给设备显得尤为重要。近年来&#xff0c;高扬程水泵的广泛应用&#xff0c;为森林消防工作带来了新的希望与突破。 一、高扬程水泵的技术优势 …

java项目跑不起来 端口已被使用

背景 Springboot项目跑不起来&#xff0c;原因端口被占用。 解决方法 在 Windows 环境下&#xff0c;你可以按照以下步骤来查看某个端口被占用的情况&#xff0c;并停止相应的进程&#xff1a; 查看所有端口占用情况&#xff1a; 按下 Win R 键&#xff0c;打开运行窗口。…

中霖教育:考下注册会计师能从事哪些工作?

考下注册会计师能够从事哪些工作&#xff1f; 1 企业从事会计和财务工作 大部分的CPA持证人&#xff0c;会在企业里&#xff0c;从事会计和财务工作。但是能拿到多少薪资&#xff0c;也要看你所进入的平台。如果是小企业&#xff0c;实力一般&#xff0c;也就几干块工资。如果…

HTTP免费升级到HTTPS攻略

HTTPS就是在HTTP的基础上加入了SSL&#xff0c;将一个使用HTTP的网站免费升级到HTTPS的关键就是申请一个免费的SSL证书 具体步骤如下 1 获取免费SSL证书 国内的JoySSL 提供不限量免费的SSL/TLS证书。根据自己的需求选择证书类型&#xff08;登录JoySSL官网&#xff0c;创建账号…

收银系统源码--什么是千呼智慧新零售系统?

千呼智慧新零售系统是一套针对零售行业线上线下一体化收银系统。给门店提供线下称重收银、o2o线上商城、erp进销存、精细化会员管理、丰富营销插件等一体化解决方案。多端数据打通&#xff0c;实现线上线下一体化&#xff0c;提升门店工作效率&#xff0c;实现数字化升级&#…

详细介绍一下PointPillars算法的网络结构

PointPillars是一种用于3D目标检测的算法&#xff0c;它主要使用了点云数据和深度学习模型。 PointPillars算法的网络结构主要可以分为三个主要阶段&#xff1a; Pillar Feature Net&#xff08;点云特征处理网络&#xff09;&#xff1a;此阶段的主要任务是将输入的点云数据转…

烟道灰中回收铼,Tulsimer®RCX-5143回收铼树脂

号称“金属之最”的铼多伴生在金属矿物中&#xff0c;铼在地壳中的含量很低&#xff0c;仅为1ppb左右&#xff0c;主要分散在辉钼矿、斑铜矿中&#xff0c;铼的提取主要来源于钼冶炼和铜冶炼的烟灰和废酸。 由于其分布的特殊性、工艺的复杂性使得回收铼技术难度大。国内外目前…

什么是等保,为什么要做等保测评

为什么要做等保测评 1、法律法规的要求 做等保是《网络安全法》、《数据安全法》、《信息安全等级保护管理办法》等相关法律法规的要求。 2、企业的要求 近些年&#xff0c;随着人工智能的发展&#xff0c;进行网络攻击的门槛越来越低&#xff0c;而大部分信息系统可能存在的…

舞台演出因全息纱幕投影有哪些新变化?

如今&#xff0c;随着时代的演进&#xff0c;我们对舞台体验的追求愈发深入&#xff0c;渴望在这片艺术天地中&#xff0c;感受到超越日常的震撼与感动&#xff0c;而这种追求&#xff0c;也正与现代技术的飞速发展不谋而合。其中&#xff0c;全息纱幕投影技术以其独特的魅力&a…

桥梁施工污水需要哪些工艺设备

桥梁施工过程中产生的污水通常包含泥浆、油污、化学品残留等污染物。为了有效处理这些污水&#xff0c;确保施工现场的环境保护和合规性&#xff0c;通常需要以下工艺设备&#xff1a; 沉砂池&#xff1a;用于去除污水中的砂粒和其他重质无机物&#xff0c;减少对后续处理设备的…

人工智能_大模型050_模型微调010_模型数据_模型WEB界面代码记录---人工智能工作笔记0185

上面我们把chatglm3的训练代码,和llama2的训练代码,都记录了,然后,再就是: web_demo的代码我们记录一下,然后,我们就继续说下面的内容.至于data目录中的内容,都是一些训练数据,我会 放到资源中,提供下载,这里就不贴出来了,太大了. E:\2024\人工智能\fine-tuning-lab\fine-tun…

Agent AI:智能代理的未来

&#x1f388;写在前面 &#x1f64b;‍♂️大家好呀&#xff0c;我是超梦梦梦梦 &#x1f64b;‍♂️ 小伙伴们如果在学习过程中有不明白的地方&#xff0c;欢迎评论区留言提问&#xff0c;小梦定知无不言&#xff0c;言无不尽。 目录 一、Agent AI的起源与发展 二、Agent A…

mib browser读取mib文件的oid(飞塔防火墙为例)

在配置zabbix监控的时候,配置监控项最为麻烦,一般我们都会套用模板,这种方式比较简单,但是有些设备就是没有现成的zabbix模板,怎么办? 今天我们使用MIB Browser来获取设备SNMP的OID,然后加入zabbix 。 1.什么是MIB Browser SNMP客户端工具MIB Browser, 全名iReasonin…

学习大模型对你有什么好处?

什么是大模型&#xff1f; 大模型&#xff08;Large Models&#xff09;通常指的是参数量达到数十亿甚至千亿级别的人工智能模型&#xff0c;尤其是深度学习模型。这些模型通过大量的参数来捕捉数据中的复杂关系和模式&#xff0c;从而在各种任务中表现出色&#xff0c;如自然…

为什么说气膜是建造游泳馆的好选择?—轻空间

随着气温逐渐攀升&#xff0c;夏日游泳成为人们追求凉爽的理想选择。在这个时候&#xff0c;选择气膜建筑作为游泳馆的建筑材料具有许多优势。 首先&#xff0c;气膜建筑具备出色的隔热和保温效果。其特殊的材料和结构设计有效隔绝了外界高温&#xff0c;同时保持了良好的通风和…

【MsSQL】数据库基础 库的基本操作

目录 一&#xff0c;数据库基础 1&#xff0c;什么是数据库 2&#xff0c;主流的数据库 3&#xff0c;连接服务器 4&#xff0c;服务器&#xff0c;数据库&#xff0c;表关系 5&#xff0c;使用案例 二&#xff0c;库的操作 1&#xff0c;创建数据库 2&#xff0c;创建…

亚马逊Amazon商品详情和关键词搜索API接口分享

一、亚马逊Amazon商品详情API接口 亚马逊商品详情API接口是亚马逊平台为开发者提供的一项重要服务&#xff0c;它允许开发者通过程序调用API来获取亚马逊商品的相关数据。这个接口为获取商品数据提供了便利的途径&#xff0c;有助于用户进行商品搜索、商品分类以及数据分析等操…