證券投資分析v6-教學(xué)案例的Python腳本 王德宏_第1頁(yè)
證券投資分析v6-教學(xué)案例的Python腳本 王德宏_第2頁(yè)
證券投資分析v6-教學(xué)案例的Python腳本 王德宏_第3頁(yè)
證券投資分析v6-教學(xué)案例的Python腳本 王德宏_第4頁(yè)
證券投資分析v6-教學(xué)案例的Python腳本 王德宏_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

王德宏《證券投資分析》教學(xué)案例的Python腳本本文件包括兩部分內(nèi)容:第一部分是Python案例輔助分析系統(tǒng)的使用方法,內(nèi)容涵蓋Python軟件的安裝以及該系統(tǒng)的安裝和測(cè)試方法;第二部分是基于該系統(tǒng)實(shí)現(xiàn)的各章案例的具體腳本。在使用各章案例腳本之前,需要先行閱讀該系統(tǒng)的使用方法。每個(gè)案例的實(shí)現(xiàn)過(guò)程均由數(shù)條Python腳本組成。大多數(shù)案例的腳本中包括四個(gè)步驟:確定案例的條件,聯(lián)網(wǎng)獲取證券數(shù)據(jù),進(jìn)行數(shù)據(jù)處理、分析和回歸,以及使用圖表進(jìn)行結(jié)果展示。需要注意的是,部分案例中的證券數(shù)據(jù)來(lái)源于雅虎財(cái)經(jīng)等網(wǎng)站,使用這些網(wǎng)站的原因是它們能夠免費(fèi)提供全球主要證券市場(chǎng)的實(shí)時(shí)信息。如果無(wú)法訪問(wèn)這些網(wǎng)站,相關(guān)案例的腳本將會(huì)無(wú)法運(yùn)行,并提示數(shù)據(jù)獲取失敗信息。讀者訪問(wèn)這些網(wǎng)站需要自行承擔(dān)相關(guān)風(fēng)險(xiǎn),特此提示。

Python案例分析輔助系統(tǒng)的使用方法【內(nèi)容介紹】Python軟件包的安裝方法;證券投資案例分析輔助系統(tǒng)SIAT的安裝方法、常見(jiàn)問(wèn)題及其解決方法。1證券投資分析輔助系統(tǒng)SIAT概述證券投資分析輔助系統(tǒng)SIAT(securityinvestmentanalysistoolkits)是專(zhuān)門(mén)為課程配套的一系列輔助工具的統(tǒng)稱(chēng),由本書(shū)作者在教學(xué)和研究過(guò)程中總結(jié)出來(lái)的大量實(shí)用工具組成。本書(shū)大多數(shù)分析案例中的圖表都由SIAT生成。1.SIAT支持的產(chǎn)品與功能股票,債券,基金,期貨,期權(quán),證券市場(chǎng),宏觀經(jīng)濟(jì),財(cái)務(wù)分析,投資組合,資產(chǎn)定價(jià),期權(quán)定價(jià),在險(xiǎn)價(jià)值,預(yù)期不足,流動(dòng)性風(fēng)險(xiǎn),可持續(xù)發(fā)展風(fēng)險(xiǎn)ESG,風(fēng)險(xiǎn)調(diào)整收益等領(lǐng)域。SIAT支持的產(chǎn)品和功能仍在不斷擴(kuò)展中,每一次的版本升級(jí)都會(huì)帶來(lái)更多功能,并使得使用起來(lái)更方便更穩(wěn)定。2.SIAT的工作原理SIAT由若干產(chǎn)品和功能模塊組成,其基本工作原理可分為十個(gè)主要步驟,如圖A-1所示。圖A-1SIAT的基本工作原理如圖所示,第①步:按照本附錄的方法安裝Python和SIAT之后,使用者在Python命令窗口中(例如JupyterNotebook)輸入SIAT指令(例如,描述一家上市公司近期股票價(jià)格的變動(dòng)趨勢(shì))。第②步:SIAT將使用者的指令轉(zhuǎn)化為標(biāo)準(zhǔn)Python語(yǔ)句。如果不需要證券基礎(chǔ)數(shù)據(jù)即可直接進(jìn)行計(jì)算分析,則轉(zhuǎn)到⑧。第③步:如果需要證券基礎(chǔ)數(shù)據(jù)(例如最新的股價(jià)信息、股利信息或者股票分拆信息)才能進(jìn)行計(jì)算分析,則需要啟用互聯(lián)網(wǎng)數(shù)據(jù)爬蟲(chóng)獲取數(shù)據(jù)。第④步:使用爬蟲(chóng)搜索互聯(lián)網(wǎng)數(shù)據(jù)源獲得需要的證券基礎(chǔ)數(shù)據(jù)信息。這些數(shù)據(jù)源分為國(guó)內(nèi)數(shù)據(jù)源和國(guó)外數(shù)據(jù)源兩大類(lèi)別。第⑤步:使用國(guó)外互聯(lián)網(wǎng)數(shù)據(jù)源,獲取國(guó)外市場(chǎng)和證券的基礎(chǔ)數(shù)據(jù)。SIAT使用的國(guó)外數(shù)據(jù)源主要包括雅虎財(cái)經(jīng)、經(jīng)濟(jì)合作與發(fā)展組織(OECD)網(wǎng)站、國(guó)際貨幣基金組織(IMF)網(wǎng)站、世界銀行(WB)網(wǎng)站以及美聯(lián)儲(chǔ)經(jīng)濟(jì)數(shù)據(jù)庫(kù)(FRED)等。由于各種原因,此步驟中獲取數(shù)據(jù)失敗的概率可能較高。如遇失敗,可以在不同時(shí)間段進(jìn)行再次嘗試。注意:部分國(guó)外數(shù)據(jù)源需要通過(guò)代理才能訪問(wèn)。第⑥步:使用國(guó)內(nèi)互聯(lián)網(wǎng)數(shù)據(jù)源,獲取國(guó)內(nèi)市場(chǎng)和證券的基礎(chǔ)數(shù)據(jù)。SIAT使用的國(guó)內(nèi)數(shù)據(jù)源主要包括新浪財(cái)經(jīng)、東方財(cái)富、同花順、天天基金、上海證券交易所網(wǎng)站、深證證券交易所網(wǎng)站、中國(guó)基金業(yè)協(xié)會(huì)網(wǎng)站以及中國(guó)銀行間市場(chǎng)協(xié)會(huì)網(wǎng)站等。第⑦步:將爬蟲(chóng)搜索到的證券基礎(chǔ)數(shù)據(jù)下載至本地電腦中暫存,用于下一步的數(shù)據(jù)處理過(guò)程。第⑧步:根據(jù)使用者輸入的分析指令,首先數(shù)據(jù)進(jìn)行必要的整理和轉(zhuǎn)換,然后進(jìn)行模型計(jì)算或回歸分析處理,生成結(jié)果數(shù)據(jù)。第⑨步:如果需要,將結(jié)果數(shù)據(jù)變換為表格或圖形(曲線、折線、縱向柱狀圖或水平柱狀圖等)。第⑩步:將結(jié)果數(shù)據(jù)展示到電腦界面上,供使用者分析。注意,如果使用者的互聯(lián)網(wǎng)連接速度較慢、網(wǎng)絡(luò)連接不穩(wěn)定(特別是使用校園無(wú)線網(wǎng)連接時(shí))或者某些網(wǎng)絡(luò)繁忙時(shí)段都有可能導(dǎo)致爬蟲(chóng)抓取數(shù)據(jù)失敗,進(jìn)而導(dǎo)致整個(gè)SIAT命令處理失敗。通常的解決方法是,尋找無(wú)線網(wǎng)信號(hào)穩(wěn)定的地方上網(wǎng),或者在不同時(shí)段進(jìn)行再次嘗試。3.SIAT的主要特色(1)自動(dòng)尋找數(shù)據(jù)。許多證券投資分析都需要大量的基礎(chǔ)數(shù)據(jù)作為支撐,例如股票的基本信息、股價(jià)時(shí)間序列、財(cái)務(wù)報(bào)表信息、利率、匯率、市場(chǎng)信息、各種因子等。SIAT能夠自動(dòng)上網(wǎng)尋找分析工作需要的最新數(shù)據(jù)。(2)自動(dòng)完成大量復(fù)雜的計(jì)算、解方程和模型回歸過(guò)程。許多分析工作需要成百上千次地進(jìn)行回歸、解多元方程、進(jìn)行數(shù)值逼近以及模擬成千上萬(wàn)種不同的組合路徑等。SIAT能夠充分利用現(xiàn)代計(jì)算機(jī)多核并行處理的特點(diǎn),迅速完成手工處理難以完成的巨大工作量。SIAT內(nèi)嵌了本書(shū)的絕大部分分析算法,能夠通過(guò)命令“一鍵”給出許多證券投資分析所需要的指標(biāo)。(3)在需要時(shí)自動(dòng)繪制結(jié)果圖表。特別是針對(duì)時(shí)間序列和趨勢(shì)分析方面,SIAT能夠直接繪制直觀易懂的圖表,并在需要是進(jìn)行比對(duì),供分析師判斷。(4)SIAT由Python語(yǔ)言制作而成SIAT基于Python3在MSIAT基于Python3在MicrosoftWindows上制作和測(cè)試,理論上可以兼容其后續(xù)版本;理論上也應(yīng)該能夠兼容MacOSX和Linux,但未經(jīng)過(guò)充分測(cè)試,特此提醒。4.SIAT的下載與安裝使用SIAT之前需要進(jìn)行下載和安裝。整個(gè)過(guò)程可分為兩大步驟:(1)安裝Python語(yǔ)言的運(yùn)行環(huán)境Anaconda。Anaconda是一個(gè)流行的Python運(yùn)行環(huán)境,其特點(diǎn)是將常用的標(biāo)準(zhǔn)插件進(jìn)行了打包,非常適合初學(xué)Python的人使用;另外,其中還包括一個(gè)簡(jiǎn)單易用的Python指令編輯器JupyterNotebook。(2)安裝SIAT本身。讀者使用SIAT時(shí)可以在JupyterNotebook中輸入命令,并觀察運(yùn)行結(jié)果,還可以將SIAT命令和結(jié)果圖表一起保存供日后使用。2在Windows系統(tǒng)下安裝SIAT在Windows系統(tǒng)下安裝SIAT分為四個(gè)具體步驟:下載Anaconda;安裝Anaconda;安裝SIAT;測(cè)試SIAT是否安裝成功。2.1下載Anaconda個(gè)人免費(fèi)版的Anaconda下載頁(yè)面?zhèn)€人免費(fèi)版的Anaconda下載地址:個(gè)人免費(fèi)版的Anaconda下載地址:/products/individual圖A-2個(gè)人免費(fèi)版的Anaconda下載頁(yè)面首先選擇Windows版本,再根據(jù)讀者Windows系統(tǒng)的情況再選擇64位或32為版本下載。如果讀者不確定自己的Windows系統(tǒng)到底是32位的還是64位的,則可以下載32位版本的Anaconda,該版本既可以用于32位版的Windows也可以用于64位版的Windows,但可能不能充分發(fā)揮64位版Windows的性能。2.2安裝Anaconda點(diǎn)擊下載的Anaconda安裝文件即可開(kāi)始安裝,如圖A-3所示。一般情況下,直接一路點(diǎn)擊下一步(Next>)按鈕即可直接安裝成功,無(wú)需其他動(dòng)作。圖A-3Anaconda的安裝畫(huà)面安裝完成后,在Windows系統(tǒng)的Start(開(kāi)始)菜單上出現(xiàn)Anaconda圖標(biāo),如圖A-4所示。圖A-4Windows開(kāi)始菜單中的Anaconda圖標(biāo)其中,AnacondaPrompt用于命令行交互窗口,可用于直接輸入命令增加、更新或刪除Python的功能插件;JupyterNotebook是一個(gè)基于瀏覽器頁(yè)面的交互式Python運(yùn)行環(huán)境,非常適合面向教學(xué)的演示用途,SIAT在此實(shí)現(xiàn)證券投資分析功能,適合缺少Python經(jīng)驗(yàn)的讀者操作;Spyder是一個(gè)集成式的Python開(kāi)發(fā)和運(yùn)行環(huán)境,功能更加強(qiáng)大,但使用起來(lái)也遠(yuǎn)比JupyterNotebook復(fù)雜,更適合有經(jīng)驗(yàn)的人員使用;如果在使用過(guò)程中因?yàn)槟撤N原因Spyder出現(xiàn)功能異常,可以使用ResetSpyderSettings將Spyder恢復(fù)到安裝時(shí)的狀態(tài)。Anaconda安裝中的常見(jiàn)問(wèn)題(1)如果Windows開(kāi)始菜單中未能見(jiàn)到上圖中的Anaconda項(xiàng)目,說(shuō)明Anaconda的安裝并未完全成功。這時(shí)可以嘗試重新安裝:首先利用Windows系統(tǒng)的卸載功能徹底刪除Anaconda;卸載完成后,重新安裝Anaconda。與之前默認(rèn)只是一路點(diǎn)擊下一步(Next>)按鈕不同,可嘗試點(diǎn)選Anaconda安裝界面上所有復(fù)選框中的選項(xiàng)。(2)安裝后,Anaconda項(xiàng)目中的AnacondaNavigator、JupyterNotebook和Spyder均不能正常啟動(dòng)或閃退。原因是安裝過(guò)程中可能出現(xiàn)了未知的問(wèn)題,但安裝程序并未提示問(wèn)題,這時(shí)就需要進(jìn)行Anaconda修復(fù)。修復(fù)方法是:首先,以管理員權(quán)限啟動(dòng)Anaconda項(xiàng)目中的AnacondaPrompt,然后依次執(zhí)行下列命令:condaupdatecondacondaupdateanaconda-navigatoranaconda-navigator–resetcondaupdate-fanaconda-client(3)安裝后,Anaconda項(xiàng)目中的Spyder不能正常啟動(dòng)或閃退,而其他程序可以正常使用。原因是Spyder里面的參數(shù)發(fā)生了差錯(cuò),解決方法是運(yùn)行一下Anaconda項(xiàng)目中的ResetSpyderSettings即可。(4)如果電腦中已經(jīng)存在其他的Python環(huán)境(例如PyCharm或VSCode),可能發(fā)生環(huán)境沖突。2.3安裝SIAT輔助分析系統(tǒng)方法一:安裝SIAT輔助分析系統(tǒng)需要兩個(gè)步驟(1)在Windows系統(tǒng)開(kāi)始菜單的Anconda項(xiàng)目中右鍵單擊AnacondaPrompt,選擇更多,選擇以管理員身份運(yùn)行,以便避免可能出現(xiàn)的安裝權(quán)限問(wèn)題,如圖A-5所示:圖A-5Windows開(kāi)始菜單Anaconda中的AnacondaPrompt(2)在命令行窗口中輸入命令并執(zhí)行:pipinstallsiat,如圖A-6所示。圖A-6安裝SIAT的窗口命令安裝命令提示信息的最后部分,如果看到類(lèi)似于圖A-7的內(nèi)容則為安裝成功:圖A-7SIAT安裝成功的提示信息方法二:在JupyterNotebook中使用下列命令:不過(guò),這種方法有時(shí)可能受到操作系統(tǒng)權(quán)限設(shè)置的限制,進(jìn)而導(dǎo)致安裝不完全甚至安裝失敗。圖A-8在JupyterNotebook中直接安裝SIATSIAT安裝中的常見(jiàn)問(wèn)題如果未能看到“Successfully”的字樣,則意味著安裝并未成功。絕大多數(shù)安裝失敗的原因都可歸為兩類(lèi):(1)網(wǎng)絡(luò)不穩(wěn)定導(dǎo)致安裝程序下載失敗。解決方法:尋找網(wǎng)絡(luò)連接較為穩(wěn)定的地方進(jìn)行下載和安裝。(2)缺乏必要的安裝權(quán)限,一些Python插件可能需要系統(tǒng)管理員的權(quán)限進(jìn)行安裝。解決方法:使用管理員權(quán)限(即“以管理員身份運(yùn)行”)進(jìn)行安裝。2.4測(cè)試SIAT是否安裝成功在SIAT安裝完畢之后,有必要測(cè)試一下Anaconda和SIAT是否成功安裝。測(cè)試步驟如下:(1)在Windows開(kāi)始菜單中Anaconda項(xiàng)下點(diǎn)擊JupyterNotebook,如下圖所示:圖A-9Anaconda中的JupyterNotebook交互工具(2)在啟動(dòng)后的Jupyter頁(yè)面中選擇New,再選擇Python3,如下圖所示:圖A-10Jupyter頁(yè)面中選擇New|Python3進(jìn)入Python交互環(huán)境(3)在行中輸入命令(注意必要的空格):fromsiatimport*,這條命令的含義是啟用SIAT輔助分析系統(tǒng)中的股票分析功能。注意命令中的所有標(biāo)點(diǎn)符號(hào)都必須是英文半角而不是中文全角符號(hào),否則命令將會(huì)因無(wú)法識(shí)別而出錯(cuò)。同時(shí)按下Shift+Enter鍵。如果沒(méi)有任何信息出現(xiàn),說(shuō)明執(zhí)行正確,如下圖所示:圖A-11引入SIAT輔助分析系統(tǒng)中的股票功能(4)在下一行中輸入命令:prices=security_price('600519.SS','2021-7-1','2021-9-30')。Python指令security_price的功能是根據(jù)使用者提供的股票代碼(600519.SS是貴州茅臺(tái)的股票代碼)自動(dòng)聯(lián)網(wǎng)尋找該股票的價(jià)格信息,并繪制指定日期期間的股價(jià)運(yùn)動(dòng)圖。它能夠自動(dòng)聯(lián)網(wǎng)抓取中國(guó)國(guó)內(nèi)股票、中國(guó)港股、美股以及部分歐洲國(guó)家的股票信息。如果能夠得到如下圖的結(jié)果則說(shuō)明Anaconda和SIAT全部安裝成功!圖A-12測(cè)試SIAT:茅臺(tái)股票的價(jià)格運(yùn)動(dòng)測(cè)試中的常見(jiàn)問(wèn)題初次使用Jupyter的讀者最常見(jiàn)的錯(cuò)誤有兩類(lèi):(1)Jupyter命令中所有的標(biāo)點(diǎn)和括弧符號(hào)必須全部是英文標(biāo)點(diǎn),一旦輸入任何一個(gè)中文標(biāo)點(diǎn)和括弧都會(huì)出現(xiàn)異常錯(cuò)誤;(2)該出現(xiàn)空格的地方必須輸入空格,不輸入空格一定會(huì)出錯(cuò);不該出現(xiàn)空格的地方一定不能輸入空格!2.5SIAT的版本升級(jí)SIAT的基礎(chǔ)是Anaconda,是Python的一個(gè)功能擴(kuò)展插件。1.Anaconda的版本升級(jí)Anaconda大約每半年更新一次版本。如果希望使用最新的Anaconda版本,可以按照順序在AnacondaPrompt窗口中依次執(zhí)行下列命令:condaupdatecondacondaupdateanacondacondaupdatepython執(zhí)行這三條命令所需要的時(shí)間與電腦接入互聯(lián)網(wǎng)的網(wǎng)速和穩(wěn)定性有關(guān)。如果網(wǎng)速過(guò)慢,更新過(guò)程可能很漫長(zhǎng);如果網(wǎng)絡(luò)連接不穩(wěn)定,更新過(guò)程也可能失敗,只能重來(lái)。如果當(dāng)前版本使用正常,未發(fā)現(xiàn)系統(tǒng)錯(cuò)誤,一般無(wú)需更新。如果更新過(guò)程過(guò)于緩慢甚至失敗,可以嘗試通過(guò)國(guó)內(nèi)的Anaconda鏡像網(wǎng)站(例如清華大學(xué)的鏡像服務(wù)器)重新下載Anaconda的新版完整安裝文件進(jìn)行重新安裝。重新安裝前,為保險(xiǎn)起見(jiàn),建議先卸載舊版的Anaconda。一般情況下,注意:如果當(dāng)前版本的Anaconda運(yùn)行良好沒(méi)有,沒(méi)有明顯的問(wèn)題出現(xiàn),可以暫不更新。2.SIAT的版本升級(jí)方法一:在AnacondaPrompt窗口中基于管理員權(quán)限使用命令直接更新SIAT:pipinstall--upgradesiat如何查看版本更新是否成功?例如,從版本1.0.5升級(jí)到1.0.6,當(dāng)看到更新命令的最后出現(xiàn)類(lèi)似如下圖時(shí)說(shuō)明升級(jí)成功。圖A-13SIAT版本升級(jí)成功的提示信息方法二:在JupyterNotebook中使用下列命令:不過(guò),這種方法有時(shí)可能受到操作系統(tǒng)權(quán)限設(shè)置的限制,進(jìn)而導(dǎo)致升級(jí)不完全甚至升級(jí)失敗。圖A-14SIAT版本升級(jí)成功的提示信息3.如何查看SIAT的版本?查看系統(tǒng)中當(dāng)前已安裝的SIAT版本,在JupyterNotebook中使用下列命令:圖A-15查看SIAT的版本號(hào)如果因?yàn)楦鞣N未知的原因未能看到上面的信息,可以重復(fù)嘗試上述的更新指令。如果SIAT輔助分析系統(tǒng)出現(xiàn)故障,可以報(bào)告給本書(shū)作者聯(lián)系本書(shū)作者:王德宏,北京外國(guó)語(yǔ)大學(xué)國(guó)際商學(xué)院。電子郵件:聯(lián)系本書(shū)作者:王德宏,北京外國(guó)語(yǔ)大學(xué)國(guó)際商學(xué)院。電子郵件:wdehong2000@163.com。反映SIAT問(wèn)題時(shí)請(qǐng)同時(shí)提供盡可能詳細(xì)的使用環(huán)境和命令等截圖信息,以便作者能夠迅速進(jìn)行解決故障。3在MacOSX系統(tǒng)下安裝SIAT在MacOSX系統(tǒng)下安裝SIAT同樣分為相同的四個(gè)具體步驟:下載Mac版Anaconda;安裝Anaconda;安裝SIAT輔助分析系統(tǒng);測(cè)試SIAT是否安裝成功。3.1下載Mac版Anaconda個(gè)人免費(fèi)版的Anaconda下載頁(yè)面?zhèn)€人免費(fèi)版的Anaconda下載地址:/products/individual如下圖所示。選擇個(gè)人免費(fèi)版的Anaconda下載地址:/products/individual圖A-16MacOS個(gè)人免費(fèi)版的Anaconda下載頁(yè)面目前Anaconda的MacOS版均為64位,無(wú)需糾結(jié)32/64位問(wèn)題。3.2安裝Mac版Anaconda點(diǎn)擊下載的Mac版Anaconda安裝文件進(jìn)行安裝,如下圖所示。一般情況下,一路點(diǎn)擊“繼續(xù)”按鈕即可直接安裝成功,無(wú)需其他動(dòng)作。圖A-17Mac版Anaconda的安裝畫(huà)面安裝完成后啟動(dòng)JupyterNotebook的步驟:(1)點(diǎn)擊MacOS桌面dock的Launchpad,如下圖所示。圖A-18MacOS系統(tǒng)中的Launchpad圖標(biāo)(2)在出現(xiàn)的窗口中找到Anaconda-Navigator圖標(biāo),如下圖所示,雙擊之。圖A-19Launchpad中的Anaconda-Navigator圖標(biāo)(3)打開(kāi)后的Anaconda-Navigator如下圖所示。圖A-20Anaconda-Navigator中的應(yīng)用其中,JupyterNotebook是一款輕量級(jí)的Python運(yùn)行環(huán)境,使用起來(lái)簡(jiǎn)單直觀,非常適合教學(xué)演示用途,適合初學(xué)者使用;而Spyder則是一款集成式的Python開(kāi)發(fā)環(huán)境,適合有經(jīng)驗(yàn)的讀者使用。3.3安裝SIAT輔助分析系統(tǒng)MacOS版的Anaconda并沒(méi)有類(lèi)似Windows系統(tǒng)中的AnacondaPrompt功能,如何增加、更新或刪除Python的功能插件?其實(shí),JupyterNotebook本身就可以操作Python插件的安裝和更新,具體步驟如下:(1)啟動(dòng)JupyterNotebook,在頁(yè)面上選擇New|Python3,如下圖所示:圖A-21Mac版的JupyterNotebook開(kāi)始頁(yè)面(2)在空行中輸入下列命令,同樣可以安裝SIAT輔助分析系統(tǒng):!pipinstallsiat如下圖所示,在常規(guī)命令前面加上一個(gè)感嘆號(hào)!作為前綴,表示執(zhí)行的是操作系統(tǒng)的命令,而非Python指令。左側(cè)In[*]中的*號(hào)表示該命令尚未執(zhí)行完畢,這種方法也適用于Windows版的JupyterNotebook。圖A-22在JupyterNotebook中直接安裝SIAT輔助分析系統(tǒng)如果網(wǎng)速過(guò)慢或不穩(wěn),可能導(dǎo)致安裝時(shí)間較長(zhǎng)甚至失敗。如果安裝失敗,可以嘗試重新安裝。3.4測(cè)試SIAT是否安裝成功在SIAT安裝完畢之后,需要測(cè)試一下Anaconda和SIAT是否成功安裝。測(cè)試步驟如下:(1)在打開(kāi)的JupyterNotebook命令行中輸入命令(注意必要的空格):fromsiatimport*同時(shí)按下Shift+Enter鍵。如果沒(méi)有任何信息出現(xiàn),說(shuō)明執(zhí)行正確。這條命令的含義是啟用SIAT輔助分析系統(tǒng)的功能。(2)在下一行中輸入命令prices=security_price('600519.SS','2021-7-1','2021-9-30'),同時(shí)按下Shift+Enter鍵或者點(diǎn)擊上方工具欄中的“運(yùn)行”按鈕執(zhí)行該命令。如果能夠得到如下圖所示的結(jié)果,則說(shuō)明Anaconda和SIAT全部安裝成功!圖A-23測(cè)試SIAT:茅臺(tái)股票的價(jià)格運(yùn)動(dòng)Python命令security_price的功能是根據(jù)使用者提供的股票代碼(600519.SS是貴州茅臺(tái)的股票代碼,SS表示該股票在上海證券交易所上市)自動(dòng)聯(lián)網(wǎng)尋找該股票的價(jià)格信息,并繪制價(jià)格運(yùn)動(dòng)圖。它能夠支持中國(guó)內(nèi)地股票、中國(guó)港股、美股以及部分歐洲股票。初次使用Jupyter的讀者最常見(jiàn)的錯(cuò)誤有兩類(lèi):Jupyter命令中所有的標(biāo)點(diǎn)和括弧符號(hào)必須全部是英文標(biāo)點(diǎn),一旦輸入任何一個(gè)中文標(biāo)點(diǎn)或括弧符號(hào)都會(huì)出現(xiàn)異常錯(cuò)誤;該出現(xiàn)空格的地方必須輸入空格,不輸入空格一定會(huì)出錯(cuò);不該出現(xiàn)空格的地方一定不能輸入空格!3.5SIAT的版本升級(jí)SIAT輔助分析系統(tǒng)的基礎(chǔ)是Anaconda。Anaconda大約每半年更新一次版本。如果希望使用最新的Anaconda版本,可以按照順序在MacOS版的JupyterNotebook命令行中依次執(zhí)行下列命令:!condaupdateconda!condaupdateanaconda!condaupdatepython執(zhí)行這三條命令所需要的時(shí)間與電腦接入互聯(lián)網(wǎng)的網(wǎng)速和穩(wěn)定性有關(guān)。如果網(wǎng)速過(guò)慢,更新過(guò)程可能很漫長(zhǎng);如果網(wǎng)絡(luò)連接不穩(wěn)定,更新過(guò)程也可能失敗,只能重來(lái)。如果更新不成功,也可以先刪除Anaconda,再重新安裝新版。如果當(dāng)前版本使用正常,未發(fā)現(xiàn)故障、錯(cuò)誤或異常現(xiàn)象,一般無(wú)需更新。對(duì)于SIAT的版本升級(jí),可以直接在JupyterNotebook中使用如下的命令進(jìn)行升級(jí):!pipinstall--upgradesiat如果SIAT輔助分析系統(tǒng)出現(xiàn)故障,可以報(bào)告給本書(shū)作者聯(lián)系作者:王德宏,北京外國(guó)語(yǔ)大學(xué)國(guó)際商學(xué)院。電子郵件:wdehong2000@163.com聯(lián)系作者:王德宏,北京外國(guó)語(yǔ)大學(xué)國(guó)際商學(xué)院。電子郵件:wdehong2000@163.com。反映SIAT問(wèn)題時(shí)請(qǐng)同時(shí)提供盡可能詳細(xì)的使用環(huán)境和命令等信息截圖,以便作者能夠迅速進(jìn)行解決問(wèn)題。4常見(jiàn)問(wèn)題與解決方法在使用SIAT輔助分析系統(tǒng)時(shí)常見(jiàn)的典型問(wèn)題匯集如下:【問(wèn)題1】在SIAT命令中使用中文標(biāo)點(diǎn)符號(hào)這是初學(xué)者最常見(jiàn)的錯(cuò)誤,SIAT命令中的各種括號(hào)、逗號(hào)、單引號(hào)和雙引號(hào)只能使用英文狀態(tài)下的符號(hào),即通常所說(shuō)的半角標(biāo)點(diǎn)符號(hào)。解決方法:將命令中的中文和全角標(biāo)點(diǎn)符號(hào)全部換成英文和半角的標(biāo)點(diǎn)符號(hào)。【問(wèn)題2】空格使用不當(dāng)這個(gè)也是初學(xué)者中常見(jiàn)的錯(cuò)誤,主要表現(xiàn)為該有空格的地方未留空格,不該留空格的地方卻留有空格。解決方法:首先運(yùn)行案例腳本中的命令,模仿后再?gòu)?fù)制和改造命令中的參數(shù)。【問(wèn)題3】Python環(huán)境沖突問(wèn)題這類(lèi)問(wèn)題常見(jiàn)于在一臺(tái)電腦中安裝多個(gè)Python版本或多種Python環(huán)境。SIAT輔助分析系統(tǒng)是在Anaconda3.7環(huán)境中開(kāi)發(fā)和測(cè)試的,對(duì)于在非Anaconda環(huán)境中運(yùn)行SIAT有可能出現(xiàn)測(cè)試中未發(fā)現(xiàn)的意外錯(cuò)誤。一個(gè)比較常見(jiàn)的原因是SIAT所依賴(lài)的Python插件版本不兼容問(wèn)題,特別是自行下載插件構(gòu)造的環(huán)境。解決方法:構(gòu)造同一個(gè)Anaconda版本下的Python環(huán)境,由Anaconda的插件管理工具(例如conda或pip)來(lái)統(tǒng)一管理各種插件的安裝和更新。【問(wèn)題4】名字未找到類(lèi)錯(cuò)誤(NameError:name'xxx'isnotdefined)常見(jiàn)的原因有三種:命令拼寫(xiě)錯(cuò)誤;未開(kāi)啟相關(guān)功能的模塊;SIAT插件版本陳舊。解決方法:更正命令拼寫(xiě),需要特別注意的是,除了引號(hào)中的內(nèi)容,其他符號(hào)均需要使用英文符號(hào)。升級(jí)SIAT插件的版本。隨著使用SIAT輔助分析系統(tǒng)的人員增多,需求不斷擴(kuò)大,使用場(chǎng)景變得日趨復(fù)雜,SIAT需要定期進(jìn)行升級(jí)維護(hù),并加入一些新功能。如果希望使用新加入的功能,就需要升級(jí)到最新版本?!締?wèn)題5】抓取證券信息失敗這個(gè)問(wèn)題很常見(jiàn),尤其是在互聯(lián)網(wǎng)連接質(zhì)量不佳的場(chǎng)合。SIAT中使用了大量的互聯(lián)網(wǎng)爬蟲(chóng)來(lái)解決制作案例時(shí)需要的證券基礎(chǔ)數(shù)據(jù)的獲取和更新問(wèn)題,因此SIAT嚴(yán)重依賴(lài)互聯(lián)網(wǎng)的速度和連接質(zhì)量。常見(jiàn)的具體原因有如下:(1)網(wǎng)速過(guò)慢。原因:主要出現(xiàn)在許多人分享同一網(wǎng)段的場(chǎng)景,例如同一間教室里或校園網(wǎng)繁忙的時(shí)段。解決方法:分散使用,以及避開(kāi)網(wǎng)絡(luò)繁忙的時(shí)段。(2)網(wǎng)絡(luò)不穩(wěn)定。原因:主要出現(xiàn)在一些使用WIFI鏈接網(wǎng)絡(luò)的場(chǎng)景。解決方法:尋找信號(hào)更好、穩(wěn)定性更高的WIFI網(wǎng)絡(luò)進(jìn)行鏈接。檢驗(yàn)是否是此類(lèi)問(wèn)題的一種簡(jiǎn)單辦法是,在瀏覽器中打開(kāi)相關(guān)的財(cái)經(jīng)網(wǎng)站(例如雅虎財(cái)經(jīng)網(wǎng)站),如果網(wǎng)站響應(yīng)緩慢,則基于該網(wǎng)站的數(shù)據(jù)抓取爬蟲(chóng)很可能因?yàn)槌瑫r(shí)而失敗。一般可以相隔幾分鐘后再次嘗試,如果嘗試數(shù)次后仍然抓取失敗,只能換其他時(shí)段再試。(3)能夠查找中國(guó)內(nèi)地交易所上市的證券信息,但查找非內(nèi)地交易所上市的證券信息失敗。原因:查找中國(guó)內(nèi)地交易所上市的證券信息只需訪問(wèn)國(guó)內(nèi)的數(shù)據(jù)源,無(wú)需通過(guò)防火墻;當(dāng)查找中國(guó)內(nèi)地以外交易所上市的證券信息時(shí),需要訪問(wèn)海外網(wǎng)站的數(shù)據(jù)源(例如雅虎財(cái)經(jīng)),需要通過(guò)防火墻和內(nèi)容過(guò)濾檢查,有時(shí)可能表現(xiàn)非常不穩(wěn)定,獲取數(shù)據(jù)的失敗概率較高。SIAT輔助分析系統(tǒng)之所以青睞這些數(shù)據(jù)源網(wǎng)站(例如雅虎財(cái)經(jīng))的三個(gè)主要原因:一是這些網(wǎng)站能夠提供種類(lèi)非常豐富的證券數(shù)據(jù),二是它們能夠提供多個(gè)國(guó)家/地區(qū)的證券數(shù)據(jù),三是這些數(shù)據(jù)大部分可以免費(fèi)下載,方便在教學(xué)場(chǎng)景中大規(guī)模使用。解決方法:只能改換其他時(shí)間進(jìn)行不斷嘗試。其他抓取信息失敗的可能原因還有:(4)證券代碼本身拼寫(xiě)錯(cuò)誤。解決方法:可以在百度等搜索網(wǎng)站通過(guò)證券名稱(chēng)查找正確的證券代碼。(5)證券代碼的后綴拼寫(xiě)錯(cuò)誤。原因:為了兼容全世界各個(gè)國(guó)家/地區(qū)的證券代碼,需要對(duì)證券代碼進(jìn)行一些處理,例如加上代表其上市交易所的代碼后綴。上交所上市的股票代碼需要加上后綴.SS,深交所的加.SZ,港股上市的加.HK,東京證交所的加.T,德國(guó)的加.DE,美股無(wú)需加后綴。解決方法:可以在雅虎財(cái)經(jīng)網(wǎng)站的搜索欄中通過(guò)證券名稱(chēng)或證券代碼本身查找?guī)в泻缶Y的完整證券代碼。(6)證券產(chǎn)品已經(jīng)退市。原因:一些曾經(jīng)上市的股票已經(jīng)由于各種原因退市,無(wú)法找到相關(guān)信息。解決方法:換用其他類(lèi)似的證券。(7)證券產(chǎn)品已經(jīng)到期失效。原因:一些證券產(chǎn)品(例如期貨、期權(quán)等)具有明確的到期日,一旦過(guò)了到期日完成結(jié)算,這些產(chǎn)品的信息可能從數(shù)據(jù)源中消失,將會(huì)無(wú)法查到。解決方法:換用類(lèi)似的未到期證券產(chǎn)品。(8)SIAT雖然已經(jīng)能夠支持幾乎所有國(guó)際主流的證券交易所上市的大宗證券產(chǎn)品(例如股票),但尚不支持一些國(guó)家/地區(qū)上市的股票,例如越南、柬埔寨、老撾、緬甸以及非洲的一些證券交易所等,也不支持非上市的或一些特殊的證券產(chǎn)品?!締?wèn)題6】Python的經(jīng)典模塊出錯(cuò)有時(shí)可能遇到Python的經(jīng)典模塊出現(xiàn)錯(cuò)誤,例如pandas、matplotlib、lxml等出錯(cuò)。常見(jiàn)的原因一般有三種:(1)電腦中的Anaconda版本老舊,導(dǎo)致難以適應(yīng)SIAT的需求,或者針對(duì)某些模塊進(jìn)行過(guò)升級(jí)導(dǎo)致相互關(guān)聯(lián)的其他模塊出現(xiàn)了版本不兼容問(wèn)題;(2)電腦中安裝了多個(gè)Python運(yùn)行環(huán)境,例如Anaconda和PyCharm等,導(dǎo)致各個(gè)Python模塊之間出現(xiàn)了版本不兼容問(wèn)題;(3)被一些防病毒工具誤殺。解決方法:對(duì)于原因(1)和(2),首先嘗試升級(jí)Anaconda,升級(jí)SIAT。如果還不能徹底解決問(wèn)題,就需要卸載現(xiàn)有的Anaconda,然后下載最新版的Anaconda重新安裝。這種解決方法尤其適合初學(xué)者使用,無(wú)需一一排查各個(gè)Python模塊之間的版本不兼容問(wèn)題。經(jīng)驗(yàn)表明,如果問(wèn)題較為復(fù)雜,單純通過(guò)升級(jí)Anaconda有時(shí)并不能徹底解決這類(lèi)問(wèn)題。對(duì)于原因(3),需要將Anaconda和一些被誤報(bào)為病毒的Python模塊加入到防病毒工具的白名單中。【問(wèn)題7】JupyterNotebook出現(xiàn)異常JupyterNotebook是Anaconda中的一種最簡(jiǎn)單最容易上手的Python環(huán)境,非常適合Python新手使用和教學(xué)案例演示用途。JupyterNotebook在使用過(guò)程中有時(shí)可能遇到一些問(wèn)題,可能導(dǎo)致無(wú)法正常使用。常見(jiàn)的情況一般有三種:(1)JupyterNotebook的后臺(tái)被關(guān)閉。JupyterNotebook采用的是前后臺(tái)工作方式,前臺(tái)是瀏覽器頁(yè)面,使用者在瀏覽器頁(yè)面上進(jìn)行操作,其后臺(tái)是一個(gè)黑色背景的監(jiān)控畫(huà)面,畫(huà)面上會(huì)顯示用戶在前臺(tái)界面上的操作信息,如下圖所示。一旦這個(gè)后臺(tái)被誤關(guān)掉,前臺(tái)就會(huì)停止工作,并顯示出一些異常信息。圖A-24JupyterNotebook的后臺(tái)監(jiān)控窗口解決方法:關(guān)掉前臺(tái)和后臺(tái),重新啟動(dòng)JupyterNotebook。(2)JupyterNotebook的后臺(tái)出現(xiàn)未知問(wèn)題。解決方法:可以嘗試按照下圖所示的方法重啟JupyterNotebook的后臺(tái)。圖A-25重啟JupyterNotebook的快捷方法(3)升級(jí)更新了一些Python插件,但JupyterNotebook未能體現(xiàn)出來(lái)。原因:JupyterNotebook已經(jīng)把之前的插件裝入緩沖區(qū),緩沖區(qū)里的插件仍然是之前裝入的,而不是升級(jí)更新后的。解決方法:可以嘗試按照上圖所示的方法重啟JupyterNotebook的后臺(tái)?!締?wèn)題8】SIAT升級(jí)成功但仍顯示舊版本號(hào)原因:檢查升級(jí)過(guò)程中的提示信息。一種可能的情況是,電腦中安裝了多種Python環(huán)境,例如Anaconda和Pycharm等。若電腦默認(rèn)的Python環(huán)境并非是Anaconda,很可能將siat升級(jí)到了其他Python環(huán)境,Anaconda環(huán)境中仍然是舊的siat版本。解決方法:首先,在Anaconda環(huán)境中的JupyterNotebook中進(jìn)行升級(jí),命令為!pipinstall–upgradesiat。如果未能解決問(wèn)題,可以嘗試將電腦中默認(rèn)的Python環(huán)境設(shè)置為Anaconda環(huán)境。如果還不能解決問(wèn)題,則只能先卸載電腦中的其他Python環(huán)境,再次進(jìn)行siat升級(jí)?!締?wèn)題9】遭遇反爬蟲(chóng)原因:siat借助Python爬蟲(chóng)方法從互聯(lián)網(wǎng)數(shù)據(jù)源網(wǎng)站獲取證券投資信息,部分網(wǎng)站設(shè)置了反爬蟲(chóng)機(jī)制,當(dāng)使用者頻繁獲取某些數(shù)據(jù)時(shí)可能被數(shù)據(jù)源網(wǎng)站的反爬蟲(chóng)機(jī)制偵測(cè)到。這些網(wǎng)站的反爬蟲(chóng)機(jī)制可能會(huì)采取兩種典型措施:一是降低使用者電腦訪問(wèn)該網(wǎng)站的速度,其后果是使用者的siat指令運(yùn)行緩慢甚至可能因超時(shí)而失??;二是直接封殺使用者電腦的IP地址。解決方法:盡量避免短時(shí)間內(nèi)過(guò)于頻繁地獲取同類(lèi)數(shù)據(jù),避免給數(shù)據(jù)源網(wǎng)站造成過(guò)大的網(wǎng)絡(luò)負(fù)擔(dān)。萬(wàn)一被某些數(shù)據(jù)源網(wǎng)站封殺了使用者電腦的IP地址,可以設(shè)法變更使用者電腦IP地址的方法進(jìn)行規(guī)避。SIAT案例分析輔助系統(tǒng)的專(zhuān)欄為了進(jìn)一步增強(qiáng)SIAT案例分析輔助系統(tǒng)與讀者的溝通渠道,作者還特地開(kāi)辟了一個(gè)頭條專(zhuān)欄《王德宏證券投資分析》,在頭條主頁(yè)(/)搜索“王德宏證券投資分析”并關(guān)注,即可及時(shí)得到SIAT的最新動(dòng)態(tài)以及其他相關(guān)材料。

