① python 離散型數據怎麼量化
python 離散型數據量化的方法可以採用變數轉換方法來解決,分類數據和連續數據需要參與模型計算,並且通常會轉換為數值數據。
當然,某些演算法允許這些數據直接參與計算,例如分類演算法中的決策樹和關聯規則。將非數字數據轉換為數字數據的最佳方法是將所有類別或有序變數的范圍從一列多值形式轉換為僅包含真值的多列。可以將True值傳遞給True,False或0、1。這種符號轉換方法有時稱為真值轉換。
具體代碼是:
import pandas as pddata = [.
['yellow', 'S', 10.1, 'class1'].
['red', 'M', 13.5, 'class1'].
['red', 'M', 15.1, 'class2'].
['blue', 'XL', 15.3, 'class2'.
df = pd.DataFrame(.
data,columns=['color', 'size', 'prize', 'class'].
python 離散型數據用連續數據處理的方法是:
1、等寬法:若數據區間為0~20,設置箱子個數為4個,則等寬法會將數據裝入4個箱子:[0,5],(5,10],(10,15],(15,20],並且可以設置每個箱子的名字,如1、2、3、4。
等寬法缺點是分箱結果會受到最值影響。並且需要人為指定箱子個數,比較依賴於經驗。分箱結果會直接影響後續分類、聚類的結果。
2、等頻法:等頻法是指將一組數據分解成n個部分後,每個部分的記錄數量是一樣多的。等頻法常用pandas庫中的qcut()函數進行處理。
② python 為什麼適合做量化
python是一個完全面對對象的可腳本,可二進制編譯運行的高級語言。一般以腳本方式運行,運行調試完可生成二進制代碼來保證運行的速度。代碼非常簡潔
擁有無與倫比的配套標准庫。一般廣泛用於各種領域。尤其在科學界流行。
在python環境下,有科學運算庫,界面庫,各種演算法庫。非常適合用於科學研究。
matlab中的金融工具雖然比較全面,也比較好用,不過像我這種喜歡搞些新演算法。同時還要和交易介面編程的就非常喜愛python了。
python的演算法庫 :numpy ,scipy等,用於統計的庫。
python的數據可視化庫 matplotlib(上面那個貼圖就是例子),PyQt,pygtk,pyside等等,前面說的都是二維的。三維的VTK等等。
而且今後和CTP等交易平台對接的話,matlab就無能為力了,到時候再學python豈不是晚了。
③ 用Python怎麼做量化投資
本文將會講解量化投資過程中的基本流程,量化投資無非這幾個流程,數據輸入------策略書寫------回測輸出
其中策略書寫部分還涉及到編程語言的選擇,如果不想苦惱數據輸入和回測輸出的話,還要選擇回測平台。
一、數據
首先,必須是數據,數據是量化投資的基礎
如何得到數據?
Wind:數據來源的最全的還是Wind,但是要付費,學生可以有免費試用的機會,之後還會和大家分享一下怎樣才Wind里摘取數據,Wind有很多軟體的借口,Excel,Matlab,Python,C++。
預測者網:不經意間發現,一個免費提供股票數據網站 預測者網,下載的是CSV格式
TB交易開拓者:Tradeblazer,感謝@孫存浩提供數據源
TuShare:TuShare -財經數據介麵包,基於Python的財經數據包,利用Python進行摘取
如何存儲數據?
Mysql
如何預處理數據?
空值處理:利用DataFrame的fill.na()函數,將空值(Nan)替換成列的平均數、中位數或者眾數
數據標准化
數據如何分類?
行情數據
財務數據
宏觀數據
二、計算語言&軟體
已經有很多人在網上詢問過該選擇什麼語言?筆者一開始用的是matlab,但最終選擇了python
python:庫很多,只有你找不到的,沒有你想不到,和量化這塊結合比較緊密的有:
Numpy&Scipy:科學計算庫,矩陣計算
Pandas:金融數據分析神器,原AQR資本員工寫的一個庫,處理時間序列的標配
Matplotlib:畫圖庫
scikit-learn:機器學習庫
statsmodels:統計分析模塊
TuShare:免費、開源的python財經數據介麵包
Zipline:回測系統
TaLib:技術指標庫
matlab:主要是矩陣運算、科學運算這一塊很強大,主要有優點是WorkSpace變數可視化
python的Numpy+Scipy兩個庫完全可以替代Matlab的矩陣運算
Matplotlib完克Matlab的畫圖功能
python還有很多其他的功能
pycharm(python的一款IDE)有很棒的調試功能,能代替Matlab的WorkSpace變數可視化
推薦的python學習文檔和書籍
關於python的基礎,建議廖雪峰Python 2.7教程,適合於沒有程序基礎的人來先看,涉及到python的基本數據類型、循環語句、條件語句、函數、類與對象、文件讀寫等很重要的基礎知識。
涉及到數據運算的話,其實基礎教程沒什麼應用,python各類包都幫你寫好了,最好的學習資料還是它的官方文檔,文檔中的不僅有API,還會有寫實例教程
pandas文檔
statsmodels文檔
scipy和numpy文檔
matplotlib文檔
TuShare文檔
第二,推薦《利用Python進行數據分析》,pandas的開發初衷就是用來處理金融數據的
三、回測框架和網站
兩個開源的回測框架
PyAlgoTrade - Algorithmic Trading
Zipline, a Pythonic Algorithmic Trading Library
④ 使用python做量化交易策略測試和回驗,有哪些比較成熟一些的庫
numpy
介紹:一個用python實現的科學計算包。包括:1、一個強大的N維數組對象Array;2、比較成熟的(廣播)函數庫;3、用於整合C/C++和Fortran代碼的工具包;4、實用的線性代數、傅里葉變換和隨機數生成函數。numpy和稀疏矩陣運算包scipy配合使用更加方便。
scipy
介紹:SciPy是一款方便、易於使用、專為科學和工程設計的Python工具包。它包括統計、優化、線性代數、傅里葉變換、信號和圖像處理、常微分方程求解等等。
pandas
介紹:Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。你很快就會發現,它是使Python成為強大而高效的數據分析環境的重要因素之一。
quantdsl
介紹: quantdsl包是Quant DSL語法在Python中的一個實現。Quant DSL 是財務定量分析領域專用語言,也是對衍生工具進行建模的功能編程語言。Quant DSL封裝了金融和交易中使用的模型(比如市場動態模型、最小二乘法、蒙特卡羅方法、貨幣的時間價值)。
statistics
介紹:python內建的統計庫,該庫提供用於計算數值數據的數學統計的功能。
PyQL
介紹: PyQL構建在Cython之上,並在QuantLib之上創建一個很淺的Pythonic層,是對QuantLib的一個包裝,並利用Cython更好的性能。
⑤ 使用python做量化交易策略測試和回驗,有哪些比較成熟一些的庫
可以嘗試一下JoinQuant: 聚寬,人人皆為寬客
詳細的API文檔:API文檔 - JoinQuant
免費提供IPython Notebook研究平台,提供分鍾級數據,採用Docker技術隔離,資源獨立、安全性更高、性能更好,同步支持Python2、Python3。
免費提供滬深A股、ETF的歷史交易數據,支持基於日級、分鍾級的精準回測。
免費提供最准確、實時的滬深A股、ETF模擬交易工具,支持基於tick級的模擬交易。
為量化愛好者提供線上交流社區,支持一鍵克隆策略,便於用戶交流量化策略、學習量化知識,一起成長。
基於2005年至今完整的Level-2數據,上市公司財務數據,包含完整的停復牌、復權、退市等信息,盤後及時更新。
⑥ Python量化教程:不得不學的K線圖「代碼復制可用」
不管是對量化分析師還是普通的投資者來說,K線圖(蠟燭圖)都是一種很經典、很重要的工具。在K線圖中,它會繪制每天的最高價、最低價、開盤價和收盤價,這對於我們理解股票的趨勢以及每天的多空對比很有幫助。
一般來說,我們會從各大券商平台獲取K線圖,但是這種情況下獲得的K線圖往往不能靈活調整,也不能適應復雜多變的生產需求。因此我們有必要學習一下如何使用Python繪制K線圖。
需要說明的是,這里mpl_finance是原來的matplotlib.finance,但是現在獨立出來了(而且好像沒什麼人維護更新了),我們將會使用它提供的方法來繪制K線圖;tushare是用來在線獲取股票數據的庫;matplotlib.ticker中有個FuncFormatter()方法可以幫助我們調整坐標軸;matplotlib.pylab.date2num可以幫助我們將日期數據進行必要的轉化。
我們以上證綜指18年9月份以來的行情為例。
我們先使用mpl_finance繪制一下,看看是否一切正常。
可以看到,所有的節假日包括周末,在這里都會顯示為空白,這對於我們圖形的連續性非常不友好,因此我們要解決掉他們。
可以看到,空白問題完美解決,這里我們解釋一下。由於matplotlib會將日期數據理解為 連續數據 ,而連續數據之間的間距是有意義的,所以非交易日即使沒有數據,在坐標軸上還是會體現出來。連續多少個非交易日,在坐標軸上就對應了多少個小格子,但這些小格子上方並沒有相應的蠟燭圖。
明白了它的原理,我們就可以對症下葯了。我們可以給橫坐標(日期)傳入連續的、固定間距的數據,先保證K線圖的繪制是連續的;然後生成一個保存有正確日期數據的列表,接下來,我們根據坐標軸上的數據去取對應的正確的日期,並替換為坐標軸上的標簽即可。
上邊format_date函數就是這個作用。由於前邊我們給dates列生成了從0開始的序列連續數據,因此我們可以直接把它當作索引,從真正的日期列表裡去取對應的數據。在這里我們要使用matplotlib.ticker.FuncFormattter()方法,它允許我們指定一個格式化坐標軸標簽的函數,在這個函數里,我們需要接受坐標軸的值以及位置,並返回自定義的標簽。
你學會了嗎?
當然,一個完整的K線圖到這里並沒有結束,後邊我們會考慮加入均線、成交量等元素,感興趣的同學歡迎關注哦!