年化20.7%全球大类资产的波动率因子(附python代码)

原创文章第627篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。

昨天咱们使用回测系统来改进了遗传算法的fitness和metrics。单因子年化23.7%,基于deap的因子挖掘,我改进了fitness和metrics方案(附python代码和数据)

今天我们来继续补充函数。

def add_operators(pset):
    """添加算子"""
    pset = add_operators_base(pset)
    add_unary_ops(pset)
    add_unary_rolling_ops(pset)
    add_binary_rolling_ops(pset)

在unary里,我们新增了一个函数,取序列的倒数:

@calc_by_symbol
def inv(x: pd.Series):
    with np.errstate(divide="ignore", invalid="ignore"):
        se = np.where(np.abs(x) > 0.001, 1.0 / x, 0.0)
        return pd.Series(se, index=x.index)

有同学问,自己新增这样的函数,如何确保正确呢?

其实就是自己跑一下,我用表达式引擎,写一个调用该函数的最简单的在因子,比如:inv(open)。

import pandas as pd
from datafeed.dataloader import CSVDataloader

symbols = CSVDataloader.get_symbols_from_instruments('1-商品期货流动性好的品类.txt')
#symbols = ['B0','BR0']

df = CSVDataloader.get_df(set_index=True, symbols=symbols)
print(df)
expr = 'inv(open)'
df = CSVDataloader.calc_expr(df, [expr],
                             ['factor'])
print(df)

今天把一元rolling和二元rolling都加上之后:

import numpy as np
import pandas as pd
from .expr_utils import calc_by_symbol


@calc_by_symbol
def ts_corr(left: pd.Series, right: pd.Series, periods=20):
    res = left.rolling(window=periods).corr(right)
    # left.rolling(window=periods).apply(func=func,right)
    res.loc[
        np.isclose(left.rolling(periods, min_periods=1).std(), 0, atol=2e-05)
        | np.isclose(right.rolling(periods, min_periods=1).std(), 0, atol=2e-05)
        ] = np.nan
    return res


@calc_by_symbol
def ts_cov(left: pd.Series, right: pd.Series, periods=10):
    res = left.rolling(window=periods).cov(right)
    return res

图片

找到波动率因子:

图片

年化20.7%的单因子:ts_std(log(high), 20)

类似的还有交易额的波动率:rank(ts_std(volume, 5))

吾日三省吾身

短期看,生活、工作中难免有这样或那样的事情。

不确定的时代,要预测非常难。

无论是人生规划,工作规划还是投资。

投资看似预测,其实构建交易系统的核心逻辑是“应对”。——保持一个长期的稳定盈利的能力。

不预测的规划。——最简单的投资理财就是储蓄、定投、动态再平衡和保持耐心。——足以应对全天候的市场环境。

人生亦是如此。

你永远不知道明天会遇到谁,发生什么事情,有什么经历,有什么样的机遇。

纳瓦尔宝典里,四种发现好运的能力:彩票式的撞大运、持续折腾、不停地提升判断好运(风口)的能力,以及他最认同的——不靠运气成功的能力——你有一项别人没有且需要的能力。

其实第二和三种也有大量成功的实践,要成功本身就需要大量实践和试错,很多创业者就是这么过来的,缺点是波动很大,大成者有,人生巅峰,更多则是深陷泥沼。

第四种,适合大多数普通人。——就是做好自己的积累,等机会来找你。

更保险的情况是,80%的精力在持续积累,20%走出去,折腾一点事情,去判断风口和尝试,保持对机会的敏感。

历史文章:

单因子年化23.7%,基于deap的因子挖掘,我改进了fitness和metrics方案(附python代码和数据)

自研“因子流水线”之遗传算法的交叉与变异的python代码实现

AI量化实验室——2024量化投资的星辰大海

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI量化投资实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值