<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          原來Matplotlib能畫股票K線圖!!附代碼

          共 3874字,需瀏覽 8分鐘

           ·

          2024-04-21 23:13

          之前在一篇文章中提到Matplotlib可視化,甚至可以用來畫股票K線圖,許多同學(xué)也在問代碼,這次來發(fā)個文回應(yīng)下。

          Python用matplotlib繪制K線圖,需要配合talib、numpy、mpl_finance等第三方庫來使用,效果展示如下:簡單講講K線圖的結(jié)構(gòu),我不搞股票,所以不太懂,特地查了資料。

          股市及期貨市場中的K線圖的畫法包含四個數(shù)據(jù),即開盤價、最高價、最低價、收盤價。

          所有的k線都是圍繞這四個數(shù)據(jù)展開,反映大勢的狀況和價格信息。

          如果把每日的K線圖放在一張紙上,就能得到日K線圖,同樣也可畫出周K線圖、月K線圖。

          下面開始使用Matplotlib來繪制K線圖,建議在notebook中編程和展示。

          第一步:導(dǎo)入相關(guān)庫

          import talib
          import numpy as np
          import pandas as pd
          import matplotlib.pyplot as plt
          import matplotlib as mpl
          import datetime
          import mpl_finance as mpf
          import warnings
          import akshare as ak

          warnings.filterwarnings('ignore')
          plt.rcParams['font.sans-serif'] = [u'SimHei']
          plt.rcParams['axes.unicode_minus'] = False

          第二步:獲取股票數(shù)據(jù) 這里從akshare庫接口自動獲取數(shù)據(jù)

          def getdata(stock_symbol):
              global data_all
              # 所有股票實時數(shù)據(jù)
              data_all = ak.stock_zh_a_spot()

              # 單個股票歷史行情數(shù)據(jù)
              global data
              data = ak.stock_zh_a_daily(symbol=stock_symbol, adjust="hfq")

              # 生成股票code和name
              global stock_code
              stock_code = data_all[data_all['symbol'] == stock_symbol].values[01]
              global stock_name
              stock_name = data_all[data_all['symbol'] == stock_symbol].values[02]
              
              print("數(shù)據(jù)加載完成")

          getdata('sh600006')

          第三步:繪制k線圖

          def kline(start_time,end_time):    
              # 處理數(shù)據(jù)
              global data
              data = data[start_time:end_time]
              # 10天均線
              sma_10 = talib.SMA(np.array(data['close']), 10)
              # 30天均線
              sma_30 = talib.SMA(np.array(data['close']), 30)
              # 添加圖表
              global fig
              fig = plt.figure(figsize=(84),dpi=200)
              ax = fig.add_axes([0,0.2,1,0.5])
              ax2 = fig.add_axes([0,0,1,0.2])
              # 繪制K線圖
              mpf.candlestick2_ochl(ax, data['open'], data['close'], data['high'], data['low'],
                               width=0.5, colorup='r', colordown='g', alpha=0.6)
              ax.set_xticks(range(0, len(data.index), 10))
              ax.plot(sma_10, label='10 日均線')
              ax.plot(sma_30, label='30 日均線')
              global stock_name
              ax.set_title("{0}K線圖".format(stock_name))
              ax.legend(loc='upper left')
              ax.grid(True)
              # 繪制成交量柱狀圖
              mpf.volume_overlay(ax2, data['open'], data['close'], data['volume'], colorup='r', colordown='g', width=0.5, alpha=0.8)
              ax2.set_xticks(range(0, len(data.index), 10))
              ax2.set_xticklabels(data.index[::10].strftime('%Y-%m-%d'), rotation=30)
              plt.show()

          start_time = '2021-06-01'
          end_time = '2021-09-30'
          kline(start_time,end_time)

          在公眾號后臺回復(fù):k,獲取完整代




          加入知識星球【我們談?wù)摂?shù)據(jù)科學(xué)】

          600+小伙伴一起學(xué)習(xí)!






          瀏覽 903
          9點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美大屌视频 | 国内自拍小视频 | 欧美黄色一区二区 | 女人18片毛片90视频 | 久久亚洲Av夜福利精品一区 |