量化交易之《Python數據分析》

2021-02-21 志揚工作室

Start:關注本公眾號後,可直接聯繫後臺獲取排版美化的詳細文檔!

Hints:本篇文章所編纂的資料均來自網絡,特此感謝參與奉獻的有關人員。

Numpy:提供數值數組和函數

Scipy:科學計算庫

Matplotlib:數據可視化

 

Numpy 數組的優勢

1 Numpy數組能夠運用向量化運算來處理整個數組,而完成同樣的任務,python的列表則通常必須藉助循環語句遍歷列表,並對逐個元素進行相應的處理

2 Numpy使用了優化過的C API,所以運算速度格外快

3 與python標準的列表相比,Numpy數組使用的切片和索引方法更加高效。

 

夏皮羅-威爾克檢驗法可以對正態性進行檢驗。Anderson-Darling檢驗可以用來檢驗正態分布及其它分布,如指數分布,對數分布和甘貝爾Gumbel分布。

 

Pandas的核心數據結構:Series和DataFrame

 

HDF5 (Hierarchical Data Format)是一種常見的跨平臺數據儲存文件,可以存儲不同類型的圖像和數碼數據,並且可以在不同類型的機器上傳輸,同時還有統一處理這種文件格式的函數庫。

模塊xlrd能用來解析讀取.xls和.xlsx文件中的數據

使用Rest web服務和Json

使用feedparser解析Rss文件

使用beautiful soup解析HTML

使用pickle解析pkl文件

 

箱形圖、對數圖、散點圖、泡式圖、三維圖、時滯圖、自相關圖

 

移動平均值、窗口函數(矩形窗、三角形窗、布萊克曼窗口bartlett window, 漢寧窗hanning window、巴特萊特窗)、協整(通過檢測兩個序列之間線性關係的殘差穩定性-ADF檢測)、自相關性、自回歸模型(ARMA模型)、生成周期信號(希爾伯特-黃變換)、傅立葉變換、譜分析、濾波(中值濾波器median filter 計算滾動窗口中數據的中值, wiener濾波器 通過統計數值來刪除噪音,detrend濾波器 刪除趨勢)

 

SQLite3: Python標準的輕型的關係型資料庫

SQLAlcgemyL: 以基於設計模式design pattern的對象關係映射ORM而聞名。把Python的類映射為資料庫的數據表,需要使用SQLAlchemy應用程式接口來跟資料庫打交道,而非使用SQL命令。

Pony ORM用純python編寫的ORM,能自動進行查詢優化,提供了一個圖形用戶界面的資料庫模式編輯器,支持自動事務處理,自動緩存,組合關鍵字。

Dataset 懶人資料庫,SQLAlchemy的一個包裝器

MongoDB:是一個面向文檔的NoSQL資料庫

Redis存儲資料庫:Redis是一個in-memory型的鍵-值資料庫,用c語言編寫而成,處於內存存儲模式時,Redis的速度快的驚人,並且讀寫操作的速度幾乎一樣快。

Apache Cassandra是結合了鍵-值和傳統關係型資料庫特性的混合資料庫。對於傳統的關係型資料庫而言,數據表中的列是固定。可是,對於Cassandra來說,同一個數據表中的各行可以具有不同的列。

 

NLTK是一個用來分析自然語言文本的Python應用程式接口。

濾除停用字

詞袋模型:一篇文檔是由其中的詞構成的一個集合(袋子),詞與詞之間沒有順序以及先後的關係。

詞頻分析:NLTK提供的FreqDist類可以用來將單詞封裝成字典,並計算給定單詞列表中各個單詞出現的次數。

樸素貝葉斯分類:可以根據某些特徵來分辨一部電影屬於哪個流派

情感分析:觀點挖掘和情感分析

創建詞云:利用wordle生成詞雲

社交網絡分析:網絡中的節點代表的是網絡中的參與者。節點之間的連線代表的是參與者之間的相互關係。利用Python庫NetworkX分析網絡

 

監督學習:要求為訓練數據提供標籤

無監督學習:學習算法不需要人工輸入,能夠自行發現數據中存在的模式

強化學習:這種類型的學習技術無需要進行輔導,但需要提供一些反饋信息

基於邏輯回歸的分類

基於支持向量機的分類

基於ElasticNetCV的回歸分析

支持向量機回歸

基於相似性傳播算法的聚類分析: 相似性傳播算法中,數據集中的各個元素,都會通過特徵值被映射到歐式空間。然後,計算數據點之間的歐式距離,以此構建一個矩陣。

均值漂移算法:另外一種不需要估算聚類數的聚類算法

遺傳算法:算法在搜索和優化方面用途廣泛,可以使用遺傳算法來搜索回歸問題或分類問題的最佳參數

神經網絡

決策樹

 

 

性能、功能、健壯性、可維護性、可測性、可用性

性能分析:找出代碼中哪些部分比較慢,或者佔用內存比較多

安裝Cython:cython程序實際上充當了python和C++之間的膠水,cython工具,可以把Python代碼編譯成接近機器語言的代碼。

調用c代碼:可以從cython調用c函數。

利用multiprocessing創建進程池,multiprocessing是Python的一個標準模塊,可以用於多處理器機器。Multiprocessing通過創建多個進程,成功解決了全局解釋器GIL問題。GIL會鎖定Python的字節碼,導致只有一個線程可以訪問字節碼。

通過Joblib提高fo循環的並發性,Joblib是一個由scikit-learn的開發者創建的Python庫,旨在改善長時間運行的python函數的性能。實際上,joblib是通過在幕後使用多進程或者線程技術實現高速緩存和並行化來達到提升性能的目的。

Bottleneck是受到Numpy 和Scipy的啟發而創建的一組函數,著眼於高性能,都是由cython寫成的。Bottleneck為數組維數,坐標軸和數據類型的每種組合都提供了單獨的cython函數。

通過Jug實現MapReduce,Jug是一個分布式計算框架,以任務作為並行化的主要單位。MapReduce是一種分布式算法,可以通過計算機集群來處理大規模數據。

安裝MPI for python, 消息傳遞接口是一種標準協議,由計算機專家開發用來實現分布式計算機的廣泛協作,MPI不依賴具體的硬體和計算機語言,MPI函數可以完成發送和接受操作,實現MapReduce功能和同步。

IPython Parallel是用於並行計算的IPython應用程式接口。

關注本公眾號,隨意打賞,聯繫後臺,即可獲取相關學習資料

公眾號二維碼

End:如果有興趣了解金融量化交易和其他數據分析的實用技術,歡迎關注本公眾

