Ⅰ 如何使用python對基金投資收益進行回測
詳細建議您可以去看看掘金量化的Python介面文檔,我們team有位大神挺懶的就是用掘金來做回測,免費的~回測是否具有統計意義看你的策略邏輯和交易樣本的數量。個人認為可以直觀地觀測策略的盈虧特性,如適合什麼屬性的標的,在怎樣的市場環境下能盈利(或虧損)。因此對未來行情的表現具有一定指導意義。
要注意的是,參數擬合好後把策略扔到樣本外的歷史行情觀察表現,評估策略的適應性和泛化能力。
Ⅱ 使用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量化哪個平台可以回測模擬實盤還不要錢
Python量化投資框架:回測+模擬+實盤
Python量化投資 模擬交易 平台 1. 股票量化投資框架體系 1.1 回測 實盤交易前,必須對量化交易策略進行回測和模擬,以確定策略是否有效,並進行改進和優化。作為一般人而言,你能想到的,一般都有人做過了。回測框架也如此。當前小白看到的主要有如下五個回測框架: Zipline :事件驅動框架,國外很流行。缺陷是不適合國內市場。 PyAlgoTrade : 事件驅動框架,最新更新日期為16年8月17號。支持國內市場,應用python 2.7開發,最大的bug在於不支持3.5的版本,以及不支持強大的pandas。 pybacktest :以處理向量數據的方式進行回測,最新更新日期為2個月前,更新不穩定。 TradingWithPython:基於pybacktest,進行重構。參考資料較少。 ultra-finance:在github的項目兩年前就停止更新了,最新的項目在谷歌平台,無奈打不開網址,感興趣的話,請自行查看吧。 RQAlpha:事件驅動框架,適合A股市場,自帶日線數據。是米筐的回測開源框架,相對而言,個人更喜歡這個平台。 2 模擬 模擬交易,同樣是實盤交易前的重要一步。以防止類似於當前某券商的事件,半小時之內虧損上億,對整個股市都產生了惡劣影響。模擬交易,重點考慮的是程序的交易邏輯是否可靠無誤,數據傳輸的各種情況是否都考慮到。 當下,個人看到的,喜歡用的開源平台是雪球模擬交易,其次是wind提供的模擬交易介面。像優礦、米筐和聚寬提供的,由於只能在線上平台測試,不甚自由,並無太多感覺。 雪球模擬交易:在後續實盤交易模塊,再進行重點介紹,主要應用的是一個開源的easytrader系列。 Wind模擬交易:若沒有機構版的話,可以考慮應用學生免費版。具體模擬交易介面可參看如下鏈接:http://www.dajiangzhang.com/document 3 實盤 實盤,無疑是我們的終極目標。股票程序化交易,已經被限制。但對於萬能的我們而言,總有解決的辦法。當下最多的是破解券商網頁版的交易介面,或者說應用爬蟲爬去操作。對我而言,比較傾向於食燈鬼的easytrader系列的開源平台。對於機構用戶而言,由於資金量較大,出於安全性和可靠性的考慮,並不建議應用。 easytrader系列當前主要有三個組成部分: easytrader:提供券商華泰/傭金寶/銀河/廣發/雪球的基金、股票自動程序化交易,量化交易組件 easyquotation : 實時獲取新浪 / Leverfun 的免費股票以及 level2 十檔行情 / 集思路的分級基金行情 easyhistory : 用於獲取維護股票的歷史數據 easyquant : 股票量化框架,支持行情獲取以及交易 2. 期貨量化投資框架體系 一直待在私募或者券商,做的是股票相關的內容,對期貨這塊不甚熟悉。就根據自己所了解的,簡單總結一下。 2.1 回測 回測,貌似並沒有非常流行的開源框架。可能的原因有二:期貨相對股票而言,門檻較高,更多是機構交易,開源較少; 去年至今對期貨監管控制比較嚴,至今未放開,只能做些CTA的策略,另許多人興致泱泱吧。 就個人理解而言,可能wind的是一個相對合適的選擇。 2.2 模擬 + 實盤 vn.py是國內最為流行的一個開源平台。起源於國內私募的自主交易系統,2015年初啟動時只是單純的交易API介面的Python封裝。隨著業內關注度的上升和社區不斷的貢獻,目前已經一步步成長為一套全面的交易程序開發框架。如官網所說,該框架側重的是交易模塊,回測模塊並未支持。 能力有限,如果對相關框架感興趣的話,就詳看相關的鏈接吧。個人期望的是以RQAlpha為主搭建回測框架,以雪球或wind為主搭建模擬框架,用easy系列進行交易。
Ⅳ 用 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的量化代碼怎麼用到股市中
2010 ~ 2017 滬深A股各行業量化分析
在開始各行業的量化分析之前,我們需要先弄清楚兩個問題:
第一,A股市場上都有哪些行業;
第二,各行業自2010年以來的營收、凈利潤增速表現如何?
第一個問題
很好回答,我們使用JQData提供的獲取行業成分股的方法,輸入get_instries(name='sw_l1')
得到申萬一級行業分類結果如下:它們分別是:【農林牧漁、採掘、化工、鋼鐵、有色金屬、電子、家用電器、食品飲料、紡織服裝、輕工製造、醫葯生物、公用事業、交通運輸、房地產、商業貿易、休閑服務、綜合、建築材料、建築裝飾、電器設備、國防軍工、計算機、傳媒、通信、銀行、非銀金融、汽車、機械設備】共計28個行業。
第二個問題
要知道各行業自2010年以來的營收、凈利潤增速表現,我們首先需要知道各行業在各個年度都有哪些成分股,然後加總該行業在該年度各成分股的總營收和凈利潤,就能得到整個行業在該年度的總營收和總利潤了。這部分數據JQData也為我們提供了方便的介面:通過調用get_instry_stocks(instry_code=『行業編碼』, date=『統計日期』),獲取申萬一級行業指定日期下的行業成分股列表,然後再調用查詢財務的數據介面:get_fundamentals(query_object=『query_object』, statDate=year)來獲取各個成分股在對應年度的總營收和凈利潤,最後通過加總得到整個行業的總營收和總利潤。這里為了避免非經常性損益的影響,我們對凈利潤指標最終選取的扣除非經常性損益的凈利潤數據。
我們已經獲取到想要的行業數據了。接下來,我們需要進一步分析,這些行業都有什麼樣的增長特徵。
我們發現,在28個申萬一級行業中,有18個行業自2010年以來在總營收方面保持了持續穩定的增長。它們分別是:【農林牧漁,電子,食品飲料,紡織服裝,輕工製造,醫葯生物,公用事業,交通運輸,房地產,休閑服務,建築裝飾,電氣設備,國防軍工,計算機,傳媒,通信,銀行,汽車】;其他行業在該時間范圍內出現了不同程度的負增長。
那麼,自2010年以來凈利潤保持持續增長的行業又會是哪些呢?結果是只有5個行業保持了基業長青,他們分別是醫葯生物,建築裝飾,電氣設備,銀行和汽車。(註:由於申萬行業在2014年發生過一次大的調整,建築裝飾,電氣設備,銀行和汽車實際從2014年才開始統計。)
從上面的分析結果可以看到,真正能夠保持持續穩定增長的行業並不多,如果以扣非凈利潤為標准,那麼只有醫葯生物,建築裝飾,電氣設備,銀行和汽車這五個行業可以稱之為優質行業,實際投資中,就可以只從這幾個行業中去投資。這樣做的目的是,一方面,能夠從行業大格局層面避免行業下行的風險,繞開一個可能出現負增長的的行業,從而降低投資的風險;另一方面,也大大縮短了我們的投資范圍,讓投資者能夠專注於從真正好的行業去挑選公司進行投資。
「2010-2017」投資於優質行業龍頭的收益表現
選好行業之後,下面進入選公司環節。我們知道,即便是一個好的行業也仍然存在表現不好的公司,那麼什麼是好的公司呢,本文試圖從營業收入規模和利潤規模和來考察以上五個基業長青的行業,從它們中去篩選公司作為投資標的。
3.1按營業收入規模構建的行業龍頭投資組合
首先,我們按照營業收入規模,篩選出以上5個行業【醫葯生物,建築裝飾,電氣設備,銀行和汽車】從2010年至今的行業龍頭如下表所示:
通過以上行業分析和投資組合的歷史回測可以看到:
先選行業,再選公司,即使是從2015年股災期間開始投資,至2018年5月1號,仍然能夠獲得相對理想的收益,可以說,紅杉資本的賽道投資法則對於一般投資者還是比較靠譜的。
在構建行業龍頭投資組合時,凈利潤指標顯著優於營業收入指標,獲得的投資收益能夠更大的跑贏全市場收益率
市場是不斷波動的,如果一個投資者從股災期間開始投資,那麼即使他買入了上述優質行業的龍頭組合,在近3年也只能獲得12%左右的累計收益;而如果從2016年5月3日開始投資,那麼至2018年5月2日,2年時間就能獲得超過50%以上的收益了。所以,在投資過程中選擇時機也非常重要。
出自:JoinQuant 聚寬數據 JQData
Ⅶ python回測系統 模擬回測 最簡單量化回測系統有哪些支持期貨和股票
github上有一個jdhc簡單回測 是用python寫的比較簡單,需要設置些參數。
Ⅷ Python學習,量化交易的應該怎麼學
鏈接:http://pan..com/s/1djPqbCXnQrRpW0dgi2MCJg
華爾街學堂 python金融實務從入門到精通。最近,越來越多的研究員、基金經理甚至財務會計領域的朋友,向小編咨詢:金融人需要學Python么?事實上在現在,這已經不是一個問題了。Python已成為國內很多頂級投行、基金、咨詢等泛金融、商科領域的必備技能。中金公司、銀河證券、南方基金、銀華基金在招聘分析師崗位時,紛紛要求熟練掌握Python數據分析技能。
課程目錄:
Python在金融資管領域中的應用
安裝anaconda步驟
Python基礎知識
Python基礎金融分析應用
成為編程能手:Python知識進階
利用Python實現金融數據收集、分析與可視化
......