第1章股票制作微軟股票開(kāi)盤(pán)價(jià)和收盤(pán)價(jià)走勢(shì)圖的Python腳本fromsiatimport*compare_stock("MSFT",["Open","Close"],"2020-3-16","2020-3-31")其中,MSFT為微軟的股票代碼;方括號(hào)內(nèi)的指標(biāo)"Open"和"Close"分別表示開(kāi)盤(pán)價(jià)和收盤(pán)價(jià),作為比較對(duì)象;2020-3-16和2020-3-31分別表示開(kāi)始和結(jié)束日期。制作奔馳和寶馬股票收盤(pán)價(jià)走勢(shì)對(duì)比圖的Python腳本fromsiatimport*prices=compare_stock(["DAI.DE","BMW.DE"],"Close","2020-1-1","2020-3-31")其中,方括號(hào)內(nèi)部表示兩個(gè)對(duì)比的對(duì)象;DAI.DE和BMW.DE分別是德國(guó)奔馳汽車(chē)和寶馬汽車(chē)的股票代碼;指標(biāo)"Close"表示收盤(pán)價(jià);2020-1-1和2020-3-31表示比較的期間。制作豐田汽車(chē)股票最高價(jià)和最低價(jià)走勢(shì)圖的Python腳本fromsiatimport*compare_stock("7203.T",["High","Low"],"2020-3-1","2020-3-31")其中,7203.T是日本豐田汽車(chē)在東京證券交易所上市的股票代碼;方括號(hào)內(nèi)部表示兩個(gè)對(duì)比的對(duì)象,指標(biāo)"High"和"Low"分別表示最高價(jià)和最低價(jià);2020-3-1和2020-3-31表示比較的期間。制作騰訊股價(jià)蠟燭圖的Python腳本fromsiatimport*info=candlestick("00700.HK","2020-2-1","2020-3-31",mav=2,volume=True,style='blueskies')其中,00700.HK表示騰訊港股的代碼;2020-2-1和2020-3-31表示分析的期間;選項(xiàng)mav表示是否繪制移動(dòng)平均趨勢(shì)線,當(dāng)不寫(xiě)出mav選項(xiàng)時(shí)或mav<2時(shí)默認(rèn)不繪制移動(dòng)平均趨勢(shì)線,當(dāng)mav>=2時(shí)表示繪制移動(dòng)平均趨勢(shì)線,其數(shù)值為移動(dòng)平均的階數(shù)。一般來(lái)說(shuō),移動(dòng)平均的階數(shù)越小,趨勢(shì)線就越貼合原來(lái)的折線,但顯示趨勢(shì)的能力就越弱;而移動(dòng)平均的階數(shù)越大,趨勢(shì)線就越脫離原來(lái)的折線,但顯示折線趨勢(shì)的能力就越強(qiáng);選項(xiàng)volume表示是否在蠟燭圖的下方同時(shí)繪制交易量信息,默認(rèn)不繪制,選項(xiàng)volume=True表示繪制交易量柱狀圖;選項(xiàng)style為繪圖時(shí)的顏色搭配方案,不出現(xiàn)該選項(xiàng)時(shí)為默認(rèn)方案,目前支持的配色方案:'blueskies','brasil','charles','checkers','classic','mike','nightclouds','starsandstripes','yahoo','default'等。制作國(guó)際商用機(jī)器股票收益率對(duì)比圖的Python腳本fromsiatimport*compare_stock("IBM",["AnnualRet%","DailyRet%"],"2019-1-1","2019-12-31")其中,IBM是國(guó)際商用機(jī)器公司的股票代碼;方括號(hào)內(nèi)是比較的指標(biāo),指標(biāo)"DailyRet%"表示日收益率,而"AnnualRet%"表示(滾動(dòng))年收益率;2019-1-1和2019-12-31是進(jìn)行分析的期間。制作萬(wàn)科地產(chǎn)與北京城建股票年收益率對(duì)比圖的Python腳本fromsiatimport*compare_stock(["000002.SZ","600266.SS"],"AnnualRet%","2020-1-1","2020-3-31")其中,方括號(hào)內(nèi)是進(jìn)行對(duì)比的股票代碼,000002.SZ和600266.SS分別是萬(wàn)科地產(chǎn)與北京城建的股票代碼;指標(biāo)"AnnualRet%"表示(滾動(dòng))年收益率;2020-1-1和2020-3-31是進(jìn)行分析的期間。制作京東美股與亞馬遜股票持有收益率對(duì)比圖的Python腳本fromsiatimport*compare_stock(["JD","AMZN"],"ExpRet%","2019-1-1","2020-12-31")其中,方括號(hào)內(nèi)是進(jìn)行對(duì)比的股票代碼,JD和AMZN分別是京東美股與亞馬遜的股票代碼;指標(biāo)"ExpRet%"表示持有收益率;2019-1-1和2020-12-31是進(jìn)行分析的期間。制作阿里巴巴和京東年股價(jià)波動(dòng)風(fēng)險(xiǎn)對(duì)比圖的Python腳本fromsiatimport*compare_stock(["JD","BABA"],"AnnualPriceVolatility","2019-1-1","2019-12-31")其中,方括號(hào)內(nèi)是進(jìn)行比較的兩只股票代碼,JD和BABA分別是京東美股和阿里巴巴美股的股票代碼;指標(biāo)"AnnualPriceVolatility"表示(基于滾動(dòng)窗口和調(diào)整標(biāo)準(zhǔn)差的)年股價(jià)波動(dòng)風(fēng)險(xiǎn)。如果希望分析(基于擴(kuò)展窗口和調(diào)整標(biāo)準(zhǔn)差的)持有股價(jià)波動(dòng)風(fēng)險(xiǎn),可將上述指令中的指標(biāo)"AnnualPriceVolatility"替換為指標(biāo)"ExpPriceVolatility"即可;2019-1-1和2019-12-31是分析期間的起止日期。制作蘋(píng)果和微軟股票年收益率波動(dòng)風(fēng)險(xiǎn)對(duì)比圖的Python腳本fromsiatimport*compare_stock(["AAPL","MSFT"],"AnnualRetVolatility%","2019-1-1","2019-12-31")其中,方括號(hào)內(nèi)是進(jìn)行對(duì)比的兩只股票代碼,AAPL和MSFT分別是蘋(píng)果和微軟公司的股票代碼;指標(biāo)"AnnualRetVolatility%"表示(基于滾動(dòng)窗口的)年收益率波動(dòng)風(fēng)險(xiǎn);2019-1-1和2019-12-31是分析期間。如果還希望分析(基于擴(kuò)展窗口的)收益率持有風(fēng)險(xiǎn),可將上述指標(biāo)"AnnualRetVolatility%"替換為指標(biāo)"ExpRetVolatility%"即可。制作臉書(shū)與微軟股票收益率損失風(fēng)險(xiǎn)對(duì)比圖的Python腳本fromsiatimport*compare_stock(["FB","MSFT"],"AnnualRetLPSD%","2019-1-1","2019-12-31")其中,方括號(hào)內(nèi)是進(jìn)行對(duì)比的兩只股票,F(xiàn)B和MSFT分別是臉書(shū)和微軟的股票代碼;指標(biāo)"AnnualRetLPSD%"表示(基于滾動(dòng)窗口的)年收益率損失風(fēng)險(xiǎn);2019-1-1和2019-12-31是進(jìn)行分析的期間如果希望分析(基于擴(kuò)展窗口的)收益率持有損失風(fēng)險(xiǎn),可將上述指令中的指標(biāo)"AnnualRetLPSD%"替換成"ExpRetLPSD%"即可。

