加入没有数据录制,也没有买任何数据。就靠实盘策略跑的时候CTA模块存的数据,好像也是能跑的?这个CTA模块存下来的实盘数据放在哪里了呢?我如果对CTA模块进行初始化之后,之前存当天的实盘数据就都没了,是正常的么?
加入没有数据录制,也没有买任何数据。就靠实盘策略跑的时候CTA模块存的数据,好像也是能跑的?这个CTA模块存下来的实盘数据放在哪里了呢?我如果对CTA模块进行初始化之后,之前存当天的实盘数据就都没了,是正常的么?
cta模块不会存储市场数据。
ctabacktester使用数据库中数据进行回测。
ctastrategy使用交易接口推送的数据进行交易。
本地数据可以通过datarecorder进行录制或者datamanager进行下载。
郭易燔 wrote:
cta模块不会存储市场数据。
ctabacktester使用数据库中数据进行回测。
ctastrategy使用交易接口推送的数据进行交易。
本地数据可以通过datarecorder进行录制或者datamanager进行下载。
“ctastrategy使用交易接口推送的数据进行交易”。 是不是实盘跑的时候系统把CTP接口收到的数据存到某个缓存里面了呀?
没有存入数据库,实盘交易所推过来的tick会通过事件引擎推给策略的on_tick函数,然后通过BarGenerator生成bar推给策略的on_bar函数。
需要存储交易所推过来的数据的话请通过data_recorder模块录制数据,可参考https://www.vnpy.com/docs/cn/data_recorder.html
xiaohe wrote:
没有存入数据库,实盘交易所推过来的tick会通过事件引擎推给策略的on_tick函数,然后通过BarGenerator生成bar推给策略的on_bar函数。
需要存储交易所推过来的数据的话请通过data_recorder模块录制数据,可参考https://www.vnpy.com/docs/cn/data_recorder.html
比如我开实盘策略跑一上午,但是没有开data_recorder,貌似策略也能自己记录实盘数据?因为我在实盘的时候 每分钟print 出来过去10个bar的close price,每隔一分钟print一次,每次都能不仅看到最新1分钟的价格,也能看到前几分钟的价格。所以本身策略把bar数据存起来了?
存进了ArrayManager里用于指标计算,但是最多只能存size根(比如am的默认size是100,就最多只能存100根)
https://www.vnpy.com/docs/cn/cta_strategy.html
xiaohe wrote:
存进了ArrayManager里用于指标计算,但是最多只能存size根(比如am的默认size是100,就最多只能存100根)
https://www.vnpy.com/docs/cn/cta_strategy.html
谢谢!所以存够了100根以后,就是通过CTP接口新进来一个数据,就顶掉一个老数据是吧?这个过程是不需要行情录制的对吧?就是Cta_Strategy自己会在实盘跑的时候自己存100个最近的历史数据,对吧?
K线的话,不是接口推送,是BarGenerator合成。
如果策略里用了ArrayManager的话,ArrayManager就会存。