介紹
本次将介紹我們團隊在省級比賽國元證券杯比賽獲得一等獎的思路介紹,因當時收集的資料源已經丢失,是以隻是重新整理下思路,友善之後面試或者工作中運用。首先從如何便捷地擷取股票曆史資料,并實作快速繪圖。同時,嘗試計算買入和賣出過程中的收益,并标記出漲跌轉折點。最後,使用機器學習方法對資料進行模組化,并給出股票未來走勢的預測結果。
步驟
- 資料采集方法
- 資料字段了解
- 資料清洗和預處理
- 繪制餅圖
- 繪制相對變化曲線
- 短期交易政策
- 股票長期趨勢預測
一、資料來源和所需字段的了解
一般是從兩個方面去擷取資料,一是從要選取的公司或企業的官網去擷取、統計年鑒平台能夠得到這些公司提供給我們的一些資料;另一種方法是通過我們自己去獲得的,可以在一些公開的資料源上獲得,比較權威的就是Yahoo做的API(雅虎财經網站)Yahoo Finance - Business Finance, Stock Market, Quotes, News,通過這個API幾乎可以擷取所有公司的曆史股票資訊。國内比較著名的交易所是上海證券交易所和深圳證券交易所。以及另外一些覺得可能有用的資料,都可以通過各種管道去直接獲得或者經過簡單的邏輯推理出來。
一般所需的資料字段有:成交日期、開盤價格、最高價格、最低價格、收盤價格(Close)、調整後收盤價格、成交量,由此也可以推算出漲幅等等資料。隻有了解資料,才能對股票做出分析,不然隻是空談或者是做僞分析。
二、資料清洗
拿到資料之後,有些資料可能并不完整或者并不準确,這時我們需要先對資料做一個預處理過程。
一般可分為文本類資料和數值類資料,一般的文本類資料是可以直接拿來用的,比如要判斷一隻股票的“潛力”,可以從目前的經濟環境來看,目前的經濟發展的環境良好,那麼對市場也是起到促進作用,自然能夠對股票的漲跌起到作用,金融風暴來臨時,股市肯定是不景氣的;另一方面也可以對行業的發展來看,比如近幾年的物流行業發展較為迅猛,對一些和物流有關公司的發展也是起着好的作用。這樣可以縮小我們的選股範圍。
對于另一類數值類型的資料,這類資料是可以量化的,分類型的資料可以拿來直接判斷資料的“好壞”,而連續型的資料随着時間發展來看也會有一定的發展趨勢,假設近幾年的外部環境近似的話,也可以通過對曆史股票資料的走向來預測未來近一段時間内的股票的可能走向等等。
主要是做了以下幾種清洗方式
第一是對錯誤值和異常值的處理,在收集資料的過程中,可能會出現一些明顯是異常的值,首先的話還是先判斷這些異常出現的原因,假如是人為粗心導緻的,那麼可以直接修改,假如是資料源本身的錯誤,那麼可以進行一些均值,中位數的替換等方法進行。有時候并不是能收集到所有需要的資料,有的資料集中也可能會出現缺失值的情況,這些都需要根據不同的情況去處理。
第二是可能會有一些值的預處理,比如一段時間内股票價格的增高或者降低,可以轉化成率來進行分析。同時也達到降維的目的,減少不必要的工作量。可以對其他字段和股票價格的漲跌字段做主成分分析,以此提取所占比例達到一定門檻值的字段即可,或者是通過求他們之間的相關性,選擇相關性大于某個門檻值的。
當然還有一些其他的資料預處理方法。比如一些資料的歸類、聚類、離散化和資料的抽樣(可能不是所有得到的資料都會用上)。。。
三、應用的方法
可視化的方法是最直覺的,單日或者單周的股價漲跌變化情況可以通過餅圖來看,還可以通過繪制相對變化曲線來看單個股票在一段時間内的變化趨勢。可以把一段時間内的漲跌比例情況繪制成餅圖,然後比較哪種的比例較高,得出結論。
繪制相對變化曲線。
餅圖可以用于反映當天的股價變化情況,如果想要看到當天和前一天的相對變化(漲或跌),就需要通過計算後再進行繪圖了。可以通過曲線圖的變化趨勢進行短期的決策。
最後可以選取對股票價格漲跌影響因素最大的字段,做出預測
用到的模組化思想有:分類方法有決策樹相關的思想,對于每一個判斷節點,都可以産生一種類似于分類器的模型去判斷價格的漲跌,另外還采取了權重的方法去提升他的準确度,最近鄰方法,用與選股階段,想要快速知道一個新朋友是一個怎麼樣的人,可以通過看他的朋友大部分是什麼性格的人。預測的方法,線性回歸預測非線性回歸預測,這種思想用的最多,邏輯回歸預測,判斷股票是牛股還是熊股。
另外長期的預測中可能預測到價格,但是并不能準确預測到達該價格的時間。股價一定程度依賴于資訊,但你基本不可能知道明天的資訊。市場交易往往是投機行為,并不理性。是以股票有風險,入市需謹慎啊!
附:還是覺得思路比較亂,還需要再多總結,思路才能更加清晰。另外在學習資料分析的相關方法後,很多地方的細節需要注意,方法也需要優化才可以。