VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 57
声望: 1

但是输出日志显示,在初始30根bar内执行on_bar时,会执行到

print('buy creat0',bar.vt_symbol,bar.datetime,bar.close_price)
self.buy(bar.close_price, 1)

这意味着订单已经创建,这些创建的订单被如何处理了,是简单丢弃了,还是一直在系统中,还是buy命令发现self.strategy.trading 为false,所以并没有创建订单?

Member
avatar
加入于:
帖子: 5049
声望: 303

没发单,要trading等于true才会发单。可以自己去看vnpy.app.cta_strategy.template下的send_order函数

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

self.load_bar(10) 这里要问一下周期的问题。 如果self.bg是1分钟,那么这里load_bar(10)就是10分钟; 如果是30min合成bar,那么这里load_bar(10)就是10个30分钟把 。 还是说load_bar 代表的是 过去10个交易日的所有分钟数据

Member
avatar
加入于:
帖子: 716
声望: 63

不论周期,代表过去10个交易日的数据,数据周期是你自己提供的数据的周期。

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

load_bar()里面的数字是天数
def load_bar(
self,
days: int,
interval: Interval = Interval.MINUTE,
callback: Callable = None,
use_database: bool = False
):
"""
zuck-zhang wrote:

self.load_bar(10) 这里要问一下周期的问题。 如果self.bg是1分钟,那么这里load_bar(10)就是10分钟; 如果是30min合成bar,那么这里load_bar(10)就是10个30分钟把 。 还是说load_bar 代表的是 过去10个交易日的所有分钟数据

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

self.load_bar(days=30, interval = Interval.DAILY)

有个建议, load_bar 后面这个参数是否可以 取 回测界面 用户选择的 参数?

感觉这里很容易踩坑

Member
avatar
加入于:
帖子: 104
声望: 5

xiaohe wrote:

  1. 要load_bar完成后(初始化完成后),trading状态才会变为true。
  2. 可以去engine.py看一下load_bar函数。默认use_database为false,会先去接口拿数据,没有的话会去rqdata找,最后才会去database。

数据库存储了足够的日线历史数据,没有存储分钟数据,然后self.load_bar(days = 40,use_database=True),40个自然日足够策略计算指标,在cta策略界面执行初始化,看了下初始化inited=True,启动后trading=True,但显示窗口列出的指标都没有数据,就能不通过rqdata实现实盘交易吗?
不能的话,只想通过数据库历史数据,不要rqdata的数据,数据库是不是还需要历史分钟数据才可以,至少需要多少分钟数据?

Member
avatar
加入于:
帖子: 104
声望: 5

ahren wrote:

xiaohe wrote:

  1. 要load_bar完成后(初始化完成后),trading状态才会变为true。
  2. 可以去engine.py看一下load_bar函数。默认use_database为false,会先去接口拿数据,没有的话会去rqdata找,最后才会去database。

数据库存储了足够的日线历史数据,没有存储分钟数据,然后self.load_bar(days = 40,use_database=True),40个自然日足够策略计算指标,在cta策略界面执行初始化,看了下初始化inited=True,启动后trading=True,但显示窗口列出的指标都没有数据,就能不通过rqdata实现实盘交易吗?
不能的话,只想通过数据库历史数据,不要rqdata的数据,数据库是不是还需要历史分钟数据才可以,至少需要多少分钟数据?

验证了下,load_bar(10), 实盘是load 10个自然日的1分钟线去初始化(开始以为是10个自然日日线数据就可以初始化),那么不用rqdata的历史数据,数据库必须写入的是满足load_bar天数的1分钟线,如果天数不满足依然可以初始化,只是指标可能就计算不出来;我的策略指标都是日线计算,但cta策略合成日线又都是用分钟数据,在想数据库存日线数据容易获取,直接用日线数据计算指标而不通过分钟合成日线在计算指标,不就可以实现入库的是日线历史数据,而实现策略初始化

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

沪公网安备 31011502017034号

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