先看结果:
加载数据:创成长指数代表高波动高成长,而中证红利低波指数代表质量与低波动。
df = CSVDataloader.get_df(['399296.SZ','H30269.CSI'], set_index=True, start_date='20120101') df = CSVDataloader.calc_expr(df, ['roc(close,21)'], ['roc_21']) df
使用bt框架的代码很简洁:
for K in [1,]: s = bt.Strategy('bt-兼容高收益与低波动策略'.format(K), [ SelectTopK(signal,K), bt.algos.WeighEqually(), bt.algos.Rebalance()]) all.append(s) stras = [bt.Backtest(s, data) for s in all]
两个指数相关性不高:
代码在如下位置:
使用backtrader版本实现一次,加上交易佣金:
年化44.9%,结果基本一致:
这份代码在如下位置:
吾日三省吾身
“生活本来很精彩,只不过有人没发现自己是作者,没发现他们可以按自己的想法创作。”世界尽头的咖啡馆
生活中偶尔偏离轨道,却可以发现不一样的风景。
危机,危中有机。
生活中遇到的事情,其实是来渡你的。
你焦虑或迷茫,说明你对现状不满。
但你暂时没有改变的勇气,甚至,你忘了,原来生活可以被改变。
停下来,没有你想象中可怕。
“山穷水复疑无路,柳暗花明又一村”。
“行到水穷处,坐看云起时”。
关键是,你想要过什么样的生活。
有人说,等财富自由了,有钱有闲了,就知道自己喜欢做什么了。
其实,有一些“意外”暴富的人,迷失了方向,抑郁的都有。
也有人自由之后重新开始做私募基金,做资管,因为喜欢。
人是需要自我实现的。
财富意味着自由,自由就是有的选,算你喜欢做得事情,和喜欢的人在一起。
仔细回顾自己走过的路,其实无意间,你早已选择你的路。
上大学铁了心报计算机,结果发现—信息与计算科学其实是数学系。
但又如何呢?
自学VB,VC++,MFC,桌面软件开发,网络编程等。——其实是希望能够独立“创造”作品。
再后开掌握python,学习人工智能,研究智能投顾,到量化投资,大模型,都不是为了当螺丝钉而准备的,而是——“一人企业”的技术栈。
看似无意间的选择与机缘巧合,其实都在和都将“connectting the dots”,都在迎着自己的希望的生活方式——一个独立的研究创造者。
在专利局工作的爱因斯坦,独立研究光电效应,相对论,我想——那是无比幸福的。——至于职场人际与江湖,应该不是他老人家关心的。
量化投资很适合独立研究。
凭本事吃饭,不必讨好谁,不必看谁脸色,投资结果说话。
好就是好。
有时候我想,整个人生的意义是不是就在于此呢?人生就是一场大型游戏,它的全部意义就在于你是否能按照自己的心意活过一生,是否能意识到自己才是游戏的主宰,而非傀儡。”
人生不是既定的,而是随时都有的选择,随时可以奔赴你想去的地方。
不要把人生活成一个轨道,活成一个标准,而是去创造更多的体验。
重返世界尽头的咖啡馆

传统backtrader写策略的步骤是如下:
1、定义因子,比如动量roc:
self.roc = bt.indicators.ROC(self.data, period=self.p.period)
2、写策略逻辑,主要是next:
class roc_trend(bt.Strategy):
# 参数定义
params = dict(
period=20, # 动量周期
)
def __init__(self):
self.roc = bt.indicators.ROC(self.data, period=self.p.period)
# self.roc = bt.talib.ROC(self.data, period=self.p.period)
def next(self):
if not self.position: # not in the market
if self.roc[0] > 0.08: # if fast crosses slow to the upside
self.order_target_percent(self.data, 0.99) # enter long
# self.buy() # enter long
elif self.roc[0] < 0: # in the market & cross to the downside
self.close() # close long position
我们看下在算子化的模式下,如何写策略:
数据通过calc_expr直接计算,无论多少个因子:
df = CSVDataloader.get_df(['159915.SZ'], set_index=True, start_date='20120101') df = CSVDataloader.calc_expr(df, ['roc(close,20)'], ['roc_20']) df
然后通过SelectBySignal即可,输入买入信号规则,卖出信号规则即可:
engine = BacktraderEngine(df, start=datetime(2005, 1, 1)) engine.run_algo_strategy(algo_list=[ SelectBySignal(rules_buy=['roc_20>0.08'], rules_sell=['roc_20<0']), WeightEqually(), ReBalance() ])
打印出交易记录:
然后看下回测结果:
大家拿到代码,直接运行对比这两个策略的写法,能够直观地感受到模块化的效率:
交易为生之美
应该没有人天生就是坏的。
多数我们认为的坏人,都是相对自己的标准。
这个标准是什么?更多是利益,披着道德外衣的利益。
哪里存在最多利益冲突?
职场,邻里—尤其是农村,类似地缘冲突。城市里关系冲突,以职场为主。
出去参加活动,大家都温文尔雅,表现的风度翩翩。
职场里尤其公司下行时,刷锅,扣帽子,争底盘,抢功劳,事情就多了。
人生苦短,有意义吗?——其实很没意思。我们应该花心思在创造性的研究上。
你有足够的价值,有就有交换的选择权。
进一步讲,如果你够强,你的周遭的环境就会变好。——盖茨说,在你强大之前,不要太在意你的自尊,没有人在意你的自尊。
你要做的事情,专注让自己变强大,然后周围的人都会变友善。
而不是讨好,讨好获得的只有怜悯——而且不是所有人都会共情。
交易的江湖
有没有没有人际江湖的地方——交易。
除了交易很难外—只要你具备稳定获利的能力,交易几乎应有一切优点。
完全线上,没有交付环节,没有客户要服务,不需要销售或营销技巧。
更没有同事要讨好,没有上司要伺候。
策略在精不在多,有一两项武艺在身,足以行走江湖,忘情山水。
教学相长,通过输出倒逼学习与成长。
吾日三省吾身
突发的时间,打算原本既定的生活与工作节奏。
顺其自然,让自己偶尔停一会,发现也挺好。
这世界离了谁都一样转,不要认为自己多重要。
停下来想想,看看。
想起《世界尽头的咖啡馆》——

你为什么来到这里?——你的PFE(Perpose For Existing)是什么?
你害怕死亡吗?
你满足吗?
我们大多数人活在别人定义的规则里。
好好学习,找份好工作,结婚,生娃,孩子教育…
在别人眼里,也许你是成功的,你应该是幸福的。
但,你满足吗?
你想过什么样的生活?
很多人如此害怕失业,不敢有一点点的,GAP时间?
在一些故事里,比如生病的蔡磊,如果再给他几年,他应该不会像之前那帮卖命工作和无趣生活。
想清楚自己要什么,想过什么样的生活,然后尽全力去追求。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103189
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!