1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        金融量化分析&可視化|一行代碼獲取股票、基金數(shù)據(jù),并繪制K線圖

        共 4234字,需瀏覽 9分鐘

         ·

        2021-09-16 21:03

        大家好,我是老表,今天這篇文章和大家分享一下如何利用Python獲取股票、基金數(shù)據(jù),并進(jìn)行可視化,為金融分析&可視化先導(dǎo)篇,歡迎大家學(xué)習(xí)、點贊、收藏支持。

        一、基礎(chǔ)準(zhǔn)備

        • 環(huán)境:python 3.7+
        • 需要安裝第三方模塊:mplfinance、akshare
        • 運(yùn)行編輯器:jupyter notebook

        二、動手動腦

        2.1 環(huán)境準(zhǔn)備

        首先需要你的電腦安裝好了Python環(huán)境,并且安裝好了Python開發(fā)工具。

        如果你還沒有安裝,可以參考以下文章:

        如果僅用Python來處理數(shù)據(jù)、爬蟲、數(shù)據(jù)分析或者自動化腳本、機(jī)器學(xué)習(xí)等,建議使用Python基礎(chǔ)環(huán)境+jupyter即可,安裝使用參考Windows/Mac 安裝、使用Python環(huán)境+jupyter notebook

        如果想利用Python進(jìn)行web項目開發(fā)等,建議使用Python基礎(chǔ)環(huán)境+Pycharm,安裝使用參考 :Windows下安裝、使用Pycharm教程,這下全了Mac下玩轉(zhuǎn)Python-安裝&使用Python/PyCharm

        2.2 模塊安裝

        本次實驗是在jupyter notebook上進(jìn)行,默認(rèn)你已經(jīng)安裝好了Python基本環(huán)境和jupyter,如果沒有安裝可以看上面的環(huán)境安裝部分。

        首先打開終端,輸入:

        jupyter notebook

        即可進(jìn)入jupyter,會自動連接服務(wù)器,并跳轉(zhuǎn)到網(wǎng)頁,新建一個python文件。給文件重命名,容易區(qū)分:

        在代碼塊中輸入以下指令并運(yùn)行,即可安裝mplfinance(金融數(shù)據(jù)可視化,基于matplotlibe和pandas)和akshare(金融數(shù)據(jù)獲取模塊):

        !pip3 install mplfinance --user
        !pip3 install akshare --user

        2.3 模塊基本介紹與使用

        2.3.1 mplfinance
        基本介紹:用于金融數(shù)據(jù)可視化和可視化分析的 matplotlib 實用程序(接口),基于matplotlibe開發(fā),并且與pandas的DataFrame數(shù)據(jù)有很好的結(jié)合。

        項目地址:https://github.com/matplotlib/mplfinance

        基本使用方法:

        import mplfinance as mpf

        mpf.plot(data)

        其中 data數(shù)據(jù)是一個DataFrame數(shù)據(jù)類型,必須包含:Open, High, Low and Close這四列,并且有時間日期索引(類型為:DatetimeIndex)。

        接下來,我們虛擬一個數(shù)據(jù)來看看效果吧:

        import mplfinance as mpf
        import pandas as pd

        # 創(chuàng)建日期索引
        index_date = pd.DatetimeIndex(['20210906''20210907''20210908''20210909'])
        # 隨便創(chuàng)建數(shù)據(jù)
        data = pd.DataFrame({
            'Open': [1234], 
            'High': [2345], 
            'Low' : [0.5122],
            'Close': [2343]
        }, index=index_date)
        # 調(diào)用plot函數(shù) 進(jìn)行繪圖
        mpf.plot(data)

        我們看到,現(xiàn)在根據(jù)模擬數(shù)據(jù)我們簡單繪制了一個簡單的OHLC線條。

        type參數(shù)使用,讓繪圖更加精彩:

        mpf.plot(data,type='candle')
        mpf.plot(data,type='line')

        type還可以為:renko、pnf。

        mav參數(shù)可以添加移動平均線,更好的看趨勢。

        mpf.plot(data, type='candle', mav=2)

        還可以添加多條移動平均線:

        mpf.plot(data, type='candle', mav=(23))

        更多使用方法,后面分章節(jié)給大家介紹,也歡迎大家去github地址自行學(xué)習(xí),和我以及簡說Python學(xué)習(xí)群友進(jìn)行交流。

        2.3.2 akshare
        基本介紹:AKShare 是一個優(yōu)雅簡單的 Python 金融數(shù)據(jù)接口庫,你可以利用這個庫輕松獲取到金融財經(jīng)數(shù)據(jù)。

        項目地址:https://github.com/jindaxiang/akshare/ 基本使用方法:

        • 獲取指數(shù)數(shù)據(jù)
        import akshare as ak
        # 獲取上證指數(shù)每日的變化數(shù)據(jù) OHLC
        sz_index = ak.stock_zh_index_daily(symbol="sh000001")

        這樣就可以獲取到上證指數(shù)所有歷史數(shù)據(jù)啦~

        • 獲取A股數(shù)據(jù)
        # 獲取茅臺股票每日的變化數(shù)據(jù) 采用前復(fù)權(quán)方式計算(關(guān)于復(fù)權(quán)計算更多知識以后分享,大家可以網(wǎng)絡(luò)查找相關(guān)資料)
        stock_zh_mt_hist_df = ak.stock_zh_a_hist(symbol="600519", period="daily", start_date="20170301", end_date='20210913', adjust="qfq")
        • 獲取港股數(shù)據(jù)
        # 獲取港股騰訊股票歷史數(shù)據(jù)
        stock_hk_tx_hist_df = ak.stock_hk_hist(symbol="00700", start_date="20170301", end_date="20210913", adjust="qfq")
        • 獲取美股數(shù)據(jù)
        # 獲取美股蘋果公司歷史股票數(shù)據(jù)
        stock_us_apple_hist_df = ak.stock_us_hist(symbol='105.AAPL', start_date="20100101", end_date="20210913", adjust="qfq")
        • 獲取基金數(shù)據(jù)
        # 獲取易方達(dá)藍(lán)籌從發(fā)行到現(xiàn)在的凈值數(shù)據(jù)
        yfd_fund = ak.fund_em_open_fund_info(fund="005827", indicator="單位凈值走勢")

        更多使用方法,后面分章節(jié)給大家介紹,也歡迎大家去github地址自行學(xué)習(xí),和我以及簡說Python學(xué)習(xí)群友進(jìn)行交流。

        來,操作

        按上面方法,我們獲取上證指數(shù)數(shù)據(jù)后,選取從2020-01-01到現(xiàn)在的數(shù)據(jù)進(jìn)行可視化,然后在進(jìn)行細(xì)分可視化,并選擇不同的移動平均線。

        • 2020-01-01 - '2021-09-13, mav=(200, 300, 350)
        import akshare as ak
        import mplfinance as mpf
        import pandas as pd

        # 獲取上證指數(shù)每日的變化數(shù)據(jù) OHLC
        sz_index = ak.stock_zh_index_daily(symbol="sh000001")
        data1 = sz_index.loc['2020-01-01 00:00:00+00:00':'2021-09-13 00:00:00+00:00']
        mpf.plot(data1, type='candle', mav=(200300350), volume=True)
        • 2021-01-01 - '2021-09-13, mav=(30, 60, 120)
        data2 = sz_index.loc['2021-01-01 00:00:00+00:00':'2021-09-13 00:00:00+00:00']
        mpf.plot(data2, type='candle', mav=(3060120), volume=True)
        • 2021-04-01 - '2021-09-13mav=(5, 10, 20)
        data3 = sz_index.loc['2021-04-01 00:00:00+00:00':'2021-09-13 00:00:00+00:00']
        mpf.plot(data3, type='candle', mav=(51020), volume=True)

        今天就到這里啦,如果大家覺得文章不錯,記得點個贊哈~金融分析&可視化系列會繼續(xù),本文全部源碼還在整理中,大家可以先加老表微信,備注:金融分析,加入金融分析&可視化交流群,后面代碼整理好了會第一時間群內(nèi)公布獲取方法。

        點贊+留言+轉(zhuǎn)發(fā),就是對我最大的支持啦~

        瀏覽 131
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲无码视频播放 | 另类视频专区 | 成人做爱视频www | 亚洲欧洲精品一区 | 国产成人视频免费看 | 一区二区三区电影网 | 久久久成人高清视频 | 护士扒下内裤让我爽一夜电影 | 欧美校园春色 | 西西人体444WWW大胆中国 |