當前位置:首頁 » 股票投資 » python與股票投資

python與股票投資

發布時間: 2023-04-17 09:58:00

❶ 如何用Python和機器學習炒股賺錢

如何用Python和機器學習炒股賺錢?(圖片太多未貼,可以去找原文)

我終於跑贏了標准普爾 500 指數 10 個百分點!聽起來可能不是很多,但是當我們處理的是大量流動性很高的資本時,對沖基金的利潤就相當可觀。更激進的做法還能得到更高的回報。
這一切都始於我閱讀了 Gur Huberman 的一篇題為《Contagious Speculation and a Cure for Cancer: A Non-Event that Made Stock Prices Soar》的論文。該研究描述了一件發生在 1998 年的涉及到一家上市公司 EntreMed(當時股票代碼是 ENMD)的事件:
「星期天《紐約時報》上發表的一篇關於癌症治療新葯開發潛力的文章導致 EntreMed 的股價從周五收盤時的 12.063 飆升至 85,在周一收盤時接近 52。在接下來的三周,它的收盤價都在 30 以上。這股投資熱情也讓其它生物科技股得到了溢價。但是,這個癌症研究方面的可能突破在至少五個月前就已經被 Nature 期刊和各種流行的報紙報道過了,其中甚至包括《泰晤士報》!因此,僅僅是熱情的公眾關注就能引發股價的持續上漲,即便實際上並沒有出現真正的新信息。」
在研究者給出的許多有見地的觀察中,其中有一個總結很突出:
「(股價)運動可能會集中於有一些共同之處的股票上,但這些共同之處不一定要是經濟基礎。」
我就想,能不能基於通常所用的指標之外的其它指標來劃分股票。我開始在資料庫裡面挖掘,幾周之後我發現了一個,其包含了一個分數,描述了股票和元素周期表中的元素之間的「已知和隱藏關系」的強度。
我有計算基因組學的背景,這讓我想起了基因和它們的細胞信號網路之間的關系是如何地不為人所知。但是,當我們分析數據時,我們又會開始看到我們之前可能無法預測的新關系和相關性。

選擇出的涉及細胞可塑性、生長和分化的信號通路的基因的表達模式
和基因一樣,股票也會受到一個巨型網路的影響,其中各個因素之間都有或強或弱的隱藏關系。其中一些影響和關系是可以預測的。
我的一個目標是創建長的和短的股票聚類,我稱之為「籃子聚類(basket clusters)」,我可以將其用於對沖或單純地從中獲利。這需要使用一個無監督機器學習方法來創建股票的聚類,從而使這些聚類之間有或強或弱的關系。這些聚類將會翻倍作為我的公司可以交易的股票的「籃子(basket)」。
首先我下載了一個數據集:http://54.174.116.134/recommend/datasets/supercolumns-elements-08.html,這個數據集基於元素周期表中的元素和上市公司之間的關系。
然後我使用了 Python 和一些常用的機器學習工具——scikit-learn、numpy、pandas、matplotlib 和 seaborn,我開始了解我正在處理的數據集的分布形狀。為此我參考了一個題為《Principal Component Analysis with KMeans visuals》的 Kaggle Kernel:https://www.kaggle.com/arthurtok/principal-component-analysis-with-kmeans-visuals
importnumpy asnp
importpandas aspd
fromsklearn.decomposition
importPCA
fromsklearn.cluster
importKMeans
importmatplotlib.pyplot asplt
importseaborn assbnp.seterr(divide= 'ignore', invalid= 'ignore')
# Quick way to test just a few column features
# stocks = pd.read_csv('supercolumns-elements-nasdaq-nyse-otcbb-general-UPDATE-2017-03-01.csv', usecols=range(1,16))
stocks = pd.read_csv( 'supercolumns-elements-nasdaq-nyse-otcbb-general-UPDATE-2017-03-01.csv')print(stocks.head())str_list = []
forcolname, colvalue instocks.iteritems():
iftype(colvalue[ 1]) == str: str_list.append(colname)
# Get to the numeric columns by inversion
num_list = stocks.columns.difference(str_list)stocks_num = stocks[num_list]print(stocks_num.head())
輸出:簡單看看前面 5 行:

概念特徵的皮爾遜相關性(Pearson Correlation)。在這里案例中,是指來自元素周期表的礦物和元素:
stocks_num = stocks_num.fillna(value= 0, axis= 1)X = stocks_num.values
fromsklearn.preprocessing importStandardScalerX_std = StandardScaler().fit_transform(X)f, ax = plt.subplots(figsize=( 12, 10))plt.title( 'Pearson Correlation of Concept Features (Elements & Minerals)')
# Draw the heatmap using seaborn
sb.heatmap(stocks_num.astype(float).corr(),linewidths= 0.25,vmax= 1.0, square= True, cmap= "YlGnBu", linecolor= 'black', annot= True)sb.plt.show()
輸出:(這個可視化例子是在前 16 個樣本上運行得到的)。看到元素周期表中的元素和上市公司關聯起來真的很有意思。在某種程度時,我想使用這些數據基於公司與相關元素或材料的相關性來預測其可能做出的突破。

測量「已解釋方差(Explained Variance)」和主成分分析(PCA)
已解釋方差=總方差-殘差方差(explained variance = total variance - resial variance)。應該值得關注的 PCA 投射組件的數量可以通過已解釋方差度量(Explained Variance Measure)來引導。Sebastian Raschka 的關於 PCA 的文章對此進行了很好的描述,參閱:http://sebastianraschka.com/Articles/2015_pca_in_3_steps.html
# Calculating Eigenvectors and eigenvalues of Cov matirx
mean_vec = np.mean(X_std, axis= 0)cov_mat = np.cov(X_std.T)eig_vals, eig_vecs = np.linalg.eig(cov_mat)
# Create a list of (eigenvalue, eigenvector) tuples
eig_pairs = [ (np.abs(eig_vals[i]),eig_vecs[:,i]) fori inrange(len(eig_vals))]
# Sort from high to low
eig_pairs.sort(key = lambdax: x[ 0], reverse= True)
# Calculation of Explained Variance from the eigenvaluestot = sum(eig_vals)var_exp = [(i/tot)* 100fori insorted(eig_vals, reverse= True)] cum_var_exp = np.cumsum(var_exp)
# Cumulative explained variance# Variances plot
max_cols = len(stocks.columns) - 1plt.figure(figsize=( 10, 5))plt.bar(range(max_cols), var_exp, alpha= 0.3333, align= 'center', label= 'indivial explained variance', color = 'g')plt.step(range(max_cols), cum_var_exp, where= 'mid',label= 'cumulative explained variance')plt.ylabel( 'Explained variance ratio')plt.xlabel( 'Principal components')plt.legend(loc= 'best')plt.show()
輸出:

從這個圖表中我們可以看到大量方差都來自於預測主成分的前 85%。這是個很高的數字,所以讓我們從低端的開始,先只建模少數幾個主成分。更多有關分析主成分合理數量的信息可參閱:http://setosa.io/ev/principal-component-analysis
使用 scikit-learn 的 PCA 模塊,讓我們設 n_components = 9。代碼的第二行調用了 fit_transform 方法,其可以使用標准化的電影數據 X_std 來擬合 PCA 模型並在該數據集上應用降維(dimensionality rection)。
pca = PCA(n_components= 9)x_9d = pca.fit_transform(X_std)plt.figure(figsize = ( 9, 7))plt.scatter(x_9d[:, 0],x_9d[:, 1], c= 'goldenrod',alpha= 0.5)plt.ylim( -10, 30)plt.show()
輸出:

這里我們甚至沒有真正觀察到聚類的些微輪廓,所以我們很可能應該繼續調節 n_component 的值直到我們得到我們想要的結果。這就是數據科學與藝術(data science and art)中的「藝術」部分。
現在,我們來試試 K-均值,看看我們能不能在下一章節可視化任何明顯的聚類。
K-均值聚類(K-Means Clustering)
我們將使用 PCA 投射數據來實現一個簡單的 K-均值。使用 scikit-learn 的 KMeans() 調用和 fit_predict 方法,我們可以計算聚類中心並為第一和第三個 PCA 投射預測聚類索引(以便了解我們是否可以觀察到任何合適的聚類)。然後我們可以定義我們自己的配色方案並繪制散點圖,代碼如下所示:
# Set a 3 KMeans clustering
kmeans = KMeans(n_clusters= 3)
# Compute cluster centers and predict cluster indices
X_clustered = kmeans.fit_predict(x_9d) # Define our own color map
LABEL_COLOR_MAP = { 0: 'r', 1: 'g', 2: 'b'}label_color = [LABEL_COLOR_MAP[l] forl inX_clustered]
# Plot the scatter digram
plt.figure(figsize = ( 7, 7))plt.scatter(x_9d[:, 0],x_9d[:, 2], c= label_color, alpha= 0.5)plt.show()
輸出:

