原创文章第590篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。
昨天咱们分享的文章:”以交易为生“,基础设施很重要。
传统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时间?
在一些故事里,比如生病的蔡磊,如果再给他几年,他应该不会像之前那帮卖命工作和无趣生活。
想清楚自己要什么,想过什么样的生活,然后尽全力去追求。
历史文章: