小白快速入门量化交易的自学路径

今年已然过去一半了,年初立的flag都实现了吗?

据我多年来的观察,很多小白萌新开始学习量化,特别是年初的时候立下“宏图大志”,但有相当一部分最终没能"上岸",从入门到放弃,从然后到没有然后,并不是因为他们不够聪明或不够努力,原因有很多,我觉得大部分只是方向或方法没对。

特别是对于没有编程基础的萌新,为了入门量化,先买了一本厚厚的Python编程书,看着看着就昏昏欲睡,这个很正常,这的确很无趣,因为这只是为了学习而学习,记住了很多知识,却感觉无法落地。

就跟很多国人从小学到大学学了十几年的英语一样,记住语法单词只是为了考试,觉得很无趣,要是说你附近有一群漂亮的外国妹子,你要用英语去勾搭她们,一个个是不是就来劲了。

一开始,你只能一个一个单词往外蹦,什么"hello"啊,什么"welcome"啊,什么"beautiful"啊,可能一个主谓宾的整句都说不了,加上肢体语言,不妨碍你们的大体沟通。

跟她们混久了,听着相互之间的沟通,慢慢就会短句了,再过久一些,不仅长句复合句会了,连口语发音味道儿都正了。

你瞧瞧,同样是学英语,为什么一个是无趣至极,一个是相当来劲呢,他们之间的差别主要在哪里?

我个人觉得主要是两点:一是目的动机,二是即时反馈。

高效率做事讲究"以终为始",要紧扣目标,不要走弯路跑偏了,以考试为目的,not cool,因为大部分人感觉自己都是被动应付考试,勾搭妹子,very cool,因为你觉得自己在做一件自己认可且有趣的事情。

图片

你以提高考试分数作为学习目标,但是努力学习到分数明显提高之间有非常大的时间间隔,也就是你要在这段长时间里面忍受无趣,而跟外国友人学英语,学了马上就能用,别人提了一个新词儿"pretty",你转头就能对妹子说"you look so pretty today",换来莞尔一笑,也就是这种即时反馈,将无趣碎片化了,从忍受变为享受。

用高大上的话来说就是"正向飞轮",在这个学习的过程中,你学了一个知识点,然后学以致用完成了一件小事儿,完成这个行为给你带来了满足感和正反馈,激励你乐乐呵呵学新的知识点,如此反复循环,像滚雪球一样,滚着滚着你就不知不觉入门了。

那学量化交易也是如此,首先要想清楚自己为什么要学量化。

是看到媒体宣传量化对冲基金赚钱,自己也想从事该行业?

看到身边有人学习量化交易,自己也想学习一下?

自己有投资想法,想形成交易系统,并用量化分析方法验证其准确性?

自己已经有稳定的盈利系统,想解放双手和坚持纪律性,用程序化自动交易?

学量化的动机和目的是什么都可以,关键是看自己的渴望掌握这项技能的程度,为自己的学习赋予自己认可的意义。

比如说,你学量化纯粹是为了赚钱,入门量化需要学100个知识点,你预计将来可以提高交易胜率,多赚或少亏10w,这样一个知识点就相当于多赚或少亏1000块钱,这样一换算,是不是学习动力就足一点了。

学习量化,为了交易赚钱可以,为了谈资装X也可以,为了勾搭宽客也可以,只要自己足够认可足够渴求就可以了,这样咱就能保持着未来燎原的星星之火。

接下来,最重要的就是打造出能有即时正反馈的学习路径,形成正向飞轮,入门量化就跟滚雪球似的。

上面都是虚头巴脑的大道理,都是自己浅薄的想法,以下正式唠唠具体的学习路径:

交易想法 -> 量化基础 -> 量化平台 -> 量化策略

这是抽象的概括,下文会把每个步骤详细讲讲,这里需要确定快速入门的学习原则:适度学习,够用就行

最新版《新华字典》中,收录了13000多个汉字,而日常生活中只需要用到其中3000多个,也就是说,不用啃完编程书籍等大部头才可以开始,按常用按需学习就行。

一、交易想法

很多人做量化,都是因为自己有初始的交易想法,想验证正确性提高交易胜率,或想解放双手追求效率,全自动程序化盯盘交易,量化跟人工智能AI一样,都是手段,用来实现自己想要的目的,不是为了量化或AI本身而学习。

有初始的投资想法,在开始学习的时候有一个好处,就是可以在学习量化时有的放矢,听到相关的知识点的时候,脑子就会在想,我想要的功能可不可以这样实现。比如,你想实现均线交易策略,那么你在学习pandas模块时,听到rolling和mean函数,就会有“确认过眼神,找到对的人”的赶脚。

如果在交易想法这边还是没有感觉,可以多看一些交易书籍和研报论文,这里我可以给大伙儿推荐一些,相信以下这3个交易策略合集类资料能给量化萌新一些交易思路方面的启发,粗粗算下来,这3份资料里面的策略/指标思路合计下来不少于1000个。

首先映入眼帘的是前NASA登月科学家、现量化先驱佩里•考夫曼的量化神作《交易系统与方法》,说起这老爷子,国人可能觉得很陌生,但在量化圈子里,或多或少都听说过“考夫曼均线”,学名为“自适应移动均线”(Adaptive Moving Average,简称AMA),这就是他的杰作之一。

