@Channelchan
2017-03-04T11:26:39.000000Z
字数 1382
阅读 26140
导入模块
获取数据
转换格式
图表设置
查找蜡烛图形态
导入需要的模块:
import talib as ta
import tushare as ts
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.dates import DateFormatter, WeekdayLocator,\
DayLocator, MONDAY, date2num
from datetime import datetime
from 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 mondays
alldays = DayLocator() # minor ticks on the days
weekFormatter = DateFormatter('%b %d') # e.g., Jan 12
dayFormatter = DateFormatter('%d') # e.g., 12
fig, (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'] = Doji
quotes.index = quotes.time
ax1.bar(quotes.index, quotes.Doji)
plt.show()
print(quotes)
底下蓝色线的为出现十字星的日期!