這個 K-均值散點圖看起來更有希望,好像我們簡單的聚類模型假設就是正確的一樣。我們可以通過這種顏色可視化方案觀察到 3 個可區分開的聚類。
當然,聚類和可視化數據集的方法還有很多,參考:https://goo.gl/kGy3ra使用 seaborn 方便的 pairplot 函數,我可以以成對的方式在數據框中自動繪制所有的特徵。我們可以一個對一個地 pairplot 前面 3 個投射並可視化:
# Create a temp dataframe from our PCA projection data "x_9d"
df = pd.DataFrame(x_9d)df = df[[ 0, 1, 2]]df[ 'X_cluster'] = X_clustered
# Call Seaborn's pairplot to visualize our KMeans clustering on the PCA projected data
sb.pairplot(df, hue= 'X_cluster', palette= 'Dark2', diag_kind= 'kde', size= 1.85)sb.plt.show()
輸出:

構建籃子聚類(Basket Clusters)
你應該自己決定如何微調你的聚類。這方面沒有什麼萬靈葯,具體的方法取決於你操作的環境。在這個案例中是由隱藏關系所定義的股票和金融市場。
一旦你的聚類使你滿意了,你就可以設置分數閾值來控制特定的股票是否有資格進入一個聚類,然後你可以為一個給定的聚類提取股票,將它們作為籃子進行交易或使用這些籃子作為信號。你可以使用這種方法做的事情很大程度就看你自己的創造力以及你在使用深度學習變體來進行優化的水平,從而基於聚類或數據點的概念優化每個聚類的回報,比如 short interest 或 short float(公開市場中的可用股份)。
你可以注意到了這些聚類被用作籃子交易的方式一些有趣特徵。有時候標准普爾和一般市場會存在差異。這可以提供本質上基於「信息套利(information arbitrage)」的套利機會。一些聚類則和谷歌搜索趨勢相關。

看到聚類和材料及它們的供應鏈相關確實很有意思,正如這篇文章說的一樣:https://www.fairphone.com/en/2017/05/04/zooming-in-10-materials-and-their-supply-chains/
我僅僅使用該數據集操作了 Cobalt(鈷)、Copper(銅)、Gallium(鎵)和 Graphene(石墨烯)這幾個列標簽,只是為了看我是否可能發現從事這一領域或受到這一領域的風險的上市公司之間是否有任何隱藏的聯系。這些籃子和標准普爾的回報進行了比較。
通過使用歷史價格數據(可直接在 Quantopian、Numerai、Quandl 或 Yahoo Finance 使用),然後你可以匯總價格數據來生成預計收益,其可使用 HighCharts 進行可視化:

我從該聚類中獲得的回報超過了標准普爾相當一部分,這意味著你每年的收益可以比標准普爾還多 10%(標准普爾近一年來的漲幅為 16%)。我還見過更加激進的方法可以凈掙超過 70%。現在我必須承認我還做了一些其它的事情,但因為我工作的本質,我必須將那些事情保持黑箱。但從我目前觀察到的情況來看,至少圍繞這種方法探索和包裝新的量化模型可以證明是非常值得的,而其唯一的缺點是它是一種不同類型的信號,你可以將其輸入其它系統的流程中。
生成賣空籃子聚類(short basket clusters)可能比生成買空籃子聚類(long basket clusters)更有利可圖。這種方法值得再寫一篇文章,最好是在下一個黑天鵝事件之前。
如果你使用機器學習,就可能在具有已知和隱藏關系的上市公司的寄生、共生和共情關系之上搶佔先機,這是很有趣而且可以盈利的。最後,一個人的盈利能力似乎完全關乎他在生成這些類別的數據時想出特徵標簽(即概念(concept))的強大組合的能力。
我在這類模型上的下一次迭代應該會包含一個用於自動生成特徵組合或獨特列表的單獨演算法。也許會基於近乎實時的事件,這可能會影響那些具有隻有配備了無監督學習演算法的人類才能預測的隱藏關系的股票組。

❷ python實現資產配置(1)----Markowitz 投資組合模型

現假設有A, B, C, D, E五隻股票的收益率數據((第二日收盤價-第一日收盤價)/第一日收盤價)), 如果投資人的目標是達到20%的年收益率,那麼該如何進行資產配置,才能使得投資的風險最低?

