python量化分析應該怎麼做(Python量化)

本文目錄一覽:

wind量化平台python怎麼分析

使用Python插件,首先需要安裝python環境,其次是WindPy介面。

建議直接安裝Python(x,y),一堆東西都有了。

登錄wind之後,在菜單【量化】–【修復插件】–【修復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:庫很多,只有你找不到的,沒有你想不到,和量化這塊結合比較緊密的有:

NumpyScipy:科學計算庫,矩陣計算

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量化教程:不得不學的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線圖到這裡並沒有結束,後邊我們會考慮加入均線、成交量等元素,感興趣的同學歡迎關注哦!

python的量化代碼怎麼用到股市中

2010 ~ 2017 滬深A股各行業量化分析

在開始各行業的量化分析之前,我們需要先弄清楚兩個問題:

第一,A股市場上都有哪些行業;

第二,各行業自2010年以來的營收、凈利潤增速表現如何?

第一個問題

很好回答,我們使用JQData提供的獲取行業成分股的方法,輸入get_industries(name=’sw_l1′)

得到申萬一級行業分類結果如下:它們分別是:【農林牧漁、採掘、化工、鋼鐵、有色金屬、電子、家用電器、食品飲料、紡織服裝、輕工製造、醫藥生物、公用事業、交通運輸、房地產、商業貿易、休閑服務、綜合、建築材料、建築裝飾、電器設備、國防軍工、計算機、傳媒、通信、銀行、非銀金融、汽車、機械設備】共計28個行業。

第二個問題

要知道各行業自2010年以來的營收、凈利潤增速表現,我們首先需要知道各行業在各個年度都有哪些成分股,然後加總該行業在該年度各成分股的總營收和凈利潤,就能得到整個行業在該年度的總營收和總利潤了。這部分數據JQData也為我們提供了方便的介面:通過調用get_industry_stocks(industry_code=『行業編碼』, date=『統計日期』),獲取申萬一級行業指定日期下的行業成分股列表,然後再調用查詢財務的數據介面:get_fundamentals(query_object=『query_object』, statDate=year)來獲取各個成分股在對應年度的總營收和凈利潤,最後通過加總得到整個行業的總營收和總利潤。這裡為了避免非經常性損益的影響,我們對凈利潤指標最終選取的扣除非經常性損益的凈利潤數據。

我們已經獲取到想要的行業數據了。接下來,我們需要進一步分析,這些行業都有什麼樣的增長特徵。

我們發現,在28個申萬一級行業中,有18個行業自2010年以來在總營收方面保持了持續穩定的增長。它們分別是:【農林牧漁,電子,食品飲料,紡織服裝,輕工製造,醫藥生物,公用事業,交通運輸,房地產,休閑服務,建築裝飾,電氣設備,國防軍工,計算機,傳媒,通信,銀行,汽車】;其他行業在該時間範圍內出現了不同程度的負增長。

那麼,自2010年以來凈利潤保持持續增長的行業又會是哪些呢?結果是只有5個行業保持了基業長青,他們分別是醫藥生物,建築裝飾,電氣設備,銀行和汽車。(註:由於申萬行業在2014年發生過一次大的調整,建築裝飾,電氣設備,銀行和汽車實際從2014年才開始統計。)

從上面的分析結果可以看到,真正能夠保持持續穩定增長的行業並不多,如果以扣非凈利潤為標準,那麼只有醫藥生物,建築裝飾,電氣設備,銀行和汽車這五個行業可以稱之為優質行業,實際投資中,就可以只從這幾個行業中去投資。這樣做的目的是,一方面,能夠從行業大格局層面避免行業下行的風險,繞開一個可能出現負增長的的行業,從而降低投資的風險;另一方面,也大大縮短了我們的投資範圍,讓投資者能夠專註於從真正好的行業去挑選公司進行投資。

「2010-2017」投資於優質行業龍頭的收益表現

選好行業之後,下面進入選公司環節。我們知道,即便是一個好的行業也仍然存在表現不好的公司,那麼什麼是好的公司呢,本文試圖從營業收入規模和利潤規模和來考察以上五個基業長青的行業,從它們中去篩選公司作為投資標的。

3.1按營業收入規模構建的行業龍頭投資組合

首先,我們按照營業收入規模,篩選出以上5個行業【醫藥生物,建築裝飾,電氣設備,銀行和汽車】從2010年至今的行業龍頭如下表所示:

可以看到,雖然時間跨度很長,但是在這5個行業中,營收規模大的公司始終處於領先地位。它們分別是【上海醫藥,中國建築,上海電氣,工商銀行,上汽集團】。

