alpha模型:打开量化投资的黑箱;附创业板布林带策略代码:年化15%。

原创文章第108篇,专注“个人成长与财富自由、世界运作的逻辑, AI量化投资”。

关于量化投资,我们写了不少文章。从数据准备,预处理,因子特征工程,因子分析,规则策略,模型,回测,指标分析,可视化等等。

需要到总体进行一个架构。量化投资是一个系统,是一个知识体系。

我打开一本较老的书,但里面关于量化的体系,介绍得比较系统——《打开量化投资的黑箱》。

量化投资在外界看来很神秘,似乎是一个“黑箱”,只要把数据输入进去,经过各种高深的数学模型的处理,就可以告诉我们下一步如何交易。——对于人工智能,大家也有过这样高的预期和想象。

如果你有这样的期待,无论是人工智能还是量化交易,可能都会让你大失所望。量化投资比人工智能还难,人工智能面对的是“确定”的环境,而金融市场叠加了人的情绪的因素,它的“不确定性”呈指数级攀升。

要构建对于量化投资的正确的系统性的认知,有必要把这个黑箱打开,看看它的核心组件以及它们之间是如何协作,进而指导我们,在哪些方面下功夫积累和提升。

一个典型的量化投资策略,由如下几个部分组成:

交易系统通常包含:Alpha模型,风控模型以及成本模型,三者的输出作为组合构建模型的输入,而组合构建与执行相互作用。

其中Alpha模型负责判断市场趋势,判断什么资产最值得持有;而风控模型负责判断可能的风险情况;而所有的交易动作都会产生成本,不合适的交易动作可能会吞噬掉很多利润,甚至让交易策略不成立。而组合构建模型就是平稳收益、风险与成本,进而给出最优的投资组合。

下面我们对各个子模型展开阐述。

Alpha模型应该说是交易策略里非常关键的子模型,因为它决定策略如何盈利。很多人聊量化投资,一般都指Alpha模型,就是如何选股,择时等等。当然其它部分的协作也非常重要。

这就好比你要创业做买卖,核心就是你的商业模式——策略的商业模式就是Alpha模型,而风控模型是为了让赚钱这个行为承担可承受的风险,成本模型对成本进行管理,降低成本可以提升利润。但出发点一定是这个生意的商业模式能赚钱。

如同科学有两大主义:理论主义与经验主义。我们寻找Alpha也有两条路径:理论驱动和数据驱动。

理论驱动的研究,就是我们现代科学运行的逻辑,我们知道宏观世界的牛顿力学,了解空气动力学,进而去制造和改进飞机,以满足我们不同场景下的需求。

而数据驱动则不同,通过大量的观察,统计,总结出“有意义”模式,直接指导投资决策。

理论驱动强调的是因果性,而数据驱动偏重相关性。两者没有优劣之分。早年数据获取能力有限,处理能力有限,金融环境比之当下也更为简单,所以理论驱动的量化策略更为主流;而当我们进入大数据时代,世界的变量越来越多,数据量越来越大,想要解释这个世界的因果变得愈发困难,所以,更多人从因果转向相关性的研究。随着人工智能的崛起,机器模型可以从高维数据中学习到非线性的关系,这种关系可以是人脑无法描述和处理的“暗知识”,而在机器算法中以相关性的方式来表达。

理论驱动的Alpha模型

传统投资,无论是基本面还是技术面,都是理论驱动型的,因为背后都有金融理论做支撑。两者区别在于使用的数据。

技术面主要处理资产的市场数据,一般就是OHLCV(开高低收价格与成交量)这样的交易数据;而基本面则是描述资产的数据,最常见的就是股票背后的公司的财务数据,宏观经济的GDP/CPI等等。

处理数据不同,背后的理论支撑也不一样。

一、技术面策略:

技术面可以分成两个分支:一是趋势,二是均值回归。

趋势交易就是行为金融里的“恒者恒强”,“追涨杀跌”。过去好的资产未来这个趋势还会保持;而均值回归正好相反,它的逻辑是“物极必反”,“盛极必衰”,它认为资产的价格会围绕价值中枢上下波动。

