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

2022-06-29 21:03:50,647 INFO: 添加CtaStrategyApp
2022-06-29 21:03:50,647 - veighna - INFO - 添加CtaStrategyApp
2022-06-29 21:03:51,647 INFO: 注册日志事件监听
2022-06-29 21:03:51,647 - veighna - INFO - 注册日志事件监听
2022-06-29 21:03:52,655 INFO: 数据服务初始化成功
2022-06-29 21:03:52,655 - veighna - INFO - 数据服务初始化成功
2022-06-29 21:03:53,304 INFO: CTA策略引擎初始化成功
2022-06-29 21:03:53,304 - veighna - INFO - CTA策略引擎初始化成功
2022-06-29 21:03:53,305 INFO: CTA策略初始化完成
2022-06-29 21:03:53,305 - veighna - INFO - CTA策略初始化完成
2022-06-29 21:03:56,250 INFO: 合约信息查询成功
2022-06-29 21:03:56,250 - veighna - INFO - 合约信息查询成功
2022-06-29 21:03:56,305 INFO: SA开始执行初始化
2022-06-29 21:03:56,305 - veighna - INFO - SA开始执行初始化
2022-06-29 21:03:56,306 INFO: [SA] 策略初始化
2022-06-29 21:03:56,306 - veighna - INFO - [SA] 策略初始化

Member
avatar
加入于:
帖子: 633
声望: 34

检查下是否创建了两个logger实例吧

Member
avatar
加入于:
帖子: 11
声望: 0

写到.vntrader/log/vt_20220629.log 里面的只有一种格式:
2022-06-29 21:03:50,647 INFO: 添加CtaStrategyApp
2022-06-29 21:03:51,647 INFO: 注册日志事件监听
2022-06-29 21:03:52,655 INFO: 数据服务初始化成功
2022-06-29 21:03:53,304 INFO: CTA策略引擎初始化成功
2022-06-29 21:03:53,305 INFO: CTA策略初始化完成
2022-06-29 21:03:56,250 INFO: 合约信息查询成功
2022-06-29 21:03:56,305 INFO: SA开始执行初始化
2022-06-29 21:03:56,306 INFO: [SA] 策略初始化

打到cmd黑屏上的就是上面#1的样式,重复INFO。还不知道怎么解决。

Member
avatar
加入于:
帖子: 3583
声望: 234

检查下run.py是否创建了两个log_engine

Member
avatar
加入于:
帖子: 11
声望: 0

一个。重新从官网下载run.py,trading_period 设置为True,其他不改。

启动CTA策略守护父进程
启动子进程
子进程启动成功
2022-07-01 12:55:04,226 INFO: 主引擎创建成功
Invalid port: No error
2022-07-01 12:55:04,226 - veighna - INFO - 主引擎创建成功
2022-07-01 12:55:04,231 INFO: 注册日志事件监听
2022-07-01 12:55:04,231 - veighna - INFO - 注册日志事件监听
2022-07-01 12:55:04,232 INFO: 连接CTP接口
2022-07-01 12:55:04,232 - veighna - INFO - 连接CTP接口
Invalid port: No error
Invalid port: No error
Invalid port: No error
Invalid port: No error

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

底层是使用logging模块来记录日志的,你是不是对logging模块进行过修改。
12:55还未到交易时间。

Member
avatar
加入于:
帖子: 11
声望: 0

日志是没有问题的。windows下黑屏输出异常。之前版本是2.7,升级慢,就卸载装3.1的。装完就这样了。

description

Member
avatar
加入于:
帖子: 633
声望: 34

检查下整个程序中,是否创建过两个logger实例?LogEngine会自带一个,并基于全局配置中log相关字段配置日志记录模式

Member
avatar
加入于:
帖子: 11
声望: 0

不明所以。
将vnpy/trader/engine.py 第277行:self.logger: Logger = logging.getLogger("veighna")
改成:self.logger: Logger = logging.getLogger(" ")
问题解决。

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

应该是你使用的tushare造成的日志重复。python里的log日志处理器是分层的,所有日志处理器器都有一个共同的父类root日志处理器。veighna使用的是名为veighna的日志处理器,由于没有对root日志处理器做配置,所有日志处理都在veighna日志处理器处理,虽然root日志处理器接受到了日志数据,但是没有处理。tushare里配置了root日志处理器,添加了 StreamHandler,导致在veighna日志处理器和root日志处理器各输出了一次,也就造成了重复。

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

两种临时解决方法,一种是像你更改这种,将veighna中使用的veighna直接改为root日志处理器,这个配置的优先级是高于tushare中logging.basicConfig的配置。这样所有的日志处理都在root日志处理器中进行。另一种是将no_ui中SETTINGS["log.console"] = True改为False,即关闭veighna日志处理器的输出,只使用root日志处理器的输出。

Member
avatar
加入于:
帖子: 11
声望: 0

受教。确实用了tushare。

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

沪公网安备 31011502017034号

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