更新广交所之后,我改了ctpgateway和constant里的对应部分,交易正常
但是会时不时突然出现内存占用不断增加,最后内存崩溃的现象
请问是什么问题呢/?
事情是这样的,本来策略A开了两手J,然后策略b开了1手J
然后策略A要平两手J,但是按照顺序,先平了其中一手自己开的J和一手B的j
然后策略A判断self.pos还有1手J没有平,又把剩下的J平掉了?
请问这种情况是为何发生和如何避免呢?
谢谢
已知原版的bar generater是会把集合竞价单独作为一个tick
这样会多出来一个bar
但是实际上,除了因子计算会有bug以外,多了一个bar,才能实现在开盘时候的交易
否则按照bar走完之后再交易的规则,第一笔交易只能发生在01分,而不是00分
大家怎么看待呢?
xiaohe wrote:
不能
rqdata也是实盘收tick合成的,如果有漏掉没录到的最高最低价或者别的小问题,会在盘后再更新一遍K线
但是盘中数据会有问题,比如第一根K线
bargenerater的坑太多,能否把实盘改成也是从rqdata接受推送?
这样就可以确保K线的准确性?
RQDATA的数据用于回测,其中SN 和NI 的数据很奇怪
88/889/99都试过了,就15年的时候有交易,其他时段都是只要开仓了就平不了仓
策略没有问题,在其他品种都没有问题
请问是不是这两个品种有什么特别的地方?
MTF wrote:
self.malist这种创建操作,要放到init函数下,否则就可能出现多个策略类实例出来的对象公用的情况。
这块源于Python的可变对象实例化直接引用特征,在《30天解锁Python量化开发》课程中有讲
谢谢,为啥我之前创建其他的单个指标就不会出现问题呢?
有两个同一个策略在不同合约上的策略,建了一个self.malist=[]来记录最近的行情
奇怪的是,当我算 np.mean(self.malist)才发现,输出的是一个根本不可能的数,最后查估计是两个合约都记录在了一起,求了平均
回测的时候没有问题,实盘有这个共用了self.malist的问题,请问是为啥呢?
类似海龟的策略
昨晚10点的Ma触发了开仓,但是用同一套策略回测是没有触发的
同样的事情很多品种都有
请问是什么问题呢?
平仓语句(cover)发出但是没有看到委托
因为后面的print的东西是print出来了.但是没有看到委托,直到下一分钟才重新委托
我是先cancel all,再判断交易的
这一分钟的cancel发生了,但是没有委托,但是委托下一条语句print出来了,所以应该是有发出cover才对
这是为什么呢?
请问怎么获得涨跌停价格呢?
因为不知道这种价格很难过滤,回测都是假的
低成本的策略初始化数据求教?
貌似天勤SDK已经不能免费用了?买多个米匡有点吃不消,因为账户和云端挺多的.
请问如何低成本地获得初始化所需要的数据?
同一个策略两家不同公司的不同账号计算结果不同怎么解决?
是因为CTP传过来的信号不同吗?这种情况该怎么解决?
郭易燔 wrote:
这个初始化流程是在你每次初始化策略时都会进行一次的。第一次运行时第五步时无法加载到数据的,所以是直接用的计算数据,之后都是会使用json数据覆盖计算结果,并且每次退出后都会生成新的json。因为vnpy默认使用者是连续交易的,即在前一天收盘后关闭vnpy,在第二天开盘前打开vnpy,那么数据就应该是连续的。所以当前的初始化结果和之前的json存储的结果应该是一致的。
对,我之前的策略也是这样,但是这个策略因为是断点更新,所以会bug
请问可以调成每次强行重新运算吗,不然为啥要初始化呢?
MTF wrote:
初始化流程如下:
- 界面点击【初始化】按钮
- 触发策略的on_init回调函数
- on_init中调用load_bar加载数据
- on_bar收到初始化阶段的K线推送
- 推送完成,加载json文件中缓存的昨日收盘策略状态
- 完成初始化
所以你这里的情况可能是json文件中的缓存数据有误,导致初始化K线回放计算出来的指标结果,被错误覆盖了。
但是vnpy是新重装过的,而json文件也删除过了,但是这个问题依然存在?