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

目前没有该品种的持仓
2022-03-15 15:00:00.500000+08:00
4765.00
目前没有该品种的持仓
关闭子进程
子进程关闭成功
2022-03-15 17:31:41,065 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 17:31:41,112 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 17:31:41,485 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 17:31:41,486 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 18:10:03,076 - vn.py - INFO - 交易服务器连接成功
2022-03-15 18:10:03,367 - vn.py - INFO - 交易服务器连接成功
2022-03-15 18:10:03,410 - vn.py - INFO - 交易服务器授权验证失败,代码:7,信息:CTP:还没有初始化

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

2022-03-15 18:10:03,410 - vn.py - INFO - 交易服务器授权验证失败,代码:7,信息:CTP:还没有初始化
2022-03-15 18:10:11,004 - vn.py - INFO - 行情服务器连接成功
2022-03-15 18:10:11,015 - vn.py - INFO - 行情服务器登录成功
2022-03-15 18:10:11,872 - vn.py - INFO - 行情服务器连接成功
2022-03-15 18:10:11,890 - vn.py - INFO - 行情服务器登录成功
2022-03-15 18:10:39,711 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 18:10:39,723 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 18:10:39,796 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 18:10:39,799 - vn.py - INFO - 交易服务器连接成功
2022-03-15 18:10:39,808 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 18:10:39,817 - vn.py - INFO - 交易服务器连接成功
2022-03-15 18:10:39,872 - vn.py - INFO - 行情服务器连接成功
2022-03-15 18:10:39,880 - vn.py - INFO - 行情服务器连接成功
2022-03-15 18:10:39,885 - vn.py - INFO - 行情服务器登录成功
2022-03-15 18:10:39,889 - vn.py - INFO - 行情服务器登录成功
2022-03-15 18:42:16,832 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 18:42:16,833 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 18:42:17,398 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 18:42:17,399 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 19:50:25,764 - vn.py - INFO - 交易服务器连接成功
2022-03-15 19:50:26,099 - vn.py - INFO - 交易服务器连接成功
2022-03-15 19:50:34,654 - vn.py - INFO - 行情服务器连接成功
2022-03-15 19:50:34,668 - vn.py - INFO - 行情服务器登录成功
2022-03-15 19:50:35,044 - vn.py - INFO - 行情服务器连接成功
2022-03-15 19:50:35,060 - vn.py - INFO - 行情服务器登录成功
2022-03-15 19:52:09,392 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 19:52:09,393 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-15 19:52:09,477 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 19:52:09,515 - vn.py - INFO - 交易服务器连接成功
2022-03-15 19:52:09,516 - vn.py - INFO - 交易服务器连接成功
2022-03-15 19:52:09,536 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-15 19:52:09,632 - vn.py - INFO - 行情服务器连接成功
2022-03-15 19:52:09,648 - vn.py - INFO - 行情服务器登录成功
2022-03-15 19:52:09,674 - vn.py - INFO - 行情服务器连接成功
2022-03-15 19:52:09,704 - vn.py - INFO - 行情服务器登录成功
启动子进程
子进程启动成功

后续时间就正常了。。。。

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

def run_parent()
child_process = None
while True:
trading = self.check_trading_period()

        # Start child process in trading period
        if trading and child_process is None:
            print("启动子进程")
            child_process = threading.Thread(target=self.run_child)
            child_process.start()
            print("子进程启动成功")

        # 非记录时间则退出子进程
        if not trading and child_process is not None:
            if not child_process.is_alive():
                child_process = None
                print("子进程关闭成功")
        sleep(5)

在子进程中 来判断交易时间 是否退出如下
def run_child()
while True:
sleep(10)
trading = self.check_trading_period()
if not trading:
print("关闭子进程")
main_engine.close()
sys.exit(0)

Member
avatar
加入于:
帖子: 5010
声望: 302

可以检查一下你no_ui脚本的定时启动关闭时间设置

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

xiaohe wrote:

可以检查一下你no_ui脚本的定时启动关闭时间设置
SHFETimeDict = {'day_start': time(8, 45),
'day_end': time(15, 00),
'night_start': time(20, 45), # 说明,不能超过20:59分
'night_end': time(23, 30)}
current_time = datetime.now().time()
trading = False

    if (
            (current_time >= DAY_START and current_time <= DAY_END)
            or (current_time >= NIGHT_START and current_time <= NIGHT_END)
    ):
        trading = True

感觉没有什么问题哈

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

2022-03-17 02:35:08,854 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-17 02:35:09,228 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-17 07:27:32,712 - vn.py - INFO - 交易服务器连接成功
2022-03-17 07:27:39,761 - vn.py - INFO - 行情服务器连接成功
2022-03-17 07:27:39,772 - vn.py - INFO - 行情服务器登录成功
2022-03-17 07:29:21,484 - vn.py - INFO - 交易服务器授权验证成功
2022-03-17 07:29:21,957 - vn.py - INFO - 交易服务器登录成功
2022-03-17 07:29:21,958 - vn.py - INFO - 结算信息确认成功
2022-03-17 07:30:08,260 - vn.py - INFO - 合约信息查询成功
夜里 2点 和早上 七点 也会自动连接 服务器

Member
avatar
加入于:
帖子: 5010
声望: 302

请问是用的自带的no_ui脚本吗?看上去像是没关进程

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

xiaohe wrote:

请问是用的自带的no_ui脚本吗?看上去像是没关进程
在这个基础上改了下
run_child()
while True:
sleep(10)
trading = self.check_trading_period()
if not trading:
print("关闭子进程")
main_engine.close()
sys.exit(0)
在子进程中 循环判断 是否交易时间,这样算关闭成功么