第2章債券制作銀行間市場(chǎng)債券現(xiàn)券交易報(bào)價(jià)表(收益率從高到低排列)的Python腳本fromsiatimport*ibbq=interbank_bond_quote(10)其中,10表示顯示排在頭部的十只債券。默認(rèn)的展示方式為收益率從高到低排列。如果希望優(yōu)先看到最早發(fā)行的債券,可以使用下列指令:ibbq=interbank_bond_quote(10,option='2')如果希望優(yōu)先看到最近發(fā)行的債券,可以使用下列指令:ibbq=interbank_bond_quote(10,option='3')制作銀行間市場(chǎng)債券現(xiàn)券成交價(jià)(收益率從高到低排列)的Python腳本fromsiatimport*ibbq=interbank_bond_deal(10)其中,10表示顯示排在頭部的十只債券,默認(rèn)的展示方式為收益率從高到低排列。如果希望看到漲幅從高到低的展示方式,可以使用下列指令:ibbq=interbank_bond_deal(10,option='4')如果希望看到跌幅從高到低的展示方式,可以使用下列指令:ibbq=interbank_bond_deal(10,option='5')展示滬深債券市場(chǎng)成交價(jià)行情的Python腳本fromsiatimport*ebd=exchange_bond_deal(10,option='1')其中,10表示顯示頭十個(gè)債券;選項(xiàng)option='1'表示優(yōu)先展示最早的行情,option='2'表示優(yōu)先展示最新的行情,option='3'表示優(yōu)先展示最新發(fā)行的債券行情,option='4'表示優(yōu)先展示漲幅最高的債券行情,option='5'表示優(yōu)先展示跌幅最大的債券行情,option='6'表示優(yōu)先展示成交量最大(流動(dòng)性最好)的債券行情,option='7'表示優(yōu)先展示成交量最小的債券行情。制作滬深交易所債券市場(chǎng)“15國(guó)債21”價(jià)格走勢(shì)圖的Python腳本fromsiatimport*ebp=exchange_bond_price('sh019521','2019-7-1','2020-3-31')其中,sh019521是15國(guó)債21的債券代碼,sh表示是在上海證券交易所進(jìn)行交易;2019-7-1和2020-3-31是分析的期間。展示滬深可轉(zhuǎn)債市場(chǎng)成交價(jià)行情的Python腳本fromsiatimport*ebd=exchange_covbond_deal(10,option='1')其中,10表示顯示頭十個(gè)債券;選項(xiàng)option='1'表示優(yōu)先展示最早的行情,option='2'表示按照債券代碼排序展示行情,option='3'表示按照債券代碼倒序排列展示行情,option='4'表示優(yōu)先展示漲幅最高的債券行情,option='5'表示優(yōu)先展示跌幅最大的債券行情,option='6'表示優(yōu)先展示成交量最大(流動(dòng)性最好)的債券行情,option='7'表示優(yōu)先展示成交量最小的債券行情。分析滬深可轉(zhuǎn)債市場(chǎng)“國(guó)軒轉(zhuǎn)債”行情的Python腳本fromsiatimport*ebp=exchange_covbond_price('sz128086','2020-1-1','2020-4-30')其中,sz128086是國(guó)軒轉(zhuǎn)債的債券代碼,sz表示是在深證證券交易所進(jìn)行交易;2020-1-1和2020-4-30是分析期間的起止日期。計(jì)算債券修正久期的Python腳本fromsiatimport*MD(cr=0.08,ytm=0.1,nyears=3,ctimes=2,fv=100)其中,0.08為票息率,0.1為到期收益率,3年期,每年2次付息,面值100元。注意,這里的指令MD為大寫(xiě)字母,類(lèi)似的指令還有macD(計(jì)算麥考利久期年數(shù))、DD(計(jì)算美元久期年數(shù))、ED(計(jì)算有效久期年數(shù))以及CFD(計(jì)算封閉式久期年數(shù))等。計(jì)算債券凸度(年數(shù))的Python腳本fromsiatimport*convexity(cr=0.08,ytm=0.1,nyears=3,ctimes=2,fv=100)其中,第1個(gè)參數(shù)是年票息率,0.08;第2個(gè)參數(shù)是市場(chǎng)利率,0.1;第3個(gè)參數(shù)是期限,3年期;第4個(gè)參數(shù)是每年付息次數(shù),2次;第5個(gè)參數(shù)是面值,100元。計(jì)算結(jié)果為凸度的年數(shù)。計(jì)算到期收益率上升風(fēng)險(xiǎn)導(dǎo)致債券價(jià)格變化的Python腳本fromsiatimport*ytm_risk(cr=0.08,ytm=0.1,nyears=3,bpyear=0.01,ctimes=2,fv=100)其中,0.08為票息率,0.1為到期收益率,3年期,0.01為到期收益率的變化幅度,每年2次付息,面值100元。計(jì)算到期收益率下降風(fēng)險(xiǎn)導(dǎo)致債券價(jià)格變化的Python腳本fromsiatimport*ytm_risk(cr=0.08,ytm=0.1,nyears=3,bpyear=-0.01,ctimes=2,fv=100)其中,0.08為票息率,0.1為到期收益率,3年期,-0.01為到期收益率的變化幅度,每年2次付息,面值100元。展示債券價(jià)格與到期收益率之間反向變化關(guān)系的Python腳本fromsiatimport*bplist=[-100,-50,-20,-10,-5,5,10,20,50,100]其中,bplist是到期收益率的增減變動(dòng)幅度列表,單位為基點(diǎn)(bp)。bond_malkiel1(aytm=0.06,yper=8,c=0.07,fv=100,mterm=2,bplist=bplist)其中,(年化)到期收益率0.06,8年期債券,(年化)票面利率0.07,債券面值100元,每年付息2次,bplist以基點(diǎn)列表方式表示到期收益率的多種變化。展示債券價(jià)格變化與到期時(shí)間之間關(guān)系的Python腳本fromsiatimport*yperlist=[1,2,3,5,10,15,20,30]bond_malkiel2(aytm=0.06,yper=8,c=0.07,fv=100,mterm=2,yperlist=yperlist)其中,(年化)到期收益率0.06,8年期債券,(年化)票面利率0.07,債券面值100元,每年付息2次,yperlist以期限年數(shù)列表方式表示多種不同的到期期限。展示債券期限影響債券價(jià)格及其波動(dòng)風(fēng)險(xiǎn)的Python腳本fromsiatimport*bond_malkiel3(aytm=0.06,yper=8,c=0.07,fv=100,mterm=2)其中,(年化)到期收益率0.06,8年期債券,(年化)票面利率0.07,債券面值100元,每年付息2次。展示債券收益率變化導(dǎo)致債券價(jià)格變動(dòng)非對(duì)稱(chēng)性的Python腳本fromsiatimport*bond_malkiel4(aytm=0.08,yper=3,c=0.1,fv=100,mterm=1)其中,(年化)到期收益率0.08,3年期債券,(年化)票面利率0.1,債券面值100元,每年付息1次。展示債券票息率對(duì)債券價(jià)格變化風(fēng)險(xiǎn)影響的Python腳本fromsiatimport*bond_malkiel5(aytm=0.08,yper=10,c=0.1,fv=100,mterm=4)其中,(年化)到期收益率0.08,10年期債券,(年化)票面利率0.1,債券面值100元,每年付息4次。

