In [349]:
# -*- coding:utf-8 -*-
import tushare as ts
import matplotlib.pyplot as plt
#import matplotlib.finance as mpf
import mpl_finance as mpf
import matplotlib.ticker as ticker
import datetime
import numpy as np
import pandas as pd
import time
from pyecharts import Overlap
from pyecharts import Kline
from pyecharts import Line
from pyecharts import Bar
from pyecharts import Grid
In [350]:
def n_days_ago(n):
today=datetime.date.today()
ndays_ago=today-datetime.timedelta(n)
return str(ndays_ago)
In [351]:
start_date = '2018-07-01'
now = int(time.time())
timeArray = time.localtime(now)
Time = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
end_date = Time
ndays = 180
stock_selected = '600487'
MAX_SMA=20
start_date = n_days_ago(ndays + MAX_SMA)
ktype = 'd'
In [352]:
df = ts.get_k_data(stock_selected,start_date,end_date)
v_kline = np.array(df[['open','close','low','high']][MAX_SMA:])
date_kline = []
for i,j in enumerate(np.array(df[['date']][MAX_SMA:])):
#print(j)
temp_str = str(j[0]).replace('-0','/')
date_kline.append(temp_str.replace('-','/'))
In [353]:
SMA5 = np.array(pd.Series.rolling(df[['close']],5).mean()[MAX_SMA:])
SMA20 = np.array(pd.Series.rolling(df[['close']],20).mean()[MAX_SMA:])
v_volume = np.array(df['volume'][MAX_SMA:])
In [360]:
kline = Kline("K 线图示例")
kline.add("日K",
date_kline,
v_kline,
mark_point=["max","min"],
mark_line=["max"],
#is_datazoom_show=True
)
sma_line = Line()
volume_bar = Bar()
volume_bar.add("",date_kline, v_volume)
overlap = Overlap()
sma_line.add("SMA5", date_kline,SMA5)
sma_line.add("SMA20",date_kline,SMA20)
overlap.add(kline)
overlap.add(sma_line)
grid = Grid(height=600,width=1000)
grid.add(overlap, grid_bottom="25%")
grid.add(volume_bar, grid_top="80%")
Out[360]:
In [ ]:
In [ ]: