- 博客(12)
- 问答 (1)
- 收藏
- 关注
原创 【量化开发】量化投资系统构架
量化投资体系包含了数据支持层、计算层、应用及展示层。其中数据支持层可以用本地文件(Excel\Pickle)、数据库(SQL\MongoDB...)、API等方式获取,其中最好的是能有一个数据库,在做测试的时候API容易超限、并且提取速度慢,而用Excel会有刷新速度慢的影响,所以最好能够创建成一套大的数据库,供团队使用。计算层一般Python足够,Java,C++,PHP等软件也可以用,各有优劣,Python的环境有更多的支持。应用层不可否认Excel用来做简单回测、简单的数据展示,效率会很高
2022-03-12 20:29:01
1638
原创 【方法论】量化投资与主观投资的差异点
最本质是人类大脑和电脑的差异,人类会更受短期事件的影响,比如收到短期牛熊情绪影响,或者黑天鹅对短期影响很大,容易被主观化,往往量化回溯一遍的话,就不一样了。另一个不同就是人类是线性判断更多,主观研究员也容易出现热点矛盾论,这样其实容易事后诸葛亮,很难客观理解多因素非线性的因果变化。对于经济数据的解读,很容易被主观研究员来故事化,卖方更甚,难以完全客观,量化可以更加客观地解读经济数据,探究经济数据背后地原因。在交易上,主观交易更容易被情绪影响,而量化投资更有纪律性。在限制较多地情况下,量化投资
2022-03-12 20:13:08
803
原创 【线性回归】Simple Linear Regression
我们常说的线性回归,也就是SLR,可以用在横向数据和纵向数据上,分别可以去预测一段时间的资产表现、预测影响资产的因素,可以去做归因分析,这是最常用的。线性回归的本质,也就是在给定X和Y的基础上,让Sum of Squared Error最小,获得截距项和斜率,用这两项就可以预测Y,去使用线性回归模型的前提是你先要看到X和Y的图像像是满足线性关系,同时也要考虑到线性回归的另外三个假设:独立、残差正态分布、残差同方差,如果不满足的话就不能用线性回归,而且你在之后做完线性回归之后的残差项也会有形态,其实这四项
2022-03-09 00:08:01
477
原创 【心路历程】为什么打算研究量化领域
主观价值投资的优势是长周期的方向,如果能对宏观有大致的把握、对公司信息与未来发展非常精通并保持与相关人员的联系,坚定持有就没有问题,基本面可以决定长周期的走向。但是在做主观投资中会遇到两个问题。其一是主观价值投资不会择时,这对于个人而言很简单,但是对于大多数投资者来说,半年时间内回撤5%就要赎回了,这就要求资金管理人要么有团队做疏导,要么名气大资源多能顶住压力,要么就要具备择时的能力。其二是主观价值投资市场鱼龙混杂,很多观点无法验证,这需要量化回溯和统计研究过往业绩,有客观的衡量指标,事实上量化也能完成
2022-03-05 22:50:51
195
原创 【时间序列】ARMA与Heteroskedasticity
一般来说,用AR与MA模型就够了,ARMA模型虽然更复杂,可能试用在更多的情境中,但是因为实际测试时容易过拟合,T值不够稳定,使用就是一门艺术了。Heteroskedasticity(异方差)是导致我们之前的AR或者MA等模型失效的一个风险,异方差会导致AR或MA等模型中T值显著,但实际并不如此,因此在做完模型后,要检查假设是否成立,这是理论上必须要做的事情。实际情况中,就要结合主观判断,是否该时间序列是有异方差的。把做完AR、MA、ARMA等模型的残差平方,并且去回归,看a1是否显著不等于0,
2022-03-05 22:29:52
488
原创 【时间序列】季节性问题
如果想判断季节性,最初只需要先去做AR、MA等模型的相关测试,例如先去计算PACF,看收敛情况,选择AR、MA等模型,然后选择好,比如说一阶测试的话,就要先去OLS回归,并且取残差,看残差是否有Autocorrelation,就看T值,如果显著的话就说明可能存在季节性,然后再做OLS,看R方是否有增加,再去检查残差是否有Autocorrelation。...
2022-03-05 21:29:03
1374
原创 【时间序列】Moving-Average Model
一般而言,我们在金融预测里面,不仅会用到Autoregressive Model,也会用到Moving-Average Model,这两个模型的侧重点不同,AR模型侧重于用过去的一段时间的Y预测新的Y,而MA模型侧重于用过去一段时间的白噪声预测新的Y。首先一个非常好的应用,就是可以用MA模型画出平滑的曲线,这也是一般我们在股价均线、宏观周期观测、商品趋势等方面用的最广的理论,也可以说是最易于接受且极度简单的方法。当我们画出平滑的曲线后,我们分别可以看到原数据的趋势性,等权平均值算出的均线是最基本的处理方
2022-03-05 17:09:04
357
原创 机器学习基础误差分析学习笔记
1.花几天时间与团队头脑风暴构建出一套基础系统,是非常必要的,这可以让团队的精力作用在对效益最大的模块上,即使还没有深入地去研究各模块的作用,以及还没有信心确认该系统能带来实际的作用。2.如果团队中的项目出现了分类失误的问题,首先要了解团队大概需要多久时间去完成优化,优化成功的概率是多大,优化成功后能够给团队的业绩带来多少的改善。具体在机器学习算法上的应用而言,人为地检查分类失误的图像,如果多数图像分类错误成狗,那么改善该项目是有益的,反之亦然。3.“虽然你可能事先规定了一些类别(狗,大猫,模糊)并
2022-02-20 16:09:01
458
原创 交叉验证方法
交叉验证在sklearn有相关包,针对多种模型,无需自己写一个构架,用score来寻找好的数据和模型,之后再回测。以下是最简单的实现方法,也很有效:Scikit-Learn 8 cross validation 交叉验证1 (机器学习 sklearn 教学教程tutorial) - YouTubeScikit-Learn 9 cross validation 交叉验证2 (机器学习 sklearn 教学教程tutorial) - YouTubeScikit-Learn 10 cross vali
2022-02-19 02:13:09
833
原创 KNN方法实践
KNN算法易于理解,可以用在归类和回归两种方法上,并且不需要对数据有假设,优点是易于解释,在分类上用到的多,对异常值不敏感,可以去做量化预测信号。该网站介绍了如何使用sklearn去做KNN模型预测,这个Youtube视频也简单介绍了如何python实现KNN预测:KNN Algorithm - Finding Nearest Neighbors (tutorialspoint.com)Scikit-Learn 8 cross validation 交叉验证1 (机器学习 sklearn 教学教程tut
2022-02-18 23:27:13
293
原创 Python如何检查代码Bug
在最开始,每次raise Exception都要去手动检查一遍到底哪里出了问题,这可能包含了一大段代码,因此为了方便检查,可以用try except语句。起初知道try except之后,用的最多的,如果报错我就会用except来运行其他代码,不过这种方式仍然有优化空间,我们可以用到try except except else finally。try这一段里面写的更精准,看检查哪段代码,不需要检查的就丢到else里,最后如果和try相关的,但是最后还要运行一遍的,不要放外面,放到finally里。
2022-02-18 14:58:00
854
空空如也
Python Spyder突然无法打开,如何解决?
2022-02-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人