quantrader和matlab不匹配,【Matlab量化投资】支持向量机择时策略
原標(biāo)題:【Matlab量化投資】支持向量機(jī)擇時(shí)策略
感謝國(guó)泰安與本公眾號(hào)合作
推出【Matlab量化投資系列】
機(jī)器學(xué)習(xí)
所謂機(jī)器學(xué)習(xí),其實(shí)就是根據(jù)樣本數(shù)據(jù)尋找規(guī)律,然后再利用這些規(guī)律來(lái)預(yù)測(cè)未來(lái)的數(shù)據(jù)(結(jié)果)。
但是,直到今天,機(jī)器學(xué)習(xí)也沒(méi)有一種被大家廣泛認(rèn)同的理論框架產(chǎn)生,這個(gè)也是機(jī)器學(xué)習(xí)被大家詬病的原因之一:它是沒(méi)有理論基礎(chǔ)的。
目前機(jī)器學(xué)習(xí)的方法大概可以分為以下幾種:
1、經(jīng)典的參數(shù)統(tǒng)計(jì)估計(jì)方法:基于傳統(tǒng)統(tǒng)計(jì)學(xué),需要已知的樣本分布形式,局限性比較大。
2、經(jīng)驗(yàn)非線性方法:利用已知樣本建立非線性模型(如人工神經(jīng)網(wǎng)絡(luò)),克服了傳統(tǒng)參數(shù)估計(jì)方法的困難,但缺乏統(tǒng)一的數(shù)學(xué)理論。
3、統(tǒng)計(jì)學(xué)習(xí)理論(SLT):專門研究小樣本情況下機(jī)器學(xué)習(xí)規(guī)律的理論,核心概念是VC維概念,解決了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇、局部極小點(diǎn)等問(wèn)題。支持向量機(jī)(SVM)就是基于這一理論產(chǎn)生的。
SVM支持向量機(jī)擇時(shí)策略
支持向量機(jī)
支持向量機(jī)是用來(lái)解決分類問(wèn)題的。
先考慮最簡(jiǎn)單的情況,豌豆和米粒,用曬子很快可以分開(kāi),小顆粒漏下去,大顆粒保留。用一個(gè)函數(shù)來(lái)表示就是當(dāng)直徑d大于某個(gè)值D,就判定為豌豆,小于某個(gè)值就是米粒。
d>D, 豌豆;d
在數(shù)軸上表現(xiàn)為d左邊就是米粒,右邊就是綠豆,這是一維的情況。
但是實(shí)際問(wèn)題沒(méi)這么簡(jiǎn)單,考慮的問(wèn)題不單單是尺寸。
一個(gè)花的兩個(gè)品種,怎么分類?
假設(shè)決定他們分類的有兩個(gè)屬性,花瓣尺寸和顏色。單獨(dú)用一個(gè)屬性來(lái)分類,像剛才分米粒那樣,就不行了。這個(gè)時(shí)候我們?cè)O(shè)置兩個(gè)值:尺寸x和顏色y。
我們把所有的數(shù)據(jù)都丟到x-y平面上作為點(diǎn),按道理如果只有這兩個(gè)屬性決定了兩個(gè)品種,數(shù)據(jù)肯定會(huì)按兩類聚集在這個(gè)二維平面上。
我們只要找到一條直線,把這兩類劃分開(kāi)來(lái),分類就很容易了,以后遇到一個(gè)數(shù)據(jù),就丟進(jìn)這個(gè)平面,看在直線的哪一邊,就是哪一類。
例如:x+y-2=0這條直線,我們把數(shù)據(jù)(x,y)代入,只要認(rèn)為x+y-2>0的就是A類,x+y-2<0的就是B類。
以此類推,還有三維的,四維的,N維的屬性的分類,這樣構(gòu)造的也許就不是直線,而是平面,超平面。
例如:一個(gè)三維的函數(shù)分類 :x+y+z-2=0,這就是個(gè)分類的平面了。
有時(shí)候,分類的那條線不一定是直線,還有可能是曲線,我們通過(guò)某些函數(shù)來(lái)轉(zhuǎn)換,就可以轉(zhuǎn)化成剛才的那種多維的分類問(wèn)題,這個(gè)就是核函數(shù)的思想。
例如:分類的函數(shù)是個(gè)圓形x^2+y^2-4=0。這個(gè)時(shí)候令x^2=a; y^2=b,還不就變成了a+b-4=0 這種直線問(wèn)題了。
這就是支持向量機(jī)的思想。
機(jī)的意思就是算法,機(jī)器學(xué)習(xí)領(lǐng)域里面常常用“機(jī)”這個(gè)字表示算法。
支持向量意思就是數(shù)據(jù)集種的某些點(diǎn),位置比較特殊,比如剛才提到的x+y-2=0這條直線,直線上面區(qū)域x+y-2>0的全是A類,下面的x+y-2<0的全是B類,我們找這條直線的時(shí)候,一般就看聚集在一起的兩類數(shù)據(jù),他們各自的最邊緣位置的點(diǎn),也就是最靠近劃分直線的那幾個(gè)點(diǎn),而其他點(diǎn)對(duì)這條直線的最終位置的確定起不了作用,所以我姑且叫這些點(diǎn)叫“支持點(diǎn)”(意思就是有用的點(diǎn)),但是在數(shù)學(xué)上,沒(méi)這種說(shuō)法,數(shù)學(xué)里的點(diǎn),又可以叫向量,比如二維點(diǎn)(x,y)就是二維向量,三維度的就是三維向量(x,y,z)。所以 “支持點(diǎn)”改叫“支持向量”,聽(tīng)起來(lái)比較專業(yè),NB。
所以就是”支持向量機(jī)了。
當(dāng)然了,SVM的實(shí)際理論要復(fù)雜的多,如果大家有興趣,就自行去搜索一下參考資料來(lái)看啦,由于篇幅關(guān)系,這邊就不贅述了。
核函數(shù)分類
目前應(yīng)用最多的四類核函數(shù)分別為:線性核函數(shù)、多項(xiàng)式核函數(shù)、高斯核函數(shù)和Sigmoid核函數(shù)。
選擇不同的核函數(shù)和參數(shù),SVM的性能會(huì)有很大的差異,因此核函數(shù)及其參數(shù)的選擇是SVM理論和應(yīng)用研究中的一個(gè)重要課題。
SVM看上去是比較復(fù)雜,但是在實(shí)際應(yīng)用當(dāng)中還是比較簡(jiǎn)單的,因?yàn)镸atlab本身就已經(jīng)提供了SVM的工具箱(函數(shù)),我們直接調(diào)用就可以了,當(dāng)然,大家也可以自行去安裝一些其他SVM的工具箱來(lái)實(shí)現(xiàn)。
那下面我們就開(kāi)始編寫策略啦~
小編所使用的數(shù)據(jù)、策略回測(cè)、交易等等都是來(lái)自于國(guó)泰安量化終端Quantrader。而小編使用的策略編寫語(yǔ)言是Matlab,實(shí)現(xiàn)策略不要太簡(jiǎn)單。
策略簡(jiǎn)介
訂閱中證800指數(shù)和相應(yīng)的成分股,使用了日頻最高價(jià)、最低價(jià)、收益率、成交金額、營(yíng)業(yè)收入增長(zhǎng)率和次日停牌因子等數(shù)據(jù)。
策略流程圖如下:
策略參數(shù)配置
根據(jù)之前提到的訂閱的交易代碼和數(shù)據(jù),使用Quantrader可以直接配置如下:
策略主程序
數(shù)據(jù)準(zhǔn)備好了之后,我們就可以開(kāi)始碼代碼啦。
1、訓(xùn)練分類器:
2、預(yù)測(cè):
3、交易下單:
策略回測(cè)
策略寫完了當(dāng)然要用歷史數(shù)據(jù)回測(cè)看看績(jī)效。同樣的,使用Quantrader,完成回測(cè)。
從過(guò)去3年半的績(jī)效來(lái)看,這個(gè)策略年化收益約50%左右,夏普達(dá)到了2。
完整版源代碼請(qǐng)點(diǎn)擊閱讀原文
關(guān)注者
從1到10000+
每天我們都在進(jìn)步
閱讀量前10文章
No.01
No.02
No.03
No.04
No.05
No.06
No.07
No.08
No.09
No.10
聽(tīng)說(shuō),置頂關(guān)注我們的人都不一般返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的quantrader和matlab不匹配,【Matlab量化投资】支持向量机择时策略的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 鼠标停留时,[Java教程]鼠
- 下一篇: java最基础语句,Java基础:Jav