相關焦點

  • 量化交易工程師,帶你學習量化交易入門!量化交易環境Python安裝
    從最開始的海龜交易法則,到人工智慧深度學習的量化交易能力不斷創新。可能很多人不信,說量化交易不可能穩定盈利,它只是一個口號,一個炒作。可是,正如機器人阿爾法狗已經打敗人腦,徹底改變歷史長河中機器人在圍棋上已經無法戰勝人類的事實。量化交易取代人工交易,成為一個成熟的頂尖的交易思維方法系統還有什麼不可能呢?
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    ,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐 總目錄 零基礎全能篇(4套課程) 實用編程技巧進價(1套課程) 數據分析與挖掘(8套課程) 辦公自動化(3套課程) 機器學習與人工智慧(7套課程) 開發實戰篇(4套課程) 量化投資(2套課程) 網絡爬蟲(
  • 大數據量化交易二
    從零開始學Python大數據與量化交易
  • python數據分析專題 (7):python數據分析模塊
    python是一門優秀的程式語言,而是python成為數據分析軟體的是因為python強大的擴展模塊。
  • 大學生如何入門Python量化金融?
    至於Python的學習,網上資源就很多了,在這裡推薦幾個Python教程:https://python.quantecon.org/ 該教程不僅介紹了Python,而且介紹了NumPy、Pandas、Matplotlib、Scipy等數據分析常用第三方庫。
  • 量化投資入門之工具篇
    當然最簡便的方法是直接選擇已經構建好的量化框架,這樣只要添加自己的條件就可以了,也省去了自己構建基礎框架的過程。目前國內比較常用的量化平臺有:聚寬、優礦、米筐、掘金、京東量化等等。這些平臺的功能上來說都比較相近,不同點可能是數據種類或回測速度上有所差異。除了以上平臺,還有果仁網這樣不需要編程的量化平臺。大家可以根據自己的需求,選擇使用。
  • 量化投資-為什麼選擇Python?
    誕生之初Python被譽為世界上最容易上手的程式語言。進入AI人工智慧時代,靠其功能強大、高效靈活、對數據分析提供良好的支持,成為人工智慧,數據分析領域不可或缺的程式語言。現如今,Python被應用於包括web在內的系統應用開發,同時也當作膠水語言跟其它開發語言互通融合,但更多的被應用於數據統計分析等數學領域的計算需求。
  • 在職金融小白自學python做量化投資能行嘛?
    所以綜上所述,如果是編程零基礎的同學,入門量化的程式語言毋庸置疑是選擇Python。至於Python的學習,網上資源就很多了,在這裡推薦幾個Python教程:https://python.quantecon.org/ 該教程不僅介紹了Python,而且介紹了NumPy、Pandas、Matplotlib、Scipy等數據分析常用第三方庫。
  • 大學生金融小白自學Python做量化投資需要注意哪些?
    至於Python的學習,網上資源就很多了,在這裡推薦幾個Python教程:https://python.quantecon.org/ 該教程不僅介紹了Python,而且介紹了NumPy、Pandas、Matplotlib、Scipy等數據分析常用第三方庫。不過是全英文的,如果英文比較弱的同學可能看起來比較吃力。
  • Python量化交易之二_工具庫
    十年前有個朋友的畢業論文題目與股票數據分析相關。
  • Fooltrader量化分析交易系統
    fooltrader(trade as a fool)是一個利用大數據技術設計的量化分析交易系統,包括數據的抓取,清洗,結構化,計算,展示,回測和交易.它的目標是提供一個統一的框架來對全市場(股票,期貨,債券,外匯,數字貨幣,宏觀經濟等)進行研究,回測,預測,交易.它的適用對象包括:量化交易員,財經類專業師生,對經濟數據感興趣的人,程式設計師,喜歡自由而有探索精神的人1. 能做什麼1.1 自定義分析邏輯和視圖
  • 融合大數據,FollowQuant開創量化交易新時代
    Followme作為國內持續追求創新的交易社區,為了打造基於用戶數據的量化策略開發平臺,不惜耗資千萬,潛心鑽研700日,深入挖掘和分析社區上億交易數據,打造了一個震撼行業的創新性產品 -- FollowQuant。作為全球大數據智能量化交易解決方案,FollowQuant的誕生,是外匯交易史上一個重要的裡程碑,將開創一個全新的量化交易時代。
  • 小白數據分析——Python職位數據分析全鏈路
    數據採集巧婦難為無米之炊,我們做數據分析大部分情況是用公司的業務數據,因此就不需要關心數據採集的問題。然而我們自己業餘時間做的一些數據探索更多的需要自己採集數據,常用的數據採集技術就是爬蟲。數據清洗有了數據後,先不要著急分析。我們需要對數據先有個大概的了解,並在這個過程中剔除一些異常的記錄,防止它們影響後續的統計結果。
  • Python3 量化分析筆記小白到破產-列表進階 切片組合
    文:藍兔子讀難NOTES圖: 配圖 來源於網絡Python3 量化分析從小白到破產筆記列表的進階 切片與組合編碼:0009在前面的內容中,我們說人人都愛列表,老闆也動不動就讓你列個表。我們講了如何列出一個表,如何對表中的元素進行:增、刪、改等操作。這篇文章的內容,我們將進行更高階一點的操作。
  • python數據分析專題 (9):numpy基礎
    NumPy(Numerical Python的簡稱)是高性能科學計算和數據分析的基礎包。NumPy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。新手可能不理解這句話的含義,這個需要慢慢去理解 。總之,知道numpy是python數據分析最重要的基礎包就可以了。
  • Python做數據分析-簡潔、易讀、強大
    由於python是一種解釋性語言,大部分編譯型語言都要比python代碼運行速度快,有些同學就因此鄙視python。但是python是一門高級語言,其生產效率更高,時間通常比CPU的時間值錢,因此為了權衡利弊,考慮用python是值得的。
  • 量化交易入門
    隨著策略交易頻率的增加,技術能力越來越重要。因此,熟悉C/C++是重中之重。  一個量化交易系統包括四個主要部分:  策略識別:搜索策略、挖掘優勢(注2)、確定交易頻率。回溯測試:獲取數據、分析策略性能、剔除偏差。交割系統:連接經紀商、使交易自動化、使交易成本最小化。風險管理:最優資本配置、最優賭注或凱利準則、交易心理學。
  • 從零開始學量化(一):量化如何入門
    由於我用的比較多的是python,所以這裡以python為例進行說明。做量化用到的數據一般包括二級市場的各種數據、宏觀經濟的各種數據以及一些特殊需求的網頁數據,因此需要有通過python獲取數據的能力。
  • 量化交易是什麼?| 金色百科
    量化交易從龐大的歷史數據中海選能帶來超額收益的多種「大概率」事件以制定策略,用數量模型驗證及固化這些規律和策略,然後嚴格執行已固化的策略來指導投資,以求獲得可以持續的、穩定且高於平均收益的超額回報。 有數據顯示,國外成熟市場期貨程序化交易已佔據總交易量的70%-80%,而國內則剛剛起步。手工交易中交易者的情緒波動等弊端越來越成為盈利的障礙,而程序化交易天然而成的精準性、100%執行率則為它的盈利帶來了優勢。量化交易,有時候也稱自動化交易,極大地減少了投資者情緒波動的影響,避免在市場極度狂熱或悲觀的情況下做出非理性的投資決策。
  • python-時間系列型圖表-量化波形圖
    量化波形圖量化波形圖(stream graph)量化波形圖缺點繪製量化波形圖matplotlib包中stackplot()函數可以繪製量化波形圖