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

目前我是采用的oms_engine的position来获取当前持仓的,但发现实际中好像有些迟延,请问怎样调用函数及时更新持仓,或者除oms_engine外有更好的获取全局持仓的方式吗?

Administrator
avatar
加入于:
帖子: 4502
声望: 322

基于on_trade自行计算持仓即可

Member
加入于:
帖子: 6
声望: 0

那OMS的持仓间隔更新是在eventengine里的interval中设置的吗?我看默认设置是1秒

Administrator
avatar
加入于:
帖子: 4502
声望: 322

Poor_chris wrote:

那OMS的持仓间隔更新是在eventengine里的interval中设置的吗?我看默认设置是1秒

不是,这个是由底层接口的持仓数据推送频率决定的。

比如CTP接口不支持持仓推送,目前设计是每6秒查询一次,那么同步周期就是6秒了。

Member
加入于:
帖子: 6
声望: 0

请问这个查询的同步周期可以自己修改吗?在哪里修改

Member
avatar
加入于:
帖子: 4719
声望: 287

vnpy_ctp.gateway.ctp_gateway

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

Poor_chris wrote:

请问这个查询的同步周期可以自己修改吗?在哪里修改
请问这个6s 间隔 改好了么

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

description
可以在这自行修改

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

郭易燔 wrote:

description
可以在这自行修改
具体修改哪个 参数 可以把原来的6S 改成2S呢

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

把230-233行删除应该就可以了

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

郭易燔 wrote:

把230-233行删除应该就可以了
谢谢

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

用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)

从这两个函数看不出来 时每六秒 读取一下底层持仓啊,怎么感觉时每两秒读取一次呢

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

每隔2秒从列表里推一个函数进行调用,一共两个函数持仓和资金,所以其实应该是四秒完成一次账户底层状态的更新

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

郭易燔 wrote:

每隔2秒从列表里推一个函数进行调用,一共两个函数持仓和资金,所以其实应该是四秒完成一次账户底层状态的更新
收到 感谢

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

沪公网安备 31011502017034号

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