重修vn.py笔记 之 九: 调试之日志

调试策略。 

在vnpy 默认环境下调试策略,很不灵活,自己搞一个简单的测试环境,可以随心所欲地调式。

调试时,调试过程需要写入到日志里。 下面演示这个过程:

from datetime import datetime

from vnpy_ctastrategy.backtesting import BacktestingEngine
from strategies.ma_strategy import MaStrategy
engine = BacktestingEngine()
engine.set_parameters(
    vt_symbol="rb888.SHFE",
    interval="1h",
    start=datetime(2025, 1, 1),
    end=datetime(2025, 12, 30),
    rate=1.5/10000,
    slippage=1,
    size=10,
    pricetick=1,
    capital=1_000_000,
)
engine.add_strategy(MaStrategy, {})
engine.load_data()
engine.run_backtesting()
# df = engine.calculate_result()
# engine.calculate_statistics()
# fig = engine.show_chart()
# fig.show()

for log in engine.logs:
    print(log)

      回测引擎只负责将策略的log保存在自己的log里。 如果想更方便,可以把最后的log输出到文件里。 

     通过这个测试,发现vnpy存在一个瑕疵:回测引擎里,只有new_bar 和 on_tick 时,才更新 引擎的datetime, 在非tick级回测或者没有合成bar时,不会调用这两个函数,造成日志日期显示都是 1970.1.1 

修改开源代码显然不是个好主意,在测试时,自己将日期写入测试语句就好。 

 

posted on 2026-01-05 14:41  金凯旋  阅读(9)  评论(0)    收藏  举报

导航