目前我是采用的oms_engine的position来获取当前持仓的,但发现实际中好像有些迟延,请问怎样调用函数及时更新持仓,或者除oms_engine外有更好的获取全局持仓的方式吗?
目前我是采用的oms_engine的position来获取当前持仓的,但发现实际中好像有些迟延,请问怎样调用函数及时更新持仓,或者除oms_engine外有更好的获取全局持仓的方式吗?
基于on_trade自行计算持仓即可
那OMS的持仓间隔更新是在eventengine里的interval中设置的吗?我看默认设置是1秒
Poor_chris wrote:
那OMS的持仓间隔更新是在eventengine里的interval中设置的吗?我看默认设置是1秒
不是,这个是由底层接口的持仓数据推送频率决定的。
比如CTP接口不支持持仓推送,目前设计是每6秒查询一次,那么同步周期就是6秒了。
请问这个查询的同步周期可以自己修改吗?在哪里修改
vnpy_ctp.gateway.ctp_gateway
Poor_chris wrote:
请问这个查询的同步周期可以自己修改吗?在哪里修改
请问这个6s 间隔 改好了么
可以在这自行修改
郭易燔 wrote:
可以在这自行修改
具体修改哪个 参数 可以把原来的6S 改成2S呢
把230-233行删除应该就可以了
郭易燔 wrote:
把230-233行删除应该就可以了
谢谢
用Python的交易员 wrote:
Poor_chris wrote:
那OMS的持仓间隔更新是在eventengine里的interval中设置的吗?我看默认设置是1秒
不是,这个是由底层接口的持仓数据推送频率决定的。
比如CTP接口不支持持仓推送,目前设计是每6秒查询一次,那么同步周期就是6秒了。
def process_timer_event(self, event) -> None:
"""定时事件处理"""
self.count += 1
if self.count < 2:
return
self.count = 0
func = self.query_functions.pop(0)
func()
self.query_functions.append(func)
self.md_api.update_date()
def init_query(self) -> None:
"""初始化查询任务"""
self.count: int = 0
self.query_functions: list = [self.query_account, self.query_position]
self.event_engine.register(EVENT_TIMER, self.process_timer_event)
从这两个函数看不出来 时每六秒 读取一下底层持仓啊,怎么感觉时每两秒读取一次呢
每隔2秒从列表里推一个函数进行调用,一共两个函数持仓和资金,所以其实应该是四秒完成一次账户底层状态的更新
郭易燔 wrote:
每隔2秒从列表里推一个函数进行调用,一共两个函数持仓和资金,所以其实应该是四秒完成一次账户底层状态的更新
收到 感谢