前言:
今天起准備開啟全新的一門課程的學習之旅,如標題所示,python量化交易相關的領域,理財+編程相關的知識。其實吧,關於理財相關的學習去年底就已經萌發了,一直是沒有付出行動而已,所以在8月的開頭打算付出行動。
關於股票和基金,對於程序猿們而言基本上人人都或多或少的接觸過,也不一定是程序猿吧,對於想掙“睡后”收入的應該它們倆是大多數人認為最直接有效的,因為只要選上一個股票或基金,合適的機會買賣既可,不費力不費時,嗯,同時偉大的“韭菜們”也都紛紛出現了,我也很自豪的能成為其中一員,當然既然是韮菜中的一員,被割是不可能避免的,但是呢,絲毫不影響我想要學習投資的腳步,對於這門python理財課我覺得通過它一是可以學學投資相關的一些金融知識,二是又可以來領略一下怎么利用python來達到一種量化交易的目的,關於python這門語言在學習線性代數時就已經初步領略過了:
這次再次來感受一下它在投資領域上面的一個魅力,期待理財+技術兩個領域的知識為自己所吸收利用,當然對於A股的投資不可能靠學一門課程就能讓你百分百掙到“睡后”收入,但是在你懂得了一些理財的思想之后,對你未來的理財道路上肯定是有利無害的,所以,加油~~
什么是量化?
量化:
“在語言和邏輯層面,用量詞指定一個謂詞的有效性的廣度的構造”, 是不是這句話太抽象了,這里分別來理解標紅的詞,先來回憶一下啥是謂詞:
再來理解“量詞”,它是指定謂詞的有效性的廣度的構造,很明顯它是用來表達這個謂詞的一個廣度問題的,舉幾個“量詞”的例子:一些【他跑得快一些】、很多、所有,這些形容詞都是表示量化的概念,稍加了解一下。
量化交易:
而通常的量化指的就是量化交易,它指的是針對可交易的投資商品【如股票、基金、債券等】,根據它們真實的歷史數據,理性地運用邏輯分析和歸納統計判斷市場的趨勢【未來的漲跌幅,買賣點之類的】,這么一個過程就是量化,而標紅的“邏輯分析和歸納統計”就是所謂的量化交易策略,可以簡單理解成“炒股公式”,不同的人其公式肯定也是不一樣的對吧,下面就來看一下都有哪些量化策略。
有哪些量化策略:
賺錢“因子”:
對於量化策略能賺錢的因子其實是分為兩大類:
這個對於炒股的人來說應該非常熟了,基本面分析也就是傾向於“價值”投資,而技術面分析則就是偏技術派,是完全不同的兩個風格,為了更進一步對這倆類有一個清晰的對比,給出如下幾個指標:
- 股票收盤價
- K線(日/周/月/年)
- 均線(5/10/20/60日)
- 居然消費指數
- 人均國內生產總值(GDP)
- 凈資產收益率(ROE)
將它們進行歸類,也比較容易,如下:
這么一對比就可以很容易的發現:技術面分析它更關注基本商品“價格”相關的數值和合成的指示,而基本面分析更關注企業的本身和宏觀經濟大的市場環境的變化【比如大盤不好,外圍環境不好,你想通過炒股掙錢是不是很難?比如今年年初股市的暴跌, 就是因為市場的外在環境變化了,對於基本面分析比較敏感的人肯定此時會拋售股票來保證資金安全】
賺錢:
接下來則以量化分析目的的角度出發,來看一下量化交易還有哪些不同的策略呢? 對於分析的目的其實很明確----為了賺錢,那么怎么賺錢呢?其實道理也很簡單,就是:低買高賣,嗯,那么核心的問題來了:股價什么時候便宜?什么時候貴?憑感覺么?很顯然是不靠譜的,所以此時就可以借助了如下的一些指標。
指標:
接下來了解一下常用的買賣指標有:
1、通過均線,來判斷股價合適的買入時機;
2、通過分析企業的盈利能力,它的性價比,來進行選股,來判斷它是不是值得投資的公司;
3、通過分析不同行業或個股的周期性,俗稱的“分析熱點”,來進行股票的買賣;
而不同的策略其對應的數值也是不一樣的,比如對於選股策略來說,它的數值可以是凈利潤、公司現金流等,而板塊輪動可以利用行業指數的漲跌幅進行判斷等,對於這些量化策略相關的東東在未來會逐一學習到的。
常用的股票量化指標:
概述:
對於股票的量化指標其實也比較容易了解到,因為可以在主流的一個金融平台進行了解,這里列舉一下查找的渠道:
- 財經網站:新浪、雅虎、東方財富等;
- 證券公司:中信、中金、國信、天風、招商、光大等;
- 炒股平台:同花順、通達信、大智慧等;
這里以比較有名的“東方財富”為例進行一些指標的學習,注意:這里只是一個整體的了解,每個指標的含義也不可能一下就能掌握,了解它們的目的是先建立一些金融的基本概念,為之后的學習打下基礎,先來打開東方財富網站:https://www.eastmoney.com/
然后點擊“個股”:
其中引入眼簾的就是各種指標的展示:
此時可以查看一個股票的詳情,這里以“五糧液000858”為例:
下面則從技術面和基本面來對它進行一個整體了解。
技術面:
k線圖:
關於k線圖是啥就不多說了,這里點擊“全屏”就可以更好的查看k線形態了:
先來對一個K線中的“蠟燭圖”有一個簡單的了解:
以這個陰線為例:
也就是收盤價要低於開盤價,當然這一天就是跌嘍,另外還有上下兩個引用,也是一個k線的組成部分:
所以每一根k線就有如下信息:
其中漲跌幅就是跟昨天的價格對比所算出來的一個百分值,關於蠟燭圖這塊的知識點也非常之多,有興趣的可以自行找相關的教程去學學,一大堆形態。
BOLL指標:
接下來為了了解指標對於股標擇時及選股的作用,這里先來看一下主圖指標的BOLL指標:
那么先來了解一下這個指標的大概意思:
先來對這三根線的計算方式有一個基本了解:
-
中軌線=N日的移動平均線,也就是N日內的收盤價之和÷N,這里的N一般是指20天。
-
上軌線=中軌線+兩倍的標准差
標准差是啥意思呢?可以理解為一個股票近多少天的波動幅度,波動幅度越大,標准差就越大,它的計算公式為:
-
下軌線=中軌線-兩倍的標准差
而上下軌之間的一個空間,則代表的是股票的常規活動空間,也就是:
那用BOLL來做擇時時如何用呢?基礎的用法就是“當股價跌破下軌時可以選擇買入,而當股價漲到突破上軌時選擇賣出”,下面以k線圖進行理解:
雖說不是賣在最高點,但是其利潤也比較好了,也有15個點了(15%),當然,要是炒股有這么容易人人都可以成為富翁了,所以必須要知道任何學習的炒股技法只是一個輔助,別上癮就成,尤其是在中國大A股的國情下一切情況皆有可能,大家都懂的,所以,這里是為了純學習,不用太過較真。
通過這個例子,是不是可以用BOLL線來找到股票的買賣點了,這其實也就是它的作用,不過!!!下面再來看一個情況:
MACD:
那有沒有另一種附加指標能讓我們在BOLL突破上軌時還能多拿一段時間呢?有,MACD,先來看一下它是啥?
回到咱們這支上來:
但是呢,你如果只看快移動平均線突破了慢移動平均線就繼續持有,那么,你會發現這么一個情況:
是的,所以說不要迷戀公式,具體買賣還得結合自己的一個預期收益來決定,這里只是說明,在用了BOLL指標之后,再結合 MACD指示可以讓你持得更久一點,針對這個場景也能看出有多個決策:
1、在BOLL指標中,當K線突破了上軌之后,此時再結合MACD看一下是否快移動平均線已經突破了慢移動平均線,如果已經突破,可以再持幾天觀察觀察,如果沒突破立馬賣掉。
2、在BOLL指標中,按照自己指定的預期收益率來賣出,比如15%是自己的一個預期賣出點,那么BOLL指標中即使K線也沒有突破上軌,但已經達到了個人的預期的收益了,那么堅決賣出,之后的漲跌就與自己無關了,這也是一種決策。
所以,其實決策的有效性及復雜性完全取決於市場的復雜程度和自己的選擇對吧,自己預期小一些少賺一點為了資金安全好么指標的成功率也會較高,而也可以通過的不斷添加判斷條件讓自己的收益率真增大, 但是一定要記得,市場是在不斷變化的,而量化交易也是不斷在發展中,一個策略不可能“永遠”有效,需要不斷的觀察和優化。
在之后會學習到如何用python來使用均線來找到買賣點,也會學到如何利用成交量來進行選股,所以,一點點來循序漸進。
基本面:
如之前所說,除了技術面之外,還有分析個股基本面來進行擇時選股的,所以接下來從宏觀的角度來看一下基本面的分析一般是分析啥?
F10檔案--財務分析:
在個股詳情頁面頂部有么一個區域:
為啥叫F10檔案呢?如果熟悉使用一些證券交易電腦端軟件應該都比較熟,按F10鍵就能調出所有該股票公司的檔案,所以這里也是叫F10檔案了,然后我們分析公司主要是看公司的盈利情況對吧,所以選它:
打開之后,可以看到有季度的,也有年度的:
這是因為每個上市公司每季度每年都“必須”對外公布企業的財務、業務發展等情況,目的是為了讓投資者了解自己的投資標的,其中第一季度發布的叫一季報,第二季度發布的叫半年報【包含第一季度的數據,也就是總共6個月的數據】,第三季度發布的叫三季報【只有第三季度的數據】,第四季度發布的叫年度報【包含一整年的數據】,而所有的上市公司在四月前都會發布完自己的年報,所以說通常也是投資者作為分司自己標的最好的一個參考信息,因為數據最全。
年報:
那怎么看公司的幾個季度財報的信息呢?一是可以上財富網上看:
其中要注意:每個都是一季度的信息,比如20-06-30,只包含第二季度的信息,不包含之前第一季度的,這一點跟下面要說的“按報告期”是不一樣的。
也可以按年度來看:
另外還可以按報告期來查看,它跟“按單季度”不一樣的是不是每次都是一季度的,還是拿20-06-30說明,在這里就會包含之前一季度的信息了:
不過這里記錄的肯定不是很詳細,最詳細的就是看一下公司的年報了,那怎么找到股票公司對應的年報呢?其實就是上證券交易所的官網上就能找到,像咱們現在看到的五糧液不是深圳A股的么,可以上深圳證券交易所官網去搜一下:http://www.szse.cn/,但是更好的方式是可以上巨潮資訊http://www.cninfo.com.cn/new/index網去搜索,因為它包含了深滬兩家證券公司的信息,比較方便,如下:
打開,瞅一眼多少頁。。
所以可見要真的能讀懂公司的財報還是相當相當難的,需要自己花大量的時間,當然啦,這個待未來有時間再專研,目前就是泛泛的過一下,看一下整體的目錄:
其中可以看到各種數據報表,比如合並資產負債表:
當然目前對於這些數字也是天書一般,不過這里只要明白所有的源數據都是來源於年報里面就ok了,這個是非常重要的,因為錯誤的數據就會導致錯誤的策略結果。
如何用財務數據來選股呢?
接下來就來看一下如何用財務數據來選擇標的,再分析之前,首先想一下要讓來選擇一家公司作為自己的投資標的?
1、掙錢的公司;
2、股價稍便宜一點;
所以按着這個思路,下面首先來找掙錢的公司。
利潤表:
而掙不掙錢直接的表現就是看公司的利潤數據,所以可以看一下利潤表:
還可以看一下現金流量表:
其中有一行數據:
它表示實際賬戶里面的錢有多少,它是很重要的,因為有可能客戶會賒賬,比如本來賣了100萬的貨,然后客戶只給了20萬,還有80萬沒有到,那么利潤確實是不錯,但是賬戶里面沒多少錢呀,所以這個指標也挺重要的。
另外還有一個數據也挺重要:
它指的是公司主營業務的收入,像五糧液是主營酒業的,指的就是賣酒的總收入,不包括公司的其它的比如像地產投資之類的其它收入。
凈資產收益率:
這個數據也挺重要的,可以上這來看到:
市盈率:
在這塊能看到這公司的市盈率信息:
百度一下它:
也就是用它可以衡量該股票值不值得投資,其中Price指的是股價,Earnings指的是企業的利潤(價值),它們之間的比值就是市盈率了,也就是每股的股價除以每股的凈利潤,其中Earnings指的是:
或者用總市值除以近一年的凈利潤的總和,也就是它:
其實這塊在網頁上也有解釋:
這里需要對這個概念有個大概的認識,市盈率指的是市場的價格和公司實際盈利的一個比值,換言之,對於市場的價格可以看總市值:
如果市值很高代表市場也比較看好該股,那么該股的股價就越高,對應的市盈率就越高,這也是為啥很多好的科技公司的市盈率都很高的原因,因為市場很看好,所以願意買這支股票,但是呢每個公司的利潤都是在增長的,根據市盈率的計算公式=Price指的是股價/Earnings指的是企業的利潤(價值),其中股價也在漲,企業的利潤也在漲,說明分子和分母都在長,其算出來的市盈率應該也是一個差不多的值,說明這家企業是一個非常掙錢的而且估值也一切正常,對於投資者來說當前股價不是低估的,也就是價位不是很低,買入的話還是有風險的,但是某一天當你發現公司的總市值很高【說明公司是很掙錢的】,但是呢它的市盈率還挺低的【說明當前股價是比較低的,不是一個正常的股價】,說是該公司的股價是處於低估狀態,此時就比較適合買入了,其實這也就是巴菲特所說的價值投資的思想。
所以通過市盈率這個估值指標能夠知道你所選擇的公司掙不掙錢,然后公司目前股價是否處於一個低估狀態。
如何搭建量化交易系統:
量化交易系統的組成:
上面花了一定的篇幅來對於金融知識進行了大概的了解,那對於一個量化的交易系統它由哪些部分組成呢?
這里先從電腦的組成說起,對於一台電腦它的組成部分是這樣的:
那將主體由電腦換成量化交易系統,此時它的構成可以打開一個炒股軟件來進行一個形象的分析:
也就是將圖表的數據用可視化的圖將其輸出出來。接下來還得能知道行情,也就是投資品類:
其實就是指股票的價格成交信息是怎么樣的。
接下來還需要有個股信息:
此時則需要根據個股的一些技術指標、財務數據來分析決定買入和賣出對吧,此時就可以有交易策略組件來完成:
最后就是需要交易的部分了,也就是買賣,這里叫櫃台:
它是委托、執行交易、計算持倉、計算資金做最終結算核對的部分,也是最最不能出錯的部分,所以對於一個量化交易系統需要有如下幾部分:
使用python實現量化交易:
目前咱們已經知道了一個量化交易系統的構成了,那么使用python如何來實現呢?下面看一下具體的一個功能大綱:
Data:
指數:
其實就是指上證50,滬深300。
- 持倉個數:指指數所包含的股票;
- 行情:指每日的價格、成交數據;
- 資金流:如北向資金【從香港股票中流入大陸股市的資金】的交易額是多少。
個股:
- 基本信息:比如公司是做什么業務的,屬於啥板塊。
- 行情:每日價格,每周價格之類的。
- 資金流
Strategy:
擇時策略:就是來算股票的買賣點的。
選股策略: 用來選股用的一些手段。
Trade:
知道什么時候買入,什么時候賣出之后,則需要進行買賣交易委托了,然后還得需要能計算持倉的情況,收益情況,都得靠Trade這個模塊了。
Chart:
這個就不用說了,就是圖表的模塊。
總結:
這是利用技術來學會投資理財的首篇,當然涉及到很多的一些金融的知識,純理論,還沒涉及到編程,不過我已經迫不及待的想回到編程的世界了,難道還真的能通過編程進行炒股不成,隨着之后的不斷深入再來慢慢體會,另外這里面的一些金融知識可能也比較片面,畢竟金融行業還是一個水很深的領域,哪能隨便學了點概念就可以對炒股指點江山了,這里泛學的目的是為了之后的編程打基礎,總得有個基本概念吧,不然到時用到時完全不了解那不等於是聽天書一樣,總之這篇對我意義比較大,終於跨出了理財學習的第一步。