from vnpy.trader.database import database_manager现在引用不到,他的替代类是什么?
想要用程序更新最新的行情数据,找不到get_newest_bar_data函数了
database_manager.get_newest_bar_data(symbol, exchange, interval)
from vnpy.trader.database import database_manager现在引用不到,他的替代类是什么?
想要用程序更新最新的行情数据,找不到get_newest_bar_data函数了
database_manager.get_newest_bar_data(symbol, exchange, interval)
from vnpy.trader.database import get_database
database_manager = get_database()
另外之前也没有这个get_newest_bar_data函数吧?
MTF wrote:
from vnpy.trader.database import get_database
database_manager = get_database()
另外之前也没有这个get_newest_bar_data函数吧?
之前的database_manager是有的,现在没有了。现在如何更新最新的KBar?
找到办法了,从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()
对的,get_bar_overview就是获取数据库中的K线存储长度情况