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 [ ]: