繁簡切換您正在訪問的是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

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

更多人气分析师

  • 张亦巧

    人气2192文章4145粉丝45

    暂无个人简介信息

  • 王启蒙现货黄金

    人气296文章3215粉丝8

    本人做分析师以来,并专注于贵金属投资市场,尤其是在现货黄金...

  • 指导老师

    人气1864文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2320文章3821粉丝34

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

  • 梁孟梵

    人气2176文章3177粉丝39

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

  • 张迎妤

    人气1896文章3305粉丝34

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

  • 金泰铬J

    人气2328文章3925粉丝51

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

  • 金算盘

    人气2696文章7761粉丝125

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

  • 金帝财神

    人气4760文章8329粉丝119

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

FX168财经

FX168财经学院

FX168财经

FX168北美