第3章基金制作中國(guó)基金投資機(jī)構(gòu)種類(lèi)和分布情況的Python腳本fromsiatimport*df=fund_summary_china()注意,因數(shù)據(jù)來(lái)源所限,本指令僅適用于中國(guó)內(nèi)地(指令名稱(chēng)中帶有_china的均為只適用于中國(guó)內(nèi)地市場(chǎng))。分析中國(guó)公募基金種類(lèi)和分布情況的Python腳本fromsiatimport*df=pof_list_china()分析中國(guó)私募基金產(chǎn)品運(yùn)營(yíng)方式和運(yùn)營(yíng)狀態(tài)的Python腳本fromsiatimport*df=pef_product_china()分析中國(guó)開(kāi)放式基金單位凈值排名的Python腳本fromsiatimport*df=oef_rank_china('單位凈值','全部類(lèi)型')說(shuō)明:第1個(gè)參數(shù)除了'單位凈值',還支持'累計(jì)凈值'和'手續(xù)費(fèi)';第2個(gè)參數(shù)'全部類(lèi)型'表示不區(qū)分基金類(lèi)型進(jìn)行列示,基于不同的投資策略,基金類(lèi)型包括'股票型'、'指數(shù)型-股票'、'債券型-中短債'、'債券型-長(zhǎng)債'、'債券型-混合債'、'債券型-可轉(zhuǎn)債'、'混合型-靈活'、'混合型-平衡'、'混合型-偏股'、'混合型-偏債'以及'QDII'等具體類(lèi)型。由于基金較多,本指令僅列示頭十名,如需查看其它基金,可使用如下Python命令:print(df)注意:由于基金凈值和收益率不斷變化,不同日期執(zhí)行本指令獲得的內(nèi)容可能出現(xiàn)差異;另外,由于各種原因,在某一時(shí)刻數(shù)據(jù)源中許多基金的凈值可能出現(xiàn)缺失。制作嘉實(shí)泰和混合基金凈值走勢(shì)圖的Python腳本fromsiatimport*df=oef_trend_china('000595','2019-1-1','2020-12-31',trend_type='凈值')說(shuō)明:000595是嘉實(shí)泰和混合基金的基金代碼。siat.fund_china中的功能僅針對(duì)中國(guó)基金市場(chǎng),因此證券代碼無(wú)需后綴。其他針對(duì)全球市場(chǎng)的功能由于需要區(qū)分具體市場(chǎng),證券代碼需要加上所在市場(chǎng)的后綴標(biāo)識(shí);2019-1-1和2020-12-31是進(jìn)行分析的期間;選項(xiàng),trend_type支持"凈值"、"收益率"和"排名";選項(xiàng)power=n表示是否繪制n階多項(xiàng)式擬合的趨勢(shì)線,默認(rèn)n=0不繪制趨勢(shì)線。分析中國(guó)股票型開(kāi)放式基金單位凈值排名的Python腳本fromsiatimport*df=oef_rank_china('單位凈值','股票型')說(shuō)明:本指令的第1個(gè)參數(shù)除了'單位凈值'外,還支持'累計(jì)凈值'和'手續(xù)費(fèi)';第2個(gè)參數(shù)支持'全部類(lèi)型'、'股票型'、'債券型'和'混合型'等;默認(rèn)列出最高的十個(gè)基金,如果希望列出其他基金,可以使用選項(xiàng)rank=n,例如最高20名(選項(xiàng)rank=20)或最低15名(選項(xiàng)rank=-15)。注意,本案中基金凈值信息的數(shù)據(jù)源并非全天24小時(shí)提供信息,若本指令返回空的凈值信息,可改換其他時(shí)間嘗試。分析建信改革紅利股票基金累計(jì)收益率走勢(shì)的Python腳本fromsiatimport*df=oef_trend_china('000592','2021-1-1','2021-3-31',trend_type='收益率',power=5)其中,000592是建信改革紅利股票基金的基金代碼;2021-1-1和2021-3-31是進(jìn)行分析的期間;選項(xiàng)trend_type='收益率'表示分析的指標(biāo)為收益率;選項(xiàng)power=5定義了趨勢(shì)線的多項(xiàng)式擬合階數(shù),階數(shù)越小,擬合程度越差,但展現(xiàn)的趨勢(shì)越明顯;階數(shù)越高,擬合程度越好,但展現(xiàn)的趨勢(shì)越不明顯。分析中國(guó)股票型基金持倉(cāng)變化的Python腳本fromsiatimport*df=fund_stock_holding_compare_china('005827','2021Q1','2021Q2')說(shuō)明:005827是易方達(dá)藍(lán)籌精選混合基金的代碼,對(duì)比的期間是2021年一季度與二季度的持倉(cāng)比例變化,默認(rèn)對(duì)比后者持倉(cāng)比例最高的前10只股票。如果希望對(duì)比持倉(cāng)比例最高的前15只股票,可以使用如下的選項(xiàng):以此類(lèi)推df=fund_stock_holding_compare_china('005827','2021Q1','2021Q2',top=15)分析中國(guó)股票型基金近年來(lái)重倉(cāng)股票排名變化的Python腳本fromsiatimport*df=fund_stock_holding_rank_china('005827')說(shuō)明:005827是易方達(dá)藍(lán)籌精選混合基金的代碼,默認(rèn)列示的是近2年來(lái)各個(gè)季度的前十名重倉(cāng)股票。如果希望對(duì)比近3年來(lái)的前十只重倉(cāng)股票,可以使用如下的選項(xiàng):以此類(lèi)推df=fund_stock_holding_rank_china('005827',year_num=3)分析中國(guó)債券型開(kāi)放式基金單位凈值排名情況的Python腳本fromsiatimport*df=oef_rank_china('單位凈值','債券型')說(shuō)明:債券型基金有許多具體類(lèi)型,例如'債券型-中短債'、'債券型-長(zhǎng)債'、'債券型-混合債'以及'債券型-可轉(zhuǎn)債'等。分析博時(shí)信用債券C基金業(yè)績(jī)排名情況的Python腳本fromsiatimport*df=oef_trend_china('050111','2021-7-1','2021-9-1',trend_type='排名',twinx=True)說(shuō)明:050111為博時(shí)信用債券C基金的代碼;2020-9-1至2020-9-30為進(jìn)行分析的期間;選項(xiàng)trend_type除了支持'排名'外,還支持'凈值'和'收益率';選項(xiàng)twinx表示使用左右縱軸分別繪制基金的同類(lèi)排名和總排名。分析中國(guó)貨幣型基金收益率排名情況的Python腳本fromsiatimport*df=mmf_rank_china()說(shuō)明:本指令默認(rèn)按7日年化收益率從高到低排列前十名。如需其他基金,可以使用選項(xiàng)rank=n,n為正數(shù)表示排列前n名基金,n為負(fù)數(shù)表示排列后n名基金。排名序號(hào)直接采用了Python中的編號(hào)規(guī)則,第1名為0號(hào)。分析諾安貨幣B基金7日年化收益率走勢(shì)情況的Python腳本fromsiatimport*df=mmf_trend_china('320019','2020-7-1','2020-9-30’,power=1)其中,320019是諾安貨幣B基金的基金代碼;2020-7-1至2020-9-30是進(jìn)行分析的期間;選項(xiàng)power=n定義了趨勢(shì)線的多項(xiàng)式擬合階數(shù),n為1時(shí)使用直線趨勢(shì)線。分析中國(guó)ETF基金單位凈值排名情況的Python腳本fromsiatimport*df=etf_rank_china('單位凈值')說(shuō)明:第1個(gè)參數(shù)是排名的指標(biāo),支持'單位凈值'、'累計(jì)凈值'和'市價(jià)';選項(xiàng)fund_type表示基金的種類(lèi),不寫(xiě)時(shí)默認(rèn)為'全部類(lèi)型',大的分類(lèi)主要為場(chǎng)內(nèi)基金,具體種類(lèi)則包括’指數(shù)型’、’債券型’以及’QDII’等;選項(xiàng)rank=n指定顯示的基金數(shù)量,不寫(xiě)時(shí)n默認(rèn)為10。分析易方達(dá)中證500ETF行情基金業(yè)績(jī)情況的Python腳本fromsiatimport*df=etf_trend_china('510580','2019-1-1','2020-9-30')說(shuō)明:510580是易方達(dá)中證500ETF行情基金的基金代碼;2019-1-1至2020-9-30是進(jìn)行分析的期間。分析上證綜指ETF對(duì)于上證綜指中長(zhǎng)期價(jià)格跟隨性的Python腳本fromsiatimport*compare_security(["510210.SS","000001.SS"],"Close","2019-1-1","2020-12-31",twinx=True)說(shuō)明:第1個(gè)參數(shù)方括號(hào)內(nèi)是進(jìn)行對(duì)比的證券代碼,510210.SS是上證綜指ETF,000001.SS是上證綜指;"Close"是進(jìn)行對(duì)比的指標(biāo);2019-1-1至2020-12-31是進(jìn)行對(duì)比的期間;選項(xiàng)twinx=True表示將進(jìn)行對(duì)比的兩只證券的指標(biāo)分別使用左右兩個(gè)不同的縱坐標(biāo)繪制,以便突出各自指標(biāo)的波動(dòng)細(xì)節(jié),不寫(xiě)該選項(xiàng)時(shí)默認(rèn)為twinx=False,統(tǒng)一使用左側(cè)的縱坐標(biāo)繪制兩只證券的指標(biāo),便于直觀反映各自指標(biāo)的數(shù)量大小。如果希望分析該基金的收益率跟隨性,可以將上述指令中的指標(biāo)"Close"替換為持有收益率指標(biāo)"ExpRet%";如果希望分析該基金在收益率風(fēng)險(xiǎn)方面的跟隨性,可以將上述指令中的指標(biāo)"Close"替換為持有收益率波動(dòng)風(fēng)險(xiǎn)指標(biāo)"ExpRetVolatility%"。對(duì)比分析ETF基金風(fēng)險(xiǎn)偏好的Python腳本例如,對(duì)比完全跟隨型ETF基金SPY與分紅優(yōu)先型ETF基金SPYD之間收益和風(fēng)險(xiǎn)的變化趨勢(shì),可以分別使用持有收益率指標(biāo)"ExpRet%"和持有收益率風(fēng)險(xiǎn)指標(biāo)"ExpRetVolatility%"進(jìn)行對(duì)比分析。fromsiatimport*compare_security(["SPY","SPYD"],"ExpRet%","2019-1-1","2020-6-30")compare_security(["SPY","SPYD"],"ExpRetVolatility%","2019-1-1","2020-6-30")說(shuō)明:上式中第1個(gè)參數(shù)方括號(hào)是進(jìn)行對(duì)比的兩只證券,第2個(gè)參數(shù)是進(jìn)行對(duì)比的指標(biāo),后面兩個(gè)日期表示對(duì)比期間的起止日期。列示中國(guó)REITs指數(shù)基金及其詳情的Python腳本fromsiatimport*df=reits_list_china()說(shuō)明:默認(rèn)按照收盤(pán)價(jià)高低列示前10名REITs基金。如果希望查看收盤(pán)價(jià)最高的前3只REITs基金,可以采用如下命令:df=reits_china(top=3)如果希望查看收盤(pán)價(jià)最低的后5只REITs基金,可以采用如下命令:df=reits_china(top=-5)分析首鋼綠能REIT基金市場(chǎng)行情的Python腳本行情K線圖(適合分析短期行情)fromsiatimport*df=candlestick("180801.SZ","2021-9-1","2021-10-30",mav=2,volume=True)說(shuō)明:這里借用了滬深股票爬蟲(chóng)函數(shù),上市基金需要加上交易所后綴(深交所.SZ,上交所.SS),代碼1開(kāi)頭的為深交所上市的REIT基金,代碼5開(kāi)頭的為上交所上市的REIT基金;這里的K線圖使用了2階移動(dòng)平均線mav,且?guī)Ы灰琢縱olume柱狀圖。如果希望查看收盤(pán)價(jià)的中長(zhǎng)期行情,可以采用如下命令繪制帶有趨勢(shì)線的折線圖:df=security_price("180801.SZ",'2021-7-1','2021-10-30')分析首鋼綠能REIT基金持有收益率及其風(fēng)險(xiǎn)走勢(shì)的Python腳本fromsiatimport*compare_security(["180801.SZ","399001.SZ"],"ExpRet%","2021-7-1","2021-10-30")compare_security(["180801.SZ","399001.SZ"],"ExpRetVolatility%","2021-7-1","2021-10-30")說(shuō)明:這里借用了滬深股票爬蟲(chóng)函數(shù),上市基金需要加上交易所后綴(深交所.SZ,上交所.SS),代碼1開(kāi)頭的為深交所上市的REIT基金,代碼5開(kāi)頭的為上交所上市的REIT基金;因該基金在深交所上市,故使用深證成份指數(shù)(399001.SZ)作為大盤(pán)指數(shù)比較對(duì)象;指標(biāo)ExpRet%為持有收益率,指標(biāo)ExpRetVolatility%為持有收益率波動(dòng)風(fēng)險(xiǎn),持有期間為2021-7-1至2021-10-30。使用夏普指數(shù)和詹森阿爾法指數(shù)分析香港領(lǐng)展REIT基金的Python腳本fromsiatimport*portfolio={'Market':('China','^HSI'),'00823.HK':1.0}#夏普指數(shù)r=rar_ratio_rolling(portfolio,'2021-4-1','2021-10-30',ratio_name='sharpe',window=60)#詹森阿爾法指數(shù)r=rar_ratio_rolling(portfolio,'2021-4-1','2021-10-30',ratio_name='alpha',window=60)說(shuō)明:portfolio定義了一個(gè)投資組合,其市場(chǎng)背景是中國(guó),使用的市場(chǎng)指數(shù)是恒生指數(shù)^HIS,這里的投資組合只有一個(gè)成分股領(lǐng)展REIT基金(代碼00823.HK),份額為1.0,可以添加其他證券和份額;計(jì)算夏普指數(shù)和詹森阿爾法指數(shù)的窗口期為60個(gè)交易日,約合3個(gè)日歷月,若查看7月初開(kāi)始的曲線則需要將數(shù)據(jù)時(shí)間提前約3個(gè)月;因該基金在港交所上市,故使用恒生指數(shù)(^HSI)作為大盤(pán)指數(shù)比較對(duì)象。分析美國(guó)REITs指數(shù)基金FRI持有收益率及其風(fēng)險(xiǎn)走勢(shì)走勢(shì)的Python腳本注:本案例中的腳本需要通過(guò)網(wǎng)絡(luò)代理進(jìn)行訪問(wèn)。fromsiatimport*compare_security(["FRI","^RUT"],"ExpRet%","2010-1-1","2020-6-30")compare_security(["FRI","^RUT"],"ExpRetVolatility%","2010-1-1","2020-6-30")說(shuō)明:第1個(gè)參數(shù)方括號(hào)中是進(jìn)行對(duì)比的兩只基金,F(xiàn)RI是REITs指數(shù)基金產(chǎn)品FirstTrustS&PREITIndexFund,^RUT是羅素2000指數(shù);第2個(gè)參數(shù)"ExpRet%"是持有收益率指標(biāo),參數(shù)"ExpRetVolatility%"是持有收益率波動(dòng)風(fēng)險(xiǎn)指標(biāo);后面兩個(gè)日期界定了持有期間。

第4章衍生品與期貨列示中國(guó)內(nèi)盤(pán)期貨全部品種與代碼Python腳本fromsiatimport*df=future_type_china()說(shuō)明:內(nèi)盤(pán)期貨指的是在中國(guó)金融期貨交易所(CFFEX)、上海期貨交易所(SHFE)、上海國(guó)際能源交易中心(INE)、鄭州商品交易所(CZCE)和大連商品交易所(DCE)上市交易的大宗礦物、能源、農(nóng)產(chǎn)品和工業(yè)原料期貨品種。其品種代碼由一至兩位字母組成,一個(gè)品種下有多個(gè)合約,其內(nèi)容的主要區(qū)別在于到期日不同。注意內(nèi)盤(pán)期貨與期貨內(nèi)盤(pán)的概念不同,內(nèi)盤(pán)期貨指的是中國(guó)國(guó)內(nèi)交易的期貨品種,期貨內(nèi)盤(pán)指的是主動(dòng)性賣(mài)盤(pán),即以買(mǎi)入價(jià)成交的交易,買(mǎi)入成交數(shù)量統(tǒng)計(jì)加入內(nèi)盤(pán)。同理,外盤(pán)期貨與期貨外盤(pán)也不同,外盤(pán)期貨指的是國(guó)際期貨,而期貨外盤(pán)指的是主動(dòng)性買(mǎi)盤(pán),即以賣(mài)出價(jià)成交的交易。賣(mài)出量統(tǒng)計(jì)加入外盤(pán)。列示中國(guó)內(nèi)盤(pán)期貨品種基本信息的Python腳本以原油期貨(品種代碼SC)為例fromsiatimport*df=future_type_china("SC")說(shuō)明:這些信息包括標(biāo)的資產(chǎn)內(nèi)容、上市的交易所、保證金比例、漲跌停板幅度、合約乘數(shù)以及最小變動(dòng)價(jià)位等。列示中國(guó)內(nèi)盤(pán)期貨品種某個(gè)品種在某個(gè)時(shí)間段所有合約的Python腳本以原油期貨(品種代碼SC)為例fromsiatimport*df=future_price_china("SC","2021-8-1","2021-8-31")說(shuō)明:按照一般的編碼規(guī)則,SC2406通常表示2024年6月到期的原油期貨。分析中國(guó)內(nèi)盤(pán)期貨品種某個(gè)品種合約在某個(gè)時(shí)間段交易趨勢(shì)的Python腳本以原油期貨合約SC2406為例fromsiatimport*df=future_price_china("SC2406","2021-8-1","2021-8-31")說(shuō)明:分析的內(nèi)容包括收盤(pán)價(jià)與結(jié)算價(jià)格對(duì)比、收盤(pán)價(jià)與交易量對(duì)比、收盤(pán)價(jià)與持倉(cāng)量對(duì)比。通過(guò)對(duì)比分析可以看出,原油期貨的交易量和持倉(cāng)量在許多時(shí)段具有一定的價(jià)格彈性。列示中國(guó)外盤(pán)期貨部分品種與代碼的Python腳本這里主要以CFD為主(contractfordifference,差價(jià)交易,交易雙方對(duì)賭合約價(jià)與結(jié)算價(jià)之間的差額(如果差價(jià)為負(fù),則需要買(mǎi)方向賣(mài)方支付),目前非常受全球零售投資者歡迎)fromsiatimport*df=future_type_foreign()說(shuō)明:外盤(pán)期貨CFD的代碼通常由1-4位字母組成。這里列示的內(nèi)容比較簡(jiǎn)潔,僅包括交易代碼、對(duì)應(yīng)的交易品種和上市的交易所。更詳細(xì)的信息可見(jiàn)下面的案例。這里的CFD外盤(pán)期貨品種和合約使用同一個(gè)代碼,例如AHD表示倫敦金屬交易所上市的金屬鋁差價(jià)合約。列示中國(guó)外盤(pán)期貨某個(gè)品種基本信息的Python腳本以CFD品種AHD為例fromsiatimport*df=future_type_foreign("AHD")說(shuō)明:列示的內(nèi)容包括該品種的交易代碼、交易品種、上市交易所、交易單位、報(bào)價(jià)單位、最小變動(dòng)價(jià)位、漲跌停板幅度、合約交割月份、交易時(shí)間以及交割品級(jí)等。這里的主力合約指的是成交量或持倉(cāng)量最大、最活躍、參與者最多、最容易成交的合約;這里的連續(xù)合約主要是出于報(bào)價(jià)、交易和分析的需要設(shè)立的一個(gè)概念,并非指某一個(gè)具體的合約,而是變動(dòng)的,例如“連一”就是當(dāng)前交割月后的第一個(gè)交易合約,“連三”則是當(dāng)前交割月后的第三個(gè)交易合約,依此類(lèi)推;連續(xù)合約還有一種情況指的是倫敦金屬交易所的一些金屬合約,是沒(méi)有交割期限的連續(xù)合約,它沒(méi)有具體交割日期,交易商可以選擇任一日期辦理交割手續(xù),主要作為報(bào)價(jià)等用途。這里的主連合約顧名思義就是主力合約的連續(xù)合約。列示中國(guó)外盤(pán)期貨某個(gè)品種合約在某個(gè)時(shí)間段交易趨勢(shì)的Python腳本以倫鋁差價(jià)合約AHD為例fromsiatimport*df=future_price_foreign("AHD","2021-8-1","2021-8-31")說(shuō)明:這里分析的內(nèi)容主要是合約收盤(pán)價(jià)與成交量的對(duì)比趨勢(shì)。通過(guò)分析可以看出,雖然成交量具有一定的價(jià)格彈性,但并非總是如此。如果一種商品的需求剛性較強(qiáng)(例如北方冬季取暖對(duì)于燃煤、石油和天然氣的需求就比較剛性),其價(jià)格彈性就會(huì)減弱。分析交割日對(duì)黃金期貨價(jià)格走勢(shì)影響的Python腳本注:本案例中的腳本需要通過(guò)網(wǎng)絡(luò)代理進(jìn)行訪問(wèn)。fromsiatimport*compare_security(["GCZ25.CMX","GCZ24.CMX"],"Close","2020-1-1","2020-6-30")說(shuō)明:上式中,第1個(gè)參數(shù)方括號(hào)內(nèi)是對(duì)比的兩只證券,GCZ24.CMX和GCZ25.CMX是紐約商品交易所的黃金期貨產(chǎn)品,分別在2024和2025年12月份到期。到期交割后,該產(chǎn)品代碼將不復(fù)存在。讀者若在到期后繼續(xù)使用該代碼將導(dǎo)致Python命令出錯(cuò),應(yīng)更換為尚未到期的其他大豆期貨代碼。這種情況對(duì)于其他帶有明確到期日的期貨代碼類(lèi)似;第2個(gè)參數(shù)"Close"是進(jìn)行對(duì)比的指標(biāo)收盤(pán)價(jià);后面兩個(gè)日期描述了分析的期間。分析E-MiniS&P500指數(shù)期貨與標(biāo)普500指數(shù)之間價(jià)格跟隨性的Python腳本注:本案例中的腳本需要通過(guò)網(wǎng)絡(luò)代理進(jìn)行訪問(wèn)。fromsiatimport*compare_security(["ES=F","^GSPC"],"Close","2010-1-1","2020-6-30")說(shuō)明:上式中第1個(gè)參數(shù)方括號(hào)內(nèi)是進(jìn)行對(duì)比的兩個(gè)證券,ES=F是芝加哥商品交易所的E-MiniS&P500指數(shù)期貨代碼,^GSPC是標(biāo)普500指數(shù)代碼;第2個(gè)參數(shù)"Close"是進(jìn)行對(duì)比的指標(biāo)收盤(pán)價(jià);后面兩個(gè)日期標(biāo)定了對(duì)比的期間。如果還希望看到這兩者在價(jià)格波動(dòng)風(fēng)險(xiǎn)、收益率以及收益率波動(dòng)風(fēng)險(xiǎn)方面的跟隨性,可將上述指令中的指標(biāo)"Close"替換成"AnnualPriceVolatility"、"ExpRet%"和"ExpRetVolatility"指標(biāo)即可。分析到期時(shí)間長(zhǎng)短對(duì)美債期貨價(jià)格影響的Python腳本注:本案例中的腳本需要通過(guò)網(wǎng)絡(luò)代理進(jìn)行訪問(wèn)。以兩年期(ZT=F)/五年期(ZF=F)美債期貨的價(jià)格對(duì)比為例。fromsiatimport*compare_security(["ZT=F","ZF=F"],"Close","2010-1-1","2020-6-30")說(shuō)明:上式中第1個(gè)參數(shù)方括號(hào)內(nèi)是進(jìn)行對(duì)比的兩只證券,分別是兩年期(代碼ZT=F)/五年期(代碼ZF=F)美債期貨;"Close"是進(jìn)行對(duì)比的指標(biāo)收盤(pán)價(jià);其后兩個(gè)日期表明了對(duì)比分析的期間。如果希望對(duì)比10年期國(guó)債期貨(代碼ZN=F)與高于10年期國(guó)債期貨(代碼ZB=F)之間的價(jià)格差異,可使用下述指令:compare_security(["ZN=F","ZB=F"],"Close","2010-1-1","2020-6-30")如果希望對(duì)比2年期國(guó)債期貨(代碼ZT=F)與5年期國(guó)債期貨(代碼ZF=F)之間的持有收益率差異,可使用下述指令:compare_security(["ZT=F","ZF=F"],"ExpRet%","2010-1-1","2020-6-30")如果希望對(duì)比2年期國(guó)債期貨與5年期國(guó)債期貨之間的持有收益率風(fēng)險(xiǎn)差異,可用下述指令:compare_security(["ZT=F","ZF=F"],"ExpRetVolatility%","2010-1-1","2020-6-30")基于月數(shù)計(jì)算轉(zhuǎn)換因子的Python腳本fromsiatimport*cf_month(0.026,1,11,2,0.03)其中,0.026為國(guó)債的票面利率,1為到下一個(gè)付息日的月數(shù),11為剩余的付息次數(shù)(包括下一次

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論