有点迷茫,量化交易该怎么继续深入?

论坛 期权论坛 期权     
期权匿名问答   2022-10-4 14:49   16137   5
本人现在是大二学生,暑假里照着网上的一些教程写了一个策略(布林线择时)做的是虚拟币ETH,然后自己加了一个止盈条件,回测结果很不错。但是实盘的时候却一直发生亏损,而且也不知道量化交易该怎么深入下去了,目前会用pandas回测历史数据以及实盘交易(没有学习Numpy和数据可视化),但做不到盘中实时交易,只能在每条k线结束后判断是否开仓。
想学习高频交易,对于高频交易的回测没有任何思路,技术上完全实现不了。
现在想深入学习下去,想知道专业的量化交易有哪些步骤,是不是只是单纯地把人工交易经验,技术指标用代码写出来,再根据指标进行买卖这么简单。
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
期权匿名回答  16级独孤 | 2022-10-4 14:49:46 发帖IP地址来自 北京
作为一名使用量化策略进行美股交易的 Portfolio Manager,答主本人的起点也是一名量化小白。这些年从小白到老白,我也算是「入门」了,毕竟是用「真金白银」的美元在投资着,感觉自己可以用亲身经历一下这个问题
下面的经历都是妥妥的「买家秀」,我自己曾经是是掌握交易和金融知识、但量化知识不够的新手,也带过几名编程和算法过硬、但交易和金融知识不够的数学、物理 PhD 实习生。这个入门方法对懂交易但不懂量化、懂量化但不懂交易的人们都适用。
第一步:在有一个大体的方向或者想法后,参考学术界的经验类论文(Empirical Paper),从经典的论文到最新的突破,阅读论文的过程就像站在一群巨人的肩膀上思考问题。

经验类论文(Empirical Paper)与理论研究(theoretical research)不同,它会采用真实的市场数据,更加贴近实操,对行业的指导意义更大。在华尔街,很多对冲基金都会盯着某几位大学教授的 Working Paper(研究手稿),一旦发布,立刻拿来研读,就怕错过一些最新的交易策略。
量化交易经常谈到的量化内容就是资产定价(Asset Pricing),而资产定价最经典的论文就是 William Sharpe 在 1964 年发表的论文:CAPITAL ASSET PRICES: A THEORY OF MARKET EQUILIBRIUM UNDER CONDITIONS OF RISK,它里面介绍的 CAPM 模型将风险与收益通过数学方式联系在了一起,为以后资产定价模型提供了一种思路。量化投资著名的 APT(Arbitrage Pricing Theory)和多因子投资模型(Multi-Factor Model)都是受到了 CAPM 的启发。CAPM 模型认为,资产的预期收益率由两部分组成:无风险收益率和风险溢价,当资产的风险系数越高(用 Beta 表示),预期收益率就越高。
资本资产定价模型(Capital Asset Pricing Model 简称 CAPM)是由美国学者威廉·夏普(William Sharpe)、林特尔(John Lintner)、特里诺(Jack Treynor)和莫辛(Jan Mossin)等人于 1964 年在资产组合理论和资本市场理论的基础上发展起来的,主要研究证券市场中资产的预期收益率与风险资产之间的关系。
通过这篇论文,你还会了解到线性回归方程(OLS)、时间序列数据(Time-Serie Data)、横截面数据(Cross-Sectional Data)等量化的基础知识。
我工作的研究方向是多因子模型,它是量化投资领域应用最广泛也是最成熟的量化选股模型之一。谈起多因子模型,最经典的就是 Fama-French 的三因子模型,收录在 Eugene Fama 和 Kenneth French 联合发表在 1992 年的论文:The Cross-Section of Expected Stock Returns。该论文对多因子模型的根本概念做了详细的讲述。在 CAPM 的基础上,Fama 和 French 认为股票的预期收益率不仅与资产的风险有关,还与资产的市值大小和账面市值比的大小有关。风险越大、市值越小、账面市值比越大(越便宜)的资产,其预期收益率也越高。
在掌握了经典论文的论述后,我们可以找更新的论文来阅读,这些论文在经典的基础上做了更合理的调整或者更深入的研究,是在树根上发散出来的树叶,一个好的量化理论应该枝繁叶茂。比如多因子投资模型,从三因子开始,到五因子,后人不断寻找新的因子暴露或者新的建模方式,现在市场上常用的因子多达 500 多个,数量还在不断呈指数化增长。如果你想尝试的量化方向没有经典论文或者没有什么新论文,那么就要谨慎复盘一下你的量化交易思路,看看自己是「独创一派」还是走了别人已经走不通的老路。
很多学术论文都是用英文写的,里面也涉及了大量的金融基础知识。真的对金融量化感兴趣的朋友,建议在入门的过程中系统的学习一下金融相关知识。我结合自己的经历,觉得报考 CFA 是一条性价比非常高的道路。
1.它是英文考试,可以学习各种金融专业词汇,日后工作中在看文书啊、看国外财经新闻时毫无压力。像上文说的阅读学术论文,也能打下扎实的专业词汇基础。
2.它的内容很贴近现实生活,考试涉及的内容非常实用,讲了世界第一高峰就会考你世界第一高峰,不会问你世界第六高峰旁边的是哪作峰。
3.CFA 是金融界含金量最高的证书,甚至说没有之一,对于毕业院校不是 Top2 或者中财人大的,有 CFA 考试等级在手,至少能帮你过简历关。
我在准备 CFA 考试时,自己收集了好多关于考试经验、考题大纲、复习多久合适的资料,现在有一个完整的免费的资料包,一站式提供了 CFA 所需资料,不用再自己一个一个搜索了。我将链接放在下面,大家可以自取。
参阅学术论文的好处是它的编程都是开源的,你可以在作者的网站或者论文的附注里面找到模型具体是如何搭建的。这就完美衔接了我们的第二步。
第二步:在论文的指导下,尝试自己创立一个类似或者同样的模型。