在主进程中,通过.alive()是否成功关闭
while True:
trading = self.check_trading_period()

        # Start child process in trading period
        if trading and child_process is None:
            print("启动子进程")
            child_process = threading.Thread(target=self.run_child)
            child_process.start()
            print("子进程启动成功")

        # 非记录时间则退出子进程
        if not trading and child_process is not None:
            if not child_process.is_alive():
                child_process = None
                print("子进程关闭成功")
        sleep(5)

请教 这样操作有什么问题么

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

在主进程中,通过.alive()是否成功关闭
while True:
trading = self.check_trading_period()

        # Start child process in trading period
        if trading and child_process is None:
            print("启动子进程")
            child_process = threading.Thread(target=self.run_child)
            child_process.start()
            print("子进程启动成功")

        # 非记录时间则退出子进程
        if not trading and child_process is not None:
            if not child_process.is_alive():
                child_process = None
                print("子进程关闭成功")
        sleep(5)

请教 这样操作有什么问题么
替换了 原来的用的 multiprocess 用的是Thread 貌似用process子进程中 print打印无效

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

感觉并不是在重新连接服务器,而是服务器关掉了导致的报错。你还是换回多进程吧。

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

郭易燔 wrote:

感觉并不是在重新连接服务器,而是服务器关掉了导致的报错。你还是换回多进程吧。
您的意思 是换回multiprocessing.Process么 但是这样会导致 后续CTA策略里的print 输出不到console 里 换成Thread就可以了
不知道有啥区别,其他逻辑 跟github里no_ui里的逻辑是一样的

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

xiaohe wrote:

请问是用的自带的no_ui脚本吗?看上去像是没关进程
会不会是 Theading 使用多线程 导致的跟 服务器的连接并没有真正关闭。
而使用 multiprocessing 使用多进程 通过childprocess.teminate()可以实现真正的断开。

Member
avatar
加入于:
帖子: 5010
声望: 302

请问你是用cmd跑的还是用pycharm跑的?

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

xiaohe wrote:

请问你是用cmd跑的还是用pycharm跑的?
pycharm

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

整理了下 从下午收盘后 到夜里开盘的日志输出:
2022-03-18 15:25:39+08:00
关闭子进程
子进程关闭成功
2022-03-18 17:00:32,626 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 17:00:32,626 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 17:00:32,926 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 17:00:32,927 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 17:49:55,591 - vn.py - INFO - 交易服务器连接成功
2022-03-18 17:49:55,632 - vn.py - INFO - 交易服务器授权验证失败,代码:7,信息:CTP:还没有初始化
2022-03-18 17:49:55,692 - vn.py - INFO - 交易服务器连接成功
2022-03-18 17:49:55,715 - vn.py - INFO - 交易服务器授权验证失败,代码:7,信息:CTP:还没有初始化
2022-03-18 17:49:55,789 - vn.py - INFO - 行情服务器连接成功
2022-03-18 17:49:55,802 - vn.py - INFO - 行情服务器登录成功
2022-03-18 17:49:55,882 - vn.py - INFO - 行情服务器连接成功
2022-03-18 17:49:55,892 - vn.py - INFO - 行情服务器登录成功
2022-03-18 17:50:25,266 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 17:50:25,267 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 17:50:25,271 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 17:50:25,278 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 17:50:25,421 - vn.py - INFO - 交易服务器连接成功
2022-03-18 17:50:25,421 - vn.py - INFO - 行情服务器连接成功
2022-03-18 17:50:25,427 - vn.py - INFO - 行情服务器连接成功
2022-03-18 17:50:25,429 - vn.py - INFO - 交易服务器连接成功
2022-03-18 17:50:25,442 - vn.py - INFO - 行情服务器登录成功
2022-03-18 17:50:25,443 - vn.py - INFO - 行情服务器登录成功
2022-03-18 18:00:37,907 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 18:00:37,908 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 18:00:38,457 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 18:00:38,457 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 19:38:24,528 - vn.py - INFO - 交易服务器连接成功
2022-03-18 19:38:24,705 - vn.py - INFO - 交易服务器连接成功
2022-03-18 19:38:32,975 - vn.py - INFO - 行情服务器连接成功
2022-03-18 19:38:32,984 - vn.py - INFO - 行情服务器登录成功
2022-03-18 19:38:33,053 - vn.py - INFO - 行情服务器连接成功
2022-03-18 19:38:33,062 - vn.py - INFO - 行情服务器登录成功
2022-03-18 19:40:29,936 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 19:40:29,936 - vn.py - INFO - 交易服务器连接断开,原因4097
2022-03-18 19:40:29,956 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 19:40:29,957 - vn.py - INFO - 行情服务器连接断开,原因4097
2022-03-18 19:40:30,028 - vn.py - INFO - 交易服务器连接成功
2022-03-18 19:40:30,029 - vn.py - INFO - 交易服务器连接成功
2022-03-18 19:40:30,037 - vn.py - INFO - 行情服务器连接成功
2022-03-18 19:40:30,043 - vn.py - INFO - 行情服务器连接成功
2022-03-18 19:40:30,057 - vn.py - INFO - 行情服务器登录成功
2022-03-18 19:40:30,059 - vn.py - INFO - 行情服务器登录成功

Member
avatar
加入于:
帖子: 5010
声望: 302

用cmd跑即可

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

xiaohe wrote:

用cmd跑即可
能麻烦 执教下 这样操作的原因么 有啥区别的

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

pycharm对python做了一些处理,不建议新手使用,容易踩坑

Member
avatar
加入于:
帖子: 57
声望: 1

请问,如果不杀子进程,就一直运行系统,会有何问题吗?

Member
avatar
加入于:
帖子: 5010
声望: 302

可能会收到非交易时段的脏数据,系统的缓存也会越来越大

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

沪公网安备 31011502017034号

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