vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 4
声望: 0

1、请问ctatemplate中loadbar函数中的interver参数设置为minute是否只能加载分钟数据,改为daily是否有效;
2、loadbar函数返回的是bar的列表吗?还是其他的什么?

Administrator
avatar
加入于:
帖子: 3566
声望: 189
  1. 有效
  2. 不会返回任何数据,而是完成数据库读取数据后,由引擎调用策略的on_bar回调函数推送进来
Member
avatar
加入于:
帖子: 4
声望: 0

用Python的交易员 wrote:

  1. 有效
  2. 不会返回任何数据,而是完成数据库读取数据后,由引擎调用策略的on_bar回调函数推送进来

感谢老哥,再请教个问题:
1、ctaengine中bars = database_manager.load_bar_data,是否可是使用该函数返回数据库中的日线列表;
2、def load_day_bar(
self,
vt_symbol: str,
days: int,
interval: Interval,
use_database: bool
):
""""""
symbol, exchange = extract_vt_symbol(vt_symbol)
end = datetime.now()
start = end - timedelta(days)
day_bars = []

    # Pass gateway and RQData if use_database set to True
    if not use_database:
        # Query bars from gateway if available
        contract = self.main_engine.get_contract(vt_symbol)

        if contract and contract.history_data:
            req = HistoryRequest(
                symbol=symbol,
                exchange=exchange,
                interval=interval,
                start=start,
                end=end
            )
            day_bars = self.main_engine.query_history(req, contract.gateway_name)

        # Try to query bars from RQData, if not found, load from database.
        else:
            day_bars = self.query_bar_from_rq(symbol, exchange, interval, start, end)

    if not day_bars:
        day_bars = database_manager.load_bar_data(
            symbol=symbol,
            exchange=exchange,
            interval=interval,
            start=start,
            end=end,
        )
    return day_bars

在我把load_bar函数稍微修改了一下这样可以返回日线数据列表吗?总觉得有点什么问题,谢谢!

Administrator
avatar
加入于:
帖子: 3566
声望: 189
  1. 可以的
  2. 没太看出来改了什么,能否工作还是要看测试结果了
Member
avatar
加入于:
帖子: 4
声望: 0

用Python的交易员 wrote:

  1. 可以的
  2. 没太看出来改了什么,能否工作还是要看测试结果了
    我把最后的callback(bars)改成return day_bars了,然后inreval改为daily,这样是否可以返回日线了?谢谢
Administrator
avatar
加入于:
帖子: 3566
声望: 189

可以返回的,不过正常的load_bar功能就不能用了

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