如果你对编程不太熟悉,这一步就需要更多的心力。但上文提到,学术界的经验论文的好处就是它的代码很多都是开源的,也就是向大众公开的,你可以拿着代码一行一行的研读。
金融界常用的统计软件是 R,编程语言是 Python。大部分经验论文是用 R 来写的。现在越来越多的新论文会使用 Python,代码也会放在 DataCamp 网站上供大家使用。
R 和 Python 都是我在接触了量化交易后学习的,R 是一种统计软件,免费,有很多现成的 Package 可以下载,然后帮助我们搭建各种各样的模型。Python 作为这些年新起的编程语言,也是免费,用来做金融可谓是「大材小用」,它在数据图形化上面做的要比 R 好,很多算法也可以用比 R 更简单的语言呈现出来。
程序免费,就意味着学习时,资源也是免费的。大家可以在类似的 Datacamp 网站上学习,也可以跟着一些自媒体大 V 学习。
DataCamp 网站www.datacamp.com/
第三步:检查你的量化交易策略

拿着论文照猫画虎,把程序写出来,就意味着我们可以进行量化交易了吗?当然不是,一个策略是否可以用,要从多维度来考察。著名量化对冲基金 Research Affiliates 的创始人在 2018 年写了一篇文章,讲述了在机器学习时代,设计量化交易时如何回测。


Research Affiliates 的创始人 Robert Arnott,被称为 Smart Beta 界的大佬这篇文章的标题是 A Backtesting Protocol in the Era of Machine Learning,作者是 Research Affiliates 的 Robert D. Arnott,来自 Duke University 的 Campbell R. Harvey
和来自 University of California at San Diego 的 Harry Markowitz。
回测(Backtesting)指的是根据历史数据来验证交易策略的可行性和有效性的过程

根据 Arnott 的守则,在设计一个量化交易策略后,应该从以下 7 点检查你的量化策略是否可用:



1. Research Motivation(研究动机)
这个模型有没有实际的金融基础?
在你做这个模型之前有这样的金融理论或者假设吗?
2. Multiple Testing and Statistical Methods (多种回测和统计方法)
你有追踪每一个变量吗?你了解自己所用的统计方法吗?
如果变量之间有交集,那么你有考虑它们之前的互相影响吗?
你是研究了每一个变量,还是在找到一个还不错的模型后停止研究剩余变量了?
3. Data and Sample Choice (数据和样本的选择)
数据是否可靠、可信?
你做的数据处理(data transformation)是合适的吗?
极值是正确处理的吗?
4. Cross-Validation (交叉验证
你意识到「样本外」数据,也就是真正的市场,会跟回测不同吗?
交易成本考虑在内了吗?
5. Model Dynamics (模型的变量)
模型有过度拟合的风险吗?
6. Complexity (复杂性)
你有尝试过简化模型吗?
这个模型是黑匣子(Black Box)吗?
7. Research Culture (研究风气)
你的团队更注重研究的质量还是一个好的结果?
管理层是否明白大部分的策略都会失败?
大家对这个模型都有同样的、明确的预期吗?
量化有着比交易更重要的意义

我们常说,科技改变生活。其实科技改变的岂止是生活,它渗透到世界的方方面面,颠覆了我们很多的行为方式,包括投资的方式。在未来十年或者二十年,会有越来越多的数据充斥在金融市场里,会有越来越复杂的算法被人们发明出来,量化对金融的重要性,会越来越强。
我跟大家分享的三部曲,是梯子。而完整的金融知识结构,是放置梯子的基石。如果想好好的学习量化交易,首先要系统的学习金融知识。金融知识最系统、最贴近实操的,就是 CFA 证书。如果你还没有报考,今天就可以是你成为 CFA 持证人之路的第一天,坐享众多 CFA 人才优惠政策的第一天。上文已经分享过免费的资料链接,大家可以存下来备用。
在<a class="internal" href="http://www.zhihu.com/search?q=%E9%87%91%E8%9E%8D%E8%A1%8C%E4%B8%9A&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A2504619657%7D">金融行业做投资,需要我们终身学习。即使你不从事量化投资,多了解一点量化投资的知识,打理打理自己的资产,也许会比专业的「打工人」获得的回报更多哦~

原文作者:王粉粉 CFA
使用 App 查看完整内容目前,该付费内容的完整版仅支持在 App 中查看
App 内查看
3#
期权匿名回答  16级独孤 | 2022-10-4 14:50:37 发帖IP地址来自 中国
中低频策略,能做出回测赚钱的曲线,可以算是刚刚迈出了第一步,
前面的工作大多是“做加法”,后面更深入的技巧是如何“做减法”。
并不是参数少就不会发生overfitting, 选参数一样可以发生overfitting,因为你可以自己故意选择回测好的参数。
一个策略之所以赚钱,那一定是过去的某种pattern在未来还会复现,你所做的时候就是找到这样一个pattern。那么,当面对无数条回测很漂亮的曲线的时候,你可以问自己如下的问题:

  • 我选择的参数是不是和现在的时间点有关?我现在的策略思路和参数选取方法,换做任何一个时间点来做,还会是现在这个结论吗?如果答案是否,那么就说明发生了过拟合。在你跑实盘的时候,那个起作用的参数很可能就不再起作用了。
  • 我的这个策略逻辑,有没有底层的非量化的逻辑支撑,这个逻辑是否足够健壮,以至于我在任何时候看市场,这个逻辑都成立?
可以举这样一个例子,你某一天抓到了一只三条腿的蛤蟆,然后你是否能得出结论“蛤蟆都是三条腿”?显然不能,因为你知道蛤蟆这个物种本来就是四条腿的,它属于脊椎动物门两栖纲无尾目蟾蜍科,所以你再去抓蟾蜍,大概率抓到的是四条腿,而不是三条腿。只是这一次你“恰好”抓到了三条腿的蛤蟆而已。
类比做量化,你回测了一个策略是赚钱的,如何分辨是不是你“恰好”抓到了一只三条腿的蛤蟆?
你要做的事情,是找到“蛤蟆有四条腿”这样一个普适性的结论,把他做成策略。而“蛤蟆有四条腿”这个规律,不一定是通过回测得到的,而是通过其他的很多渠道得到的。你的回测,很有可能测出来只是“蛤蟆有三条腿”。

如何做到这一点?那就只能自己慢慢悟了。加油
4#
期权匿名回答  16级独孤 | 2022-10-4 14:51:11 发帖IP地址来自 北京
我帮你分析一下几个问题的可能原因。
问题一:回测结果很不错,实盘亏的一塌糊涂,为啥?

由于你只选择了技术面因子(布林线择时),又没有用到复杂的算法模型,所以排除过拟合的可能。



图③为过拟合

ETH2014年上市交易,屹今为止也只有八年的时间。如果你的布林策略交易频率低,或者时间周期长,在8年的回测里交易次数就几百次,那么这个很可能是导致你实盘和回测偏差的原因,虽然回溯历史你是赚钱的,但这仅仅是一个巧合。
另一个方面,你在回测中设置参数,有没有用到未来函数?
未来函数:可能引用未来数据的函数,利用当时还没有发生的数据对之前发出的判断进行修正的函数。
也就是说在这个时间点,指标发出买卖提示信号,在以后股价走出新的趋势后,这种买卖信号改变位置或消失。
我在未来函数上吃过不少亏,这个坑也是很多quant入行躲不过的坑。
基于以上两点,你可以对模型进行改进:

  • 提高交易频率,缩小交易周期,增加交易次数,用更大规模的交易回测来验证策略有效性
  • 对指标进行复原,剔除掉未来数据的影响。
问题二:能不能做高频交易?

没有思路先看书:


或者从油管看看别人怎么做的:


有人把1分钟的bar定为高频,有人把0.2s的bar定义为高频。
总的来说,5分钟级别以下的交易,Python和普通的电脑设备支撑高频就有点吃力了。
C艹和Python在量化领域的对比:
为什么几乎所有的量化交易都用Python?问题三:量化交易该怎么继续深入?

其实你做的严格来说,并不属于量化交易的范畴,而是程序化交易。

你不要觉得把人工交易经验,用代码写出来,是一个low B的事。
程序化和量化,并无高下之分。有人通过肉眼复盘,找到了确定性极高的交易规律,用程序执行自动买卖。
很多在期货上小资金做大的,都是通过这种方式,自动也好,手动也好,就是在人工复盘的经验上,总结操盘。
你可以继续在现有的基础上深入,以我的经验来看,技术分析的要点是分类
信号不是在所有行情中都适用,只在特定的几种情况下正确率高,你要把这几种特定的情况区分出来。
关于入门量化,我有个建议:
从kaggle项目入门。先跟着B站上的视频做1-2个简单的数据分析项目。
量化交易和数据分析很像,区别就是把这些项目中的数据,换成了交易数据而已。
kaggle比赛中特征工程和参数调优,量化中也有。
衍生一个问题。
问题四:量化交易中的数学要怎么学?

量化模型涉及到了大量的数学知识,最重要的几个知识点是:

  • 线性代数
  • 概率论
  • 微积分
我的一点建议是边做边学,遇到啥学啥,没遇到就放过他。
比如在学boost模型时,不理解梯度下降,那就直接去学梯度下降。
最后,量化交易的唯一指向是赚钱。

策略绝不是越复杂越好,千万不能本末倒置。


因为文章经常被不打招呼的无良公众号抄,所以我搞了个v:跟puppy玩量化
研报 面试题 还有一些奇奇怪怪的策略 会更新在v里
不会接辣眼睛的广告 放心关注~
5#
期权匿名回答  16级独孤 | 2022-10-4 14:51:51 发帖IP地址来自 北京
一般一个量化策略的形成包括:形成交易逻辑——程序转化——回溯测试——策略优化——风控管理——反复回测、优化——模拟盘交易——实盘交易——扩大资金量——不断监控和优化。
给点不成熟的小建议:
1. 学习并理解量化交易;
2. 理解并掌握金融和交易知识和技能;
3. 理解并掌握数据科学和编程技术;
4. 开发自己的量化交易程序。
年轻人,未来可期~
6#
期权匿名回答  16级独孤 | 2022-10-4 14:52:03 发帖IP地址来自 北京
才大二,年轻真好。
题主想往高频发展,这周刚好有件事值得分享给题主,刚好有个私募朋友,说中长周期的策略已经有,由于资金方的压力,等不到中长期策略的回报,而且也考虑到中长期回撤的风险。让我在他的框架中帮忙写个日内策略。他发了框架和1年半的btc1分钟l1的数据给我。稍微研究了一下框架结构和使用方法,看了一下行情数据,稍微做了一下数据分析,做个策略,样本内回测夏普4。策略源码就给朋友了。和他说,策略应该可以用,什么时候失效很难说。前后用了2个小时不到。最后和他说了一些话,这个策略最好不要用,最重要是框架不行,行情延迟差不多5秒,api端口只有一个,行情数据只有L1,而且没有盘口数据,做日内一点优势都没有。
做高频或者日内的,整个环境框架很重要,怎么做低系统延迟和提高系统稳定性是做高频和日内策略最重要的课题。其次,要仔细研读交易所规则和当地的法律,大部分的高频和日内是以操控市场达到盈利的目的,不少交易所对投资人有撤单的限制或者限制报单数量,又或者当地有相关法律规定。那么这些交易方法是不能用的。
专业的量化交易没有题主想的这么简单,这个行业的核心价值有两个,第一是交易框架,稳定的数据递送和报单系统。第二是数据库。写指标只是其中很小一部分的内容。
题主大二很年轻,我建议题主先去攻下api行情获取,数据清洗,做好发报单系统,确保系统稳定高效。系统延迟低于10秒,然后再去想如何做交易。
交易框架做好了,要怎么交易,思路自然会清晰。如果只做中长期系统,也可以免掉做框架的,直接用市面上的软件。不过国内并没有合法支持btc等数字货币实盘的平台或者软件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP