{ "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": "markdown", "metadata": {}, "source": [ "设置回测的参数。参数及其含义如下 1. vt_symbol ==> 产品名称 2. interval ==> 周期 3. start ==> 开始时间 4. rate ==> 手续费 5. slippage ==> 滑点 6. size ==> 合约乘数 7. pricetick ==> 价格跳动 8. capital ==> 回测资本 9. end ==> 截止时间 10. mode ==> 回测的模式,一共有两种:BacktestingMode.BAR和BacktestingMode.TICK 11. inverse ==> 周期" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 创建回测引擎\n", "engine = BacktestingEngine()\n", "\n", "engine.set_parameters(\n", " interval=Interval.MINUTE,\n", " start=datetime(2024, 5, 1),\n", " end=datetime(2024, 6, 30),\n", " rate=0,\n", " slippage=0.6 + (16 / 100),\n", " capital= 200000\n", ")\n", "\n", "\n", "setting = {\n", " # \"aroon_window\": 5,\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%|██████████| 61/61 [21:47<00:00, 21.43s/it]\n" ] } ], "source": [ "# 历史数据回放\n", "engine.run_backtesting()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-11-19 14:08:16.817021\t开始计算逐日盯市盈亏\n", "2024-11-19 14:08:16.819026\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", " |
| 2024-05-06 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
| 2024-05-07 | \n", "2 | \n", "5550.0 | \n", "0.0 | \n", "380.0 | \n", "2030.0 | \n", "0.0 | \n", "2030.0 | \n", "1650.0 | \n", "
| 2024-05-08 | \n", "6 | \n", "13340.0 | \n", "0.0 | \n", "1216.0 | \n", "850.0 | \n", "700.0 | \n", "1550.0 | \n", "334.0 | \n", "
| 2024-05-09 | \n", "10 | \n", "18890.0 | \n", "0.0 | \n", "2128.0 | \n", "-180.0 | \n", "490.0 | \n", "310.0 | \n", "-1818.0 | \n", "
| 2024-05-10 | \n", "8 | \n", "6150.0 | \n", "0.0 | \n", "1672.0 | \n", "-1000.0 | \n", "950.0 | \n", "-50.0 | \n", "-1722.0 | \n", "
| 2024-05-13 | \n", "2 | \n", "10160.0 | \n", "0.0 | \n", "380.0 | \n", "210.0 | \n", "0.0 | \n", "210.0 | \n", "-170.0 | \n", "
| 2024-05-14 | \n", "4 | \n", "31960.0 | \n", "0.0 | \n", "760.0 | \n", "-230.0 | \n", "-880.0 | \n", "-1110.0 | \n", "-1870.0 | \n", "
| 2024-05-15 | \n", "12 | \n", "101330.0 | \n", "0.0 | \n", "2584.0 | \n", "-1000.0 | \n", "1730.0 | \n", "730.0 | \n", "-1854.0 | \n", "
| 2024-05-16 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "1340.0 | \n", "1340.0 | \n", "1340.0 | \n", "
| 2024-05-17 | \n", "4 | \n", "35370.0 | \n", "0.0 | \n", "912.0 | \n", "-570.0 | \n", "800.0 | \n", "230.0 | \n", "-682.0 | \n", "
| 2024-05-20 | \n", "6 | \n", "37430.0 | \n", "0.0 | \n", "1216.0 | \n", "450.0 | \n", "-360.0 | \n", "90.0 | \n", "-1126.0 | \n", "
| 2024-05-21 | \n", "4 | \n", "36780.0 | \n", "0.0 | \n", "912.0 | \n", "180.0 | \n", "5030.0 | \n", "5210.0 | \n", "4298.0 | \n", "
| 2024-05-22 | \n", "4 | \n", "31350.0 | \n", "0.0 | \n", "912.0 | \n", "-330.0 | \n", "650.0 | \n", "320.0 | \n", "-592.0 | \n", "
| 2024-05-23 | \n", "6 | \n", "52510.0 | \n", "0.0 | \n", "1216.0 | \n", "3750.0 | \n", "-1610.0 | \n", "2140.0 | \n", "924.0 | \n", "
| 2024-05-24 | \n", "8 | \n", "62310.0 | \n", "0.0 | \n", "1824.0 | \n", "30.0 | \n", "390.0 | \n", "420.0 | \n", "-1404.0 | \n", "
| 2024-05-27 | \n", "2 | \n", "18180.0 | \n", "0.0 | \n", "456.0 | \n", "2520.0 | \n", "360.0 | \n", "2880.0 | \n", "2424.0 | \n", "
| 2024-05-28 | \n", "2 | \n", "14640.0 | \n", "0.0 | \n", "456.0 | \n", "5130.0 | \n", "-4390.0 | \n", "740.0 | \n", "284.0 | \n", "
| 2024-05-29 | \n", "8 | \n", "45130.0 | \n", "0.0 | \n", "1672.0 | \n", "-3450.0 | \n", "280.0 | \n", "-3170.0 | \n", "-4842.0 | \n", "
| 2024-05-30 | \n", "4 | \n", "12360.0 | \n", "0.0 | \n", "760.0 | \n", "-2690.0 | \n", "1060.0 | \n", "-1630.0 | \n", "-2390.0 | \n", "
| 2024-05-31 | \n", "10 | \n", "50400.0 | \n", "0.0 | \n", "2128.0 | \n", "4070.0 | \n", "470.0 | \n", "4540.0 | \n", "2412.0 | \n", "
| 2024-06-03 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "4630.0 | \n", "4630.0 | \n", "4630.0 | \n", "
| 2024-06-04 | \n", "8 | \n", "26370.0 | \n", "0.0 | \n", "1824.0 | \n", "-1290.0 | \n", "3060.0 | \n", "1770.0 | \n", "-54.0 | \n", "
| 2024-06-05 | \n", "8 | \n", "18870.0 | \n", "0.0 | \n", "1824.0 | \n", "-1470.0 | \n", "1730.0 | \n", "260.0 | \n", "-1564.0 | \n", "
| 2024-06-06 | \n", "10 | \n", "19670.0 | \n", "0.0 | \n", "1976.0 | \n", "2460.0 | \n", "-1480.0 | \n", "980.0 | \n", "-996.0 | \n", "
| 2024-06-07 | \n", "2 | \n", "2370.0 | \n", "0.0 | \n", "456.0 | \n", "-180.0 | \n", "800.0 | \n", "620.0 | \n", "164.0 | \n", "
| 2024-06-11 | \n", "0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
| 2024-06-12 | \n", "12 | \n", "79410.0 | \n", "0.0 | \n", "2356.0 | \n", "-820.0 | \n", "0.0 | \n", "-820.0 | \n", "-3176.0 | \n", "
| 2024-06-13 | \n", "6 | \n", "42810.0 | \n", "0.0 | \n", "1368.0 | \n", "3420.0 | \n", "-2480.0 | \n", "940.0 | \n", "-428.0 | \n", "
| 2024-06-14 | \n", "4 | \n", "21600.0 | \n", "0.0 | \n", "760.0 | \n", "-790.0 | \n", "160.0 | \n", "-630.0 | \n", "-1390.0 | \n", "
| 2024-06-17 | \n", "2 | \n", "13350.0 | \n", "0.0 | \n", "456.0 | \n", "2700.0 | \n", "-420.0 | \n", "2280.0 | \n", "1824.0 | \n", "
| 2024-06-18 | \n", "6 | \n", "35800.0 | \n", "0.0 | \n", "1216.0 | \n", "-1400.0 | \n", "300.0 | \n", "-1100.0 | \n", "-2316.0 | \n", "
| 2024-06-19 | \n", "6 | \n", "37350.0 | \n", "0.0 | \n", "1368.0 | \n", "-1350.0 | \n", "-200.0 | \n", "-1550.0 | \n", "-2918.0 | \n", "
| 2024-06-20 | \n", "10 | \n", "55110.0 | \n", "0.0 | \n", "1976.0 | \n", "-690.0 | \n", "560.0 | \n", "-130.0 | \n", "-2106.0 | \n", "
| 2024-06-21 | \n", "8 | \n", "40600.0 | \n", "0.0 | \n", "1672.0 | \n", "3850.0 | \n", "-2620.0 | \n", "1230.0 | \n", "-442.0 | \n", "
| 2024-06-24 | \n", "4 | \n", "13760.0 | \n", "0.0 | \n", "760.0 | \n", "-440.0 | \n", "2250.0 | \n", "1810.0 | \n", "1050.0 | \n", "
| 2024-06-25 | \n", "16 | \n", "75780.0 | \n", "0.0 | \n", "3648.0 | \n", "-2460.0 | \n", "790.0 | \n", "-1670.0 | \n", "-5318.0 | \n", "
| 2024-06-26 | \n", "6 | \n", "25130.0 | \n", "0.0 | \n", "1216.0 | \n", "-820.0 | \n", "2120.0 | \n", "1300.0 | \n", "84.0 | \n", "
| 2024-06-27 | \n", "4 | \n", "12570.0 | \n", "0.0 | \n", "760.0 | \n", "1560.0 | \n", "-370.0 | \n", "1190.0 | \n", "430.0 | \n", "
| 2024-06-28 | \n", "2 | \n", "7320.0 | \n", "0.0 | \n", "456.0 | \n", "2010.0 | \n", "-760.0 | \n", "1250.0 | \n", "794.0 | \n", "