原创文章第449篇,专注“AI量化投资、个人成长与财富自由"。
今天的代码工作,是多策略运行,及策略的超参数优化。
最近思考意义比较多。
包括AI量化的意义——从自动化,数字化到智能化。
赚钱是意义吗?赚钱是好事,但可以赚钱的事情很多,为何是量化。这个意义的思考,更多是为他人,为社会。
从为他人的角度,为星球的用户赚到钱,减少大家的工作量,减少大家研究资本市场的时间,这倒是个价值点。
engine添加优化器:可以对超参数进行优化:
def optimize(self, maximize: Union[str, Callable[[pd.Series], float]] = 'SQN', method: str = 'grid', max_tries: Optional[Union[int, float]] = None, constraint: Optional[Callable[[dict], bool]] = None, return_heatmap: bool = False, return_optimization: bool = False, random_state: Optional[int] = None, **kwargs): from numpy.random import default_rng have_constraint = bool(constraint) class AttrDict(dict): def __getattr__(self, item): return self[item] def _tuple(x): return x if isinstance(x, Sequence) and not isinstance(x, str) else (x,) def _grid_size(): size = int(np.prod([len(_tuple(v)) for v in kwargs.values()])) if size < 10_000 and have_constraint: size = sum(1 for p in product(*(zip(repeat(k), _tuple(v)) for k, v in kwargs.items())) if constraint(AttrDict(p))) return size rand = default_rng(random_state).random grid_frac = (1 if max_tries is None else max_tries if 0 < max_tries <= 1 else max_tries / _grid_size()) param_combos = [dict(params) # back to dict so it pickles for params in (AttrDict(params) for params in product(*(zip(repeat(k), _tuple(v)) for k, v in kwargs.items()))) if constraint(params) # type: ignore and rand() <= grid_frac] if not param_combos: raise ValueError('No admissible parameter combinations to test') print(param_combos)
生成参数组合:
from engine.engine import Engine from examples.strategies.tasks_config import TaskRolling def test_opt(): e = Engine(TaskRolling()) e.optimize(n1=range(10, 110, 10), n2=range(20, 210, 20), n_enter=range(15, 35, 5), n_exit=range(10, 25, 5), constraint=lambda p: p.n_exit < p.n_enter < p.n1 < p.n2, maximize='Equity Final [$]', max_tries=200, random_state=0, return_heatmap=True)
?{'n1': 50, 'n2': 120, 'n_enter': 30, 'n_exit': 20}, {'n1': 50, 'n2': 140, 'n_enter': 20, 'n_exit': 10},
比如星球的同学说,咱们参数里那些 roc(20)>0.08,这个20和0.08怎么来的?——通过网格搜索优化来
明天继续——还是周五交付整体代码。AI量化实验室——2024量化投资的星辰大海
吾日三省吾身
人生有三大命题:健康(平安)、财富(适度名与利)、幸福(意义,活着为了什么)?
健康是1,没有健康,后面均无意义。
最近重读蔡磊的《相信》和于娟的《此生未完成》。无论你是谁,王侯将相,还是贩夫走卒,在健康平面,众生平等。
没有尊严,卑微的“乞求”活着,无论你有多少财富,抑或学识。
我在商界达到了成功的顶峰。在别人眼里,我的生活是成功的缩影。
然而,除了工作,我没有什么快乐。
最后,财富只是我习惯的生活事实。?
此时此刻,躺在病床上,回想起我的一生,我意识到,面对即将来临的死亡,我如此自豪的所有认可和财富,都已黯然失色,变得毫无意义。
在黑暗中,我看着救生机器发出的绿灯,听到机械嗡嗡作响的声音,我能感觉到死神的气息在靠近…。现在我知道了,当我们积累了足够的财富来维持我们的一生时,我们应该去追求其他与财富…无关的事情。?
应该是更重要的事情:也许是关系,也许是艺术,也许是年轻时代的梦想 不间断地追求财富只会把一个人变成一个扭曲的存在,就像我一样。。。
Steve Jobs
“中庸”之道是有道理的。
人不能既要又要还要。平衡一点,没有健康,啥也不是。好的生活习惯,好的心态,在于长期养成。越早觉醒,越容易获得。
财富,不能没有。
追求财富需要适度,不必钻牛角尖,知足常乐。——郭宇(28岁财务自由的程序员,我想起那些年错过的1个亿,悲伤的故事),张朝阳的状态就挺好的。
人生需要意义,人生的意义是什么呢?——纳瓦尔说,幸福是一种不需要作为的状态,是消除了缺憾感之后的感受。
斯多葛学派看人生:
过去的,用“宿命论”的观点,一切发生的事情,都是它应该的样子。所以——不要悔。
当下的——你做一下“悲剧假设”。你换位思考一下蔡磊和于娟的境遇,无论谁,都会发现自己拥有很多,佛教说"无畏施",读别人的故事,感受自己的人生。——对于当下,要珍惜,不要心安理得。你在抱怨同事勾心斗角,你应该想想,很多人想工作却求而不得。当你抱怨自己没有一双好鞋时,想想,有些人没有脚。。。
未来的——“二分控制论”。能掌控的,不能掌控的。只关心能掌控的东西。孩子学习成绩,未来什么中考分流,这是你无法掌控的。你能掌控的,多陪伴和引导,养成好的阅读习惯。
未来事情,不必着急,日子一天天过。明天和意外,并不知道哪个会先来。坏事会过去,好事也会过去,人生在世,体验而已。
斯多葛学派,不是躺平,也不是阿Q精神。而是教我们这个“千年一遇之大变局”,高度不确定下,如何寻求内心真正的安宁。
不确定是解决不完的,解决一个,还会再来一个。内心不受其扰,一切都会过去。
当下,才是真实。
过往不恋,未来不迎,当下不杂。
但行好事,莫问前程。
(持续给大家写代码的,交付最前沿AI量化技术和策略的星球)
历史文章:
lightGBM合成因子|对Alpha158因子集进行筛选,并做单因子分析(代码+数据)
Quantlab3.3代码发布:全新引擎 | 静待花开:年化13.9%,回撤小于15% | lightGBM实现排序学习
创业板指布林带突破策略:年化12.8%,回撤20%+| Alphalens+streamlit单因子分析框架(代码+数据)
去掉底层回测引擎,完全自研,增加超参数优化,因子自动挖掘,机器模型交易。
飞狐量化——AI驱动的量化。(持续给大家写代码的,交付最前沿AI量化技术和策略的星球)AI量化实验室——2024量化投资的星辰大海
关于我:CFA,北大光华金融硕士,十年量化投资实战。?/?CTO,全栈技术,AI大模型?。——应该是金融圈最懂技术的男人。