1、请问ctatemplate中loadbar函数中的interver参数设置为minute是否只能加载分钟数据,改为daily是否有效;
2、loadbar函数返回的是bar的列表吗?还是其他的什么?
1、请问ctatemplate中loadbar函数中的interver参数设置为minute是否只能加载分钟数据,改为daily是否有效;
2、loadbar函数返回的是bar的列表吗?还是其他的什么?
用Python的交易员 wrote:
- 有效
- 不会返回任何数据,而是完成数据库读取数据后,由引擎调用策略的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函数稍微修改了一下这样可以返回日线数据列表吗?总觉得有点什么问题,谢谢!
用Python的交易员 wrote:
- 可以的
- 没太看出来改了什么,能否工作还是要看测试结果了
我把最后的callback(bars)改成return day_bars了,然后inreval改为daily,这样是否可以返回日线了?谢谢
可以返回的,不过正常的load_bar功能就不能用了