原创文章第582篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。
昨天咱们使用backtrader,重写了创业板动量趋势择时:年化19.2%:backtrader+quantstats实现创业板动量择时(代码+数据)
今天咱们换一个通道指标:布林带——backtrader内置的指数,不需要自己实现,使用默认参数20,2。
# 参数定义 params = ( ('period', 20), ('devfactor', 2) ) def __init__(self): self.bbands = bt.indicators.BollingerBands(period=self.params.period, devfactor=self.params.devfactor) self.order = None
下面是策略逻辑——收盘价突破上轨时买入,突破下轨时平仓:
def next(self): if self.order: return if self.data.close[0] > self.bbands.lines.top[0]: if self.position.size == 0: commission_info = self.broker.getcommissioninfo(self.data) cash = self.broker.get_cash() - commission_info.getsize(1, self.data.close[0]) size = cash // self.data.close[0] self.buy(size=size) # print(f'BUY: {size} shares') elif self.data.close[0] < self.bbands.lines.bot[0]: if self.position.size > 0: size = self.position.size self.close(size=size) # print(f'SELL: {size} shares')
使用empyrical来计算风险、收益指标:
import empyrical as em max_drawdown = em.max_drawdown(returns) print('夏普比:%.2f'%em.sharpe_ratio(returns)) print('最大回撤:%.2f'%max_drawdown) print('年化收益:%.2f'%em.annual_return(returns))
代码所在位置:
代码下载:
AI量化实验室——2024量化投资的星辰大海
empyrical的年化收益计算逻辑:
num_years = len(returns) / ann_factor # Pass array to ensure index -1 looks up successfully. ending_value = cum_returns_final(returns, starting_value=1) return ending_value ** (1 / num_years) - 1
而quantstats——区别在于这个years,它计算的是日期区间,比如20100101-20101231,那就是365天——这里应该取len(returns),它的years偏大,计算出来的年化收益率偏小。
years = (returns.index[-1] - returns.index[0]).days / periods res = abs(total + 1.0) ** (1.0 / years) - 1
投资,含投机,获利的本质逻辑,是建立概率优势。
结果还是不确定的,但重复博弈结果是有正收益的,这就是一个好的交易系统。
然后咱们再来聊,基本面价值投资(成长型投资),技术分析,量化投资,套利,高频交易等。
普通人做所谓价值投资我是不太看好的。
价值发现的时间,可能是数年甚至更久。这期间会发生什么事情,普通人是没有渠道获知的。
普通人根本判断不了什么是好公司,好的商业模式。
——替代方案是大类资产配置,选择低相关性的长期向上指数,动态再平衡即可。
然后就是偏短线的量化,价量为主,辅以其他一些数据——量化投机。
以控制回撤为前提,获取市场alpha。
从这个意义上看,期货就是一个挺好的选择。
吾日三省吾身
“没有实力做支撑的愤怒毫无意义”。
“你生气,说明你没有赢它的把握”。
不必愤怒,而是持续,抓紧一切机会提升自己,然后潇洒离开那些烂人烂事。
历史文章:
年化19.2%:backtrader+quantstats实现创业板动量择时(代码+数据)
年化达21%(K=1),最大回撤35%,K=3时,卡玛比最优,最大回撤20%(年化15.2%)| Quantlab5.0代码发布
Alpha2:使用深度强化学习挖掘公式化的超额收益因子(附论文及源代码)
AI量化实验室——2024量化投资的星辰大海