<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    【Python】我常用的幾個Python金融分析庫,太強了~

    共 5573字,需瀏覽 12分鐘

     ·

    2024-07-29 12:00

    Python 是金融分析和開發(fā)的強大工具。從計算原始數據到創(chuàng)建美觀而直觀的圖形用戶界面(GUI),有無數的庫可以幫助用戶建立自己的金融模型。
    本文將介紹10個主流的金融和金融建模庫,重點關注量化金融領域的特定應用,這些應用需要完成數據導入和轉換、時間序列和風險分析、交易和回溯測試、EXCEL 集成以及數據可視化等編程任務。

    1 NumPy

    從根本上說,所有金融模型都依賴于數字運算。NumPy 是用 Python 進行科學和數學計算的基礎庫。它不僅在 Python 中引入了 n 維數組和矩陣,還包含一些基本的數學函數來操作這些數據結構。本文后面提到的大多數高級金融 Python 庫都依賴于 NumPy。

    例如,創(chuàng)建兩個 2×2 復數矩陣并打印總和:

    import numpy as np
    a = np.array([[1+2j2+1j], [34]])
    b = np.array([[56+6j], [78+4j]])
    print(a+b)

    輸出:

    [[6.+2.j   8.+7.j]
     [10.+0.j 12.+4.j]]

    2 SciPy

    NumPy 庫為操作和存儲數據提供了基本的數學結構。但要基于這些數據建立復雜的模型,還需要一個包含更高級統(tǒng)計工具和操作的存儲庫,這就是 SciPy。

    SciPy提供了對建立任何統(tǒng)計模型所需的高級科學計算至關重要的函數和算法。其中包括插值、優(yōu)化、聚類、轉換和數據整合算法。在進行任何類型的數據分析或構建任何類型的預測模型時,這些操作都是必不可少的。

    為了演示插值,我首先使用 NumPy 用任意函數創(chuàng)建一些數據點,然后比較不同的插值方法:

    from scipy.interpolate import interp1d
    import pylab
    x = np.linspace(0510)
    y = np.exp(x) / np.cos(np.pi * x)
    f_nearest = interp1d(x, y, kind='nearest')
    f_linear  = interp1d(x, y)
    f_cubic   = interp1d(x, y, kind='cubic')
    x2 = np.linspace(05100)
    pylab.plot(x, y, 'o', label='data points')
    pylab.plot(x2, f_nearest(x2), label='nearest')
    pylab.plot(x2, f_linear(x2), label='linear')
    pylab.plot(x2, f_cubic(x2), label='cubic')
    pylab.legend()
    pylab.show()

    3 Pandas

    Pandas建立了一種直觀易用的數據結構--DataFrame,專門用于分析和建立模型。

    Pandas以 NumPy 引入的數組為基礎,針對表格、多維和異構數據進行了優(yōu)化。最常見的操作,如分組、連接、合并或填充、替換和歸納空值,都可以在一行中執(zhí)行。

    此外,Pandas還提供了從各種標準格式導入數據的函數,以及用于快速繪圖、檢索基本統(tǒng)計數據或輸出數據的其他函數。

    創(chuàng)建 DataFrame

    import pandas as pd
    df_1 = pd.DataFrame({'col1': [1,2], 'col2': [3,4]})

    合并dataframe

    df_2 = pd.DataFrame({'col3': [5,6], 'col4': [7,8]})
    df = pd.concat([df_1,df_2], axis = 1)

    4 statsmodels

    SciPy 提供了一個統(tǒng)計工具庫,允許用戶構建模型,而 pandas 則使其易于實現。statsmodels 以這些庫為基礎,對不同的統(tǒng)計模型進行了更高級的測試。

    對于任何給定的模型,每個估計器都有大量的結果統(tǒng)計和診斷列表,目的是讓用戶全面了解模型的性能。這些結果將根據現有的統(tǒng)計庫進行測試,以確保其正確性。

    例如,導入一個內置數據集:

    import numpy as np
    import statsmodels.api as sm
    rand_data = sm.datasets.randhie.load(as_pandas=False)
    rand_exog = rand_data.exog.view(float).reshape(len(rand_data.exog), -1)
    rand_exog = sm.add_constant(rand_exog, prepend=False)

    并用泊松模型對數據集進行擬合:

    poisson_mod = sm.Poisson(rand_data.endog, rand_exog)
    poisson_res = poisson_mod.fit(method="newton")
    print(poisson_res.summary())

    5 Quandl

    Quandl 是金融數據源庫,提供了的大量經濟、金融和市場數據。大多數原始數據集在注冊后可免費訪問(需要一個 API 密鑰),更高級和更深入的數據集則需要付費。

    6 Zipline

    Zipline是一個強大的 Python 算法交易庫, 將統(tǒng)計、數據結構和數據源聯系,且為 Quantopian(一個用于構建和執(zhí)行交易策略的免費平臺)提供支持。

    Quandl的數據可以輕松導入,自定義算法也可以輕松設計、測試和實施。這包括算法的回溯測試和實時交易。一個基本算法是這樣的:

    from zipline.api import order, record, symbol
    def initialize(context):
        pass
    def handle_data(context, data):
        order(symbol('AAPL'), 10)
        record(AAPL=data.current(symbol('AAPL'), 'price'))

    我們從 zipline 中導入訂單、記錄和符號函數,建立了一個記錄蘋果股票價格的算法。

    7 Pyfolio

    在 zipline 中設計和測試算法后,pyfolio 庫提供了一種生成包含性能統(tǒng)計數據的簡便方法。這些統(tǒng)計數據包括年度/月度回報、回報量化、滾動貝塔/夏普比率、投資組合周轉率等。生成單只股票的示例數據表:

    import pyfolio as pf
    stock_rets = pf.utils.get_symbol_rets('FB')
    pf.create_returns_tear_sheet(stock_rets, live_start_date='2015-12-1')

    輸出結果將是一系列包含性能指標的表格和圖表。

    8 TA-Lib

    接下來的兩個庫是 zipline 和 pyfolio 的替代品。第一個是技術分析庫,簡稱 TA-Lib,它使用 C++ 編寫,但也有 Python 的封裝。與 zipline 一樣,TA-Lib 提供了常見的金融工具,如重疊研究、動量指標、成交量指標、波動率指標、價格轉換、周期指標、模式識別和純統(tǒng)計功能。

    9 QuantLib

    QuantLib 是 zipline 和 pyfolio 的第二個替代庫,與 TA-Lib 類似,QuantLib 也是用 C++ 編寫,然后導出到 Python。

    QuantLib旨在創(chuàng)建一個免費、開源的建模、交易和風險管理庫。該庫包含設計和實施高級算法的工具,其中包括市場慣例、收益曲線模型、求解器、PDE、蒙特卡羅等功能。

    10 Matplotlib

    前面用于金融的 python庫包含了金融數據源、金融數據的最佳數據結構以及統(tǒng)計模型和評估機制。但沒有一個庫提供了用于金融建模的最重要的 Python 工具之一:數據可視化(本文中的所有可視化均由 matplotlib 提供)。

    可視化不僅對于理解金融數據的趨勢很重要,而且對于向非技術人員傳達見解也很重要。Python 中有許多數據可視化庫,每個庫都有其優(yōu)點和缺點,但在金融建模中最容易實現的是 matplotlib。這主要是因為許多庫都已經依賴 matplotlib。

    來源:activestate

        
           
               
                  
    往期精彩回顧




    • 交流群

    歡迎加入機器學習愛好者微信群一起和同行交流,目前有機器學習交流群、博士群、博士申報交流、CV、NLP等微信群,請掃描下面的微信號加群,備注:”昵稱-學校/公司-研究方向“,例如:”張小明-浙大-CV“。請按照格式備注,否則不予通過。添加成功后會根據研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~(也可以加入機器學習交流qq群772479961


    瀏覽 155
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    AV天天堂亚洲 | 黄色操逼的免费网站 男女操逼的视频免费网站 | 青青草视频偷拍 | 精品中文字幕在线播放 | 艹b视频|