掌握Python的基本知識后裳瘪,我們在編寫量化策略的代碼之前土浸,可以運(yùn)用excel作為策略設(shè)計的載體,這就需要了解使用excel中相關(guān)函數(shù)的方法彭羹。Excel中的函數(shù)可以分為四類黄伊,分別是數(shù)學(xué)運(yùn)算類函數(shù)、統(tǒng)計類函數(shù)派殷、查找類函數(shù)及其他類函數(shù)还最。
Excel常用的數(shù)學(xué)運(yùn)算函數(shù)
- EXP(x)
求復(fù)利的PV或FV時會用到。求時間價值時毡惜,可以將1/e^(r * T) 中的e^(r * T)直接用函數(shù)EXP(r * T)表示拓轻。
- LN(x)
LN(x)是EXP(x)的反函數(shù),已知PV和FV经伙,求r或t時會用到扶叉。
比如y=e^x 中,y已知橱乱,要求x辜梳,則先取Ln,得出Ln(y)=Ln(e^x)=x泳叠。
在連續(xù)r與離散r的轉(zhuǎn)換中也會用到作瞄。比如1(1+r離)^1=1e^(r連*1), 得出1+r離=e^r連危纫,r連=Ln(1+r離)宗挥。
- SQRT(x)
求平方根
- RAND()
生成隨機(jī)數(shù)乌庶,取值范圍時(0~1),求蒙特卡洛模擬時會用到契耿。EXCEL中每次按F9刷新瞒大,數(shù)字都會變。
- FACT(x)
求x的階乘搪桂,比如FACT(3)=3x2x1透敌。
- COMBIN(number,number_chosen)
求組合,求C6^3寫成COMBIN(6踢械,3)酗电,六個數(shù)里抽3個做組合有多少個可能性。
Excel常用的矩陣運(yùn)算函數(shù)
- array相乘内列,sumproduct(array1,array2),excel中直接拉數(shù)即可撵术。
一維、方向相同的數(shù)組的乘法運(yùn)算: (x1,x2)(y1,y2)=x1y1+x2*y2
方向要么都是橫话瞧,要么都是豎的嫩与。
- 矩陣加減
直接選中兩個矩陣相加減即可,不用函數(shù)交排。
- Matrix矩陣相乘划滋,比如三行兩列乘以兩行兩列,用MMULT(ARRAY1个粱,ARRAY2)古毛。
MMULT的意思是matrix multiple翻翩,括號中第一個矩陣的列數(shù)必須等于第二個矩陣的行數(shù)都许,否則相乘不了會報錯。比如 3X2 and 2X2嫂冻, 第一個矩陣的第一行乘以第二個矩陣的第一列胶征,剛好兩兩對應(yīng)。A行B列乘以B行C列最終得到的結(jié)果為|AxB| X |BxC| = |AxC|桨仿,A行C列的矩陣睛低。
輸入好公式后要點(diǎn)control+shift+enter,才會自動填充第二行服傍。如果直接點(diǎn)了enter钱雷,那么按F2,顯示公式吹零,然后再按control+shift+enter即可罩抗。
矩陣運(yùn)算在畫有效前沿的時候會經(jīng)常用到,所以要熟練掌握灿椅。
- TRANSPOSE(array)
返回矩陣array的轉(zhuǎn)置結(jié)果套蒂,X矩陣的轉(zhuǎn)置用X^T表示钞支。
- 矩陣沒有除法,但可以用MINVERSE(ARRAY)求逆矩陣操刀。MINVERSE是指matrix inverse烁挟。
假設(shè)A是一個維數(shù)為N的方陣,有N行N列骨坑,那么N-1是N的逆矩陣撼嗓,N-1N=NN^-1=I。I是單位矩陣欢唾,對角線數(shù)值為1静稻,其他位置為0。
N^-1其實(shí)就相當(dāng)于1/N匈辱,實(shí)現(xiàn)了變相相除振湾。
然后驗(yàn)證一下兩者相乘的結(jié)果:
Excel常用的統(tǒng)計類函數(shù)
- AVERAGE(ARRAY)
求數(shù)組的平均值,表示期望亡脸。
- STDEV(ARRAY)
求數(shù)組的標(biāo)準(zhǔn)差押搪,表示風(fēng)險纲熏。
STDEV.S表示樣本標(biāo)準(zhǔn)差帝美。
STDEV.P表示總體標(biāo)準(zhǔn)差亚侠。
- MAX(ARRAY) AND MIN(ARRAY)
求數(shù)組中的最大值和最小值咙轩。
- 用FREQUENCY函數(shù)求數(shù)據(jù)的分段頻數(shù)冒萄,然后用QUARTILE函數(shù)
求第一個四分位點(diǎn)荸哟。
FREQUENCY函數(shù)的用法是FREQUENCY(原數(shù)據(jù)嘱能,自定義的分段界限數(shù)據(jù))擎浴,同樣用CONTROL+SHIFT+ENTER進(jìn)行運(yùn)算滥朱。
然后Alt+=求頻數(shù)的總和根暑,再求%Freq的比例數(shù)。向下填充之前先按F4徙邻,加入$固定符進(jìn)行絕對引用排嫌,然后再Control+D。
使用F4時多點(diǎn)幾次缰犁,可以選擇行固定淳地、列固定或者行列都固定。
- 概率分布函數(shù)
正態(tài)分布函數(shù)NORMSDIST帅容,這個函數(shù)能幫助我們已知分位點(diǎn)求概率颇象。
正態(tài)分布反函數(shù)NORMSINV,這個函數(shù)能幫助我們已知累計概率求分位點(diǎn)并徘,應(yīng)用于風(fēng)控求風(fēng)險遣钳,VAR。
- 二元統(tǒng)計函數(shù)
用于求兩個變量的相關(guān)關(guān)系饮亏。在一元回歸中耍贾,能用函數(shù)方便地求出一系列參數(shù):
INTERCEPT(Y.X)阅爽,求截距
SLOPE(Y,X),求斜率
RSQ(Y,X)荐开,求R方付翁,X對Y的解釋力度。一元回歸方程中R方等于ρ方晃听,即相關(guān)系數(shù)的平方百侧。
STEYX(Y,X),stand error between y and x, 求e能扒。
CORREL(Y,X)佣渴,相關(guān)系數(shù)ρ
COVAR(Y,X),協(xié)方差初斑,等于ρxy方差x方差y
LINEST(Y,X)數(shù)組函數(shù)辛润,一次性求出以上函數(shù)的結(jié)果。事先要選好一個5行2列的空間來存放運(yùn)算結(jié)果见秤。
- 垂直查找和水平查找
針對原始表格的垂直查找用vlookup砂竖,水平查找用hlookup。lookup的意思是在原始數(shù)據(jù)表中找到相同的值鹃答,然后把這個值以及需要提取的相對應(yīng)的值提取到新的表格中乎澄。
格式為:vlookup(lookup_value,table_array,col_index_num,range_lookup)
即:vlookup(查什么,在哪里查测摔,返回第幾列的數(shù)據(jù)比如第三列就填3置济,要不要精確查找true是模糊而false是精確文本或數(shù)字連格式都一樣)
如果不用vlookup而用match,則返回的是對應(yīng)值從上到下數(shù)的第幾個數(shù)據(jù)锋八,用match(lookup_value,lookup_array,match_type)表示浙于,match_type可選小于,近似或大于查库。
與match相反的是路媚,index()返回的是第幾行第幾列的值,用index(array,row_num,column_num)表示樊销。
8.邏輯函數(shù)IF
if函數(shù)可以做嵌套,判斷多種情況脏款。
假設(shè)有一個債券围苫,t到T之間的期間現(xiàn)金流CF為FVr,T時間點(diǎn)的CF為FV+FVr撤师,就可以用邏輯函數(shù)分階段自動算出各期的CF剂府,省心又省力。
9.Excel高級工具
- 審核工具
追溯單元格數(shù)據(jù)用快捷鍵Alt+M+P剃盾,取消追溯用Alt+M+A+A
這個功能在財務(wù)建模的時候也會經(jīng)常用到腺占。
用于檢查公式是否有誤淤袜。
- Data Table
Data Table可以做一維或二維的運(yùn)算,快捷鍵是Alt+A+W+T衰伯。
其實(shí)就是敏感性分析铡羡,把要改變的數(shù)據(jù)手動填好,然后用data table逐一運(yùn)算意鲸。
為了節(jié)省資源烦周,可以在EXCEL選項(xiàng)中的公式中選擇除數(shù)據(jù)表以外自動運(yùn)算,這樣改變原數(shù)據(jù)時怎顾,data table也不會變读慎,可以按F9進(jìn)行手動刷新。
- Goal Seek
Data TAble的反向運(yùn)算槐雾,已知結(jié)果夭委,想知道某個變量應(yīng)該是多少。
用這個求期權(quán)的隱含波動率就很方便了募强。
設(shè)置-加載項(xiàng)-EXCEL加載項(xiàng)轉(zhuǎn)到-添加分析工具庫闰靴、分析工具庫VBA及規(guī)劃求解加載項(xiàng)-點(diǎn)確定
結(jié)語
通過以上學(xué)習(xí),我們掌握了金融建模中常用的excel函數(shù)钻注。下一章我們將學(xué)習(xí)VBA編程的基本知識蚂且,為創(chuàng)造屬于自己的模型打下基礎(chǔ),敬請期待幅恋。
刺猬偷腥
2018年1月3日
to be continued.