版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
項目五金融數(shù)據(jù)分析實例《Python數(shù)據(jù)分析》(新商科微課版)陳煜軍目錄Content項目主題和目標01項目設計和實現(xiàn)02項目小結03項目思考和練習04項目主題和目標01.【項目介紹】本項目的核心是利用Python進行金融數(shù)據(jù)分析,特別是股票市場的數(shù)據(jù)分析。項目旨在通過實際案例,讓學生掌握金融數(shù)據(jù)的獲取、處理、分析和可視化,并理解金融數(shù)據(jù)分析在投資決策中的作用?!舅刭|(zhì)目標】1.培養(yǎng)學生對金融數(shù)據(jù)分析的興趣和熱情。2.誠信做人,踏實做事,保證金融數(shù)據(jù)分析的合法的和真實性。3.增強學生對金融風險的認識,理解數(shù)據(jù)分析在風險管理中的作用。【知識目標】1.理解金融數(shù)據(jù)分析的基本概念和流程。2.掌握金融數(shù)據(jù)的基本統(tǒng)計方法和指標,如最高值、最低值、平均值、中位數(shù)等。3.學習如何使用Python的Tushare庫獲取金融數(shù)據(jù)。4.了解量化投資的基本概念和方法?!炯寄苣繕恕?.能夠使用Python進行金融數(shù)據(jù)的獲取和處理。2.掌握使用Numpy和Pandas進行數(shù)據(jù)分析和處理的基本技巧。3.學會使用Matplotlib進行數(shù)據(jù)可視化。4.能夠運用所學的知識和技能進行簡單的金融數(shù)據(jù)分析項目?!局R鏈接】量化投資是指通過數(shù)量化方式及計算機程序化發(fā)出買賣指令,以獲取穩(wěn)定收益為目的的交易方式。量化選股就是用數(shù)量化的方法選擇確定的投資組合、判斷某個公司是否值得買入的行為。采用量化選股的某個方法時,如果該公司滿足了該方法的條件,則放入股票池,如果不滿足,則從股票池中剔除。量化選股的方法有很多種,總的來說,可以分為公司估值法、趨勢法和資金法三大類。金融數(shù)據(jù)分析,首先要保證數(shù)據(jù)分析的真實性,要保證數(shù)據(jù)分析的目的,必須是合法的、合規(guī)的,誠信做人,踏實做事。其次要意識到,相對傳統(tǒng)的投資策略來說,需要更多的專業(yè)知識,可能面臨的系統(tǒng)風險更大。項目設計和實現(xiàn)2.【情景導入】小明是金融量化助理分析師,在工作中需要獲取股票行情,并將行情轉化為基礎的量化分析數(shù)據(jù),現(xiàn)在需要編寫Python程序,輔助完成股票數(shù)據(jù)的下載、分析和可視化解讀工作。【思維導圖】金融數(shù)據(jù)分析獲取股票行情數(shù)據(jù)任務一【任務說明】使用Tushare爬取[601166.SH]股票日線數(shù)據(jù),并保存到本地文件。Tushare是一個免費的財經(jīng)數(shù)據(jù)庫,擁有豐富的行業(yè)大數(shù)據(jù)內(nèi)容,如股票、基金、期貨、數(shù)字貨幣等行情數(shù)據(jù),公司財務、基金經(jīng)理等基本面數(shù)據(jù)等。/【任務設計】【任務實現(xiàn)】(1)注冊Tushare,完善個人信息,獲得接口TOKENTushare平臺在使用前必須先注冊,官方網(wǎng)站用戶注冊地址是/register,用瀏覽器打開后可以根據(jù)提示,用手機或者非gmail的郵箱免費注冊用戶賬號(圖P5-1),通過驗證后,即可登錄Tushare平臺。首次登陸需完善個人資料并獲得獎勵積分后,才能獲取A股日線行情。【任務實現(xiàn)】(2)安裝tushare軟件包PyCharm環(huán)境可查閱本書第二章關于軟件包安裝部分內(nèi)容,打開可用軟件包窗口在上方的搜索框輸入tushare,單擊左側查找列表中的【tushare】項,再單擊左下角的安裝軟件包按鈕,系統(tǒng)將開始安裝對應版本的tushare軟件包。【任務實現(xiàn)】(2)安裝tushare軟件包Anaconda環(huán)境可以從【開始】-【所有程序】(或者所有應用)中打開【Anaconda3】的AnacondaPrompt窗口,在命令行輸入pipinstalltushare,安裝對應版本的tushare軟件包,安裝過程中如果出現(xiàn)pip升級提示,可參考本教材第二章2.2.4小節(jié)的內(nèi)容處理。【任務實現(xiàn)】(3)生成數(shù)據(jù)獲取代碼用瀏覽器打開/webclient/,依次單擊Tushare數(shù)據(jù)工具網(wǎng)頁左側菜單欄的【滬深股票】-【行情數(shù)據(jù)】前的【+】按鈕,最后單擊【日線行情】,右側將打開數(shù)據(jù)調(diào)試和代碼生成工具。在入?yún)㈨椖康摹総s_code】文本框輸入601166.SH,單擊【生成代碼】即可生成Python運行代碼,代碼中已經(jīng)自動植入了剛注冊用戶的用戶授權TOKEN,單擊右下角的【復制】【任務實現(xiàn)】(3)生成數(shù)據(jù)獲取代碼運行后可將601166的日線行情數(shù)據(jù)爬取到本地【任務實現(xiàn)】(4)保存數(shù)據(jù)到文件數(shù)據(jù)讀取模塊實現(xiàn)數(shù)據(jù)源的切換和讀取,讀取csv文件使用pandas的read_csv函數(shù),在最終的實現(xiàn)時,可以在讀取文件前先通過os軟件包的path.exists方法判斷數(shù)據(jù)文件是否存在,如果不存在,則到tushare網(wǎng)站獲取數(shù)據(jù),并保存到本地文件,如果存在,則直接讀取本地csv文件。(5)數(shù)據(jù)讀取模塊:用to_csv函數(shù)可以將爬取的數(shù)據(jù)直接保存為逗號分隔的csv文本文件,同時,為了方便地爬取數(shù)據(jù),我們可以對程序函數(shù)化,通過輸入股票代碼和交易所類型兩個變量參數(shù),可以自動獲取股票日線行情并保存到本地?!救蝿招〗Y】從互聯(lián)網(wǎng)獲取數(shù)據(jù)可以使用爬蟲,也可以借助數(shù)據(jù)平臺。借助數(shù)據(jù)平臺獲取數(shù)據(jù),需要安裝數(shù)據(jù)平臺提供的軟件包,并仔細閱讀不同數(shù)據(jù)平臺的使用說明,參考范例程序或者使用代碼調(diào)試、生成工具完成代碼設計工作。獲取數(shù)據(jù)后,一般要保存為本地文件,并通過文件讀取模塊進行互聯(lián)網(wǎng)數(shù)據(jù)和本地文件數(shù)據(jù)源的切換和數(shù)據(jù)的讀取。金融數(shù)據(jù)分析股票行情數(shù)據(jù)的排序、索引和篩選任務二【任務說明】根據(jù)需要對數(shù)據(jù)進行排序,建立索引,并從數(shù)據(jù)中篩選出相應的數(shù)據(jù)記錄。例如:601166是2007年2月5日上市的股票,因此,我們?nèi)绻枰崛≡摴善本哂型暾匀荒甓鹊男星閿?shù)據(jù),就應該篩選2008年-2022年的數(shù)據(jù)記錄?!救蝿赵O計】【任務實現(xiàn)】(1)數(shù)據(jù)排序從分段代碼-1運行結果可以看到,數(shù)據(jù)是以交易日期降序排列,即初始值在末尾,所以我們需要使用sort_values方法對Dataframe的數(shù)據(jù)按照交易日期字段進行進行重排【任務實現(xiàn)】(2)建立索引目前的索引仍然是0,1,2……,根據(jù)需要,可以使用set_index方法將“trade_date”設置成索引?!救蝿諏崿F(xiàn)】(3)數(shù)據(jù)篩選基于前后截止日期的過濾需要用到多字段的篩選(又稱為復合條件的篩選),例如我們要提取2008-2022年的數(shù)據(jù),存入新建的daily0822變量中,可以使用pandas的dataframe進行多條件篩選方法過濾數(shù)據(jù)【任務小結】日常的數(shù)據(jù)分析中,經(jīng)常要對數(shù)據(jù)進行排序和索引,根據(jù)各種不同的條件從數(shù)據(jù)中篩選出相應的數(shù)據(jù)記錄。數(shù)據(jù)排序可以改變數(shù)據(jù)的排列方式;數(shù)據(jù)索引的合理使用能夠保證數(shù)據(jù)的唯一性、提高數(shù)據(jù)的使用性能;數(shù)據(jù)篩選是數(shù)據(jù)分析中使用頻率最高的操作之一。在Python的原生環(huán)境,常常是使用for循環(huán)在數(shù)據(jù)中進行條件篩選,導致代碼比較冗長且效率不高,而在pandas或者Numpy中,可以通過軟件包新增的函數(shù)方法,簡單、高效地實現(xiàn)。金融數(shù)據(jù)分析收盤價描述統(tǒng)計任務三【任務說明】根據(jù)獲取的601166收盤價格,計算常用描述統(tǒng)計指標。常用描述統(tǒng)計指標包括平均值、標準方差、四分位數(shù)和中位數(shù)等,利用pandas的統(tǒng)計函數(shù)可以直接計算出這些統(tǒng)計指標【任務設計】【任務實現(xiàn)】統(tǒng)計常用描述統(tǒng)計指標為了便于使用,可以將常用統(tǒng)計指標放置到一個自定義函數(shù)tongji中,并添加在if__name__=='__main__':主程序執(zhí)行模塊之前,直接輸入tongji()調(diào)用。需要注意的是,如果數(shù)據(jù)記錄有偶數(shù)條,通常取最中間的兩個數(shù)值的平均數(shù)作為中位數(shù),獲取所在位置就是空值?!救蝿招〗Y】描述統(tǒng)計簡單來說就是將一系列復雜的數(shù)據(jù),減少為幾個能起到描述作用的數(shù)字。用這些有代表性的數(shù)字,來觀察、描述數(shù)據(jù)的整體情況。金融數(shù)據(jù)分析統(tǒng)計價格波動和成交量加權平均價格任務四【任務說明】根據(jù)獲取的601166數(shù)據(jù),統(tǒng)計價格波動和成交量加權平均價格?!救蝿赵O計】【任務實現(xiàn)】(1) 統(tǒng)計價格波動
【價格波動】是要獲取股票的歷史最低價和最高價區(qū)間,準確地說是股票的最低價的最小值和股票的最高價的最大值區(qū)間。這個區(qū)間可以幫助投資者理解股票價格的波動性和潛在的風險。這個區(qū)間并不是一個特定的財務指標,而是一個由兩個數(shù)據(jù)點定義的價格范圍,用于展示股票在過去某一時間段內(nèi)的價格波動?!救蝿諏崿F(xiàn)】(2)計算股價的中間值股票的歷史最低價和最高價的平均值是股價的中間值,【中間值】通常不作為一個獨立的財務指標在投資分析中直接使用。然而,這個計算可以被視為一種簡單的方式來估計股票的潛在價值區(qū)域,在某些情況下,投資者或分析師可能會參考這個平均值來評估股票當前價格相對于其歷史價格波動范圍的位置。如果當前價格接近歷史最高價和最低價的平均值,這可能被視為股票處于其歷史交易范圍的中間地帶?!救蝿諏崿F(xiàn)】(3)計算收盤價成交量加權平均價格【加權平均值】是將各數(shù)值乘以相應的權數(shù),然后加總求和得到總體值,再除以總的單位數(shù)。pandas沒有內(nèi)置的加權平均值函數(shù),最簡單的方式是借助Numpy計算np.array函數(shù)完成數(shù)據(jù)類型轉化,np.array()的作用就是把列表轉化為Numpy的numpy.ndarray類型的數(shù)組,能夠使用高性能的科學計算包對數(shù)組進行處理?!救蝿諏崿F(xiàn)】【收盤價成交量加權平均價格(簡稱VWAP)】
VWAP被認為是一個衡量市場平均價格的較好指標,因為它考慮了每一筆成交的成交量,從而能夠反映出市場的真實交易情況。如果股票的當前價格高于VWAP,可能表明股票處于買入壓力之中;如果當前價格低于VWAP,可能表明股票處于賣出壓力之中。【任務實現(xiàn)】項目二任務一分段參考代碼P5.2金融分析-3.py【任務小結】價格波動、中間值和成交量加權平均價格是股票量化分析中的一些基本指標,Numpy在進行一些諸如加權平均值之類的計算時比pandas更具優(yōu)勢,所以在實際操作中,可以根據(jù)需要將pandas數(shù)據(jù)類型轉換為Numpy數(shù)據(jù)類型,再使用Numpy函數(shù)進行科學計算。金融數(shù)據(jù)分析月收益率分析任務五【任務說明】對601166股票進行月收益率分析研究,畫出月收益率曲線圖,并標注月收益率高于上四分位價格的月份。【任務設計】【任務實現(xiàn)】(1)篩選完整月份數(shù)據(jù)601166股票是2007年2月5日上市,因此第一個完整的月份數(shù)據(jù)從2007年3月1日開始,同理,本次數(shù)據(jù)采集日期的上一個月的最后一天,為完整月份數(shù)據(jù)的截止日期。【任務實現(xiàn)】(2)獲取收盤價的日收益率股票的日收益率=(今日收盤價-昨日收盤價)÷昨日收盤價這里需要用到pandas中的pct_change()函數(shù),pct_change()可以計算當前數(shù)組中元素與先前元素的相差百分比(第一條數(shù)據(jù)因為之前沒有數(shù)據(jù)可以比較,輸出NaN空值)。為了防止計算后數(shù)據(jù)存在缺失值或者空值影響分析結果,可以使用dropna()方法刪除帶有缺失值的數(shù)據(jù)。將(1)、(2)步打包成一個自定義函數(shù),加上數(shù)據(jù)過濾參數(shù)start、end實現(xiàn)日期起止【任務實現(xiàn)】(3)索引日期規(guī)格化獲取日收益率數(shù)據(jù)后,需要將日期規(guī)格化為pandas時間序列類型,才能重新采樣為月收益率。之前的任務中,交易日期已轉化為整型數(shù)值索引,通過pd.to_datetime函數(shù)可以轉換成時間序列類型索引。常用參數(shù)是format,用下表日期格式化字符串定義原始數(shù)據(jù)格式。本任務中,日期格式為20070301,對應'%Y%m%d'【任務實現(xiàn)】(4)將日收益率重新采樣轉化為月收益率數(shù)據(jù)重采樣是將時間序列從一個頻率轉換至另一個頻率的過程,它主要有兩種實現(xiàn)方式,分別是降采樣和升采樣,降采樣指將高頻率的數(shù)據(jù)轉換為低頻率,升采樣則與其恰好相反,在本任務中我們需要用到降采樣,降高頻率的日收益率轉換成低頻率的月收益率。pandas的resample可以實現(xiàn)數(shù)據(jù)的重采樣。【任務實現(xiàn)】(5)月收益率可視化
Python可視化首先要導入matplotlib軟件包,包中的plot方法一般是用來繪制線條的,包括直線、折線等,mnthly_ret數(shù)組直接調(diào)用plot(),即可繪制簡單的折線圖?!救蝿諏崿F(xiàn)】(6)標識出月收益大于上四分位價格的月份運用任務二和三介紹的方法,過濾出月收益大于上四分位價格的月份。并保存到mdates變量中【任務實現(xiàn)】(6)標識出月收益大于上四分位價格的月份遍歷mdates數(shù)組,并用plt.scatter(x,y,color='r')散點圖方法在坐標(x,y)位置繪制紅色點?!救蝿諏崿F(xiàn)】(7)添加圖表元素并可視化輸出使用plt.title添加標題,plt.grid()添加網(wǎng)格線,并為圖表軸設置標題,plt.xlabel和plt.ylabel設置x、y軸標題?!救蝿招〗Y】【股票月收益率】反映了股票在一個月內(nèi)的漲跌幅度,可以幫助投資者評估股票的風險和收益。如果股票月收益率為正數(shù),表明股票在這個月內(nèi)上漲了;如果股票月收益率為負數(shù),表明股票在這個月內(nèi)下跌了,股票月收益率折線圍繞均線上下波動。本任務中我們學習了月收益率的計算方法,同時運用matplotlib軟件包進行了基本數(shù)據(jù)可視化和對收益率超過上四分位價格的月份進行紅點標識。通過學習能鞏固數(shù)據(jù)統(tǒng)計和過濾方法,掌握數(shù)據(jù)重采樣流程,掌握利用matplotlib進行數(shù)據(jù)可視化時的數(shù)據(jù)傳遞、標題、坐標軸、圖例配置以及折線、散點圖繪制的方法。金融數(shù)據(jù)分析月份效應研究與可視化任務六【任務說明】對601166股票進行月份效應研究,實證研究發(fā)現(xiàn),在大多數(shù)的證券市場中存在某個或某些特定月份的平均收益率年復一年顯著
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025四川德陽綿竹市什地鎮(zhèn)衛(wèi)生院非全日制工作人員招聘4人筆試重點試題及答案解析
- 房車借車合同范本
- 小廠退股協(xié)議書
- 幼犬購買協(xié)議書
- 小孩病儀協(xié)議書
- 征遷協(xié)議書樣本
- 藥品保證協(xié)議書
- 幼兒供貨協(xié)議書
- 資料訂購協(xié)議書
- 贈予繼承協(xié)議書
- 火災自動報警系統(tǒng)故障應急預案
- 人貨電梯施工方案
- 南大版一年級心理健康第7課《情緒小世界》課件
- 光大金甌資產(chǎn)管理有限公司筆試
- 算力產(chǎn)業(yè)園項目計劃書
- 塔式起重機安全管理培訓課件
- 老年髖部骨折快速康復治療
- 【初中地理】跨學科主題學習探 索外來食料作物的傳播史課件-2024-2025學年七年級上學期(人教版2024)
- 四川省南充市2024-2025學年高一地理上學期期末考試試題含解析
- 化學品管理控制程序
- 探索·鄱陽湖智慧樹知到期末考試答案2024年
評論
0/150
提交評論