繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

日线和分钟线是可以欢聚一堂的

作者/adjsadj 2019-08-10 19:16 0 来源: FX168财经网人物频道
#import pandas as pd
#import mpl_finance

class Stock(object):
    pass

def get_data(
code='000300.XSHG',
start_date='2015-11-01',
end_date='2015-11-15',
subset = None, # ('2015-11-10', '2015-11-11')
freqs = '1d 1m 5m 30m 60m'.split(),
):
    
    '''
    >>> stk = get_data()
    '''
    stk = Stock()
    for freq in freqs:
        history = get_price(code, start_date=start_date, end_date=end_date, frequency=freq,fields= ['open',  'high', 'low','close', 'volume'])
        stk.__setattr__('ohlc_'+freq, history)

    # 修改日线的日期索引到: @ 15:00:00
    midnight = stk.ohlc_1d.index
    noon = stk.ohlc_1d.index + datetime.timedelta(hours=12)
    deltat = datetime.timedelta(hours=15)
    stk.ohlc_1d.index +=deltat

    df = get_all_securities(['index',])
    stk.dname = df.loc[code]['display_name']
    stk.name = df.loc[code]['name']
    #print(name,dname)
    
    return stk
def plot_ohlc_multiple_timeframe(stk, subset=None):
    '''
    >>> plot_ohlc_multiple_timeframe(stk, subset=('2015-11-10','2015-11-11'))
    >>> plot_ohlc_multiple_timeframe(stk, None)
    '''
    #subset=None
    fig,ax=plt.subplots()
    for attr in map(lambda x: 'ohlc_'+x, freqs[:2]):
        if subset is not None: print('subset={}, {}'.format(*subset))
        if subset is not None:
            ohlc = stk.__getattribute__(attr).loc[subset[0]:subset[1],]
            if attr=='ohlc_1d':
                midnight = ohlc.index + datetime.timedelta(hours=-15)
                noon = ohlc.index + datetime.timedelta(hours=-3)
        else:
            ohlc = stk.__getattribute__(attr)        
            if attr=='ohlc_1d':
                midnight = ohlc.index + datetime.timedelta(hours=-15)
                noon = ohlc.index + datetime.timedelta(hours=-3)

        x = mpl.dates.date2num(ohlc.index)
        ax.plot(x, ohlc.close, label=attr[5:])
        #print(stk.__getattribute__(attr).close[:2])


    x = mpl.dates.date2num(midnight)
    y1,y2= ax.get_ylim() 
    ax.vlines(x,y1,y2, color='k', lw=0.1, label='子夜')
    x = mpl.dates.date2num(noon)
    ax.vlines(x,y1,y2, color='c', lw=0.3, label='中午')



    #'xtls = ax.get_xmajorticklabels()
    #_new_t = mpl.dates.num2date(t._x) #.strftime('%Y\n%m%d')
    xticks = ax.get_xticks()
    if subset is not None:
        new_t= [mpl.dates.num2date(xtick).strftime('%Y\n%m%d\n%H:%M')  for xtick in xticks]
    else:
        new_t= [mpl.dates.num2date(xtick).strftime('%Y\n%m%d')  for xtick in xticks]

    ax.set_xticklabels(new_t)


    ax.legend()
    title = '日线分钟线欢聚一堂\n'
    title += '证券名称: {}, 时间段: {}, {}'.format(stk.dname, ohlc.index[0], ohlc.index[-1])
    fig.suptitle(title, fontsize=18)
    fig.set_size_inches(18,8)
if __name__=='__main__':
    stk = get_data()
    plot_ohlc_multiple_timeframe(stk, None)
    plot_ohlc_multiple_timeframe(stk, subset=('2015-11-10','2015-11-11'))
subset=2015-11-10, 2015-11-11
subset=2015-11-10, 2015-11-11
 
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2152文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4736文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...