游离态GLZ的股票量化实验(一)—— 基于神奇公式思想投资策略

2023-10-07 03:10

本文主要是介绍游离态GLZ的股票量化实验(一)—— 基于神奇公式思想投资策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

量化断更了两年了,重新开写,希望各路大佬多批评指教。

最近上量化课学习了神奇公式,神奇公式是格林布拉特在其《股市稳赢》中提到的一种选股策略,其本人也依靠这个公式获得了长期年华40%的收益,赚的盆满钵满。

这个公式的思想简单来说就两步,一是寻找好公司;二是寻找便宜的股票。用量化行业的话来说就是一个双因子策略,选取的两个因子是资本回报率和股票收益率。由于国内这些指标不好查,用净资产收益率(ROE)代替资本回报率;用市盈率(PE)代替股票收益率。

基于这个思想来进行量化投资,但是注意到A股表现和美股比…算是一种双边行情,经常会有不可预测的跌势开启,因此加上布林带的择时,防止在股票下穿布林带开口的时候买入。

策略核心代码如下:

#排除市净率和净资产收益率小于0的,并选取流通市值top1%的df = df[(df['roe']>0) & (df['pb_ratio']>0)].sort_values(by='pb_ratio')df.index = df['code'].values #设置股票代号为indexdf = df[df['circulating_market_cap'] > df['circulating_market_cap'].quantile(0.99)]#选取roe大于8和pe小于60的df = df[(df['pe_ratio']<60) & (df['roe']>8)]#用rank作为指标,取roe(大)和pb(小)综合排名好的df['1/roe'] = 1/df['roe']df['score'] = df[['pb_ratio','1/roe']].rank().T.apply(sum)#通过考验的放入股票池pool = list((df.sort_values('score').index)[:g.stockNum])

布林带防止下穿,回避高风险股票买入时机:

for i in feasible_stock_list:for short_d, long_d in [(10, 50)]:price_short = get_price(i,end_date=context.previous_date,count=1+short_d,fields=['close'])['close']MA_short = price_short[-short_d:].mean()MA_short_pre = price_short[-1-short_d:-1].mean()price_long = get_price(i,end_date=context.previous_date,count=1+long_d,fields=['close'])['close']MA_long = price_long[-long_d:].mean()MA_long_pre = price_long[-1-long_d:-1].mean()if MA_short < MA_long and MA_short_pre > MA_long_pre and context.portfolio.positions[i].closeable_amount > 0:if i not in res_lst:res_lst.append(i)

在聚宽平台回测了2019年全年,效果尚可:
在这里插入图片描述
该模型还有很多问题,为了测试神奇公式对布林带的择时应用没有很严格,仅仅防止了下穿;同时神奇公式本身对很多突然崛起的科技股没有什么敏感度,更倾向于购买内在价值高但被低估的白马,而忽略表面价值低但是由于科技发展突然翻身的黑马。还有很多地方可以改进。

这篇关于游离态GLZ的股票量化实验(一)—— 基于神奇公式思想投资策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155656

相关文章

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Kafka拦截器的神奇操作方法

《Kafka拦截器的神奇操作方法》Kafka拦截器是一种强大的机制,用于在消息发送和接收过程中插入自定义逻辑,它们可以用于消息定制、日志记录、监控、业务逻辑集成、性能统计和异常处理等,本文介绍Kafk... 目录前言拦截器的基本概念Kafka 拦截器的定义和基本原理:拦截器是 Kafka 消息传递的不可或缺

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +