一直说世界运行的逻辑,如何抽丝剥茧?
两个要素,一是科技,二是金融。科技代表先进的生产力,金融代表生产关系再分配。
两大要素成就这个星球上最强的帝国。
后续我们会着重从科技、金融的视角,去看待历史,立足当下,解读未来。
今天是星球每周发布代码和策略集的日子。
今天还要新增一个策略,在昨天风险平价策略稳健的绝对型收益策略:长期年化10.6%的风险平价策略(代码+数据)的基础上,加上波动率。
波动率是用户自己可以调节的,波动率高,预期收益就大,反之亦然。
在风险平价给出权重的基础上,计算预期波动率,若波动率太高,则等比例降低风险资产权重,反之提升。
这是波动率设定为7%的效果,策略更加稳健,夏普比得到进一步提升。
本地化运行界面:
class TargetVol(Algo): def __init__( self, target_volatility, lookback=pd.DateOffset(months=3), lag=pd.DateOffset(days=0), covar_method="standard", annualization_factor=252, exclude=[] ): super(TargetVol, self).__init__() self.target_volatility = target_volatility self.lookback = lookback self.lag = lag self.covar_method = covar_method self.annualization_factor = annualization_factor self.exclude = exclude def __call__(self, target): current_weights = target.temp["weights"] selected = current_weights.keys() # if there were no weights already set then skip if len(selected) == 0: return True t0 = target.now - self.lag prc = target.df_close.loc[t0 - self.lookback: t0, selected] returns = prc.pct_change().dropna() if len(returns) < 10: return True # calc covariance matrix # if self.covar_method == "ledoit-wolf": # covar = sklearn.covariance.ledoit_wolf(returns) if self.covar_method == "standard": covar = returns.cov() else: raise NotImplementedError("covar_method not implemented") weights = pd.Series( [current_weights[x] for x in covar.columns], index=covar.columns ) vol = np.sqrt( np.matmul(weights.values.T, np.matmul(covar.values, weights.values)) * self.annualization_factor ) # 波动率偏小 count = 0 if vol < self.target_volatility: while vol < self.target_volatility: count += 1 if count > 10: break mul = self.target_volatility / vol for k in target.temp["weights"].keys(): if k in self.exclude: # exclude通常为债券等低风险 continue target.temp["weights"][k] = ( target.temp["weights"][k] * mul ) weights = pd.Series( [target.temp["weights"][x] for x in covar.columns], index=covar.columns ) vol = np.sqrt( np.matmul(weights.values.T, np.matmul(covar.values, weights.values)) * self.annualization_factor ) if vol is float('NaN'): return True weights = pd.Series( [target.temp["weights"][x] for x in covar.columns], index=covar.columns ) # print(target.temp["weights"]) target.temp["weights"] = weights / weights.sum() # print(target.temp["weights"]) return True for k in target.temp["weights"].keys(): if k in self.exclude: # exclude通常为债券等低风险 continue target.temp["weights"][k] = ( target.temp["weights"][k] * self.target_volatility / vol ) ''' print(self.target_volatility[k] / vol,weights, new_weights) print(new_vol) ''' return True
所以策略及系统代码已经打包发布,请大家前往星球下载更新:
为了避免大家说后视镜,我选择的都是宽基:沪深300,创业板,纳指(如果你觉得纳指也不行,那可自行换成标普500,没问题吧),黄金,和城投债ETF。A股宽基,美股,商品(黄金)和城投债。
task = Task()
task._id = '5d19bad6-8423-11ee-9ff6-c858c0412ade'
task.name = '大类资产-风险平价'
task.desc = '股、债、黄金,美股大类资产风险平价'
task.symbols = ['510300.SH', # 沪深300
'159915.SZ', # 创业板ETF
'511220.SH', # 城投债
# '511260.SH', # 十年国债
'518880.SH', # 黄金
# '511880.SH', # 银华日利
# '513500.SH', # 标普500
'513100.SH', # 纳指100
] # 证券池列表
task.template = '大类资产配置'
task.weights = 'WeightERC'
task.period = 'RunMonthly'
task.benchmark = '510300.SH'
print(asdict(task))
return task
风险平价的逻辑就是稳,桥水的“全天候”就是这个逻辑。
追求绝对收益,比等权有更好的夏普比。
当然后续我们可以在风险平价的基础上,加上适当的动量优化等。
最近,咱们星球已经积累了5个策略:
均已更新至最新数据,代码+策略集预计明天在星球统一发布:
年化28.5,最大回撤23.5%,夏普比1.19,红利低波动+创成长ETF的趋势轮动策略(代码+数据)
吾日三省吾身
细读纳瓦尔宝典,财富创造=专长*责任*杠杆。
专长还是寻找你内心真正热爱的东西。
说实话,这个并不容易,大家都说兴趣是最好的老师。
受限于眼界,格局,你得充分见过世面,才能知道自己可以选择啥。
反过来看,可以更容易一些,就是——哪些是你不喜欢的。
比如纳瓦尔说自己不喜欢研究一个事情,要20年才能出成果,他肯定坚持不了。以前大家往往觉得这不是一个好的事情,但如他所说,人喜欢阅读和科技,好奇心,喜欢新兴的东西,那他做风险投资就特别合适,而不是科研。
所以,不要做自己不合适的事情很重要。
我自己反思,我也比较像,包括开发语言,从c++, c#到java,最后到python“稳定下来”。nodejs里vue, angular, react都写入作品。django,flask,fastapi都试试。纯粹好奇心,AI,大数据,大模型都能上手,全栈式。
商业,经济,金融。
这种视野对于CTO的能力模型还是蛮重要的。
倒不是说不需要深入,“一专多能”,有深度、有广度是最的。
一辈子就下围棋,就打球或者就搞物理,显然不适合所有人。
所以,所谓热爱和兴趣,未必等同于所谓“专注”。
可不可以专注于好奇?
今天继续写策略:
创业板动量成长指数选取创业板市场中具有良好成长能力和动量效应的50只股票组成的指数。该指数反映了创业板中成长能力良好、动量效应显著的上市公司整体运行情况。所谓成长能力望成为未来市场的领导者。而动量效应则是指这些公司近期股价走势较好。
红利低波动指数选取市场上50只流动性好、连续分红、红利支付率适中、每股股息正增长以及股息率高且波动率低的证券作为样本。
两者有较低的相关性,很适合做轮动策略。
年化28.5,最大回撤23.5%,夏普比1.19,还不错。
走势图如下,数据已经更新至昨天收盘:
之前的策略:实盘SAAS化策略:长期年化29.6%,代码发布,请下载更新
20%+难不难,仁者见仁,投资是逆人性的过程,是一个无限游戏,风险与收益并存,但我们在寻找概率意义上风险与收益的不对称。
吾日三省吾身
之前分享过,如果要告诉年轻时的自己重要的事情: 投资,阅读和写作。
仔细想来,年轻时候还真也尝试和起心动念过。
但没有所谓的“坚持”下来。
原因是什么?——这三者都是复利起作用的事情。
但复利遵循“幂次”法则,一开始慢,可能慢到你无法感知,很多人就因为看不到起步,就放下了。比如读了一年书,运动了一个月,没有变化,算了。本金太少,只有10万,就算10%也才1万块,改变不了什么,就放弃了。
在很长时间内,比如5年,甚至不如线性增长,是不是很“无奈”。
这时候就需要认知格局,长期主义。
前面的部分,想清楚,然后长期主义去做就好了,人生一定会越来越好。
但想进入财富自由快车道,需要创造价值。财富是社会对你创造价值的认可和回馈。
除了这三件“常规”事情之外,如何找到一个具体的事情呢?
在热爱的领域,建立自己专长,充分利用杠杆效应。——“把自己产品化”(纳瓦尔宝典)。
最近策略与文章:
十二年年化21.4%的大小盘(沪深300vs创业板ETF)轮动策略,简单而有效(代码+数据下载)
创业板单标的择时策略,年化20.6%,投资只要你有耐心,守纪律,年化20%+并不难。(代码+数据)
实盘SAAS化策略:长期年化29.6%,代码发布,请下载更新
我们有两个星球:
AI量化实验室,关注AI量化投资,开发&开源共享20%+的策略集,数据集。多因子,AI模型,量化框架等。
财富自由践行社:10%低风险投资组合+财富自由快车道的心法,践行手册,主要不聊投资,谈储蓄,复利,成长, 人生意义与幸福。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103679
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!