更一般的問題,假設現有x 1 ,x 2 ,...,x n , n支風險資產,且收益率已知,如果投資人的預期收益為goalRet,那麼該如何進行資產配置,才能使得投資的風險最低?

1952年,芝加哥大學的Markowitz提出現代資產組合理論(Modern Portfolio Theory,簡稱MPT),為現代西方證券投資理論奠定了基礎。其基本思想是,證券投資的風險在於證券投資收益的不確定性。如果將收益率視為一個數學上的隨機變數的話,證券的期望收益是該隨機變數的數學期望(均值),而風險可以用該隨機變數的方差來表示。

對於投資組合而言,如何分配各種證券上的投資比例,從而使風險最小而收益最大?

答案是將投資比例設定為變數,通過數學規劃,對每一固定收益率求最小方差,對每一個固定的方差求最大收益率,這個多元方程的解可以決定一條曲線,這條曲線上的每一個點都對應著最優投資組合,即在給定風險水平下,收益率最大,這條曲線稱作「有效前沿」 (Efficient Frontier)。

對投資者而言,不存在比有效前沿更優的投資組合,只需要根據自己的風險偏好在有效前沿上尋找最優策略。
簡化後的公式為:

其中 p 為投資人的投資目標,即投資人期待的投資組合的期望值. 目標函數說明投資人資產分配的原則是在達成投資目標 p 的前提下,要將資產組合的風險最小化,這個公式就是Markowitz在1952年發表的'Portfolio Selection'一文的精髓,該文奠定了現代投資組合理論的基礎,也為Markowitz贏得了1990年的諾貝爾經濟學獎. 公式(1)中的決策變數為w i , i = 1,...,N, 整個數學形式是二次規劃(Quadratic Programming)問題,在允許賣空的情況下(即w i 可以為負,只有等式約束)時,可以用拉格朗日(Lagrange)方法求解。

有效前緣曲線如下圖:

我們考慮如下的二次規劃問題

運用拉格朗日方法求解,可以得到

再看公式(1),則將目標函數由 min W T W 調整為 min 1/2(W T W), 兩問題等價,寫出的求解矩陣為:

工具包: CVXOPT python凸優化包
函數原型: CVXOPT.solvers.qp(P,q,G,h,A,b)

求解時,將對應的P,q,G,h,A,b寫出,帶入求解函數即可.值得注意的是輸入的矩陣必須使用CVXOPT 中的matrix函數轉化,輸出的結果要使用 print(CVXOPT.solvers.qp(P,q,G,h,A,b)['x']) 函數才能輸出。

這里選取五支股票2014-01-01到2015-01-01的收益率數據進行分析.
選取的五支股票分別為: 白雲機場, 華夏銀行, 浙能電力, 福建高速, 生益科技

先大體了解一下五支股票的收益率情況:

看來,20%的預期收益是達不到了。

接下來,我們來看五支股票的相關系數矩陣:

可以看出,白雲機場和福建高速的相關性較高,因為二者同屬於交通版塊。在資產配置時,不利於降低非系統性風險。

接下來編寫一個MeanVariance類,對於傳入的收益率數據,可以進行給定預期收益的最佳持倉配比求解以及有效前緣曲線的繪制。

繪制的有效前緣曲線為:

將數據分為訓練集和測試集,並將隨機模擬的資產配比求得的累計收益與測試集的數據進行對比,得到:

可以看出,在前半段大部分時間用Markowitz模型計算出的收益率要高於隨機模擬的組合,然而在後半段卻不如隨機模擬的數據,可能是訓練的數據不夠或者沒有動態調倉造成的,在後面寫策略的時候,我會加入動態調倉的部分。

股票分析部分:

Markowitz 投資組合模型求解

蔡立專:量化投資——以python為工具. 電子工業出版社

❸ 單支股票的投資額為本金的百分之十,用python怎麼表示

那股票的投資額為本金的10%。單只股票投資額為本金的10%。說明你的資金池只佔0.1%。

❹ 如何利用機器學習演算法優化股票投資組合

學習下量化回測吧backtrader了解下具體也可以私聊

以下是學習Backtrader的步驟:

1.學習Python編程語言:如果您已經熟悉Python,請跳腔褲過此步驟。如果您是新手,請學習Python編程語言,這將為您在Backtrader中編寫代碼提供很好的基礎。

2.學習量化交易:如果您已經了解量岩圓舉化交易,您可以跳過此步驟。如果您是新手,請學習量化交易的基礎知識,例如交易策略和風險管理。

3.安裝Backtrader:在安裝Backtrader之前,請確保您已經安裝了Python環境。可以在終端中使用pip命令安裝Backtrader。

4.學習Backtrader文檔:Backtrader具有完整的文檔,其中包括API參考和示例代碼。建議您仔細閱讀文檔並使用示例代碼。

5.編寫交易策略:使用Backtrader編寫交易策略。Backtrader支持多種類型的數據源,包括CSV文件和實時數據流。您可以使用Backtrader內置的指標和信號,也可以自定義指標和信號。

6.回測交易策略:使用歷史數據回測您的交易策略。Backtrader支持多種回測方式,包括標准回測和Walk Forward分析。

7.優化交易策略:使用Backtrader進行參數優化,以確定最佳的交易策略參數粗碧。

❺ 如何用python計算某支股票持有90天的收益率

defget(self,get,money):
print「ATM:」
print「yourmoneyis+「,self.get,」%aday
self.today=self.money*(self.get/100)+self.money
print「nowyouhave」,self.today
self.tomorrow=self.today*(self.get/100)+self.today
print「tomorrowyouwellhave」,self.tomorrow
get(50,10000)

這個代碼會給你1天後和2天後的余額,如果要顯示九十天,還請您自己打完

❻ Python具體指什麼,可以運用在哪些方面呢

你好,主要運用在這些方面:
一、人工智慧,包括數據分析、計算機視覺、自然語言處理等等
現在python已經基唯磨本成了人工智慧的標准語言了,一般都是C/C++寫個底層運算庫,然後用python做腳本。各種框架層出不窮,tensorflow/pytorch等等。
二、web開發
python光是web開發的框架至少得有幾十個吧,而漏世且用的人都很多,從後端到前端各種配套服務都非常齊全。
三、爬蟲
我估計很多人學爬蟲就是從python入手的
四、各類App的內置腳本
有很多程序裡面的內置腳本就是python,比如sublime text、blender3d,所以從這個角度來看啊,python能乾的事情就無限多了,文本編輯、3d建模、股票投返山肢資等等,只有你想不到的,沒有做不到的。
至於python能否開發qq、瀏覽器這種應用軟體?
只用python是不太行的,因為python是解釋性的,如何打包成二進制文件其實挺麻煩的,而且速度肯定比不上c++什麼的,但是作為腳本還是不錯的。

❼ python實現資產配置(2)--Blacklitterman 模型

在 python實現資產配置(1)----Markowitz 投資組合模型 中, 我們已經見過如何使用Markowitz求得最優資產配比. 這是一種在已知未來各資產的概率分布,然後再求解的方法.

Markowitz模型輸入參數包括歷史數據法和情景分析法兩種方法,情景分析法的缺點是主觀因扒山素,隨意性太強,因此使用歷史數據法, 將資產的均值和協方差輸入模型是比較常見的作法. 不過, 不足之處很明顯: 未來的資產收益率分布不一定與過去相同. 此外, Markowitz 模型結果對輸入參數過於敏感.

Black-Litterman模型就是基於此的改進. 其核心思想是將投資者對大類資產的觀點 (主觀觀點) 與市場均衡收益率 (先驗預期收益率)相結合,從而形成新的預期收益率(後驗預期收益率). 這里的先驗預期收益率的分布可以是貝葉斯推斷中的先驗概率密度函數的多元正態分布形式,投資者的主觀觀點就是貝葉斯推斷中的似然函數(可以看作新的信息, 因為做出主觀判斷必然是從外界獲取得到了這些資產的收益率變化信息), 而相應的, 後驗預期收益率也可以從後驗概率密度函數中得到. 具體的推導可以看我的這篇文章: 從貝葉斯定理到貝葉斯推斷 .

BL模型的求解步驟包括下面幾步:

(1) 使用歷史數據估計預期收益率的協方差矩陣作為先驗概率密度函數的協方差.

(2) 確定市場預期之收益率向量, 也就是先驗預期收益之期望值. 作為先驗概率密度函數的均值. 或者使用現有的期望值和方差來反推市場隱含的均衡收益率(Implied Equilibrium Return Vector), 不過在使用這種方法時, 需要知道無風險收益率 的大小.

