您好,在使用spread trading过程中遇到了如下几个问题想请教一下:
目前有发生过同样的策略和回测参数,回测结果完全不一样的情况,请问各位有遇到过这样的问题吗?
run_bf_optimization可以成功运行,但是同样参数环境下,每次跑出的结果会有些许差异,代码如下:
import importlib
from datetime import datetime
from vnpy_spreadtrading.backtesting import BacktestingEngine
from vnpy_spreadtrading.base import LegData, SpreadData
from vnpy.trader.optimize import OptimizationSetting
from boll_pair import BollPair
import types
spread = SpreadData(
name="test",
legs=[LegData("y888.DCE"), LegData("m888.DCE")],
variable_symbols={"A": "y888.DCE", "B": "m888.DCE"},
variable_directions={"A": 1, "B": -1},
price_formula="A-B",
trading_multipliers={"y888.DCE": 1, "m888.DCE": 2.4},
active_symbol="y888.DCE",
min_volume=1,
compile_formula=False
)
rate_1 = 0.01 / 100
rate_2 = 0.01 / 100
rate = (rate_1 + rate_2) / 2
engine = BacktestingEngine()
engine.set_parameters(
spread=spread,
interval="1h",
# start=datetime(2020, 1, 1),
start=datetime(2020, 1, 1),
end=datetime(2024, 3, 20),
rate=rate,
slippage=1,
size=10,
pricetick=1,
capital=1_000_000,
)
engine.add_strategy(BollPair, {})
engine.load_data()
engine.run_backtesting()
df = engine.calculate_result()
engine.calculate_statistics()
engine.show_chart()
setting = OptimizationSetting()
setting.set_target("sharpe_ratio")
setting.add_parameter("boll_window", 10, 100, 5)
setting.add_parameter("boll_dev", 1.0, 5.0, 0.5)
setting.add_parameter("ratio", 0.02, 0.2, 0.02)
engine.run_bf_optimization(setting)
3.另外想请问,如果想用15min作为周期该怎么操作呢?我看interval可选的参数只有tick,1m,1h,d,w。
感谢解答!