读取mongodb 显示日k 指定日期近500条 不能超过800条

来源:互联网 发布:centos查看gcc 编辑:程序博客网 时间:2024/05/30 04:32
#!/usr/bin/env pythonimport matplotlib.pyplot as pltfrom matplotlib.dates import DateFormatter, WeekdayLocator,\    DayLocator, MONDAYfrom matplotlib.finance import  candlestick_ohlcimport matplotlibimport datetimeimport pymongo#from datetime import datetime#from datetime import timedeltaglobal stocksglobal k_riglobal list_codeglobal conn_list, conn_kquotes = []def show(code, name, quotes):    #print quotes    print code, name    if len(quotes) == 0:        raise SystemExit    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 = plt.subplots()    fig.subplots_adjust(bottom=0.2)    ax.xaxis.set_major_locator(mondays)    ax.xaxis.set_minor_locator(alldays)    ax.xaxis.set_major_formatter(weekFormatter)    ax.xaxis.set_minor_formatter(dayFormatter)    #plot_day_summary(ax, quotes, ticksize=3)    candlestick_ohlc(ax, quotes, width=0.6)    ax.xaxis_date()    ax.autoscale_view()    plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')    plt.show()def init_mongodb_list():    global stocks    global conn_list    # mongodb_link = 'mongodb://127.0.0.1:27017'    # mongoClient = MongoClient(mongodb_link)    conn_list = pymongo.MongoClient("localhost", 27017)    conn_list.stock_list.authenticate("d", "zz")    db = conn_list.stock_list    stocks = db.stocksdef init_mongodb_k():    global k_ri    global conn_k    conn_k = pymongo.MongoClient("localhost", 27017)    conn_k.db_stock.authenticate("d", "zz")    db = conn_k.db_stock    k_ri = db.k_ridef get_k_ri(code, date, quotes):    l = k_ri.find({"code": code, "date": {"$lte": date}}).sort([('date', -1)]).limit(500)    for i in l:        code = i.get("code")        date = i.get("date")        open = i.get("open")        high = i.get("high")        low = i.get("low")        close = i.get("close")        volume = i.get("volume")        adj_close = i.get("adj_close")        print code, date, open, high, low, close, volume, adj_close        day = datetime.datetime.strptime(date, "%Y-%m-%d")        year = int(day.strftime('%Y'))        mon = int(day.strftime('%m'))        day1 = int(day.strftime('%d'))        quotes.append((matplotlib.dates.date2num(datetime.datetime(year, mon, day1)), open, high, low, close))    print code, date,"----------------------------------------"def get_stock_list(code):    l = stocks.find({"code":code}).limit(1)    print type(l)    for i in l:        name = i.get("name")    return nameif __name__ == '__main__':    code = "600004"    date = "2003-09-01"    init_mongodb_list()    name = get_stock_list(code)    conn_list.close()    #print name    init_mongodb_k()    get_k_ri(code, date,quotes)    conn_k.close()    show(code, name, quotes)
0 0
原创粉丝点击