(3) 融合投資人的個人觀點,即根據歷史數據(看法變數的方差)和個人看法(看法向量的均值)

(4) 修正後驗收益.

是均衡收益率協方差的調整系數,可以根據信春鋒中心水平來判斷. 是歷史資產收益率的協方差矩陣, P是投資者的觀點矩陣, 是似然函數(即投資者觀點函數)中的協方差矩陣,其值為 的對角陣, 是先驗收益率的期望值.

(5) 投資組合優化: 將修正後的期望值與協方差矩陣即 重新代入Markowitz投資組合模型求解.

(1)定義求解函數,輸入為投資者觀點P,Q以及目前資產的市場收益率矩陣,輸出為後驗的市場收益率和協方差矩陣.

(2) 實列分析
我們繼續研究 python實現資產配置(1)----Markowitz 投資組合模型 中的五支股票: 白雲機場, 福建高速, 華夏基輪銀行, 生益科技和浙能電力. 假設現在分析師的觀點為:

獲取股票數據, 並且獲得後驗的均值和方差:

這時候,已經可以使用Markowitz模型進行資產的配置. 定義新的函數blminVar以求解資產配置權重. 該函數的輸入變數為blacklitterman函數的輸出結果, 以及投資人的目標收益率goalRet.假設目標收益率為年化70%,則goalRet = 0.7:

輸出結果為:

0-5分別對應上面的五隻股票.

❽ 用Python中的蒙特卡洛模擬兩支股票組成的投資組合的價格趨勢分析

蒙特卡洛模擬是一種模擬把真實系統中的概率過程用歲虛計算機程序來模擬的方法。對於投資組合的價格趨勢分析,可以使用Python中的蒙特卡洛模擬。首冊茄先,回顧投資組合的價格趨勢。投資組合中的股票價格的趨勢是受多種因素影響的,可分為經濟、政治和技術因素,其中經濟因素最重要。因此,蒙特卡洛模擬可以模擬這些因素對投資組合價格趨勢的影響,並通過計算機繪制投資組合價格趨勢的曲線。
Python中的蒙特卡洛模擬首先需要計算投資組合中各股票價格的每一期的收益率,其次,計算出投資組合的收益率;隨後,計算預測投資組合的期權價格,並將所有的期權價格疊加起來,從而繪制投資組合的價格曲線。最後,在投資組合的價格曲線的基礎上,可以分析投資組合在不同時期的價格走州雀察勢,並進行投資組合結構的調整,從而獲得最優投資組合。

❾ 《Python與量化投資從基礎到實戰》pdf下載在線閱讀,求百度網盤雲資源

《07 Python股票量化投資課程(完結)》網路網盤資源免費下載

鏈接:https://pan..com/s/1MgFE6VMeR8H6YkS2jxEZmw

?pwd=zxcv 提取碼:zxcv

07 Python股票量化投資課程(完結)|09課後大作業|08第八課資料|07第七課資料|06第六課資料|05第五課資料|04第四課資料|03第三課資料|02第二課資料|01第一課資料|25人工智慧與量化投資(下).mp4|24人工智慧與量化投資(上).mp4|23實盤交易(下).mp4|22實盤交易(中).mp4|21實盤交易(上).mp4

❿ python的量化代碼怎麼用到股市中

2010 ~ 2017 滬深A股各行業量化分析

在開始各行業的量化分析之前,我們需要先弄清楚兩個問題:

  • 第一,A股市場上都有哪些行業;

  • 第二,各行業自2010年以來的營收、凈利潤增速表現如何?

  • 第一個問題
    很好回答,我們使用JQData提供的獲取行業成分股的方法,輸入get_instries(name='sw_l1')
    得到申萬一級行業分類結果如下:它們分別是:【農林牧漁、採掘、化工、鋼鐵、有色金屬、電子、家用電器、食品飲料、紡織服裝、輕工製造、醫葯生物、公用事業、交通運輸、房地產、商業貿易、休閑服務、綜合、建築材料、建築裝飾、電器設備、國防軍工、計算機、傳媒、通信、銀行、非銀金融、汽車、機械設備】共計28個行業。

    第二個問題
    要知道各行業自2010年以來的營收、凈利潤增速表現,我們首先需要知道各行業在各個年度都有哪些成分股,然後加總該行業在該年度各成分股的總營收和凈利潤,就能得到整個行業在該年度的總營收和總利潤了。這部分數據JQData也為我們提供了方便的介面:通過調用get_instry_stocks(instry_code=『行業編碼』, date=『統計日期』),獲取申萬一級行業指定日期下的行業成分股列表,然後再調用查詢財務的數據介面:get_fundamentals(query_object=『query_object』, statDate=year)來獲取各個成分股在對應年度的總營收和凈利潤,最後通過加總得到整個行業的總營收和總利潤。這里為了避免非經常性損益的影響,我們對凈利潤指標最終選取的扣除非經常性損益的凈利潤數據。

    我們已經獲取到想要的行業數據了。接下來,我們需要進一步分析,這些行業都有什麼樣的增長特徵。

    我們發現,在28個申萬一級行業中,有18個行業自2010年以來在總營收方面保持了持續穩定的增長。它們分別是:【農林牧漁,電子,食品飲料,紡織服裝,輕工製造,醫葯生物,公用事業,交通運輸,房地產,休閑服務,建築裝飾,電氣設備,國防軍工,計算機,傳媒,通信,銀行,汽車】;其他行業在該時間范圍內出現了不同程度的負增長。

    那麼,自2010年以來凈利潤保持持續增長的行業又會是哪些呢?結果是只有5個行業保持了基業長青,他們分別是醫葯生物,建築裝飾,電氣設備,銀行和汽車。(註:由於申萬行業在2014年發生過一次大的調整,建築裝飾,電氣設備,銀行和汽車實際從2014年才開始統計。)

    從上面的分析結果可以看到,真正能夠保持持續穩定增長的行業並不多,如果以扣非凈利潤為標准,那麼只有醫葯生物,建築裝飾,電氣設備,銀行和汽車這五個行業可以稱之為優質行業,實際投資中,就可以只從這幾個行業中去投資。這樣做的目的是,一方面,能夠從行業大格局層面避免行業下行的風險,繞開一個可能出現負增長的的行業,從而降低投資的風險;另一方面,也大大縮短了我們的投資范圍,讓投資者能夠專注於從真正好的行業去挑選公司進行投資。

「2010-2017」投資於優質行業龍頭的收益表現

選好行業之後,下面進入選公司環節。我們知道,即便是一個好的行業也仍然存在表現不好的公司,那麼什麼是好的公司呢,本文試圖從營業收入規模和利潤規模和來考察以上五個基業長青的行業,從它們中去篩選公司作為投資標的。

3.1按營業收入規模構建的行業龍頭投資組合

首先,我們按照營業收入規模,篩選出以上5個行業【醫葯生物,建築裝飾,電氣設備,銀行和汽車】從2010年至今的行業龍頭如下表所示:

結論

通過以上行業分析和投資組合的歷史回測可以看到:

  • 先選行業,再選公司,即使是從2015年股災期間開始投資,至2018年5月1號,仍然能夠獲得相對理想的收益,可以說,紅杉資本的賽道投資法則對於一般投資者還是比較靠譜的。

  • 在構建行業龍頭投資組合時,凈利潤指標顯著優於營業收入指標,獲得的投資收益能夠更大的跑贏全市場收益率

  • 市場是不斷波動的,如果一個投資者從股災期間開始投資,那麼即使他買入了上述優質行業的龍頭組合,在近3年也只能獲得12%左右的累計收益;而如果從2016年5月3日開始投資,那麼至2018年5月2日,2年時間就能獲得超過50%以上的收益了。所以,在投資過程中選擇時機也非常重要。

出自:JoinQuant 聚寬數據 JQData

熱點內容
期貨交易提示什麼 發布:2024-11-19 11:55:09 瀏覽:676
如何成為金融客服 發布:2024-11-19 11:39:18 瀏覽:770
金融學和財政學哪個系好 發布:2024-11-19 11:37:56 瀏覽:422
股票漲停後是否買 發布:2024-11-19 11:37:42 瀏覽:627
期貨一招鮮怎麼看 發布:2024-11-19 11:37:42 瀏覽:646
河東金融車貸有哪些 發布:2024-11-19 11:36:05 瀏覽:751
股票軟體指標炒股 發布:2024-11-19 11:11:39 瀏覽:742
三洋科技股票 發布:2024-11-19 11:01:47 瀏覽:102
股票軟體如何把可用轉為可取呢 發布:2024-11-19 10:53:43 瀏覽:305
工業富聯股票歷史最高點 發布:2024-11-19 10:52:59 瀏覽:243