[摘要]本文根據《小狗錢錢》提出的基金選取標準,進行適當的擴充,并利用MATLAB結合Tushare平臺進行基金或者指數的分析,本文只提供分析方法,并不構成基金選取的建議,股市有風險,入市需謹慎, 本文的分析基于以下基金的選擇標準:基金一旦選擇,就長期持有且盡可能少的操作,
說明
資料來源
Tushare大資料開放社區,資料內容將擴大到包含股票、基金、期貨、債券、外匯、行業大資料,同時包括了數字貨幣行情等區塊鏈資料的全資料品類的金融大資料平臺,為各類金融投資和研究人員提供適用的資料和工具,并提供python和Matlab的介面,便于研究者運用和處理資料,
筆者Tushare ID:407591
非常感謝Tushare社區為作為學生的我提供免費的資料介面和教程,
參考
周期.霍華德·馬斯克著:劉建位譯.北京:中信出版社,2019.2
Tushare的MATLAB使用方式,通過Matlab SDK 獲取資料
小狗錢錢.博多·舍費爾著:王鐘欣,余茜譯.2002-2
【半佛】基金怕他不來,又怕他亂來.機智的半佛仙人.
編程環境
MATLAB2020b,只要2016b以上版本即可,
資料的選取
為了驗證《小狗錢錢》中的基金選取原則,應當對盡可能多的基金或者指數資料進行選擇驗證,但是為了避免計算太復雜,本文選取幾種常用的指數資料用于驗證上述標準和方法的可行性,包括’上證指數’,‘商業指數’,‘地產指數’,‘上證50’,‘滬深300’,‘中證500’,‘深證成指’,‘中小100’,‘創業板指’,'深圳創新’等指數,
資料的匯入
資料的匯入可以參考文章股票市場周期波動分析的MATLAB實作(1)和Tushare社區的教程利用MATLAB獲取資料,因此本文中不再贅述,
選擇標準
在《小狗錢錢》一書中,作者借陶穆太太之口說出了基金選取的三個原則:1,基金成立的時間要長;2,盡量選擇跨國股票,以降低風險;3,考慮十年的年侄訓利,可以將上述原則分別闡述為:
- 盡量選擇基金運行時間長的,盡量保證跨越牛熊,這樣可以確保基金的成功并不只是由于牛市的原因;以A股為例,就是盡量選擇在20140101之前成立的基金;
- 基金的選擇應該盡量降低風險,例如在選擇多只基金時盡量不選擇同一行業的、同一公司的;可以利用回歸分析中的相似性分析來獲取到兩個基金的相似性:數值越接近1,兩個基金或者指數越正相關;數值越接近0,則兩個基金的相似性更低;數值為負數時,則兩個基金為負相關,在進行基金選擇時,盡量選擇相關性盡量低的,
- 基金的收益率應當越高越好,
上述選擇是基于一個基礎假設:基金一旦選擇,就長期持有且盡可能少的操作,根據【半佛】基金怕他不來,又怕他亂來中的結論,基金持有的時間長的相對于短的往往收益更長,因此本文的分析也基于這一假設,
考慮基金的購買往往在線上平臺而非銀行購買,因此可以在平臺上看到每日的盈虧,而每日的盈虧過高或者基金長期低迷會影響投資者的情緒導致頻繁操作或者撤回,因此需要添加機條選擇標準:
- 在同等收益率的前提下,基金每日盈虧的方差應該盡量的小;
- 在同等收益率的前提下,基金的回呼率應該盡量的低,基金的回呼時間應該盡量的短;這樣可以避免長時間的低迷或者短時間回呼太嚴重導致的情緒的波動,
MATLAB實作
收益率
收益率可以根據文章股票市場周期波動分析的MATLAB實作(1)中的代碼來實作,分為以下步驟:
- 對資料進行對數運算,
log_data=log(szdata);
- 對已經求對數的資料進行線性擬合
[p_log,S_log] = polyfit(x,log_data,1);%線性擬合
[y_log_fit,~] = polyval(p_log,x,S_log);%擬合直線
- 基于擬合的斜率,可以求得年平均收益
nianhua=exp(rihua*250)-1;

相似性分析
相似性的分析可以利用MATLAB中的corrcoef函式進行求解,其求解運算式為:
C=corrcoef(data1,data2);
而基金的公司和基金的持倉資料,可以利用Tushare介面中的公募基金串列和公募基金持倉資料來獲取,
同樣的,基金的成立時間也可以在上述資料中獲取,
回呼
- 獲取基金或者指數的最低點和最高點,其中period為峰值和谷值設定的階段,代碼的第一部分是直接求解的峰值和谷值,第二部分是對峰值和谷值進行修剪和增添,以確保峰值和谷值交替出現;
for i=period+1:1:length(data)-period
[zhi_min_pre,num_min_pre]=min(data(i-period:i));
[zhi_min_post,num_min_post]=min(data(i:i+period));
[zhi_max_pre,num_max_pre]=max(data(i-period:i));
[zhi_max_post,num_max_post]=max(data(i:i+period));
%當前數字的前period位中的極值和后period位的極值是一致的話,那該數字為當前極值
if zhi_min_pre==zhi_min_post && (num_min_pre+i-period-1)==(num_min_post+i-1)
j=j+1;
min_cou(1,j)=i;
min_cou(2,j)=zhi_min_pre;
end
if zhi_max_pre==zhi_max_post && (num_max_pre+i-period-1)==(num_max_post+i-1)
k=k+1;
max_cou(1,k)=i;
max_cou(2,k)=zhi_max_pre;
end
end
k=size(max_cou,2);
for i=1:size(min_cou,2)-1
a=min_cou(1,i);
b=min_cou(1,i+1);
[zhi,pos]=max(data(a:b));
max_cou(1,k+i)=pos+a-1;
max_cou(2,k+i)=zhi;
end
m_temp=unique(max_cou','rows','sorted');
max_cou=m_temp';
k=size(min_cou,2);
for i=1:size(max_cou,2)-1
a=max_cou(1,i);
b=max_cou(1,i+1);
[zhi,pos]=min(data(a:b));
min_cou(1,k+i)=pos+a-1;
min_cou(2,k+i)=zhi;
end
m_temp=unique(min_cou','rows','sorted');
min_cou=m_temp';

- 獲取峰值以及谷值后,求解回呼時間和回呼率
huitiaotime(i)=min_cou(1,i)-max_cou(1,i);
huitiaolv(i)=(max_cou(2,i)-min_cou(2,i))/max_cou(2,i);
結果
利用MATLAB對上述選擇的指數進行求解,可以得到如下結果:

在對大量的基金資料進行求解后,即可根據制定的標準進行基金的選擇,
!!!本文只提供一種可參考的方法,不構成投資建議,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/298720.html
標籤:區塊鏈
