{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# 加载功能模块\n", "from datetime import datetime\n", "\n", "from vnpy.trader.constant import Interval\n", "\n", "from elite_optionstrategy import BacktestingEngine\n", "\n", "from advanced_spread_strategy import AdvancedSpreadStrategy" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 创建回测引擎\n", "engine = BacktestingEngine()\n", "\n", "engine.set_parameters(\n", " interval=Interval.MINUTE,\n", " start=datetime(2021, 1, 1),\n", " end=datetime(2023, 12, 31),\n", " rate=0,\n", " slippage=0.6 + (16 / 100),\n", ")\n", "\n", "\n", "setting = {\n", " \"fast_window\": 5,\n", " \"slow_window\": 60,\n", " \"otm_level\": 0\n", "}\n", "engine.add_strategy(AdvancedSpreadStrategy, setting)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 1094/1094 [56:41<00:00, 3.11s/it]\n" ] } ], "source": [ "# 历史数据回放\n", "engine.run_backtesting()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-03-01 10:46:03.353389\t开始计算逐日盯市盈亏\n", "2024-03-01 10:46:03.367024\t逐日盯市盈亏计算完成\n" ] }, { "data": { "text/html": [ "
| \n", " | trade_count | \n", "turnover | \n", "commission | \n", "slippage | \n", "trading_pnl | \n", "holding_pnl | \n", "total_pnl | \n", "net_pnl | \n", "
|---|---|---|---|---|---|---|---|---|
| date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2021-01-04 | \n", "2 | \n", "39380.0 | \n", "0.0 | \n", "380.0 | \n", "7400.0 | \n", "0.0 | \n", "7400.0 | \n", "7020.0 | \n", "
| 2021-01-05 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "1880.0 | \n", "1880.0 | \n", "1880.0 | \n", "
| 2021-01-06 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-1280.0 | \n", "-1280.0 | \n", "-1280.0 | \n", "
| 2021-01-07 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "-6740.0 | \n", "-6740.0 | \n", "-6740.0 | \n", "
| 2021-01-08 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "3860.0 | \n", "3860.0 | \n", "3860.0 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2023-12-25 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "3160.0 | \n", "3160.0 | \n", "3160.0 | \n", "
| 2023-12-26 | \n", "2 | \n", "34260.0 | \n", "0.0 | \n", "456.0 | \n", "-1140.0 | \n", "-3700.0 | \n", "-4840.0 | \n", "-5296.0 | \n", "
| 2023-12-27 | \n", "2 | \n", "33600.0 | \n", "0.0 | \n", "456.0 | \n", "1380.0 | \n", "-920.0 | \n", "460.0 | \n", "4.0 | \n", "
| 2023-12-28 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "9540.0 | \n", "9540.0 | \n", "9540.0 | \n", "
| 2023-12-29 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "2300.0 | \n", "2300.0 | \n", "2300.0 | \n", "
727 rows × 8 columns
\n", "