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

我想在策略初始化的时候载入前两天日线级别的开、高、低、收四个信息,请问如何载入呢?

vnpy有方便的方法实现吗?谢谢。

Administrator
avatar
加入于:
帖子: 2568
声望: 109

调用load_bar函数,策略初始化的时候,历史K线数据会自动载入并推送给策略

Member
avatar
加入于:
帖子: 132
声望: 2

你好,我print了一下, 这个load_bar是没有返回值的,那怎么调用呢?
比如:
我要写一条逻辑:if 昨天的最高价>前天的最高价:

这个前两天的“最高价”怎么取呀?谢谢。

Administrator
avatar
加入于:
帖子: 2568
声望: 109

load_bar调用后,引擎会自动加载历史数据,并通过on_bar推送给策略,不再需要用户自行回放了

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

今天我也在研究loadbar,有些迷惑。loadbar(10)应该是加载10日的1分数据。如果当下的database里面没有历史数据,它从哪里取到的呢?是ctp远程提供的吗?
还是说我们需要先通过加载csv的方式给它存进去?
请先行者大牛们不吝赐教!

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

找到了,在engine.py中

Query bars from RQData by default, if not found, load from database.

    bars = self.query_bar_from_rq(symbol, exchange, interval, start, end)
    if not bars:
        bars = database_manager.load_bar_data(

RQData中可能有历史数据。

Member
avatar
加入于:
帖子: 132
声望: 2

用Python的交易员 wrote:

load_bar调用后,引擎会自动加载历史数据,并通过on_bar推送给策略,不再需要用户自行回放了

不好意思,还是没看懂,推送给onbar 也是产生1分钟k线吧,可是怎么取到一天的最高价?要自己写代码实现还是可以通过vnpy的哪个函数直接取数?

谢谢。

Administrator
avatar
加入于:
帖子: 2568
声望: 109

zszqzzzf wrote:

今天我也在研究loadbar,有些迷惑。loadbar(10)应该是加载10日的1分数据。如果当下的database里面没有历史数据,它从哪里取到的呢?是ctp远程提供的吗?
还是说我们需要先通过加载csv的方式给它存进去?
请先行者大牛们不吝赐教!

  1. 如果配置了RQData账号,且该合约在RQData的服务中有数据,那么会直接从RQData获取
  2. 否则会从数据库获取
  3. 数据库没有的话就需要用CsvLoader加载进去了
Administrator
avatar
加入于:
帖子: 2568
声望: 109

常山之蛇 wrote:

用Python的交易员 wrote:

load_bar调用后,引擎会自动加载历史数据,并通过on_bar推送给策略,不再需要用户自行回放了

不好意思,还是没看懂,推送给onbar 也是产生1分钟k线吧,可是怎么取到一天的最高价?要自己写代码实现还是可以通过vnpy的哪个函数直接取数?

自己写代码记录后才能获得,没有函数可以直接取

谢谢。

Member
avatar
加入于:
帖子: 132
声望: 2

我想到的方法是:在onbar中对比每一根k线,取到当天最高价,然后存入pickle。

请问有更好的方法么?

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