[关闭]
@Channelchan 2017-03-04T11:26:39.000000Z 字数 1382 阅读 26140

TA_Lib 蜡烛图

导入模块 获取数据 转换格式 图表设置 查找蜡烛图形态


使用Matplotlib画蜡烛图,并使用TA_Lib蜡烛图检索功能。

导入需要的模块:

  1. import talib as ta
  2. import tushare as ts
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. import pandas as pd
  6. from matplotlib.dates import DateFormatter, WeekdayLocator,\
  7. DayLocator, MONDAY, date2num
  8. from datetime import datetime
  9. from matplotlib.finance import candlestick_ochl

从tushare获取000001股票的数据:

  1. quotes = ts.get_k_data('000001', start='2016-11-01', end='2016-12-31', ktype='D',autype='qfq')
  2. quotes['time'] = pd.to_datetime(quotes['date'],format='%Y-%m-%d')
  3. quotes['date']=[date2num(datetime.strptime(date, '%Y-%m-%d')) for date in quotes.date]

数据格式从dataframe转换成list:

  1. candle_list = []
  2. for i in range(len(quotes)):
  3. candle_list.append(quotes.iloc[i, 0:5])

对蜡烛图进行设置,读取蜡烛图所需要的数据,显示图表:

  1. mondays = WeekdayLocator(MONDAY) # major ticks on the mondays
  2. alldays = DayLocator() # minor ticks on the days
  3. weekFormatter = DateFormatter('%b %d') # e.g., Jan 12
  4. dayFormatter = DateFormatter('%d') # e.g., 12
  5. fig, (ax, ax1) = plt.subplots(2, 1, sharex=True)
  6. fig.subplots_adjust(bottom=0.2)
  7. ax.xaxis.set_major_locator(mondays)
  8. ax.xaxis.set_minor_locator(alldays)
  9. ax.xaxis.set_major_formatter(weekFormatter)
  10. candlestick_ochl(ax, candle_list, width=0.6)
  11. ax.xaxis_date()
  12. ax.autoscale_view()
  13. plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')

使用TA_Lib的蜡烛图功能查找十字星:

  1. Doji = ta.abstract.CDLDOJI(quotes)
  2. quotes['Doji'] = Doji
  3. quotes.index = quotes.time
  4. ax1.bar(quotes.index, quotes.Doji)
  5. plt.show()
  6. print(quotes)

底下蓝色线的为出现十字星的日期!
candle_1

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注