问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

探讨一个全局有效的因子优化方法

创作时间:
作者:
@小白创作中心

探讨一个全局有效的因子优化方法

引用
1
来源
1.
https://www.finlab.tw/better_factor/

在投资的世界里,寻找有效的选股策略一直是投资者追求的目标。最近,研究者发现了一个简单而有效的改进方法,可以让现有因子在选股时产生不错的结果。本文将深入探讨这个策略的背后的逻辑,并展示如何通过简单的代码来实现。

因子选股的基本概念

在进行因子选股时,我们通常会根据一些财务指标来筛选股票。这些指标能够帮助我们判断一家公司是否具有投资价值。你可能常常听到有人说「某档股票的 EPS 是多少多少耶!股價才多少,这太便宜了!」,基于这样的想法,我们提出了「xxx/Price」因子,即任何基本面相关的因子都可以拿来除以 Price 试试看。

本文将演示其中几个,例如:

  • 每股盈余(EPS)
  • 股东权益报酬率(ROE)

这两个关键财务指标与股价进行对比,从而挑选出具有潜力的股票。

因子构建的数学逻辑

我们使用每股盈余(EPS)除以收盘价,以及股东权益报酬率(ROE)除以收盘价来计算因子值。

from finlab import backtest
eps = data.get('financial_statement:每股盈餘')
roe = data.get('fundamental_features:ROE稅後')
eps_per_price = data.get('financial_statement:每股盈餘') / data.get('price:收盤價')
roe_per_price = data.get('fundamental_features:ROE稅後') / data.get('price:收盤價')

这两个指标的结合有助于我们更全面地评估一只股票的投资价值。具体的代码如下:

r = {}
r['eps'] = backtest.sim(eps.is_largest(30), upload=False)
r['eps'].creturn.plot(label='eps')
r['roe'] = backtest.sim(roe.is_largest(30), upload=False)
r['roe'].creturn.plot(label='roe')
r['eps_per_price'] = backtest.sim(eps_per_price.is_largest(30), upload=False)
r['eps_per_price'].creturn.plot(label='better_eps')
r['roe_per_price'] = backtest.sim(roe_per_price.is_largest(30), upload=False)
r['roe_per_price'].creturn.plot(label='better_roe')
import matplotlib.pyplot as plt
plt.legend()

xxx_per_price 确实都比 xxx 获得更高的回报率。

代码解析

  1. 计算 EPS/Price 和 ROE/Price:首先,我们从数据库中提取每股盈余和 ROE 的数据,并将其分别除以收盘价,得到两个相对指标。
  2. 排名计算:接着,我们对这两个相对指标进行排名,并计算其百分比排名。将这两个排名相加得到综合排名。
  3. 选股策略:根据综合排名,我们选取排名前 30 的股票作为投资组合。

  1. 回测:最后,我们对这个选股策略进行回测,验证其有效性。

惊人的结果

通过上述简单的策略,我们在回测中取得了显著的投资回报。这表明 xxx/Price 因子在选股中具有很高的潜力。这一结果不仅证实了因子选股的有效性,也为我们提供了一个简单而强大的投资工具。

结语

因子选股是一种强大的投资策略,而 xxx/Price 因子的应用更是展现了其惊人的潜力。希望这篇文章能够帮助投资者理解并应用这一策略,从而在投资中取得更好的成绩。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号