標籤:

Matlab如何繪製股票K線

新年快樂。很高興能夠在2018年的第一個周末與大家分享最近一段業餘時間我所倒騰的事。

前不久,我在同花順的APP上發現了一個比較有意思的功能,K線訓練營。而其中有一項是挑戰AlphaHua,AlphaHua是同花順開發的人工智慧交易演算法。

由於平時在使用過程中,時常會出現好幾次PK都是在同一年份,又或者是同一隻股票。於是我就想,是不是可以自己通過Matlab來實現一個K線訓練營的這樣一個工具。

對於實現這個工具,我將步驟細化為以下幾步:

截至目前,這個工具還沒有完成,只是初步實現了股價的可視化,也就是K線的繪製。先來看一下整體的效果。

今天就來聊一聊在過去的這一周我是如何完成這個小功能的。


就繪製K線圖而言,我曾經嘗試在網上進行搜索,最先得到的答案是,Matlab自帶繪製K線圖的函數,candle,繪製的效果大致如下所示:

從圖中可以看出,candle繪製的K線默認顏色是藍色,其中實心柱體表示跌,空心柱體表示漲。而對於A股,無論是媒體或者是相關的平台工具,我們一直接受的觀念是,紅色空心柱體表示漲,綠色實心柱體表示跌。因此,也有許多人發帖詢問如何對K線圖的顏色進行定義。


對於K線圖漲跌的顏色定義,我再次在網上進行了搜索,很快就在網上找到了相關的代碼,有興趣的朋友可以查看一下這篇帖子《K線圖以及常用技術指標的Matlab實現-基於Matlab的量化投資》。對於其中所給出的代碼,我進行了嘗試,效果如下:

從圖中可以看出,這個代碼已經能夠滿足漲跌顏色定義的需求。回過頭來看這個代碼,其中關於K線柱體的繪製代碼如下:

其中大致的邏輯是,通過一個循環,對下跌或者上漲的每個柱體進行fill的填充。

由於循環所產生的後果將會是導致運算速率的損失,進行一個簡單的對比:

從圖中可以看到,對於一組1504個交易日的數據,第二種自定義函數耗時大約為1.8秒,而自帶的candle函數耗時大約為0.3秒。有興趣的朋友可以通過open candle查看其中的代碼,沒有使用循環。


出於計算效率的考慮,我打算自己對candle進行改寫,從而滿足K線圖漲跌顏色定義的需求。改寫的部分很簡易並且容易實現,只是通過顏色的區分定義,分別定義上漲顏色與下跌顏色,然後查找代碼中關於對Color設定部分的代碼進行修改。

而對於相同的1504個交易日數據繪圖,耗時大約為0.6秒。耗時長於candle的原因在於,對於上影線與下影線,並不是統一定義為一個顏色,也是根據漲跌分別進行顏色定義,這是有別於candle計算效率的部分。


在完成股價的可視化之後,再去繪製成交量也就不是難事了。我最先想到的是使用Matlab自帶的畫柱狀圖的函數bar。畫出來的效果大致是:

同樣所碰到的問題是顏色單一,並不美觀。於是我再一次使用candle進行改寫,利用其中畫柱狀圖部分的代碼,設置起始點為0即可。畫出來的效果大致是:

至於其他的細節,已經沒有特別有趣的點了,大致是對橫縱坐標的處理,subplot等。而在接下來的兩周,我將會著手進行K線訓練營工具界面的設計,希望到時候有機會與大家分享。

以上就是今天分享的內容,謝謝大家,祝各位周末愉快。

如果你感興趣,歡迎關注我的微信公眾號「打浦橋程序員」,謝謝


推薦閱讀:

有人跟我薦股,說賺錢了利潤55開,結果真漲了不少,誰分析下?
籌碼分布圖建立的原理和標準是什麼,是否可靠?
北大教授陳平學術水平如何?
沒時間解釋了

TAG:MATLAB | 股票 |