二者看似矛盾,其实都有道理。它们是价格运行的不同阶段,观察的视角和时间框架不同罢了。想象左右摆动的钟摆,当钟摆从左而右超过中点时,会顺着惯性到达右侧的高点,这个过程就是“趋势”,这个惯性会保持一段时间。而当钟摆越靠近高点,它回归均值(中点)的力道就会越强,这时进入均值回归的区间。所以,趋势与均值回归是资产价格运行在周期的不同阶段。

二、基本面策略:

基本面策略根据对资产质地的关注点不同,可以分成:价值型和成长型。

很多基金经理都称自己的价值投资者,是巴菲特的终实粉丝。其实都没有这么纯粹。巴菲特的老师格雷厄姆那个年代的价值投资比较纯粹,就是计算出公司的内在价值,然后算出价格的合理区间,若股价低于这个区间,则买入,反之卖出。但随着金融市场越发成熟,一个不错的公司(白马),价格被错杀的概率越来越低,纯粹价值投资可能买不到好公司。而成长型偏重公司未来的成长性,就是我们常说的“黑马”。寻找黑马需要眼光、运气,对宏观趋势,行业走势有深刻的理解,对领导层管理能力的判断等。

基本面策略不见得都能量化,因为基本面不像市场数据那么直观,一个管理层的变更,基本是公司高层领导家庭私事都可能会引起基本面的恶化。这种事件很难被量化。所以,价值投资的基金经理,需要大量的行业研究员,上市公司调研等就不足为奇了。

数据驱动的Alpha模型

数据驱动的Alpha模型,就是希望寻找到对未来有解释力的“因子”,所有数据特征皆因子,即数据驱动的Alpha模型就是一个“多因子”模型。技术指标可以是,基本面财务数据也可以是,另类数据像微博里的情绪指数也可以。只要这个因子与未来收益之间有相关性。

数据驱动的模型有如下一些优点:

  • 有技术门槛,壁垒高,竞争者会少很多。无论是传统的基本面还是技术面,谁能可以翻翻财报或者看看K线,评论两句。但要对数据进行挖掘,模式识别或者机器学习建模,这个难度就高了很多。

  • 机器学习流程是通用的。数据处理到特征工程,数据标注,建模到优化,大部分的过程都是可复用的。我们只需要把精力放在寻找数据源,构建优质因子特征即可。

  • 可以借力前沿人工智能技术的发展与突破。

当然缺点也很明显:

最受人诟病的就是数据驱动的模型是一个“黑盒“,可解释性差。这就带出一个问题,模型找到的相关性,到底是过拟合,偶然还是人脑无法识别的模式?

AI量化投资的研究重点就在数据驱动寻找Alpha因子。相信前沿技术不断突破,人工智能的黑箱会进一步打开,无论当下面临什么样的困难,一定是未来的方向。

创业板指数的布林带策略

这是一个典型的理论驱动alpha模型,布林带(20,2)是过去20天收盘价+2倍标准差为上轨,-2倍的标准差为下轨。分别为压力位与支撑位。若是收盘价突破上轨,则认为股份走强,做多。反之平仓的逻辑。

用我们的AI量化平台来实证一下。

我又优化了一下btengine的代码,现在使用起来可以说非常简洁了:

symbols是指资产列表,即创业板指数。计算布林带,而$close>$bbands_up时买入,反之平仓。

e = BacktraderEngine(init_cash=100000, start=datetime(2005, 1, 1))

symbols = ['399006.SZ']
names = ['bbands', 'buy', 'sell']
fields = ['BBands($close,20,2)', '$bbands_up<$close', '$bbands_down>$close']

from engine.bt_engine import BacktraderEngine
from datetime import datetime

e = BacktraderEngine(init_cash=100000, start=datetime(2005, 1, 1))
e.add_features(symbols, names, fields)

from engine.strategy.algos import SelectBySignal, WeightEqually
e.run_algo_strategy([SelectBySignal(), WeightEqually()])
e.analysis(pyfolio=True)

年化14.5%,夏普0.77,最大回撤35%。

AI量化平台代码及本策略notebook,数据均上传至星球-量化专栏,请大家前往下载。

近期文章:

因子特征工程:alphalens库深度解析

【每周研报复现】基于阻力支撑相对强度(RSRS)的市场择时

“积木式”策略通用模板,整合backtrader的回测引擎:动量轮动策略代码案例,年化15.25%

星球

猜你喜欢

转载自blog.csdn.net/weixin_38175458/article/details/127923728
今日推荐