@Channelchan
2017-03-04T03:26:39.000000Z
字数 1382
阅读 26349
导入模块 获取数据 转换格式 图表设置 查找蜡烛图形态
导入需要的模块:
import talib as taimport tushare as tsimport numpy as npimport matplotlib.pyplot as pltimport pandas as pdfrom matplotlib.dates import DateFormatter, WeekdayLocator,\DayLocator, MONDAY, date2numfrom datetime import datetimefrom matplotlib.finance import candlestick_ochl
从tushare获取000001股票的数据:
quotes = ts.get_k_data('000001', start='2016-11-01', end='2016-12-31', ktype='D',autype='qfq')quotes['time'] = pd.to_datetime(quotes['date'],format='%Y-%m-%d')quotes['date']=[date2num(datetime.strptime(date, '%Y-%m-%d')) for date in quotes.date]
数据格式从dataframe转换成list:
candle_list = []for i in range(len(quotes)):candle_list.append(quotes.iloc[i, 0:5])
对蜡烛图进行设置,读取蜡烛图所需要的数据,显示图表:
mondays = WeekdayLocator(MONDAY) # major ticks on the mondaysalldays = DayLocator() # minor ticks on the daysweekFormatter = DateFormatter('%b %d') # e.g., Jan 12dayFormatter = DateFormatter('%d') # e.g., 12fig, (ax, ax1) = plt.subplots(2, 1, sharex=True)fig.subplots_adjust(bottom=0.2)ax.xaxis.set_major_locator(mondays)ax.xaxis.set_minor_locator(alldays)ax.xaxis.set_major_formatter(weekFormatter)candlestick_ochl(ax, candle_list, width=0.6)ax.xaxis_date()ax.autoscale_view()plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')
使用TA_Lib的蜡烛图功能查找十字星:
Doji = ta.abstract.CDLDOJI(quotes)quotes['Doji'] = Dojiquotes.index = quotes.timeax1.bar(quotes.index, quotes.Doji)plt.show()print(quotes)
底下蓝色线的为出现十字星的日期!

