import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
import numpy as np
import multiprocessing # 新增导入
from vnpy_ctastrategy.backtesting import BacktestingEngine, OptimizationSetting
from vnpy_ctastrategy.strategies.atr_rsi_strategy import AtrRsiStrategy
from datetime import datetime
新增保护模块
def main():
engine = BacktestingEngine()
engine.set_parameters(
vt_symbol="IF888.CFFEX",
interval="1m",
start=datetime(2020, 1, 1),
end=datetime(2020, 9, 30),
rate=0.3 / 10000,
slippage=0.2,
size=300,
pricetick=0.2,
capital=1_000_000,
)
engine.add_strategy(AtrRsiStrategy, {})
optimization_setting = OptimizationSetting()
optimization_setting.set_target("end_balance")
optimization_setting.add_parameter("rsi_length", 3, 10, 1)
optimization_setting.add_parameter("rsi_entry", 10, 30, 5)
result = engine.run_optimization(optimization_setting)
Windows多进程必需的保护机制
if name == "main":
main() # 执行主函数
上述代码中好像隐含了调用数据库里的内容,但找不到是哪句代码调用了load_bar_data