《261个策略/指标,萌新Quant在这本量化神作中学到的》

在此书当中,披露了老爷子数百个交易策略和技术指标,而且全部都有对应的源代码,虽然用的是国外的TradeStation平台,但其编程方式非常口语化的,只要能认识简单的英文,不敢保证你能顺滑地编写策略,但是看懂策略的交易思想是铁定没问题的。

第二本也是一位量化大牛的神作,其中涵盖了股票、期货、期权、外汇、加密货币、ETF等投资领域的151个交易策略,那就是Zura Kakushadze的《151 Trading Strategies》,作者另外一本名著就是《101 Formulaic Alphas》(坊间俗称“Alpha101”)。

最初是2018年8月发表在SSRN上的同名论文,后来在同年年底整理成书,目前全网传播较多的是361页的论文版本,但个人感觉阅读效果较好的是480页的电子书版本,不仅标签完善,而且参考文献跳转非常顺滑。

《推荐一本量化宝藏书籍,内含151个量化交易策略》

书中内容的组织形式是,每一个小节对应一个量化策略,开头会三言两语引入策略,然后概括出核心规则/公式,最后给出策略的构建方法,其间会穿插很多参考文献,告诉你策略idea的来源和为什么这样设置,所以很多人说这本书只是一个目录,那2000个参考文献才是本体。

第三个就更厉害了,它是一个被称为量化神集的github项目,在这里面,策略数目直接就是696个,关键是通通都有高清源码,除此之外,还有量化书籍、量化库、视频课程、博客等。

图片

这个github项目的贡献者/维护者是Edouard d'Archimbaud、James Munro和GrimyFishTank,所有的量化资源都被分门别类、整整齐齐码放在那里,静静地等待有缘人驻足观看,可惜的是,以前是统统免费,现在部分内容要付费订阅了,如果你依然感兴趣的话,可以去瞅瞅。

《分享一个量化交易神集:696个策略,55本书,97个库...》

二、量化基础

这里面主要包含两大部分,一个是量化通识,另一个是编程基础。

关于量化通识,看量化故事类的书籍都可以有所了解,以前我也列过一个书单,有时间的话可以挑自己感兴趣的慢慢看。

小白量化学习-自创指标设计 一、准备工作 1、首先把“HP_formula.py”文件复制到自己的工程目录中。 2、在新文件开始增加下面4条语句。 import numpy as np import pandas as pd from HP_formula import * import tushare as ts 二、对数据预处理 我们采用与tushare旧股票数据格式。 #首先要对数据预处理 df = ts.get_k_data('600080',ktype='D') mydf=df.copy() CLOSE=mydf['close'] LOW=mydf['low'] HIGH=mydf['high'] OPEN=mydf['open'] VOL=mydf['volume'] C=mydf['close'] L=mydf['low'] H=mydf['high'] O=mydf['open'] V=mydf['volume'] 三、仿通达信或大智慧公式 通达信公式转为python公式的过程。 1.‘:=’为赋值语句,用程序替换‘:=’为python的赋值命令‘='。 2.‘:’为公式的赋值带输出画线命令,再替换‘:’为‘=’,‘:’前为输出变量,顺序写到return 返回参数中。 3.全部命令转为英文大写。 4.删除绘图格式命令。 5.删除掉每行未分号; 。 6.参数可写到函数参数表中.例如: def KDJ(N=9, M1=3, M2=3): 例如通达信 KDJ指标公式描述如下。 参数表 N:=9, M1:=3, M2:=3 RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; # Python的KDJ公式 def KDJ(N=9, M1=3, M2=3): RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100 K = SMA(RSV,M1,1) D = SMA(K,M2,1) J = 3*K-2*D return K, D, J #----------------------------------- #根据上面原理,我们把大智慧RSI指标改 # 为Python代码,如下。 def RSI(N1=6, N2=12, N3=24): """ RSI 相对强弱指标 """ LC = REF(CLOSE, 1) RSI1 = SMA(MAX(CLOSE - LC, 0), N1, 1) / SMA(ABS(CLOSE - LC), N1, 1) * 100 RSI2 = SMA(MAX(CLOSE - LC, 0), N2, 1) / SMA(ABS(CLOSE - LC), N2, 1) * 100 RSI3 = SMA(MAX(CLOSE - LC, 0), N3, 1) / SMA(ABS(CLOSE - LC), N3, 1) * 100 return RSI1, RSI2, RSI3 四、使用公式并绘图 #假定我们使用RSI指标 r1,r2,r3=RSI() mydf = mydf.join(pd.Series( r1,name='RSI1')) mydf = mydf.join(pd.Series( r2,name='RSI2')) mydf = mydf.join(pd.Series( r3,name='RSI3')) mydf['S80']=80 #增加上轨80轨迹线 mydf['X20']=20 #增加下轨20轨迹线 mydf=mydf.tail(100) #显示最后100条数据线 #下面是绘线语句 mydf.S80.plot.line() mydf.X20.plot.line() mydf.RSI1.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) 不懂就看我的博客 https://blog.youkuaiyun.com/hepu8/article/details/93378543
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值