由於各年度上市公司年報的公布截止日是4月30日,待所有上市公司年報公布後,確定行業龍頭,然後將這些行業龍頭構建成一個投資組合。那麼,持有投資組合的收益表現如何呢?為了保證投資時間的一致性,我們假設從2015年4月30號之後的第一個交易日開始投資,本金是100萬,每個標的投資權重相同,都是20%,並且忽略交易成本,那麼持有該組合至2018年4月30號的投資收益是多少呢?

我們利用JQData提供的獲取行情介面get_price(security=’股票代碼’, start_date=’開始交易日’, end_date=’投資截止日’, frequency=’daily’, fields=None, skip_paused=False, fq=’pre’),分別獲取組合中各個公司在各年度開始交易日和投資截止日(4.30之後的第一個交易日)的價格,得到最終的投資結果如下圖所示:

可以看到,除了2015.5.4-2016.5.3股災期間,該組合投資收益率和上證指數、滬深300指數有一個同步的大幅下跌外,從2016.5.3至2018年5.2,改組合連續兩年獲得了正收益,並在2016年大幅跑贏另外兩個基準指數20%以上。

聰明的讀者一定會問這樣一個問題,如果我從2018年5月2號開始,投資100萬買入這樣一個按營收規模衡量的行業龍頭組合,至2018年5月30號,收益表現會如何呢?答案是【3.04%】,而同期上證指數收益率和滬深300收益率分別是【-0.20%】和【-0.39%】,可以說表現非常之好了。具體收益如下表所示:

3.2按扣非凈利潤規模構建的行業龍頭投資組合

如果我們按照扣除非經常性損益的凈利潤來衡量,以上5個行業從2010年至今的行業龍頭又會是哪些呢,我們查出來如下表所示:

可以看到,按照扣非凈利潤來構建投資組合,醫藥生物和電氣設備兩個行業分別發生了行業龍頭的更替,如果要構建基於扣非凈利潤的投資組合,那麼我們就需要每年去調整我們的組合標的以保證組合中都是上一年度的行業龍頭。和上述投資回測方式一樣,我們從2015年5月4號買入這樣一個組合,並在之後每年4月30號之後的第一個交易日調整組合中的行業龍頭標的,最終的投資結果如下表所示:

可以看到,即使是2015.4.30-2016.5.3股災期間,該組合也跑贏上證指數和滬深300指數3%左右;而2016.5.3至2018年5.2期間更是大幅跑贏兩個基準指數高達30%以上。

同樣的,如果從2018年5月2號開始,投資100萬買入這樣一個按扣非凈利潤規模衡量的行業龍頭組合,至2018年5月30號,收益表現會如何呢?答案是【2.83%】,對比同期上證指數收益率和滬深300指數的【-0.20%】和【-0.39%】,仍然維持了非常良好的表現。具體收益如下表所示:

結論

通過以上行業分析和投資組合的歷史回測可以看到:

先選行業,再選公司,即使是從2015年股災期間開始投資,至2018年5月1號,仍然能夠獲得相對理想的收益,可以說,紅杉資本的賽道投資法則對於一般投資者還是比較靠譜的。

在構建行業龍頭投資組合時,凈利潤指標顯著優於營業收入指標,獲得的投資收益能夠更大的跑贏全市場收益率

市場是不斷波動的,如果一個投資者從股災期間開始投資,那麼即使他買入了上述優質行業的龍頭組合,在近3年也只能獲得12%左右的累計收益;而如果從2016年5月3日開始投資,那麼至2018年5月2日,2年時間就能獲得超過50%以上的收益了。所以,在投資過程中選擇時機也非常重要。

出自:JoinQuant 聚寬數據 JQData

用python做量化交易要學多久?

5個月。

python憑藉其突出的語言優勢與特性,已經融入到各行各業的每個領域。一般來說,python培訓需要脫產學習5個月左右,這樣的時長才能夠讓學員既掌握工作所需的技能,還能夠積累一定的項目經驗。當然如果你想要在人工智慧的路上越走越遠,則需要不斷的積累和學習。

python培訓的5個月時間裡,有相當大一部分時間是在實戰做項目,第一階段是為期一個月學習python的核心編程,主要是python的語言基礎和高級應用,幫助學員獲得初步軟體工程知識並樹立模塊化編程思想。學完這一階段的內容,學員已經能夠勝任python初級開發工程師的職位。

擴展資料:

Python開發基礎課程內容包括:計算機硬體、操作系統原理、安裝linux操作系統、linux操作系統維護常用命令、Python語言介紹、環境安裝、基本語法、基本數據類型、二進位運算、流程式控制制、字元編碼、文件處理、數據類型、用戶認證、三級菜單程序、購物車程序開發、函數、內置方法、遞歸、迭代器、裝飾器、內置方法、員工信息表開發、模塊的跨目錄導入、常用標準庫學習,b加密\re正則\logging日誌模塊等,軟體開發規範學習,計算器程序、ATM程序開發等。

參考資料來源:百度百科-Python量化交易從入門到實戰

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311387.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論