VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 18
声望: 3

目前使用VeighNa- 3.9.3,连接中金所CTP柜台交易股指期货的趋势交易,使用了cta套件,程序放在云服务器上。

一般交易结束后,柜台会关闭,VeighNa的系统隔一段时间会重新登录服务器。
经常看到日志文件中有这样的情况:
06:56:52 交易服务器断开
06:57:02 交易服务器连接成功
06:57:03 行情服务器连接成功
06:57:03 行情服务器登录成功

07:02:09 交易服务器授权验证失败,代码: 8, 信息:CTP:前置不活跃


请问大神,这个“交易服务器授权验证”时间在系统中可以修改吗?感觉早上7点左右有的经纪商系统还没正常,如果能设置成8:00或者更晚一些,应该就不会出现这个问题了

恳请大神指点,谢谢!

Super Moderator
avatar
加入于:
帖子: 74
声望: 7

CTP接口的重连逻辑是由底层API自动处理的,无法直接通过修改代码来控制重连时间。

正确的解决方案

由于无法直接修改CTP接口的重连逻辑,您可以通过以下两种方式来解决这个问题:

1. 使用定时任务控制VeighNa启动时间

通过操作系统的定时任务功能,控制VeighNa在8:00之后启动。例如,在Linux系统中,可以使用cron定时任务:

  1. 编辑crontab文件:
    crontab -e
    
  2. 添加以下内容:
    0 8 * * * /path/to/your/veighna/run.py
    
    这样,VeighNa会在每天8:00自动启动,避免在经纪商系统未准备好时进行重连。

2. 修改VeighNa的启动脚本

在VeighNa的启动脚本中增加对时间的判断,如果时间早于8:00,则等待到8:00再启动。例如,修改run.py脚本:

import time
from datetime import datetime
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
from vnpy_datamanager import DataManagerApp

def main():
    """Start VeighNa Trader"""
    # 判断当前时间是否早于8:00
    now = datetime.now().time()
    if now.hour < 8:
        wait_time = (8 - now.hour) * 3600 - now.minute * 60 - now.second
        print(f"当前时间早于8:00,等待{wait_time}秒后启动...")
        time.sleep(wait_time)

    qapp = create_qapp()

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)

    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(CtaBacktesterApp)
    main_engine.add_app(DataManagerApp)

    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()

if __name__ == "__main__":
    main()

总结

由于CTP接口的重连逻辑无法直接修改,您可以通过定时任务或修改启动脚本来控制VeighNa的启动时间,从而避免在经纪商系统未准备好时进行重连。希望这些方法能帮助您解决问题!

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

谢谢。
我尝试一下你介绍的方法,我现在的系统放在云服务器上,都不关的,偷懒,打算连续运行。

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

沪公网安备 31011502017034号

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