Files
NewQuant/futures_trading_strategies/MA/TrendlineBreakoutStrategy/TrendlineHawkesStrategy.ipynb

482 lines
305 KiB
Plaintext
Raw Normal View History

2025-10-05 00:09:59 +08:00
{
"cells": [
{
"cell_type": "code",
"id": "522f09ca7b3fe929",
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T08:02:54.715319Z",
"start_time": "2025-09-25T08:02:54.691434Z"
}
},
"source": [
"from datetime import datetime\n",
"\n",
"from src.data_processing import load_raw_data\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n",
"import sys\n",
"\n",
"if '/mnt/d/PyProject/NewQuant/' not in sys.path:\n",
" sys.path.append('/mnt/d/PyProject/NewQuant/')"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"execution_count": 13
},
{
"cell_type": "code",
"id": "4f7e4b438cea750e",
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T08:02:54.751891Z",
"start_time": "2025-09-25T08:02:54.727150Z"
}
},
"source": [
"from turtle import down\n",
"from src.analysis.result_analyzer import ResultAnalyzer\n",
"# 导入所有必要的模块\n",
"from src.data_manager import DataManager\n",
"from src.backtest_engine import BacktestEngine\n",
"from src.indicators.indicator_list import INDICATOR_LIST\n",
"from src.indicators.indicators import *\n",
"\n",
"# 导入您自己的 SMC 策略\n",
"from src.strategies.TrendlineBreakoutStrategy.TrendlineHawkesStrategyFast import TrendlineHawkesStrategy\n",
"\n",
"# --- 配置参数 ---\n",
"# 获取当前脚本所在目录,假设数据文件在项目根目录下的 data 文件夹内\n",
"data_file_path = '/mnt/d/PyProject/NewQuant/data/data/KQ_m@CZCE_MA/KQ_m@CZCE_MA_min15.csv'\n"
],
"outputs": [],
"execution_count": 14
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T08:02:54.788089Z",
"start_time": "2025-09-25T08:02:54.761976Z"
}
},
"cell_type": "code",
"source": [
"\n",
"initial_capital = 100000.0\n",
"slippage_rate = 0.000 # 假设每笔交易0.1%的滑点\n",
"commission_rate = 0.0000 # 假设每笔交易0.02%的佣金\n",
"\n",
"global_config = {\n",
" 'symbol': 'KQ_m@CZCE_MA', # 确保与数据文件中的 symbol 匹配\n",
"}\n",
"\n",
"# 回测时间范围\n",
"start_time = datetime(2021, 1, 1)\n",
"end_time = datetime(2024, 6, 1)\n",
"\n",
"start_time = datetime(2024, 1, 1)\n",
"end_time = datetime(2025, 8, 1)\n",
"\n",
"\n",
"indicators = INDICATOR_LIST\n",
"indicators = []\n",
"\n",
"# 确保 DataManager 能够重置以进行多次回测\n",
"# data_manager.reset() # 首次运行不需要重置"
],
"id": "9ee53c41eaaefabb",
"outputs": [],
"execution_count": 15
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T08:03:04.123937Z",
"start_time": "2025-09-25T08:02:54.797173Z"
}
},
"cell_type": "code",
"source": [
"from src.indicators.indicators import ROC_MA\n",
"\n",
"# --- 1. 初始化数据管理器 ---\n",
"print(\"初始化数据管理器...\")\n",
"data_manager = DataManager(file_path=data_file_path, symbol=global_config['symbol'], start_time=start_time,\n",
" end_time=end_time)\n",
"\n",
"strategy_parameters = {\n",
" 'main_symbol': 'MA', # <-- 替换为你的交易品种代码,例如 'GC=F' (黄金期货), 'ZC=F' (玉米期货)\n",
" 'trade_volume': 1,\n",
" 'trendline_n': 70,\n",
" 'hawkes_kappa': 0.1,\n",
" 'order_direction': ['SELL', 'BUY'],\n",
" 'reverse_logic': True,\n",
" # 'indicators': [RateOfChange(10, -2.1, -0.5), ROC_MA(10, 10, -2.7, -0.4)],\n",
" 'enable_log': False\n",
"}\n",
"\n",
"\n",
"\n",
"# --- 2. 初始化回测引擎并运行 ---\n",
"print(\"\\n初始化回测引擎...\")\n",
"engine = BacktestEngine(\n",
" data_manager=data_manager,\n",
" strategy_class=TrendlineHawkesStrategy, # <--- 更改为您的 SMC 策略类\n",
" # current_segment_symbol 参数已从 SMCPureH1LongStrategy 中移除,不需要设置\n",
" strategy_params=strategy_parameters,\n",
" initial_capital=initial_capital,\n",
" slippage_rate=slippage_rate,\n",
" commission_rate=commission_rate,\n",
" roll_over_mode=True,\n",
" start_time=start_time,\n",
" end_time=end_time,\n",
" indicators=indicators # 如果您的 SMC 策略不使用这些指标,也可以考虑移除\n",
")\n",
"\n",
"print(\"\\n开始运行回测...\")\n",
"engine.run_backtest()\n",
"print(\"\\n回测运行完毕。\")\n",
"\n",
"# --- 3. 获取回测结果 ---\n",
"results = engine.get_backtest_results()\n",
"portfolio_snapshots = results[\"portfolio_snapshots\"]\n",
"trade_history = results[\"trade_history\"]\n",
"initial_capital_result = results[\"initial_capital\"]\n",
"bars = results[\"all_bars\"]\n",
"\n",
"# --- 4. 结果分析与可视化 ---\n",
"if portfolio_snapshots:\n",
" analyzer = ResultAnalyzer(portfolio_snapshots, trade_history, bars, initial_capital_result, INDICATOR_LIST)\n",
"\n",
" analyzer.generate_report()\n",
" analyzer.plot_performance()\n",
" metrics = analyzer.calculate_all_metrics()\n",
" print(metrics)\n",
"\n",
" analyzer.analyze_indicators()\n",
"else:\n",
" print(\"\\n没有生成投资组合快照无法进行结果分析。\")"
],
"id": "f903fd2761d446cd",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"初始化数据管理器...\n",
"数据加载成功: /mnt/d/PyProject/NewQuant/data/data/KQ_m@CZCE_MA/KQ_m@CZCE_MA_min15.csv\n",
"数据范围从 2020-12-31 14:45:00 到 2025-08-21 14:30:00\n",
"总计 25596 条记录。\n",
"\n",
"初始化回测引擎...\n",
"模拟器初始化:初始资金=100000.00, 滑点率=0.0, 佣金率=0.0\n",
"\n",
"--- 回测引擎初始化完成 ---\n",
" 策略: TrendlineHawkesStrategy\n",
" 初始资金: 100000.00\n",
" 换月模式: 启用\n",
"\n",
"开始运行回测...\n",
"\n",
"--- 回测开始 ---\n",
"TrendlineHawkesStrategy 策略初始化回调被调用。\n",
"开始将 DataFrame 转换为 Bar 对象流...\n",
"首次运行,正在初始化霍克斯状态和滚动窗口...\n",
"状态初始化完成。\n",
"Bar 对象流生成完毕。\n",
"\n",
"--- 回测结束,检查并平仓所有剩余持仓 ---\n",
"--- 回测结束 ---\n",
"总计处理了 8698 根K线。\n",
"总计发生了 142 笔交易。\n",
"最终总净值: 100105.00\n",
"总收益率: 0.10%\n",
"\n",
"回测运行完毕。\n",
"\n",
"--- 结果分析器初始化完成 ---\n",
"\n",
"--- 交易明细 ---\n",
" 2024-01-05 22:00:00 | SELL | CZCE.MA405 | Vol: 1 | Price: 2396.00 | Comm: 0.00\n",
" 2024-01-08 13:30:00 | CLOSE_SHORT | CZCE.MA405 | Vol: 1 | Price: 2376.00 | Comm: 0.00 | PnL: 20.00\n",
" 2024-01-09 10:30:00 | SELL | CZCE.MA405 | Vol: 1 | Price: 2396.00 | Comm: 0.00\n",
" 2024-01-09 13:30:00 | CLOSE_SHORT | CZCE.MA405 | Vol: 1 | Price: 2393.00 | Comm: 0.00 | PnL: 3.00\n",
" 2024-01-09 21:45:00 | BUY | CZCE.MA405 | Vol: 1 | Price: 2364.00 | Comm: 0.00\n",
" 2024-01-11 14:00:00 | CLOSE_LONG | CZCE.MA405 | Vol: 1 | Price: 2337.00 | Comm: 0.00 | PnL: -27.00\n",
" 2024-01-18 09:30:00 | SELL | CZCE.MA405 | Vol: 1 | Price: 2358.00 | Comm: 0.00\n",
" 2024-01-18 13:30:00 | CLOSE_SHORT | CZCE.MA405 | Vol: 1 | Price: 2355.00 | Comm: 0.00 | PnL: 3.00\n",
" 2024-01-22 10:45:00 | SELL | CZCE.MA405 | Vol: 1 | Price: 2395.00 | Comm: 0.00\n",
" 2024-01-23 09:00:00 | CLOSE_SHORT | CZCE.MA405 | Vol: 1 | Price: 2407.00 | Comm: 0.00 | PnL: -12.00\n",
" 2024-01-26 22:30:00 | SELL | CZCE.MA405 | Vol: 1 | Price: 2451.00 | Comm: 0.00\n",
" 2024-01-29 14:30:00 | CLOSE_SHORT | CZCE.MA405 | Vol: 1 | Price: 2467.00 | Comm: 0.00 | PnL: -16.00\n",
" 2024-01-31 21:15:00 | BUY | CZCE.MA405 | Vol: 1 | Price: 2467.00 | Comm: 0.00\n",
" 2024-02-01 11:00:00 | CLOSE_LONG | CZCE.MA405 | Vol: 1 | Price: 2466.00 | Comm: 0.00 | PnL: -1.00\n",
" 2024-02-26 09:15:00 | BUY | CZCE.MA405 | Vol: 1 | Price: 2507.00 | Comm: 0.00\n",
" 2024-02-28 22:15:00 | CLOSE_LONG | CZCE.MA405 | Vol: 1 | Price: 2528.00 | Comm: 0.00 | PnL: 21.00\n",
" 2024-03-12 13:45:00 | BUY | CZCE.MA405 | Vol: 1 | Price: 2515.00 | Comm: 0.00\n",
" 2024-03-12 22:45:00 | CLOSE_LONG | CZCE.MA405 | Vol: 1 | Price: 2514.00 | Comm: 0.00 | PnL: -1.00\n",
" 2024-03-18 21:15:00 | SELL | CZCE.MA405 | Vol: 1 | Price: 2588.00 | Comm: 0.00\n",
" 2024-03-18 22:45:00 | CLOSE_SHORT | CZCE.MA405 | Vol: 1 | Price: 2582.00 | Comm: 0.00 | PnL: 6.00\n",
" 2024-03-28 09:15:00 | BUY | CZCE.MA405 | Vol: 1 | Price: 2463.00 | Comm: 0.00\n",
" 2024-03-28 14:45:00 | CLOSE_LONG | CZCE.MA405 | Vol: 1 | Price: 2463.00 | Comm: 0.00 | PnL: 0.00\n",
" 2024-04-01 21:15:00 | SELL | CZCE.MA405 | Vol: 1 | Price: 2534.00 | Comm: 0.00\n",
" 2024-04-02 10:00:00 | CLOSE_SHORT | CZCE.MA405 | Vol: 1 | Price: 2531.00 | Comm: 0.00 | PnL: 3.00\n",
" 2024-04-17 21:15:00 | SELL | CZCE.MA409 | Vol: 1 | Price: 2545.00 | Comm: 0.00\n",
" 2024-04-18 22:15:00 | CLOSE_SHORT | CZCE.MA409 | Vol: 1 | Price: 2553.00 | Comm: 0.00 | PnL: -8.00\n",
" 2024-04-29 09:15:00 | SELL | CZCE.MA409 | Vol: 1 | Price: 2535.00 | Comm: 0.00\n",
" 2024-04-29 14:00:00 | CLOSE_SHORT | CZCE.MA409 | Vol: 1 | Price: 2538.00 | Comm: 0.00 | PnL: -3.00\n",
" 2024-05-13 14:45:00 | SELL | CZCE.MA409 | Vol: 1 | Price: 2593.00 | Comm: 0.00\n",
" 2024-05-14 14:30:00 | CLOSE_SHORT | CZCE.MA409 | Vol: 1 | Price: 2582.00 | Comm: 0.00 | PnL: 11.00\n",
" 2024-05-22 21:15:00 | BUY | CZCE.MA409 | Vol: 1 | Price: 2612.00 | Comm: 0.00\n",
" 2024-05-23 11:00:00 | CLOSE_LONG | CZCE.MA409 | Vol: 1 | Price: 2594.00 | Comm: 0.00 | PnL: -18.00\n",
" 2024-06-06 21:15:00 | BUY | CZCE.MA409 | Vol: 1 | Price: 2553.00 | Comm: 0.00\n",
" 2024-06-06 22:45:00 | CLOSE_LONG | CZCE.MA409 | Vol: 1 | Price: 2568.00 | Comm: 0.00 | PnL: 15.00\n",
" 2024-06-25 10:45:00 | SELL | CZCE.MA409 | Vol: 1 | Price: 2518.00 | Comm: 0.00\n",
" 2024-06-26 10:00:00 | CLOSE_SHORT | CZCE.MA409 | Vol: 1 | Price: 2496.00 | Comm: 0.00 | PnL: 22.00\n",
" 2024-06-28 10:45:00 | SELL | CZCE.MA409 | Vol: 1 | Price: 2545.00 | Comm: 0.00\n",
" 2024-07-01 22:00:00 | CLOSE_SHORT | CZCE.MA409 | Vol: 1 | Price: 2534.00 | Comm: 0.00 | PnL: 11.00\n",
" 2024-07-05 13:30:00 | BUY | CZCE.MA409 | Vol: 1 | Price: 2549.00 | Comm: 0.00\n",
" 2024-07-09 11:15:00 | CLOSE_LONG | CZCE.MA409 | Vol: 1 | Price: 2545.00 | Comm: 0.00 | PnL: -4.00\n",
" 2024-07-17 14:15:00 | BUY | CZCE.MA409 | Vol: 1 | Price: 2536.00 | Comm: 0.00\n",
" 2024-07-18 09:15:00 | CLOSE_LONG | CZCE.MA409 | Vol: 1 | Price: 2530.00 | Comm: 0.00 | PnL: -6.00\n",
" 2024-07-25 21:00:00 | BUY | CZCE.MA409 | Vol: 1 | Price: 2488.00 | Comm: 0.00\n",
" 2024-07-26 13:45:00 | CLOSE_LONG | CZCE.MA409 | Vol: 1 | Price: 2513.00 | Comm: 0.00 | PnL: 25.00\n",
" 2024-08-08 21:15:00 | BUY | CZCE.MA409 | Vol: 1 | Price: 2449.00 | Comm: 0.00\n",
" 2024-08-12 13:30:00 | CLOSE_LONG | CZCE.MA409 | Vol: 1 | Price: 2414.00 | Comm: 0.00 | PnL: -35.00\n",
" 2024-08-16 21:15:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2429.00 | Comm: 0.00\n",
" 2024-08-19 13:30:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2449.00 | Comm: 0.00 | PnL: 20.00\n",
" 2024-08-26 09:45:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2520.00 | Comm: 0.00\n",
" 2024-08-26 22:00:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2532.00 | Comm: 0.00 | PnL: -12.00\n",
" 2024-08-30 22:00:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2509.00 | Comm: 0.00\n",
" 2024-09-02 14:30:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2476.00 | Comm: 0.00 | PnL: -33.00\n",
" 2024-09-04 10:30:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2419.00 | Comm: 0.00\n",
" 2024-09-05 14:15:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2373.00 | Comm: 0.00 | PnL: -46.00\n",
" 2024-09-10 21:45:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2317.00 | Comm: 0.00\n",
" 2024-09-11 13:30:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2331.00 | Comm: 0.00 | PnL: 14.00\n",
" 2024-09-19 10:45:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2389.00 | Comm: 0.00\n",
" 2024-09-19 14:45:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2411.00 | Comm: 0.00 | PnL: -22.00\n",
" 2024-09-25 09:15:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2424.00 | Comm: 0.00\n",
" 2024-09-25 14:30:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2413.00 | Comm: 0.00 | PnL: 11.00\n",
" 2024-10-08 09:15:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2587.00 | Comm: 0.00\n",
" 2024-10-08 22:30:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2537.00 | Comm: 0.00 | PnL: 50.00\n",
" 2024-10-14 21:15:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2476.00 | Comm: 0.00\n",
" 2024-10-15 11:15:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2473.00 | Comm: 0.00 | PnL: -3.00\n",
" 2024-10-18 21:15:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2408.00 | Comm: 0.00\n",
" 2024-10-22 10:45:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2415.00 | Comm: 0.00 | PnL: 7.00\n",
" 2024-10-24 21:15:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2456.00 | Comm: 0.00\n",
" 2024-10-25 09:45:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2450.00 | Comm: 0.00 | PnL: 6.00\n",
" 2024-10-28 09:15:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2474.00 | Comm: 0.00\n",
" 2024-10-29 09:45:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2472.00 | Comm: 0.00 | PnL: 2.00\n",
" 2024-11-06 21:15:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2476.00 | Comm: 0.00\n",
" 2024-11-07 22:45:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2511.00 | Comm: 0.00 | PnL: 35.00\n",
" 2024-11-11 09:15:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2474.00 | Comm: 0.00\n",
" 2024-11-11 11:15:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2473.00 | Comm: 0.00 | PnL: -1.00\n",
" 2024-11-15 10:45:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2521.00 | Comm: 0.00\n",
" 2024-11-18 22:00:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2534.00 | Comm: 0.00 | PnL: -13.00\n",
" 2024-11-22 11:15:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2611.00 | Comm: 0.00\n",
" 2024-11-25 14:15:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2575.00 | Comm: 0.00 | PnL: 36.00\n",
" 2024-12-02 21:15:00 | BUY | CZCE.MA501 | Vol: 1 | Price: 2534.00 | Comm: 0.00\n",
" 2024-12-03 10:45:00 | CLOSE_LONG | CZCE.MA501 | Vol: 1 | Price: 2540.00 | Comm: 0.00 | PnL: 6.00\n",
" 2024-12-09 09:30:00 | SELL | CZCE.MA501 | Vol: 1 | Price: 2553.00 | Comm: 0.00\n",
" 2024-12-10 10:45:00 | CLOSE_SHORT | CZCE.MA501 | Vol: 1 | Price: 2588.00 | Comm: 0.00 | PnL: -35.00\n",
" 2024-12-12 21:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2627.00 | Comm: 0.00\n",
" 2024-12-13 22:45:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2613.00 | Comm: 0.00 | PnL: -14.00\n",
" 2024-12-17 22:00:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2597.00 | Comm: 0.00\n",
" 2024-12-18 09:45:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2608.00 | Comm: 0.00 | PnL: 11.00\n",
" 2024-12-18 21:15:00 | SELL | CZCE.MA505 | Vol: 1 | Price: 2606.00 | Comm: 0.00\n",
" 2024-12-20 22:00:00 | CLOSE_SHORT | CZCE.MA505 | Vol: 1 | Price: 2585.00 | Comm: 0.00 | PnL: 21.00\n",
" 2024-12-30 10:45:00 | SELL | CZCE.MA505 | Vol: 1 | Price: 2677.00 | Comm: 0.00\n",
" 2024-12-30 14:30:00 | CLOSE_SHORT | CZCE.MA505 | Vol: 1 | Price: 2675.00 | Comm: 0.00 | PnL: 2.00\n",
" 2025-01-13 09:15:00 | SELL | CZCE.MA505 | Vol: 1 | Price: 2648.00 | Comm: 0.00\n",
" 2025-01-13 14:15:00 | CLOSE_SHORT | CZCE.MA505 | Vol: 1 | Price: 2639.00 | Comm: 0.00 | PnL: 9.00\n",
" 2025-01-15 21:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2640.00 | Comm: 0.00\n",
" 2025-01-17 11:00:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2607.00 | Comm: 0.00 | PnL: -33.00\n",
" 2025-02-05 21:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2543.00 | Comm: 0.00\n",
" 2025-02-06 22:30:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2589.00 | Comm: 0.00 | PnL: 46.00\n",
" 2025-02-13 21:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2527.00 | Comm: 0.00\n",
" 2025-02-14 13:30:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2549.00 | Comm: 0.00 | PnL: 22.00\n",
" 2025-02-21 21:15:00 | SELL | CZCE.MA505 | Vol: 1 | Price: 2563.00 | Comm: 0.00\n",
" 2025-02-24 21:45:00 | CLOSE_SHORT | CZCE.MA505 | Vol: 1 | Price: 2565.00 | Comm: 0.00 | PnL: -2.00\n",
" 2025-02-26 14:45:00 | SELL | CZCE.MA505 | Vol: 1 | Price: 2554.00 | Comm: 0.00\n",
" 2025-02-27 09:30:00 | CLOSE_SHORT | CZCE.MA505 | Vol: 1 | Price: 2555.00 | Comm: 0.00 | PnL: -1.00\n",
" 2025-03-04 21:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2593.00 | Comm: 0.00\n",
" 2025-03-04 22:30:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2590.00 | Comm: 0.00 | PnL: -3.00\n",
" 2025-03-05 21:30:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2577.00 | Comm: 0.00\n",
" 2025-03-06 13:30:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2579.00 | Comm: 0.00 | PnL: 2.00\n",
" 2025-03-11 09:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2565.00 | Comm: 0.00\n",
" 2025-03-11 14:30:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2588.00 | Comm: 0.00 | PnL: 23.00\n",
" 2025-03-12 11:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2547.00 | Comm: 0.00\n",
" 2025-03-13 09:00:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2538.00 | Comm: 0.00 | PnL: -9.00\n",
" 2025-03-24 09:15:00 | SELL | CZCE.MA505 | Vol: 1 | Price: 2577.00 | Comm: 0.00\n",
" 2025-03-24 14:15:00 | CLOSE_SHORT | CZCE.MA505 | Vol: 1 | Price: 2586.00 | Comm: 0.00 | PnL: -9.00\n",
" 2025-03-28 11:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2529.00 | Comm: 0.00\n",
" 2025-03-28 22:45:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2533.00 | Comm: 0.00 | PnL: 4.00\n",
" 2025-04-07 09:15:00 | BUY | CZCE.MA505 | Vol: 1 | Price: 2379.00 | Comm: 0.00\n",
" 2025-04-08 09:45:00 | CLOSE_LONG | CZCE.MA505 | Vol: 1 | Price: 2388.00 | Comm: 0.00 | PnL: 9.00\n",
" 2025-04-28 09:15:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2303.00 | Comm: 0.00\n",
" 2025-04-29 10:00:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2285.00 | Comm: 0.00 | PnL: 18.00\n",
" 2025-05-06 10:00:00 | BUY | CZCE.MA509 | Vol: 1 | Price: 2243.00 | Comm: 0.00\n",
" 2025-05-06 22:45:00 | CLOSE_LONG | CZCE.MA509 | Vol: 1 | Price: 2242.00 | Comm: 0.00 | PnL: -1.00\n",
" 2025-05-07 09:15:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2277.00 | Comm: 0.00\n",
" 2025-05-07 14:45:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2242.00 | Comm: 0.00 | PnL: 35.00\n",
" 2025-05-23 21:45:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2241.00 | Comm: 0.00\n",
" 2025-05-26 21:00:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2222.00 | Comm: 0.00 | PnL: 19.00\n",
" 2025-05-26 21:15:00 | BUY | CZCE.MA509 | Vol: 1 | Price: 2205.00 | Comm: 0.00\n",
" 2025-05-27 22:00:00 | CLOSE_LONG | CZCE.MA509 | Vol: 1 | Price: 2211.00 | Comm: 0.00 | PnL: 6.00\n",
" 2025-05-29 10:45:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2211.00 | Comm: 0.00\n",
" 2025-05-30 11:15:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2213.00 | Comm: 0.00 | PnL: -2.00\n",
" 2025-06-03 11:15:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2224.00 | Comm: 0.00\n",
" 2025-06-04 14:00:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2250.00 | Comm: 0.00 | PnL: -26.00\n",
" 2025-06-12 09:15:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2301.00 | Comm: 0.00\n",
" 2025-06-12 13:30:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2293.00 | Comm: 0.00 | PnL: 8.00\n",
" 2025-06-13 09:15:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2398.00 | Comm: 0.00\n",
" 2025-06-17 11:00:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2448.00 | Comm: 0.00 | PnL: -50.00\n",
" 2025-06-24 09:15:00 | BUY | CZCE.MA509 | Vol: 1 | Price: 2385.00 | Comm: 0.00\n",
" 2025-06-24 14:15:00 | CLOSE_LONG | CZCE.MA509 | Vol: 1 | Price: 2372.00 | Comm: 0.00 | PnL: -13.00\n",
" 2025-07-03 09:15:00 | BUY | CZCE.MA509 | Vol: 1 | Price: 2403.00 | Comm: 0.00\n",
" 2025-07-03 10:30:00 | CLOSE_LONG | CZCE.MA509 | Vol: 1 | Price: 2400.00 | Comm: 0.00 | PnL: -3.00\n",
" 2025-07-18 09:15:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2389.00 | Comm: 0.00\n",
" 2025-07-21 14:45:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2413.00 | Comm: 0.00 | PnL: -24.00\n",
" 2025-07-22 14:15:00 | SELL | CZCE.MA509 | Vol: 1 | Price: 2434.00 | Comm: 0.00\n",
" 2025-07-23 14:15:00 | CLOSE_SHORT | CZCE.MA509 | Vol: 1 | Price: 2405.00 | Comm: 0.00 | PnL: 29.00\n",
"正在计算绩效指标...\n",
"total_return: 0.0010499999999999954, annualized_return:0.00045923941495895626, 252 / total_days:0.4375\n",
"绩效指标计算完成。\n",
"\n",
"--- 回测绩效报告 ---\n",
"初始资金 : 100000.00\n",
"最终资金 : 100105.00\n",
"总收益率 : 0.10%\n",
"年化收益率 : 0.05%\n",
"最大回撤 : 0.15%\n",
"夏普比率 : 0.08\n",
"卡玛比率 : 0.31\n",
"总交易次数 : 142\n",
"总实现盈亏 : 105.00\n",
"交易成本 : 0.00\n",
"\n",
"--- 交易详情 ---\n",
"盈利交易次数 : 37\n",
"亏损交易次数 : 33\n",
"胜率 : 52.86%\n",
"盈亏比 : 1.08\n",
"平均每次盈利 : 15.97\n",
"平均每次亏损 : -14.73\n",
"正在绘制绩效图表...\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 1400x1000 with 2 Axes>"
],
"image/png": "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Ee5Vq1Zp3Lhxuvrqq9W1a1e1bdtW559/vu677z5t2bKlzDGnT5+ujIwMPfPMM2Wuu+OOO5SRkaHzzjtPVqvV5br58+crIyPDY0Xv8uXLNXjwYHXq1ElnnXWWbrzxRi1btqzS+7979249+uijjsf9nHPO0bBhw7Ro0aKQjtu592hxcbHefvttXX755Wrfvr26du2qUaNG+dwj9MCBA/rss88kSY8++qjq1KlT4fZpaWkuoWxlvYud50N5l3uaJytWrFBGRoYuvfTScsdSUlKi8847TxkZGdqxY4fLdQUFBXrvvfd07bXXqkuXLo6WA5MmTdJff/1V4X0s737k5eXp6quvltFY/kuwvLw8xzz4xz/+oUGDBkmSPvvsMxUWFvp8XF9ZrVa9+eabkqTrr7++0jYTiYmJ6tSpU5nLt2zZonvvvVc9evRQ27Zt1a1bN40cOVLfffedx/04z4MDBw7owQcf1Hnnnae2bduqb9++evHFF1VUVORym8rO1XaV/c6W/D//SrZ59Mknn+jmm292ORfdfPPNLv2AMzIyHJWsU6dOdRmv8/w+fPiwnnnmGV188cVq166dOnTooF69emnYsGF69913PY5hwIABslgsmjVrVrnjBABEH9oXAACqDPviQklJSY7LXnrpJb3xxhsyGAzq1KmTmjRpot27d2vx4sX64osv9PTTT+sf//iHx/0tWbJEs2fPVosWLdS9e3cdP35cSUlJuvjii7V582Zt3LhRzZs311lnneW4TYsWLZSWlqYBAwZo3759HrexO3DggIYNG6bffvtN9erVU69evVRcXKy1a9dq8uTJWrx4sd5//33Vrl07oMfl2LFjuvnmm7V9+3alpqbq3HPPVWJior7//nu9+eab+uyzz/TBBx+oadOmAR3HG+vXr9cdd9yhvLw8NWvWTOedd57++usvvfjii/rhhx9CfnxJlf78jEajBg8erIkTJ+rDDz/0GEjk5ORowYIFMhqNuvHGG7067o4dO/Tkk0+qXr16Ou2009SmTRtHT+Q333xTixcv1kcffaS6det6vP2cOXP0xhtv6Mwzz1TPnj3122+/afPmzXr44YcdP2NnWVlZuummm7R3717Vrl1bF154oSwWiz799FOtWLFCp59+uvcPmh+uuuoq/fjjj1q7dq1KSkqUkOD6Z+lff/2lQYMGKTs7W2eddZbatGnjUuU9ZswYHTp0SGeccYY6d+6shIQE7dmzR4sXL9bSpUs1ZcoUl76d3bt3lyRHz1O74uJiR7VuVlaWfv75Z7Vq1cpxvX17++3tpk2bpgkTJkiS2rdvr+bNm2vv3r266667Kuxb/fXXX+uee+5RYWGhTjvtNF100UU6cuSI1q1bpzVr1mjlypV69tlnQzZu+22HDx+uTZs2qUuXLmrZsqW2bNmipUuXau3atZo3b57Xz/fly5fLbDarVq1aEVnYrLx5ct5556lx48bas2ePNm/erI4dO5a57bfffqusrCy1adPG5bH7888/dfvtt2vnzp2qU6eO2rVrpxo1auinn37Su+++qyVLlmjGjBk6+eSTvR6nPaz39PNwtmjRIuXm5joWyZNsn6bYu3evvvjiC1155ZVeH9MfP//8sw4cOCDJFvT54+OPP9aYMWNksVh05plnqmvXrvrtt9+0fPlyLV++XHfffbd
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 1400x700 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAKyCAYAAACuWPzHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8FHX6B/DPbEvvCUWKIJDQBaTIgaIodk+w4YlgPUV/6lnOcurZC3q2E6yIKIonSrGidyhFEOkdDBBq6CEhPZtt8/tjd2dndmZrtoV83q+Xsjv1u9nZ3Zlnnu/zFURRFEFERERERERERERECUEX7wYQERERERERERERkQeDtkREREREREREREQJhEFbIiIiIiIiIiIiogTCoC0RERERERERERFRAmHQloiIiIiIiIiIiCiBMGhLRERERERERERElEAYtCUiIiIiIiIiIiJKIAzaEhERERERERERESUQBm2JiIiIiIiIiIiIEgiDtkRE1KIdOHAARUVFKCoqwoEDB/wuO3LkSBQVFWHu3LkxadvkyZNRVFSEyZMnx2R/kd6n+287cuTICLQsdqZPny4dE59++mm8mxNXhw8fxhtvvIFrr70WZ555Jnr16oWBAwdizJgxeP7557Fp0ybVOu6/3cli/Pjx0mty/9e7d28MHz4cEydOxMKFC8Pabjw+3+F48cUX0b17d2zevNnnMrt27cJLL72E0aNHY8iQIejVqxeGDBmCsWPH4rXXXsOuXbti2GJqzsL5/tD6jBYVFeH000/HxRdfjOeeew6HDh2KUosjo7S0FL1798bf/va3eDeFiIgSCIO2RERERDKzZ8+WHs+ZMyeOLQnP3LlzUVRUhEcffbRJ25k6dSpGjRqF9957Dzt37kT37t1x0UUXYeDAgaiqqsKnn36Ka665Bq+88kqEWp7YunfvjjFjxmDMmDEYOXIkkpOTsWjRItx55514/vnn4928qNi1axdmzpyJCy64AH369FHNt9lsePHFF3HZZZfh448/xuHDh9G7d29cdNFFOP3003HgwAF88MEHuOyyy/DZZ5/F4RXEVnMJxAcSqe+QWJN/RkePHo2BAwfi+PHj+Oyzz3D55Zdr3mRKFB06dMC1116Ln376CatWrYp3c4iIKEEY4t0AIiIiOjm1bt0a8+fPh9FojHdTgrZhwwaUlJQgMzMTNpsNf/zx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
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"图表绘制完成。\n",
"{'初始资金': 100000.0, '最终资金': np.float64(100105.0), '总收益率': np.float64(0.0010499999999999954), '年化收益率': np.float64(0.00045923941495895626), '最大回撤': np.float64(0.0014670512270336623), '夏普比率': np.float64(0.07892052381569917), '卡玛比率': np.float64(0.31303570488641075), '总交易次数': 142, '交易成本': 0.0, '总实现盈亏': 105.0, '胜率': 0.5285714285714286, '盈亏比': 1.0845845845845847, '盈利交易次数': 37, '亏损交易次数': 33, '平均每次盈利': 15.972972972972974, '平均每次亏损': -14.727272727272727, 'initial_capital': 100000.0, 'final_capital': np.float64(100105.0), 'total_return': np.float64(0.0010499999999999954), 'annualized_return': np.float64(0.00045923941495895626), 'max_drawdown': np.float64(0.0014670512270336623), 'sharpe_ratio': np.float64(0.07892052381569917), 'calmar_ratio': np.float64(0.31303570488641075), 'sortino_ratio': np.float64(0.04445334916655476), 'total_trades': 142, 'transaction_costs': 0.0, 'total_realized_pnl': 105.0, 'win_rate': 0.5285714285714286, 'profit_loss_ratio': 1.0845845845845847, 'winning_trades_count': 37, 'losing_trades_count': 33, 'avg_profit_per_trade': 15.972972972972974, 'avg_loss_per_trade': -14.727272727272727}\n",
"指标 'rsi_5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_7' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_10' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_14' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_15' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_20' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_25' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_30' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_35' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'rsi_40' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'range_0' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'range_1' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'range_6' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'range_13' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'range_20' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'stoch_k_14_3' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'stoch_k_5_3' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'stoch_k_21_5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_10' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_15' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_20' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_ma_5_5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_ma_5_10' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_ma_10_10' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_ma_10_20' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_ma_20_20' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'roc_ma_20_40' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'natr_5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'natr_14' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'natr_21' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'adx_7' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'adx_14' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'adx_30' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'adx_60' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'adx_120' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'adx_240' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'bbw_10_15' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'bbw_20_20' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'bbw_50_25' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n3_atr5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n3_atr14' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n3_atr21' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n7_atr5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n7_atr14' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n7_atr21' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n21_atr5' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n21_atr14' 没有对应的有效平仓交易数据。跳过绘图。\n",
"指标 'price_range_to_vol_ratio_n21_atr21' 没有对应的有效平仓交易数据。跳过绘图。\n",
"\n",
"所有指标的分析图表已生成。\n"
]
}
],
"execution_count": 16
}
],
"metadata": {
"kernelspec": {
"display_name": "quant",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}