VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 4
声望: 0

from vnpy.trader.database import database_manager现在引用不到,他的替代类是什么?

想要用程序更新最新的行情数据,找不到get_newest_bar_data函数了
database_manager.get_newest_bar_data(symbol, exchange, interval)

Member
avatar
加入于:
帖子: 1911
声望: 142

from vnpy.trader.database import get_database

database_manager = get_database()

另外之前也没有这个get_newest_bar_data函数吧?

Member
avatar
加入于:
帖子: 4
声望: 0

MTF wrote:

from vnpy.trader.database import get_database

database_manager = get_database()

另外之前也没有这个get_newest_bar_data函数吧?
之前的database_manager是有的,现在没有了。现在如何更新最新的KBar?

Member
avatar
加入于:
帖子: 4
声望: 0

找到办法了,从vnpy_rqdata的datafeed查询历史数据,start日期,从db.get_bar_overview拿end即可。

from datetime import datetime, time
import pytz
from time import sleep
from vnpy.trader.database import get_database
from vnpy_rqdata import Datafeed
from vnpy.trader.constant import Exchange, Interval
from vnpy.trader.object import HistoryRequest

# 每天17点更新数据
current_time = datetime.now().time()
start_time = time(17, 0)

def update_data():
    db = get_database()
    df = Datafeed()
    df.init()
    beijing_tz = pytz.timezone('Asia/Shanghai')
    data = db.get_bar_overview()
    for d in data:
        req: HistoryRequest = HistoryRequest(
            symbol=d.symbol,
            exchange=Exchange(d.exchange),
            interval=Interval(d.interval),
            start=d.end,
            end=datetime.now(beijing_tz)
        )
        data = df.query_bar_history(req)
        if len(data) > 0:
            db.save_bar_data(data)

update_data()
Member
avatar
加入于:
帖子: 1911
声望: 142

对的,get_bar_overview就是获取数据库中的K线存储长度情况

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】