Files

542 lines
291 KiB
Plaintext
Raw Permalink Normal View History

2025-10-05 00:09:59 +08:00
{
"cells": [
{
"cell_type": "code",
"id": "522f09ca7b3fe929",
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T11:07:31.309274Z",
"start_time": "2025-09-25T11:07:31.289156Z"
}
},
"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": 29
},
{
"cell_type": "code",
"id": "4f7e4b438cea750e",
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T11:07:31.339033Z",
"start_time": "2025-09-25T11:07:31.320355Z"
}
},
"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@SHFE_hc/KQ_m@SHFE_hc_min15.csv'\n"
],
"outputs": [],
"execution_count": 30
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T11:07:31.368248Z",
"start_time": "2025-09-25T11:07:31.342486Z"
}
},
"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@SHFE_hc', # 确保与数据文件中的 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": 31
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-25T11:07:42.168994Z",
"start_time": "2025-09-25T11:07:31.378882Z"
}
},
"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': 'hc', # <-- 替换为你的交易品种代码,例如 'GC=F' (黄金期货), 'ZC=F' (玉米期货)\n",
" 'trade_volume': 1,\n",
" 'trendline_n': 110,\n",
" 'hawkes_kappa': 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@SHFE_hc/KQ_m@SHFE_hc_min15.csv\n",
"数据范围从 2020-12-31 14:45:00 到 2025-09-19 22:30:00\n",
"总计 26087 条记录。\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",
"总计发生了 202 笔交易。\n",
"最终总净值: 100256.00\n",
"总收益率: 0.26%\n",
"\n",
"回测运行完毕。\n",
"\n",
"--- 结果分析器初始化完成 ---\n",
"\n",
"--- 交易明细 ---\n",
" 2024-01-10 11:00:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 4020.00 | Comm: 0.00\n",
" 2024-01-10 13:30:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 4020.00 | Comm: 0.00 | PnL: 0.00\n",
" 2024-01-22 09:30:00 | SELL | SHFE.hc2405 | Vol: 1 | Price: 4043.00 | Comm: 0.00\n",
" 2024-01-22 10:00:00 | CLOSE_SHORT | SHFE.hc2405 | Vol: 1 | Price: 4042.00 | Comm: 0.00 | PnL: 1.00\n",
" 2024-01-22 14:30:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 4019.00 | Comm: 0.00\n",
" 2024-01-22 21:45:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 4025.00 | Comm: 0.00 | PnL: 6.00\n",
" 2024-01-23 09:30:00 | SELL | SHFE.hc2405 | Vol: 1 | Price: 4061.00 | Comm: 0.00\n",
" 2024-01-23 10:45:00 | CLOSE_SHORT | SHFE.hc2405 | Vol: 1 | Price: 4055.00 | Comm: 0.00 | PnL: 6.00\n",
" 2024-01-29 13:45:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 4093.00 | Comm: 0.00\n",
" 2024-01-29 14:30:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 4094.00 | Comm: 0.00 | PnL: 1.00\n",
" 2024-01-30 21:00:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 4045.00 | Comm: 0.00\n",
" 2024-01-30 22:30:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 4030.00 | Comm: 0.00 | PnL: -15.00\n",
" 2024-02-02 13:45:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 3951.00 | Comm: 0.00\n",
" 2024-02-02 21:45:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 3972.00 | Comm: 0.00 | PnL: 21.00\n",
" 2024-02-19 09:15:00 | SELL | SHFE.hc2405 | Vol: 1 | Price: 4004.00 | Comm: 0.00\n",
" 2024-02-19 14:15:00 | CLOSE_SHORT | SHFE.hc2405 | Vol: 1 | Price: 3956.00 | Comm: 0.00 | PnL: 48.00\n",
" 2024-02-19 21:15:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 3927.00 | Comm: 0.00\n",
" 2024-02-19 22:15:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 3941.00 | Comm: 0.00 | PnL: 14.00\n",
" 2024-03-08 21:15:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 3829.00 | Comm: 0.00\n",
" 2024-03-08 21:45:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 3839.00 | Comm: 0.00 | PnL: 10.00\n",
" 2024-03-11 09:00:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 3806.00 | Comm: 0.00\n",
" 2024-03-11 10:30:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 3788.00 | Comm: 0.00 | PnL: -18.00\n",
" 2024-03-15 21:15:00 | BUY | SHFE.hc2405 | Vol: 1 | Price: 3675.00 | Comm: 0.00\n",
" 2024-03-18 10:45:00 | CLOSE_LONG | SHFE.hc2405 | Vol: 1 | Price: 3692.00 | Comm: 0.00 | PnL: 17.00\n",
" 2024-04-12 21:15:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3782.00 | Comm: 0.00\n",
" 2024-04-12 21:45:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3788.00 | Comm: 0.00 | PnL: -6.00\n",
" 2024-04-17 13:45:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3810.00 | Comm: 0.00\n",
" 2024-04-17 22:15:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3845.00 | Comm: 0.00 | PnL: -35.00\n",
" 2024-04-23 14:45:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3804.00 | Comm: 0.00\n",
" 2024-04-23 22:15:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3812.00 | Comm: 0.00 | PnL: 8.00\n",
" 2024-04-26 22:45:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3809.00 | Comm: 0.00\n",
" 2024-04-29 10:00:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3809.00 | Comm: 0.00 | PnL: 0.00\n",
" 2024-04-29 21:15:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3835.00 | Comm: 0.00\n",
" 2024-04-29 22:00:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3830.00 | Comm: 0.00 | PnL: 5.00\n",
" 2024-04-30 13:45:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3796.00 | Comm: 0.00\n",
" 2024-05-06 11:15:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3874.00 | Comm: 0.00 | PnL: 78.00\n",
" 2024-05-08 14:15:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3815.00 | Comm: 0.00\n",
" 2024-05-08 22:30:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3806.00 | Comm: 0.00 | PnL: -9.00\n",
" 2024-05-20 09:15:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3878.00 | Comm: 0.00\n",
" 2024-05-20 10:00:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3876.00 | Comm: 0.00 | PnL: 2.00\n",
" 2024-05-27 09:15:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3881.00 | Comm: 0.00\n",
" 2024-05-27 10:30:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3886.00 | Comm: 0.00 | PnL: 5.00\n",
" 2024-05-29 21:30:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3930.00 | Comm: 0.00\n",
" 2024-05-30 09:00:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3925.00 | Comm: 0.00 | PnL: 5.00\n",
" 2024-05-30 21:15:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3846.00 | Comm: 0.00\n",
" 2024-05-30 22:00:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3849.00 | Comm: 0.00 | PnL: 3.00\n",
" 2024-06-04 21:15:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3782.00 | Comm: 0.00\n",
" 2024-06-04 21:45:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3791.00 | Comm: 0.00 | PnL: 9.00\n",
" 2024-06-06 13:45:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3800.00 | Comm: 0.00\n",
" 2024-06-06 22:15:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3833.00 | Comm: 0.00 | PnL: -33.00\n",
" 2024-06-28 21:15:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3758.00 | Comm: 0.00\n",
" 2024-06-28 22:00:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3748.00 | Comm: 0.00 | PnL: 10.00\n",
" 2024-07-03 13:30:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3776.00 | Comm: 0.00\n",
" 2024-07-03 22:00:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3810.00 | Comm: 0.00 | PnL: -34.00\n",
" 2024-07-05 13:30:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3758.00 | Comm: 0.00\n",
" 2024-07-05 21:45:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3763.00 | Comm: 0.00 | PnL: 5.00\n",
" 2024-07-08 13:45:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3712.00 | Comm: 0.00\n",
" 2024-07-08 21:45:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3711.00 | Comm: 0.00 | PnL: -1.00\n",
" 2024-07-15 09:00:00 | SELL | SHFE.hc2410 | Vol: 1 | Price: 3718.00 | Comm: 0.00\n",
" 2024-07-15 13:30:00 | CLOSE_SHORT | SHFE.hc2410 | Vol: 1 | Price: 3745.00 | Comm: 0.00 | PnL: -27.00\n",
" 2024-07-17 13:45:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3699.00 | Comm: 0.00\n",
" 2024-07-17 22:45:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3661.00 | Comm: 0.00 | PnL: -38.00\n",
" 2024-08-07 13:45:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3476.00 | Comm: 0.00\n",
" 2024-08-07 14:45:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3473.00 | Comm: 0.00 | PnL: -3.00\n",
" 2024-08-15 13:45:00 | BUY | SHFE.hc2410 | Vol: 1 | Price: 3179.00 | Comm: 0.00\n",
" 2024-08-15 22:00:00 | CLOSE_LONG | SHFE.hc2410 | Vol: 1 | Price: 3230.00 | Comm: 0.00 | PnL: 51.00\n",
" 2024-08-29 09:30:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3313.00 | Comm: 0.00\n",
" 2024-08-29 11:00:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3348.00 | Comm: 0.00 | PnL: 35.00\n",
" 2024-09-02 09:15:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3319.00 | Comm: 0.00\n",
" 2024-09-02 11:15:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3288.00 | Comm: 0.00 | PnL: -31.00\n",
" 2024-09-03 21:00:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3209.00 | Comm: 0.00\n",
" 2024-09-04 10:00:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3207.00 | Comm: 0.00 | PnL: -2.00\n",
" 2024-09-12 13:45:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3239.00 | Comm: 0.00\n",
" 2024-09-12 14:30:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3244.00 | Comm: 0.00 | PnL: -5.00\n",
" 2024-09-19 09:15:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3202.00 | Comm: 0.00\n",
" 2024-09-19 13:30:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3239.00 | Comm: 0.00 | PnL: 37.00\n",
" 2024-09-27 21:15:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3451.00 | Comm: 0.00\n",
" 2024-09-27 22:00:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3466.00 | Comm: 0.00 | PnL: -15.00\n",
" 2024-10-08 09:15:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3764.00 | Comm: 0.00\n",
" 2024-10-08 14:30:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3604.00 | Comm: 0.00 | PnL: 160.00\n",
" 2024-10-17 10:30:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3583.00 | Comm: 0.00\n",
" 2024-10-17 22:00:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3470.00 | Comm: 0.00 | PnL: -113.00\n",
" 2024-10-23 14:45:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3471.00 | Comm: 0.00\n",
" 2024-10-23 22:00:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3473.00 | Comm: 0.00 | PnL: 2.00\n",
" 2024-10-24 21:45:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3526.00 | Comm: 0.00\n",
" 2024-10-25 09:30:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3513.00 | Comm: 0.00 | PnL: 13.00\n",
" 2024-10-25 21:15:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3565.00 | Comm: 0.00\n",
" 2024-10-25 22:15:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3590.00 | Comm: 0.00 | PnL: -25.00\n",
" 2024-11-01 22:30:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3518.00 | Comm: 0.00\n",
" 2024-11-04 10:00:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3533.00 | Comm: 0.00 | PnL: 15.00\n",
" 2024-11-06 11:15:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3527.00 | Comm: 0.00\n",
" 2024-11-06 21:45:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3542.00 | Comm: 0.00 | PnL: 15.00\n",
" 2024-11-07 21:15:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3610.00 | Comm: 0.00\n",
" 2024-11-07 22:00:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3601.00 | Comm: 0.00 | PnL: 9.00\n",
" 2024-11-13 14:00:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3537.00 | Comm: 0.00\n",
" 2024-11-13 21:30:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3515.00 | Comm: 0.00 | PnL: 22.00\n",
" 2024-11-18 09:15:00 | SELL | SHFE.hc2501 | Vol: 1 | Price: 3447.00 | Comm: 0.00\n",
" 2024-11-18 11:00:00 | CLOSE_SHORT | SHFE.hc2501 | Vol: 1 | Price: 3475.00 | Comm: 0.00 | PnL: -28.00\n",
" 2024-12-04 10:30:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3502.00 | Comm: 0.00\n",
" 2024-12-04 13:30:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3506.00 | Comm: 0.00 | PnL: 4.00\n",
" 2024-12-05 21:15:00 | BUY | SHFE.hc2501 | Vol: 1 | Price: 3458.00 | Comm: 0.00\n",
" 2024-12-05 22:15:00 | CLOSE_LONG | SHFE.hc2501 | Vol: 1 | Price: 3460.00 | Comm: 0.00 | PnL: 2.00\n",
" 2024-12-09 21:15:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3565.00 | Comm: 0.00\n",
" 2024-12-09 22:30:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3563.00 | Comm: 0.00 | PnL: 2.00\n",
" 2024-12-12 21:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3522.00 | Comm: 0.00\n",
" 2024-12-12 22:15:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3523.00 | Comm: 0.00 | PnL: 1.00\n",
" 2024-12-13 09:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3513.00 | Comm: 0.00\n",
" 2024-12-13 14:30:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3486.00 | Comm: 0.00 | PnL: -27.00\n",
" 2024-12-18 21:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3439.00 | Comm: 0.00\n",
" 2024-12-18 22:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3438.00 | Comm: 0.00 | PnL: -1.00\n",
" 2024-12-26 09:30:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3431.00 | Comm: 0.00\n",
" 2024-12-26 22:00:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3428.00 | Comm: 0.00 | PnL: 3.00\n",
" 2025-01-08 14:45:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3315.00 | Comm: 0.00\n",
" 2025-01-08 22:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3310.00 | Comm: 0.00 | PnL: -5.00\n",
" 2025-01-10 21:15:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3320.00 | Comm: 0.00\n",
" 2025-01-10 21:45:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3316.00 | Comm: 0.00 | PnL: 4.00\n",
" 2025-01-21 21:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3444.00 | Comm: 0.00\n",
" 2025-01-21 22:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3439.00 | Comm: 0.00 | PnL: -5.00\n",
" 2025-01-24 14:30:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3479.00 | Comm: 0.00\n",
" 2025-01-24 21:45:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3463.00 | Comm: 0.00 | PnL: 16.00\n",
" 2025-02-05 09:45:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3437.00 | Comm: 0.00\n",
" 2025-02-05 14:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3408.00 | Comm: 0.00 | PnL: -29.00\n",
" 2025-02-10 10:45:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3423.00 | Comm: 0.00\n",
" 2025-02-10 14:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3414.00 | Comm: 0.00 | PnL: -9.00\n",
" 2025-02-11 10:45:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3412.00 | Comm: 0.00\n",
" 2025-02-11 14:30:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3389.00 | Comm: 0.00 | PnL: -23.00\n",
" 2025-02-14 14:30:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3374.00 | Comm: 0.00\n",
" 2025-02-14 22:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3372.00 | Comm: 0.00 | PnL: -2.00\n",
" 2025-02-17 21:00:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3404.00 | Comm: 0.00\n",
" 2025-02-17 22:00:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3411.00 | Comm: 0.00 | PnL: -7.00\n",
" 2025-02-18 13:45:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3439.00 | Comm: 0.00\n",
" 2025-02-18 21:30:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3428.00 | Comm: 0.00 | PnL: 11.00\n",
" 2025-02-24 09:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3419.00 | Comm: 0.00\n",
" 2025-02-24 11:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3426.00 | Comm: 0.00 | PnL: 7.00\n",
" 2025-03-04 09:45:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3378.00 | Comm: 0.00\n",
" 2025-03-04 10:45:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3382.00 | Comm: 0.00 | PnL: 4.00\n",
" 2025-03-12 21:15:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3377.00 | Comm: 0.00\n",
" 2025-03-12 22:00:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3378.00 | Comm: 0.00 | PnL: -1.00\n",
" 2025-03-19 09:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3346.00 | Comm: 0.00\n",
" 2025-03-19 10:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3350.00 | Comm: 0.00 | PnL: 4.00\n",
" 2025-03-19 21:15:00 | SELL | SHFE.hc2505 | Vol: 1 | Price: 3352.00 | Comm: 0.00\n",
" 2025-03-19 22:00:00 | CLOSE_SHORT | SHFE.hc2505 | Vol: 1 | Price: 3348.00 | Comm: 0.00 | PnL: 4.00\n",
" 2025-03-27 21:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3367.00 | Comm: 0.00\n",
" 2025-03-27 22:00:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3368.00 | Comm: 0.00 | PnL: 1.00\n",
" 2025-03-31 09:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3352.00 | Comm: 0.00\n",
" 2025-03-31 10:30:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3349.00 | Comm: 0.00 | PnL: -3.00\n",
" 2025-03-31 21:15:00 | BUY | SHFE.hc2505 | Vol: 1 | Price: 3336.00 | Comm: 0.00\n",
" 2025-03-31 22:15:00 | CLOSE_LONG | SHFE.hc2505 | Vol: 1 | Price: 3332.00 | Comm: 0.00 | PnL: -4.00\n",
" 2025-04-03 09:45:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3385.00 | Comm: 0.00\n",
" 2025-04-03 14:30:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3357.00 | Comm: 0.00 | PnL: 28.00\n",
" 2025-04-07 09:15:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3258.00 | Comm: 0.00\n",
" 2025-04-07 22:00:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3272.00 | Comm: 0.00 | PnL: 14.00\n",
" 2025-04-09 09:15:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3165.00 | Comm: 0.00\n",
" 2025-04-09 13:30:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3202.00 | Comm: 0.00 | PnL: 37.00\n",
" 2025-04-10 09:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3247.00 | Comm: 0.00\n",
" 2025-04-10 10:00:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3271.00 | Comm: 0.00 | PnL: -24.00\n",
" 2025-04-16 21:15:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3191.00 | Comm: 0.00\n",
" 2025-04-16 22:30:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3208.00 | Comm: 0.00 | PnL: 17.00\n",
" 2025-04-21 09:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3208.00 | Comm: 0.00\n",
" 2025-04-21 10:30:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3206.00 | Comm: 0.00 | PnL: 2.00\n",
" 2025-04-23 13:45:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3226.00 | Comm: 0.00\n",
" 2025-04-23 21:45:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3232.00 | Comm: 0.00 | PnL: -6.00\n",
" 2025-05-06 09:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3223.00 | Comm: 0.00\n",
" 2025-05-06 11:15:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3199.00 | Comm: 0.00 | PnL: 24.00\n",
" 2025-05-06 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3229.00 | Comm: 0.00\n",
" 2025-05-06 22:15:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3233.00 | Comm: 0.00 | PnL: -4.00\n",
" 2025-05-07 09:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3253.00 | Comm: 0.00\n",
" 2025-05-07 14:00:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3209.00 | Comm: 0.00 | PnL: 44.00\n",
" 2025-05-22 10:45:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3219.00 | Comm: 0.00\n",
" 2025-05-22 11:15:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3219.00 | Comm: 0.00 | PnL: 0.00\n",
" 2025-05-23 13:30:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3198.00 | Comm: 0.00\n",
" 2025-05-23 22:15:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3179.00 | Comm: 0.00 | PnL: -19.00\n",
" 2025-06-03 09:15:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3035.00 | Comm: 0.00\n",
" 2025-06-03 14:00:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3055.00 | Comm: 0.00 | PnL: 20.00\n",
" 2025-06-11 14:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3123.00 | Comm: 0.00\n",
" 2025-06-11 22:00:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3097.00 | Comm: 0.00 | PnL: 26.00\n",
" 2025-06-12 21:15:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3066.00 | Comm: 0.00\n",
" 2025-06-12 22:45:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3061.00 | Comm: 0.00 | PnL: -5.00\n",
" 2025-06-18 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3117.00 | Comm: 0.00\n",
" 2025-06-18 22:15:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3104.00 | Comm: 0.00 | PnL: 13.00\n",
" 2025-06-24 21:15:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3085.00 | Comm: 0.00\n",
" 2025-06-24 22:15:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3091.00 | Comm: 0.00 | PnL: 6.00\n",
" 2025-06-27 09:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3132.00 | Comm: 0.00\n",
" 2025-06-27 10:00:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3123.00 | Comm: 0.00 | PnL: 9.00\n",
" 2025-06-27 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3136.00 | Comm: 0.00\n",
" 2025-06-27 22:00:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3146.00 | Comm: 0.00 | PnL: -10.00\n",
" 2025-07-02 13:45:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3178.00 | Comm: 0.00\n",
" 2025-07-02 21:45:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3186.00 | Comm: 0.00 | PnL: -8.00\n",
" 2025-07-08 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3199.00 | Comm: 0.00\n",
" 2025-07-08 22:00:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3202.00 | Comm: 0.00 | PnL: -3.00\n",
" 2025-07-09 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3216.00 | Comm: 0.00\n",
" 2025-07-09 22:45:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3221.00 | Comm: 0.00 | PnL: -5.00\n",
" 2025-07-10 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3272.00 | Comm: 0.00\n",
" 2025-07-10 22:15:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3269.00 | Comm: 0.00 | PnL: 3.00\n",
" 2025-07-15 13:45:00 | BUY | SHFE.hc2510 | Vol: 1 | Price: 3251.00 | Comm: 0.00\n",
" 2025-07-15 14:30:00 | CLOSE_LONG | SHFE.hc2510 | Vol: 1 | Price: 3257.00 | Comm: 0.00 | PnL: 6.00\n",
" 2025-07-16 21:30:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3272.00 | Comm: 0.00\n",
" 2025-07-17 09:45:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3277.00 | Comm: 0.00 | PnL: -5.00\n",
" 2025-07-17 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3324.00 | Comm: 0.00\n",
" 2025-07-17 22:45:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3332.00 | Comm: 0.00 | PnL: -8.00\n",
" 2025-07-18 21:15:00 | SELL | SHFE.hc2510 | Vol: 1 | Price: 3351.00 | Comm: 0.00\n",
" 2025-07-18 22:45:00 | CLOSE_SHORT | SHFE.hc2510 | Vol: 1 | Price: 3369.00 | Comm: 0.00 | PnL: -18.00\n",
"正在计算绩效指标...\n",
"total_return: 0.0025599999999998957, annualized_return:0.001119194673439905, 252 / total_days:0.4375\n",
"绩效指标计算完成。\n",
"\n",
"--- 回测绩效报告 ---\n",
"初始资金 : 100000.00\n",
"最终资金 : 100256.00\n",
"总收益率 : 0.26%\n",
"年化收益率 : 0.11%\n",
"最大回撤 : 0.19%\n",
"夏普比率 : 0.18\n",
"卡玛比率 : 0.60\n",
"总交易次数 : 202\n",
"总实现盈亏 : 256.00\n",
"交易成本 : 0.00\n",
"\n",
"--- 交易详情 ---\n",
"盈利交易次数 : 56\n",
"亏损交易次数 : 42\n",
"胜率 : 57.14%\n",
"盈亏比 : 1.04\n",
"平均每次盈利 : 16.52\n",
"平均每次亏损 : -15.93\n",
"正在绘制绩效图表...\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 1400x1000 with 2 Axes>"
],
"image/png": "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jW/gwIHq1KmTxyHcixcv1kMPPaQhQ4aoV69e6tSpk0455RSNHTtWa9asqXKbb7/9tnJzc/Xwww9XOe+6665Tbm6uTj75ZDkcDo/zZs+erdzcXK8VvQsWLNCll16q7t2767jjjtPFF1+s+fPn1/j3b9myRXfddZfrfj/hhBN0xRVXaM6cOWEdt3vvUavVqv/85z86++yz1aVLF/Xq1Utjxozxu0fotm3b9Mknn0iS7rrrLjVs2LDay2dnZ3uEsjX1LnafD75O9zZPFi5cqNzcXJ155pk+x1JeXq6TTz5Zubm52rBhg8d5JSUleuONN3TRRRepZ8+erpYDjz/+uPbv31/t3+jr7ygqKtKQIUNkNvv+CFZUVOSaBxdccIGGDx8uSfrkk09UWlrq9+36y+Fw6JVXXpEkjRw5ssY2E8nJyerevXuV09esWaNbbrlFffr0UadOndS7d29df/31+u6777xux30ebNu2TbfffrtOPvlkderUSQMHDtQzzzyjsrIyj+vUtK821PSaLQW+/5Wc8+iDDz7QlVde6bEvuvLKKz36Aefm5roqWV944QWP8brP7927d+vhhx/WGWecoc6dO6tr167q16+frrjiCr3++utexzB06FDZ7XZNnTrV5zgBANGH9gUAgIRhLC6UkpLiOu3ZZ5/Vyy+/LJPJpO7du+uII47Qli1bNHfuXH3xxRd68MEHdcEFF3jd3meffaZp06apbdu2Oumkk3Tw4EGlpKTojDPO0OrVq7Vy5Uq1bt1axx13nOs6bdu2VXZ2toYOHarff//d62UM27Zt0xVXXKEdO3aoUaNG6tevn6xWq5YtW6Ynn3xSc+fO1ZtvvqkGDRoEdb8cOHBAV155pdavX6+srCydeOKJSk5O1vfff69XXnlFn3zyid566y21bNkyqNupjRUrVui6665TUVGRWrVqpZNPPln79+/XM888ox9//DHsty+pxsfPbDbr0ksv1cSJE/Xuu+96DSQKCgr04Ycfymw26+KLL67V7W7YsEH33nuvGjVqpDZt2qhjx46unsivvPKK5s6dq/fff1+HHXaY1+vPmDFDL7/8so499lj17dtXO3bs0OrVqzVu3DjXY+wuLy9Pl1xyiX777Tc1aNBAp512mux2uz7++GMtXLhQRx99dO3vtACcd955+umnn7Rs2TKVl5crKcnzben+/fs1fPhw5efn67jjjlPHjh09qrzvv/9+7dq1S8ccc4x69OihpKQkbd26VXPnztW8efP09NNPe/TtPOmkkyTJ1fPUYLVaXdW6eXl52rhxo9q3b+8637i8cX3D5MmTNWHCBElSly5d1Lp1a/3222+68cYbq+1b/fXXX+vmm29WaWmp2rRpo9NPP1179+7V8uXLtXTpUi1atEiPPvpo2MZtXHfUqFFatWqVevbsqXbt2mnNmjWaN2+eli1bplmzZtX6+b5gwQLZbDbVr18/Igub+ZonJ598spo1a6atW7dq9erV6tatW5Xrfvvtt8rLy1PHjh097ru//vpL1157rTZt2qSGDRuqc+fOyszM1M8//6zXX39dn332md555x21aNGi1uM0wnpvj4e7OXPmqLCw0LVInuQ8muK3337TF198oXPPPbfWtxmIjRs3atu2bZKcQV8gpk+frvvvv192u13HHnusevXqpR07dmj
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 1400x700 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAKyCAYAAACuWPzHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FNX+BvB3Zks2m94IvQgk9CZVUAREbNwLouJVsKLAtVwbgspV7NiRYr2AovgDFbCCShNBeu8l9E4K6dlsmfn9sdnJTHY32U022ZT38zz3MnPOmTNnk7OLfPfM9wiyLMsgIiIiIiIiIiIiompBDPYAiIiIiIiIiIiIiKgYg7ZERERERERERERE1QiDtkRERERERERERETVCIO2RERERERERERERNUIg7ZERERERERERERE1QiDtkRERERERERERETVCIO2RERERERERERERNUIg7ZERERERERERERE1QiDtkRERERERERERETVCIO2RERUp505cwbJyclITk7GmTNnSm07cOBAJCcnY/HixVUythkzZiA5ORkzZsyokvsF+p6un+3AgQMDMLKqM3fuXGVOfPXVV8EeTlCdP38eH3zwAe644w707t0b7du3R/fu3TF8+HC89tpr2L17t9s1rp9dbTF69GjlNbn+16FDB/Tr1w/jxo3DqlWrytVvMN7f5fHGG2+gTZs22LNnj9c2R48exZtvvolhw4ahV69eaN++PXr16oWRI0fivffew9GjR6twxFSTlefzw9N7NDk5GZ07d8aNN96IV199FefOnaukEQfG6dOn0aFDB/znP/8J9lCIiKgaYdCWiIiISOX7779XjhctWhTEkZTP4sWLkZycjEmTJlWon88//xyDBw/GJ598giNHjqBNmza44YYb0L17d2RlZeGrr77C7bffjrfffjtAI6/e2rRpg+HDh2P48OEYOHAgTCYTVq9ejfHjx+O1114L9vAqxdGjRzF//nxcf/316Nixo1u93W7HG2+8gVtuuQVffPEFzp8/jw4dOuCGG25A586dcebMGXz22We45ZZb8PXXXwfhFVStmhKIL0ugPkOqmvo9OmzYMHTv3h1paWn4+uuvMXToUI9fMlUXTZo0wR133IHffvsNmzdvDvZwiIiomtAHewBERERUOyUmJmLp0qUwGAzBHorPdu7ciZSUFERGRsJut+PAgQPYt28f2rdvH+yhVal3330Xn3/+OQwGAyZOnIhRo0bBaDRq2uzcuRMffPABTpw4EZxBVrHrrrsOjz32mHIuSRKmTZuGTz/9FF999RUGDRqEPn36+Nzf3XffjZtuugkxMTGVMdyAePvtt2G32zWvW23ChAlYunQpwsPD8cILL+Cf//wndDqdUi/LMv7++2+8//77OHnyZFUNm+qoku9RAMjJycG4ceOwdetWTJkypcqelCmP8ePH49tvv8Wbb76JJUuWBHs4RERUDXClLREREVUKg8GAli1bomnTpsEeis9cq2xvvvlm3HDDDZqyumLDhg34/PPPAQAffPABHnjgAbeALQB06dIFX3zxBR544IGqHmK1IIoi/vOf/6BJkyYAgGXLlvl1fWxsLFq2bInY2NjKGF6FHT9+HGvWrEGXLl3QunVrt/rvv/9e+VJmzpw5uPXWWzUBWwAQBAH9+vXDwoULcdNNN1XV0IkUEREReOSRRwAA+/btQ05OTpBH5F1CQgKuueYa7N+/H1u2bAn2cIiIqBrgSlsiIqIKGj16NDZv3ox58+YhMjISs2bNwpYtW5CXl4emTZvitttuw/333w9BENyutVgs+Pzzz/Hzzz/j3LlziI6ORt++fX3Ka7d3717MnTsX27ZtQ1paGsxmMzp27Ih77rkH/fv3d2s/cOBAnD17FitXrsTBgwcxb948HDx4EFlZWZg3bx569erl8T7Tp0/HrFmzMHLkSLzyyise2+zevRu333476tWrh9WrV0Ov1+PMmTMYNGgQGjVq5Jb305Wz8NChQ/j999/xxRdf4NChQ5AkCW3atMH48eM9vgYAOHv2LGbMmIG1a9ciOzsbDRo0wC233IKxY8dizJgxyu/C2+vxJj8/H0uXLgUA3HbbbbBYLFi8eDF++eUXTJo0CSEhIR6vW7ZsGRYuXIgDBw4gNzcX4eHhiIuLQ7du3TBq1Ci0adNGaZuTk4P//e9/WLVqFU6fPg273Y7o6Gg0btwYffr0wb///W+3lclZWVn48ssvsXLlSpw6dQqSJKFp06a48cYbcf/99yM0NFRp6/odA8CSJUs0q7V69uzpU47ejz76SOlr8ODBpbYVBAHdu3cvs0+XzMxMzJkzBytXrsSZM2cgiiJatGiBG2+8EaNHj4bJZHK7Zv369Zg3bx52796NrKwsmM1mxMTEoFOnThg5ciR69Ojhds2GDRswf/587Ny5E5mZmYiIiEC3bt0wZswYdO3a1efxlkWn06Ft27Y4ffq08nMHfHuvzZgxAzNnzsSjjz7qcSXr8ePH8eWXX2LDhg24cOECdDod6tevj549e+Kuu+5CUlKSpr0/88QX8+fPhyzLGD58uFudLMv45JNPAAB33nknOnfuXGpfBoPB48999+7dmD17NrZt26b8njp37ozRo0ejb9++bu0nTZqEJUuW4M0330SPHj0wffp0rF+/HllZWahfvz5uvvlmPPLIIx6/ZACcn5lfffUVtmzZgtTUVISGhqJ+/fro27cvRo0ahUaNGilt//jjD6xZswa7du3CxYsXYbFYkJCQgF69euGhhx7CFVdcoelbnYd15syZmDlzpnI+fPhwTJ06VTm32+1YsmQJfvrpJxw6dAj5+fmoV68err76aowbNw4NGjTQ9L1p0ybcc8896NmzJ+bMmYO5c+fixx9/xOnTpxEaGooePXrgySefRMuWLd1e8/r167Fy5Ups3boVFy5cQF5eHmJjY9GtWzc88MAD6NSpk6a9v58hv/32G7777jvs27cPubm5iImJQa9evTBu3Di0atXK4+9hx44dmDVrFnbu3AmHw4EWLVrgrrvuwm233eaxfUXFx8crx3a7XVOXkZGBX375BWvXrsXRo0eRlpYGvV6P5s2b44YbbsC9997r8bNf/XfYokWL8O233yIlJQW5ublYuXIlGjduXK7P+1tvvRUrV67E/PnzPX62ERFR3cKgLRERUYCsW7cOc+fORdOmTdG3b1+kpqZi27ZteOutt3D+/Hm88MILmvYFBQW47777sHPnTpjNZvTr1w8hISFYt24d/vzzT1x77bVe7/Xll19i6tSpkCQJbdu2RadOnZCWloZNmzZh3bp1eOyxx/Doo496vHbu3Ln4+uuv0aFDB1x99dW4dOmS2wo5tX/961/47LPP8PPPP+OZZ55BZGSkW5v58+cDAEaOHAm93vf/vJg+fTo++ugjdO3aFf3798exY8ewY8cOjB07FjNmzHALGqakpGDUqFG4fPky6tWrh0GDBqGgoABz587Fxo0bIUmSz/cuaenSpcjLy1M2mgKA5s2b48SJE/jjjz8wdOhQt2tmzpyJGTNmQK/Xo2vXrkhMTEROTg7Onz+P77//Hq1atVKCtgUFBbjrrrtw+PBhxMbGonfv3jCbzUhNTcXx48fx0Ucf4f7779f8Iz4lJQVjxozB+fPnkZCQgCuvvBJ6vR579uzBhx9+iD/++ANfffUVIiIiAABDhgzBzp07sX37djRt2hRXXnml0lfJIJMn2dnZ2Lp1KwB4DNZVxOnTp3Hvvffi7NmziI2NRf/+/WGz2bBp0ya8++67WLZsGebOnYuoqCjlmiVLluC5554DAHTq1Am9evWCxWLBxYsXsXTpUsTExLgFNt566y3MmTMHoiiiQ4cOuPLKK3H+/HmsXLkSq1evxquvvooRI0YE7HXl5uYCgMdAob/vNZeff/4Zzz//PKxWKxo2bIj+/ftDkiScPn0aCxYsQFxcnCZo6+888cXKlSsBAFdddZVb3aFDh3D69GkA5Z8n3377LV566SVIkoR27dqhV69eOHv2LFavXo3Vq1eX+hl24MABvP7664iKikKPHj2QlZWF7du345NPPkFKSgp
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"图表绘制完成。\n",
"{'初始资金': 100000.0, '最终资金': np.float64(100256.0), '总收益率': np.float64(0.0025599999999998957), '年化收益率': np.float64(0.001119194673439905), '最大回撤': np.float64(0.001864704239958518), '夏普比率': np.float64(0.18363931761113766), '卡玛比率': np.float64(0.6001995648729809), '总交易次数': 202, '交易成本': 0.0, '总实现盈亏': 256.0, '胜率': 0.5714285714285714, '盈亏比': 1.0369955156950672, '盈利交易次数': 56, '亏损交易次数': 42, '平均每次盈利': 16.517857142857142, '平均每次亏损': -15.928571428571429, 'initial_capital': 100000.0, 'final_capital': np.float64(100256.0), 'total_return': np.float64(0.0025599999999998957), 'annualized_return': np.float64(0.001119194673439905), 'max_drawdown': np.float64(0.001864704239958518), 'sharpe_ratio': np.float64(0.18363931761113766), 'calmar_ratio': np.float64(0.6001995648729809), 'sortino_ratio': np.float64(0.08513212504758963), 'total_trades': 202, 'transaction_costs': 0.0, 'total_realized_pnl': 256.0, 'win_rate': 0.5714285714285714, 'profit_loss_ratio': 1.0369955156950672, 'winning_trades_count': 56, 'losing_trades_count': 42, 'avg_profit_per_trade': 16.517857142857142, 'avg_loss_per_trade': -15.928571428571429}\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": 32
}
],
"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
}