Files
NewQuant/futures_trading_strategies/hc/KalmanTrendFollower/KalmanStrategy_tqsdk.ipynb

730 lines
339 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"id": "522f09ca7b3fe929",
"metadata": {
"ExecuteTime": {
"end_time": "2026-01-05T15:37:17.384067Z",
"start_time": "2026-01-05T15:37:17.367461Z"
}
},
"source": [
"from datetime import datetime\n",
"\n",
"import sys\n",
"\n",
"if '/mnt/d/PyProject/NewQuant/' not in sys.path:\n",
" sys.path.append('/mnt/d/PyProject/NewQuant/')\n",
" \n",
"from src.data_processing import load_raw_data\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"execution_count": 9
},
{
"cell_type": "code",
"id": "c00ccfeec592844c",
"metadata": {
"ExecuteTime": {
"end_time": "2026-01-05T15:37:17.402707Z",
"start_time": "2026-01-05T15:37:17.384067Z"
}
},
"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 futures_trading_strategies.hc.KalmanTrendFollower.KalmanTrendFollower import KalmanTrendFollower\n",
"\n",
"# --- 配置参数 ---\n",
"# 获取当前脚本所在目录,假设数据文件在项目根目录下的 data 文件夹内\n",
"data_file_path = 'D:/PyProject/NewQuant/data/data/KQ_m@SHFE_hc/KQ_m@SHFE_hc_min15.csv'\n"
],
"outputs": [],
"execution_count": 10
},
{
"cell_type": "code",
"id": "7599fa7cd2cb3d45",
"metadata": {
"ExecuteTime": {
"end_time": "2026-01-05T15:37:17.420797Z",
"start_time": "2026-01-05T15:37:17.405790Z"
}
},
"source": [
"\n",
"initial_capital = 100000.0\n",
"slippage_rate = 0.000 # 假设每笔交易0.1%的滑点\n",
"commission_rate = 0.0001 # 假设每笔交易0.02%的佣金\n",
"\n",
"global_config = {\n",
" 'symbol': 'KQ_m@SHFE_rb', # 确保与数据文件中的 symbol 匹配\n",
"}\n",
"\n",
"# 回测时间范围\n",
"# start_time = datetime(2021, 1, 1)\n",
"# end_time = datetime(2025, 1, 1)\n",
"\n",
"start_time = datetime(2025, 10, 1)\n",
"end_time = datetime(2025, 12, 1)\n",
"\n",
"\n",
"indicators = INDICATOR_LIST\n",
"indicators = []\n",
"\n",
"# 确保 DataManager 能够重置以进行多次回测\n",
"# data_manager.reset() # 首次运行不需要重置"
],
"outputs": [],
"execution_count": 11
},
{
"cell_type": "code",
"id": "f903fd2761d446cd",
"metadata": {
"ExecuteTime": {
"end_time": "2026-01-05T15:37:42.341357Z",
"start_time": "2026-01-05T15:37:17.425802Z"
}
},
"source": [
"from src.indicators.base_indicators import CompositeIndicator\n",
"from src.tqsdk_engine import TqsdkEngine\n",
"from tqsdk import TqApi, TqBacktest, TqAuth\n",
"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",
" # 'indicator': Hurst(230, 0, 0.5),\n",
" 'indicator': CompositeIndicator([ATRRatio(20, 50, 105, 150), Hurst(230, 0, 0.5)], mode='or'),\n",
" 'slow_sensitivity': 0.051,\n",
" 'entry_threshold': 0.7,\n",
" 'enable_log': False\n",
"}\n",
"\n",
"\n",
"\n",
"# --- 2. 初始化回测引擎并运行 ---\n",
"print(\"\\n初始化回测引擎...\")\n",
"api = TqApi(\n",
" backtest=TqBacktest(start_dt=start_time, end_dt=end_time),\n",
" auth=TqAuth(\"emanresu\", \"dfgvfgdfgg\"),\n",
")\n",
"# --- 1. 初始化回测引擎并运行 ---\n",
"print(\"\\n初始化 Tqsdk 回测引擎...\")\n",
"engine = TqsdkEngine(\n",
" strategy_class=KalmanTrendFollower,\n",
" strategy_params=strategy_parameters,\n",
" api=api,\n",
" symbol=global_config['symbol'],\n",
" duration_seconds=60 * 15,\n",
" roll_over_mode=True, # 启用换月模式检测\n",
" start_time=start_time,\n",
" end_time=end_time,\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"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"初始化数据管理器...\n",
"数据加载成功: D:/PyProject/NewQuant/data/data/KQ_m@SHFE_rb/KQ_m@SHFE_rb_min15.csv\n",
"数据范围从 2020-12-31 14:45:00 到 2025-11-27 14:30:00\n",
"总计 27060 条记录。\n",
"\n",
"初始化回测引擎...\n",
" INFO - TqSdk free 版剩余 0 天到期,如需续费或升级请访问 https://account.shinnytech.com/ 或联系相关工作人员。\n",
"\n",
"初始化 Tqsdk 回测引擎...\n",
"内存仓储已初始化管理ID: 'futures_trading_strategies.hc.KalmanTrendFollower.KalmanTrendFollower.KalmanTrendFollower_0fc5cc5d37e729be06348f8abc76d9e1'\n",
"TqsdkContext: 初始化完成。\n",
"TqsdkContext: 已设置引擎引用。\n",
"TqsdkEngine: 初始化完成。\n",
"\n",
"开始运行回测...\n",
"TqsdkEngine: 开始运行回测,从 2025-10-01 00:00:00 到 2025-12-01 00:00:00\n",
"KalmanTrendFollower 策略初始化回调被调用。\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_0', price_type='LIMIT', limit_price=3075, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:29.648550'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_0', price_type='LIMIT', limit_price=3075, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:29.648550'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_58066cb883aa6ce5c4eee6942477c004: 时间: 2025-10-24 22:00:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3075.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_58066cb883aa6ce5c4eee6942477c004: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_1', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:30.413287'), offset='CLOSE')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_1', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:30.413287'), offset='CLOSE')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_target_f0ac2a68cbdbb811aeb3f2c04b24348d: 时间: 2025-10-28 13:45:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3086.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_target_f0ac2a68cbdbb811aeb3f2c04b24348d: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_2', price_type='LIMIT', limit_price=3118, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:30.586564'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_2', price_type='LIMIT', limit_price=3118, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:30.586564'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_cafeac851280c77a64957d89e95f7761: 时间: 2025-10-28 21:45:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3118.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_cafeac851280c77a64957d89e95f7761: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_3', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:31.472395'), offset='CLOSE')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_3', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:31.472395'), offset='CLOSE')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_target_74688c841db633691a9d0db42b455ae5: 时间: 2025-10-30 13:45:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3110.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_target_74688c841db633691a9d0db42b455ae5: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='SELL', volume=1, id='SHFE.rb2601_SELL_4', price_type='LIMIT', limit_price=3103, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:31.527703'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='SELL', volume=1, id='SHFE.rb2601_SELL_4', price_type='LIMIT', limit_price=3103, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:31.527703'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_6bec3145dc125b52e762de849e0ccd1b: 时间: 2025-10-30 14:30:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: SELL, 手数: 1, 价格: 3103.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_6bec3145dc125b52e762de849e0ccd1b: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='CLOSE_SHORT', volume=1, id='SHFE.rb2601_CLOSE_SHORT_5', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:31.998195'), offset='CLOSE')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='CLOSE_SHORT', volume=1, id='SHFE.rb2601_CLOSE_SHORT_5', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:31.998195'), offset='CLOSE')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_target_8d42bd889f6ee0596773ba100cc8c8da: 时间: 2025-10-31 10:30:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: BUY, 手数: 1, 价格: 3124.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_target_8d42bd889f6ee0596773ba100cc8c8da: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='SELL', volume=1, id='SHFE.rb2601_SELL_6', price_type='LIMIT', limit_price=3089, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:32.307171'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='SELL', volume=1, id='SHFE.rb2601_SELL_6', price_type='LIMIT', limit_price=3089, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:32.307171'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_b5d2e1b2d1f9baaebc4f9fba7ef709b7: 时间: 2025-10-31 22:00:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: SELL, 手数: 1, 价格: 3089.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_b5d2e1b2d1f9baaebc4f9fba7ef709b7: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='CLOSE_SHORT', volume=1, id='SHFE.rb2601_CLOSE_SHORT_7', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:34.039694'), offset='CLOSE')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='CLOSE_SHORT', volume=1, id='SHFE.rb2601_CLOSE_SHORT_7', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:34.039694'), offset='CLOSE')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_target_807e3868c344851210f5399453a92396: 时间: 2025-11-06 11:15:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: BUY, 手数: 1, 价格: 3034.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_target_807e3868c344851210f5399453a92396: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_8', price_type='LIMIT', limit_price=3077, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:37.333123'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_8', price_type='LIMIT', limit_price=3077, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:37.333123'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_8b5ea82fb28bc2b3437153f1c30bae09: 时间: 2025-11-17 09:30:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3077.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_8b5ea82fb28bc2b3437153f1c30bae09: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_9', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:38.558452'), offset='CLOSE')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_9', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:38.558452'), offset='CLOSE')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_target_d94f853d79724a389b52def33d9f4a46: 时间: 2025-11-19 14:45:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3068.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_target_d94f853d79724a389b52def33d9f4a46: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='SELL', volume=1, id='SHFE.rb2601_SELL_10', price_type='LIMIT', limit_price=3060, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:38.698065'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='SELL', volume=1, id='SHFE.rb2601_SELL_10', price_type='LIMIT', limit_price=3060, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:38.698065'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_3f89ef52367a621e3969b52afcd5c2c4: 时间: 2025-11-19 22:15:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: SELL, 手数: 1, 价格: 3060.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_3f89ef52367a621e3969b52afcd5c2c4: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='CLOSE_SHORT', volume=1, id='SHFE.rb2601_CLOSE_SHORT_11', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:38.962685'), offset='CLOSE')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='CLOSE_SHORT', volume=1, id='SHFE.rb2601_CLOSE_SHORT_11', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:38.962685'), offset='CLOSE')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_target_f9198e79125e98de59e6c3d3be1e4753: 时间: 2025-11-20 13:30:00.000000, 合约: SHFE.rb2601, 开平: CLOSETODAY, 方向: BUY, 手数: 1, 价格: 3071.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_target_f9198e79125e98de59e6c3d3be1e4753: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_12', price_type='LIMIT', limit_price=3087, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:39.965039'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_12', price_type='LIMIT', limit_price=3087, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:39.965039'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_faea25fe1cd30ebbafd2514d18d0ab7d: 时间: 2025-11-24 11:15:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3087.0\n",
"Context: 取消订单请求已加入队列: PYSDK_insert_faea25fe1cd30ebbafd2514d18d0ab7d\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_13', price_type='LIMIT', limit_price=3091, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:39.986702'), offset='OPEN')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='BUY', volume=1, id='SHFE.rb2601_BUY_13', price_type='LIMIT', limit_price=3091, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:39.986702'), offset='OPEN')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_insert_e7b60fee587651417b1e701d3cd4d26e: 时间: 2025-11-24 13:30:00.000000, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3091.0\n",
"Engine: 处理取消请求: PYSDK_insert_faea25fe1cd30ebbafd2514d18d0ab7d\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_faea25fe1cd30ebbafd2514d18d0ab7d: 已撤单\n",
"Engine: 订单 PYSDK_insert_faea25fe1cd30ebbafd2514d18d0ab7d 已尝试取消。当前状态: FINISHED\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_insert_e7b60fee587651417b1e701d3cd4d26e: 全部成交\n",
"Context: 订单已加入队列: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_14', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:40.795297'), offset='CLOSE')\n",
"Engine: 处理订单请求: Order(symbol='SHFE.rb2601', direction='CLOSE_LONG', volume=1, id='SHFE.rb2601_CLOSE_LONG_14', price_type='MARKET', limit_price=None, stop_price=None, submitted_time=Timestamp('2026-01-05 23:37:40.795297'), offset='CLOSE')\n",
" INFO - 模拟交易下单 TQSIM, PYSDK_target_50a0b043824ad4cce261371dbf3e89d1: 时间: 2025-11-26 09:30:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3087.0\n",
" INFO - 模拟交易委托单 TQSIM, PYSDK_target_50a0b043824ad4cce261371dbf3e89d1: 全部成交\n",
" INFO - 回测结束\n",
" INFO - 模拟交易成交记录, 账户: TQSIM\n",
" INFO - 时间: 2025-10-24 22:00:59.999999, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3075.000,手续费: 3.09\n",
" INFO - 时间: 2025-10-28 13:45:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3086.000,手续费: 3.09\n",
" INFO - 时间: 2025-10-28 21:50:59.999999, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3118.000,手续费: 3.09\n",
" INFO - 时间: 2025-10-30 13:45:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3110.000,手续费: 3.09\n",
" INFO - 时间: 2025-10-30 14:31:59.999999, 合约: SHFE.rb2601, 开平: OPEN, 方向: SELL, 手数: 1, 价格: 3103.000,手续费: 3.09\n",
" INFO - 时间: 2025-10-31 10:30:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: BUY, 手数: 1, 价格: 3124.000,手续费: 3.09\n",
" INFO - 时间: 2025-10-31 22:00:59.999999, 合约: SHFE.rb2601, 开平: OPEN, 方向: SELL, 手数: 1, 价格: 3089.000,手续费: 3.09\n",
" INFO - 时间: 2025-11-06 11:15:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: BUY, 手数: 1, 价格: 3034.000,手续费: 3.09\n",
" INFO - 时间: 2025-11-17 09:30:59.999999, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3077.000,手续费: 3.09\n",
" INFO - 时间: 2025-11-19 14:45:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3068.000,手续费: 3.09\n",
" INFO - 时间: 2025-11-19 22:15:59.999999, 合约: SHFE.rb2601, 开平: OPEN, 方向: SELL, 手数: 1, 价格: 3060.000,手续费: 3.09\n",
" INFO - 时间: 2025-11-20 13:30:00.000000, 合约: SHFE.rb2601, 开平: CLOSETODAY, 方向: BUY, 手数: 1, 价格: 3071.000,手续费: 3.09\n",
" INFO - 时间: 2025-11-24 13:30:59.999999, 合约: SHFE.rb2601, 开平: OPEN, 方向: BUY, 手数: 1, 价格: 3091.000,手续费: 3.09\n",
" INFO - 时间: 2025-11-26 09:30:00.000000, 合约: SHFE.rb2601, 开平: CLOSE, 方向: SELL, 手数: 1, 价格: 3087.000,手续费: 3.09\n",
" INFO - 模拟交易账户资金, 账户: TQSIM\n",
" INFO - 日期: 2025-10-01, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-09, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-10, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-13, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-14, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-15, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-16, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-17, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-20, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-21, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-22, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-23, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-24, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-27, 账户权益: 10000246.91, 可用资金: 9997774.91, 浮动盈亏: 250.00, 持仓盈亏: 250.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 3.09, 风险度: 0.02%\n",
" INFO - 日期: 2025-10-28, 账户权益: 10000103.82, 可用资金: 10000103.82, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: -140.00, 市值: 0.00, 保证金: 0.00, 手续费: 3.09, 风险度: 0.00%\n",
" INFO - 日期: 2025-10-29, 账户权益: 10000250.73, 可用资金: 9997778.73, 浮动盈亏: 150.00, 持仓盈亏: 150.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 3.09, 风险度: 0.02%\n",
" INFO - 日期: 2025-10-30, 账户权益: 9999984.55, 可用资金: 9997512.55, 浮动盈亏: -30.00, 持仓盈亏: -30.00, 平仓盈亏: -230.00, 市值: 0.00, 保证金: 2472.00, 手续费: 6.18, 风险度: 0.02%\n",
" INFO - 日期: 2025-10-31, 账户权益: 9999801.46, 可用资金: 9999801.46, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: -180.00, 市值: 0.00, 保证金: 0.00, 手续费: 3.09, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-03, 账户权益: 9999898.37, 可用资金: 9997426.37, 浮动盈亏: 100.00, 持仓盈亏: 100.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 3.09, 风险度: 0.02%\n",
" INFO - 日期: 2025-11-04, 账户权益: 10000248.37, 可用资金: 9997776.37, 浮动盈亏: 450.00, 持仓盈亏: 350.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 0.00, 风险度: 0.02%\n",
" INFO - 日期: 2025-11-05, 账户权益: 10000448.37, 可用资金: 9997976.37, 浮动盈亏: 650.00, 持仓盈亏: 200.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 0.00, 风险度: 0.02%\n",
" INFO - 日期: 2025-11-06, 账户权益: 10000345.28, 可用资金: 10000345.28, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: -100.00, 市值: 0.00, 保证金: 0.00, 手续费: 3.09, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-07, 账户权益: 10000345.28, 可用资金: 10000345.28, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-10, 账户权益: 10000345.28, 可用资金: 10000345.28, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-11, 账户权益: 10000345.28, 可用资金: 10000345.28, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-12, 账户权益: 10000345.28, 可用资金: 10000345.28, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-13, 账户权益: 10000345.28, 可用资金: 10000345.28, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-14, 账户权益: 10000345.28, 可用资金: 10000345.28, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-17, 账户权益: 10000542.19, 可用资金: 9998070.19, 浮动盈亏: 200.00, 持仓盈亏: 200.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 3.09, 风险度: 0.02%\n",
" INFO - 日期: 2025-11-18, 账户权益: 10000472.19, 可用资金: 9998000.19, 浮动盈亏: 130.00, 持仓盈亏: -70.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 0.00, 风险度: 0.02%\n",
" INFO - 日期: 2025-11-19, 账户权益: 10000249.10, 可用资金: 10000249.10, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: -220.00, 市值: 0.00, 保证金: 0.00, 手续费: 3.09, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-20, 账户权益: 10000132.92, 可用资金: 10000132.92, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: -110.00, 市值: 0.00, 保证金: 0.00, 手续费: 6.18, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-21, 账户权益: 10000132.92, 可用资金: 10000132.92, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-24, 账户权益: 10000109.83, 可用资金: 9997637.83, 浮动盈亏: -20.00, 持仓盈亏: -20.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 3.09, 风险度: 0.02%\n",
" INFO - 日期: 2025-11-25, 账户权益: 10000279.83, 可用资金: 9997807.83, 浮动盈亏: 150.00, 持仓盈亏: 170.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 2472.00, 手续费: 0.00, 风险度: 0.02%\n",
" INFO - 日期: 2025-11-26, 账户权益: 10000086.74, 可用资金: 10000086.74, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: -190.00, 市值: 0.00, 保证金: 0.00, 手续费: 3.09, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-27, 账户权益: 10000086.74, 可用资金: 10000086.74, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-11-28, 账户权益: 10000086.74, 可用资金: 10000086.74, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 日期: 2025-12-01, 账户权益: 10000086.74, 可用资金: 10000086.74, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%\n",
" INFO - 胜率: 28.57%, 盈亏额比例: 3.11, 收益率: 0.00%, 年化收益率: 0.01%, 最大回撤: 0.00%, 年化夏普率: -129.6515,年化索提诺比率: -15.6951\n",
"回测结束:没有需要平仓的持仓。\n",
"TqsdkEngine: 回测运行完毕。\n",
"TqsdkEngine: API 已关闭。\n",
"\n",
"回测运行完毕。\n"
]
},
{
"ename": "KeyError",
"evalue": "'initial_capital'",
"output_type": "error",
"traceback": [
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
"\u001B[31mKeyError\u001B[39m Traceback (most recent call last)",
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[12]\u001B[39m\u001B[32m, line 50\u001B[39m\n\u001B[32m 48\u001B[39m portfolio_snapshots = results[\u001B[33m\"\u001B[39m\u001B[33mportfolio_snapshots\u001B[39m\u001B[33m\"\u001B[39m]\n\u001B[32m 49\u001B[39m trade_history = results[\u001B[33m\"\u001B[39m\u001B[33mtrade_history\u001B[39m\u001B[33m\"\u001B[39m]\n\u001B[32m---> \u001B[39m\u001B[32m50\u001B[39m initial_capital_result = \u001B[43mresults\u001B[49m\u001B[43m[\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43minitial_capital\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\n\u001B[32m 51\u001B[39m bars = results[\u001B[33m\"\u001B[39m\u001B[33mall_bars\u001B[39m\u001B[33m\"\u001B[39m]\n",
"\u001B[31mKeyError\u001B[39m: 'initial_capital'"
]
}
],
"execution_count": 12
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-01-05T15:37:42.344370400Z",
"start_time": "2025-10-17T14:27:25.613908Z"
}
},
"cell_type": "code",
"source": [
"\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(profit_offset=1)\n",
"else:\n",
" print(\"\\n没有生成投资组合快照无法进行结果分析。\")"
],
"id": "7b191529e909c4d3",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"--- 结果分析器初始化完成 ---\n",
"\n",
"--- 交易明细 ---\n",
" 2021-01-22 13:45:00 | SELL | SHFE.rb2105 | Vol: 1 | Price: 4289.00 | Comm: 0.43\n",
" 2021-01-25 10:45:00 | CLOSE_SHORT | SHFE.rb2105 | Vol: 1 | Price: 4332.00 | Comm: 0.43 | PnL: -43.00\n",
" 2021-01-27 09:00:00 | BUY | SHFE.rb2105 | Vol: 1 | Price: 4368.00 | Comm: 0.44\n",
" 2021-01-27 22:45:00 | CLOSE_LONG | SHFE.rb2105 | Vol: 1 | Price: 4336.00 | Comm: 0.43 | PnL: -32.00\n",
" 2021-02-02 14:30:00 | SELL | SHFE.rb2105 | Vol: 1 | Price: 4137.00 | Comm: 0.41\n",
" 2021-02-03 09:15:00 | CLOSE_SHORT | SHFE.rb2105 | Vol: 1 | Price: 4195.00 | Comm: 0.42 | PnL: -58.00\n",
" 2021-02-08 09:15:00 | BUY | SHFE.rb2105 | Vol: 1 | Price: 4320.00 | Comm: 0.43\n",
" 2021-02-19 10:45:00 | CLOSE_LONG | SHFE.rb2105 | Vol: 1 | Price: 4503.00 | Comm: 0.45 | PnL: 183.00\n",
" 2021-03-02 22:30:00 | BUY | SHFE.rb2105 | Vol: 1 | Price: 4847.00 | Comm: 0.48\n",
" 2021-03-04 21:15:00 | CLOSE_LONG | SHFE.rb2105 | Vol: 1 | Price: 4778.00 | Comm: 0.48 | PnL: -69.00\n",
" 2021-03-04 22:45:00 | SELL | SHFE.rb2105 | Vol: 1 | Price: 4689.00 | Comm: 0.47\n",
" 2021-03-08 09:00:00 | CLOSE_SHORT | SHFE.rb2105 | Vol: 1 | Price: 4815.00 | Comm: 0.48 | PnL: -126.00\n",
" 2021-03-08 09:15:00 | BUY | SHFE.rb2105 | Vol: 1 | Price: 4826.00 | Comm: 0.48\n",
" 2021-03-08 14:30:00 | CLOSE_LONG | SHFE.rb2105 | Vol: 1 | Price: 4770.00 | Comm: 0.48 | PnL: -56.00\n",
" 2021-03-09 14:15:00 | SELL | SHFE.rb2105 | Vol: 1 | Price: 4657.00 | Comm: 0.47\n",
" 2021-03-11 13:45:00 | CLOSE_SHORT | SHFE.rb2105 | Vol: 1 | Price: 4636.00 | Comm: 0.46 | PnL: 21.00\n",
" 2021-03-11 22:15:00 | BUY | SHFE.rb2105 | Vol: 1 | Price: 4774.00 | Comm: 0.48\n",
" 2021-03-12 13:45:00 | CLOSE_LONG | SHFE.rb2105 | Vol: 1 | Price: 4707.00 | Comm: 0.47 | PnL: -67.00\n",
" 2021-03-16 13:45:00 | SELL | SHFE.rb2105 | Vol: 1 | Price: 4666.00 | Comm: 0.47\n",
" 2021-03-16 14:15:00 | CLOSE_SHORT | SHFE.rb2105 | Vol: 1 | Price: 4728.00 | Comm: 0.47 | PnL: -62.00\n",
" 2021-03-24 13:30:00 | BUY | SHFE.rb2105 | Vol: 1 | Price: 4777.00 | Comm: 0.48\n",
" 2021-04-02 14:45:00 | CLOSE_LONG | SHFE.rb2105 | Vol: 1 | Price: 5118.00 | Comm: 0.51 | PnL: 341.00\n",
" 2021-04-15 22:45:00 | BUY | SHFE.rb2110 | Vol: 1 | Price: 5191.00 | Comm: 0.52\n",
" 2021-04-16 09:00:00 | CLOSE_LONG | SHFE.rb2110 | Vol: 1 | Price: 5137.00 | Comm: 0.51 | PnL: -54.00\n",
" 2021-04-23 21:15:00 | BUY | SHFE.rb2110 | Vol: 1 | Price: 5325.00 | Comm: 0.53\n",
" 2021-04-27 21:45:00 | CLOSE_LONG | SHFE.rb2110 | Vol: 1 | Price: 5343.00 | Comm: 0.53 | PnL: 18.00\n",
" 2021-05-13 13:30:00 | SELL | SHFE.rb2110 | Vol: 1 | Price: 5934.00 | Comm: 0.59\n",
" 2021-05-27 21:30:00 | CLOSE_SHORT | SHFE.rb2110 | Vol: 1 | Price: 4915.00 | Comm: 0.49 | PnL: 1019.00\n",
" 2021-05-31 09:15:00 | BUY | SHFE.rb2110 | Vol: 1 | Price: 5124.00 | Comm: 0.51\n",
" 2021-05-31 10:45:00 | CLOSE_LONG | SHFE.rb2110 | Vol: 1 | Price: 5036.00 | Comm: 0.50 | PnL: -88.00\n",
" 2021-05-31 21:15:00 | SELL | SHFE.rb2110 | Vol: 1 | Price: 4880.00 | Comm: 0.49\n",
" 2021-05-31 22:30:00 | CLOSE_SHORT | SHFE.rb2110 | Vol: 1 | Price: 4951.00 | Comm: 0.50 | PnL: -71.00\n",
" 2021-06-21 21:30:00 | SELL | SHFE.rb2110 | Vol: 1 | Price: 4836.00 | Comm: 0.48\n",
" 2021-06-22 14:15:00 | CLOSE_SHORT | SHFE.rb2110 | Vol: 1 | Price: 4907.00 | Comm: 0.49 | PnL: -71.00\n",
" 2021-06-23 21:15:00 | BUY | SHFE.rb2110 | Vol: 1 | Price: 5011.00 | Comm: 0.50\n",
" 2021-06-24 11:00:00 | CLOSE_LONG | SHFE.rb2110 | Vol: 1 | Price: 4941.00 | Comm: 0.49 | PnL: -70.00\n",
" 2021-07-07 14:00:00 | BUY | SHFE.rb2110 | Vol: 1 | Price: 5422.00 | Comm: 0.54\n",
" 2021-07-08 10:00:00 | CLOSE_LONG | SHFE.rb2110 | Vol: 1 | Price: 5373.00 | Comm: 0.54 | PnL: -49.00\n",
" 2021-07-14 14:45:00 | BUY | SHFE.rb2110 | Vol: 1 | Price: 5573.00 | Comm: 0.56\n",
" 2021-07-14 21:30:00 | CLOSE_LONG | SHFE.rb2110 | Vol: 1 | Price: 5519.00 | Comm: 0.55 | PnL: -54.00\n",
" 2021-07-26 09:15:00 | BUY | SHFE.rb2110 | Vol: 1 | Price: 5749.00 | Comm: 0.57\n",
" 2021-07-26 13:45:00 | CLOSE_LONG | SHFE.rb2110 | Vol: 1 | Price: 5688.00 | Comm: 0.57 | PnL: -61.00\n",
" 2021-07-27 14:45:00 | SELL | SHFE.rb2110 | Vol: 1 | Price: 5582.00 | Comm: 0.56\n",
" 2021-07-27 22:15:00 | CLOSE_SHORT | SHFE.rb2110 | Vol: 1 | Price: 5618.00 | Comm: 0.56 | PnL: -36.00\n",
" 2021-08-02 09:00:00 | SELL | SHFE.rb2110 | Vol: 1 | Price: 5459.00 | Comm: 0.55\n",
" 2021-08-09 14:45:00 | CLOSE_SHORT | SHFE.rb2110 | Vol: 1 | Price: 5332.00 | Comm: 0.53 | PnL: 127.00\n",
" 2021-08-16 10:30:00 | SELL | SHFE.rb2201 | Vol: 1 | Price: 5371.00 | Comm: 0.54\n",
" 2021-08-30 09:30:00 | CLOSE_SHORT | SHFE.rb2201 | Vol: 1 | Price: 5343.00 | Comm: 0.53 | PnL: 28.00\n",
" 2021-09-09 14:15:00 | BUY | SHFE.rb2201 | Vol: 1 | Price: 5675.00 | Comm: 0.57\n",
" 2021-09-10 14:00:00 | CLOSE_LONG | SHFE.rb2201 | Vol: 1 | Price: 5628.00 | Comm: 0.56 | PnL: -47.00\n",
" 2021-09-14 21:30:00 | SELL | SHFE.rb2201 | Vol: 1 | Price: 5477.00 | Comm: 0.55\n",
" 2021-09-15 11:00:00 | CLOSE_SHORT | SHFE.rb2201 | Vol: 1 | Price: 5556.00 | Comm: 0.56 | PnL: -79.00\n",
" 2021-09-22 21:15:00 | BUY | SHFE.rb2201 | Vol: 1 | Price: 5668.00 | Comm: 0.57\n",
" 2021-09-23 11:15:00 | CLOSE_LONG | SHFE.rb2201 | Vol: 1 | Price: 5583.00 | Comm: 0.56 | PnL: -85.00\n",
" 2021-09-30 14:00:00 | BUY | SHFE.rb2201 | Vol: 1 | Price: 5730.00 | Comm: 0.57\n",
" 2021-09-30 14:30:00 | CLOSE_LONG | SHFE.rb2201 | Vol: 1 | Price: 5703.00 | Comm: 0.57 | PnL: -27.00\n",
" 2021-10-08 09:15:00 | BUY | SHFE.rb2201 | Vol: 1 | Price: 5801.00 | Comm: 0.58\n",
" 2021-10-08 10:00:00 | CLOSE_LONG | SHFE.rb2201 | Vol: 1 | Price: 5732.00 | Comm: 0.57 | PnL: -69.00\n",
" 2021-10-12 13:30:00 | SELL | SHFE.rb2201 | Vol: 1 | Price: 5615.00 | Comm: 0.56\n",
" 2021-10-28 14:15:00 | CLOSE_SHORT | SHFE.rb2201 | Vol: 1 | Price: 4733.00 | Comm: 0.47 | PnL: 882.00\n",
" 2021-11-12 21:15:00 | SELL | SHFE.rb2201 | Vol: 1 | Price: 4186.00 | Comm: 0.42\n",
" 2021-11-16 11:15:00 | CLOSE_SHORT | SHFE.rb2201 | Vol: 1 | Price: 4268.00 | Comm: 0.43 | PnL: -82.00\n",
" 2021-11-19 14:30:00 | BUY | SHFE.rb2201 | Vol: 1 | Price: 4295.00 | Comm: 0.43\n",
" 2021-11-24 14:45:00 | CLOSE_LONG | SHFE.rb2201 | Vol: 1 | Price: 4502.00 | Comm: 0.45 | PnL: 207.00\n",
" 2021-12-02 13:45:00 | BUY | SHFE.rb2205 | Vol: 1 | Price: 4360.00 | Comm: 0.44\n",
" 2021-12-02 21:00:00 | CLOSE_LONG | SHFE.rb2205 | Vol: 1 | Price: 4288.00 | Comm: 0.43 | PnL: -72.00\n",
" 2021-12-20 14:30:00 | SELL | SHFE.rb2205 | Vol: 1 | Price: 4481.00 | Comm: 0.45\n",
" 2021-12-23 21:30:00 | CLOSE_SHORT | SHFE.rb2205 | Vol: 1 | Price: 4528.00 | Comm: 0.45 | PnL: -47.00\n",
" 2021-12-23 21:45:00 | BUY | SHFE.rb2205 | Vol: 1 | Price: 4542.00 | Comm: 0.45\n",
" 2021-12-24 10:45:00 | CLOSE_LONG | SHFE.rb2205 | Vol: 1 | Price: 4502.00 | Comm: 0.45 | PnL: -40.00\n",
" 2021-12-27 09:00:00 | SELL | SHFE.rb2205 | Vol: 1 | Price: 4418.00 | Comm: 0.44\n",
" 2022-01-05 21:15:00 | CLOSE_SHORT | SHFE.rb2205 | Vol: 1 | Price: 4456.00 | Comm: 0.45 | PnL: -38.00\n",
" 2022-01-11 14:45:00 | BUY | SHFE.rb2205 | Vol: 1 | Price: 4577.00 | Comm: 0.46\n",
" 2022-01-13 21:15:00 | CLOSE_LONG | SHFE.rb2205 | Vol: 1 | Price: 4628.00 | Comm: 0.46 | PnL: 51.00\n",
" 2022-01-17 10:45:00 | SELL | SHFE.rb2205 | Vol: 1 | Price: 4527.00 | Comm: 0.45\n",
" 2022-01-18 10:45:00 | CLOSE_SHORT | SHFE.rb2205 | Vol: 1 | Price: 4575.00 | Comm: 0.46 | PnL: -48.00\n",
" 2022-01-18 21:30:00 | BUY | SHFE.rb2205 | Vol: 1 | Price: 4679.00 | Comm: 0.47\n",
" 2022-01-24 22:15:00 | CLOSE_LONG | SHFE.rb2205 | Vol: 1 | Price: 4641.00 | Comm: 0.46 | PnL: -38.00\n",
" 2022-02-10 21:15:00 | BUY | SHFE.rb2205 | Vol: 1 | Price: 5025.00 | Comm: 0.50\n",
" 2022-02-11 09:15:00 | CLOSE_LONG | SHFE.rb2205 | Vol: 1 | Price: 4976.00 | Comm: 0.50 | PnL: -49.00\n",
" 2022-02-11 21:00:00 | SELL | SHFE.rb2205 | Vol: 1 | Price: 4891.00 | Comm: 0.49\n",
" 2022-02-21 21:15:00 | CLOSE_SHORT | SHFE.rb2205 | Vol: 1 | Price: 4870.00 | Comm: 0.49 | PnL: 21.00\n",
" 2022-02-21 21:30:00 | BUY | SHFE.rb2205 | Vol: 1 | Price: 4878.00 | Comm: 0.49\n",
" 2022-02-22 11:15:00 | CLOSE_LONG | SHFE.rb2205 | Vol: 1 | Price: 4819.00 | Comm: 0.48 | PnL: -59.00\n",
" 2022-02-22 14:45:00 | SELL | SHFE.rb2205 | Vol: 1 | Price: 4744.00 | Comm: 0.47\n",
" 2022-02-23 13:45:00 | CLOSE_SHORT | SHFE.rb2205 | Vol: 1 | Price: 4805.00 | Comm: 0.48 | PnL: -61.00\n",
" 2022-02-24 11:00:00 | SELL | SHFE.rb2205 | Vol: 1 | Price: 4664.00 | Comm: 0.47\n",
" 2022-02-28 21:15:00 | CLOSE_SHORT | SHFE.rb2205 | Vol: 1 | Price: 4727.00 | Comm: 0.47 | PnL: -63.00\n",
" 2022-03-09 21:15:00 | SELL | SHFE.rb2205 | Vol: 1 | Price: 4841.00 | Comm: 0.48\n",
" 2022-03-10 13:30:00 | CLOSE_SHORT | SHFE.rb2205 | Vol: 1 | Price: 4936.00 | Comm: 0.49 | PnL: -95.00\n",
" 2022-04-08 11:15:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4956.00 | Comm: 0.50\n",
" 2022-04-08 13:45:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 5002.00 | Comm: 0.50 | PnL: -46.00\n",
" 2022-04-11 09:15:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4894.00 | Comm: 0.49\n",
" 2022-04-12 09:15:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4956.00 | Comm: 0.50 | PnL: -62.00\n",
" 2022-04-25 09:00:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4859.00 | Comm: 0.49\n",
" 2022-04-29 13:45:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4899.00 | Comm: 0.49 | PnL: -40.00\n",
" 2022-05-06 14:30:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4764.00 | Comm: 0.48\n",
" 2022-05-20 09:30:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4644.00 | Comm: 0.46 | PnL: 120.00\n",
" 2022-05-24 21:00:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4468.00 | Comm: 0.45\n",
" 2022-05-25 09:15:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4516.00 | Comm: 0.45 | PnL: -48.00\n",
" 2022-06-13 09:15:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4682.00 | Comm: 0.47\n",
" 2022-06-13 22:00:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4724.00 | Comm: 0.47 | PnL: -42.00\n",
" 2022-06-16 21:15:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4456.00 | Comm: 0.45\n",
" 2022-06-23 13:45:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4217.00 | Comm: 0.42 | PnL: 239.00\n",
" 2022-06-23 14:15:00 | BUY | SHFE.rb2210 | Vol: 1 | Price: 4246.00 | Comm: 0.42\n",
" 2022-06-24 13:30:00 | CLOSE_LONG | SHFE.rb2210 | Vol: 1 | Price: 4199.00 | Comm: 0.42 | PnL: -47.00\n",
" 2022-06-30 21:15:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4300.00 | Comm: 0.43\n",
" 2022-07-01 10:00:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4356.00 | Comm: 0.44 | PnL: -56.00\n",
" 2022-07-14 21:15:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 3760.00 | Comm: 0.38\n",
" 2022-07-18 21:45:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 3842.00 | Comm: 0.38 | PnL: -82.00\n",
" 2022-07-28 09:45:00 | BUY | SHFE.rb2210 | Vol: 1 | Price: 3993.00 | Comm: 0.40\n",
" 2022-08-15 14:15:00 | CLOSE_LONG | SHFE.rb2210 | Vol: 1 | Price: 4104.00 | Comm: 0.41 | PnL: 111.00\n",
" 2022-08-17 14:45:00 | SELL | SHFE.rb2210 | Vol: 1 | Price: 4011.00 | Comm: 0.40\n",
" 2022-08-18 13:45:00 | CLOSE_SHORT | SHFE.rb2210 | Vol: 1 | Price: 4058.00 | Comm: 0.41 | PnL: -47.00\n",
" 2022-09-22 09:30:00 | BUY | SHFE.rb2301 | Vol: 1 | Price: 3730.00 | Comm: 0.37\n",
" 2022-09-23 21:15:00 | CLOSE_LONG | SHFE.rb2301 | Vol: 1 | Price: 3740.00 | Comm: 0.37 | PnL: 10.00\n",
" 2022-09-26 21:30:00 | BUY | SHFE.rb2301 | Vol: 1 | Price: 3816.00 | Comm: 0.38\n",
" 2022-09-30 14:15:00 | CLOSE_LONG | SHFE.rb2301 | Vol: 1 | Price: 3793.00 | Comm: 0.38 | PnL: -23.00\n",
" 2022-10-11 14:15:00 | SELL | SHFE.rb2301 | Vol: 1 | Price: 3769.00 | Comm: 0.38\n",
" 2022-11-04 13:45:00 | CLOSE_SHORT | SHFE.rb2301 | Vol: 1 | Price: 3570.00 | Comm: 0.36 | PnL: 199.00\n",
" 2022-11-08 21:15:00 | BUY | SHFE.rb2301 | Vol: 1 | Price: 3584.00 | Comm: 0.36\n",
" 2022-11-09 21:30:00 | CLOSE_LONG | SHFE.rb2301 | Vol: 1 | Price: 3558.00 | Comm: 0.36 | PnL: -26.00\n",
" 2022-11-11 09:15:00 | BUY | SHFE.rb2301 | Vol: 1 | Price: 3620.00 | Comm: 0.36\n",
" 2022-11-21 09:15:00 | CLOSE_LONG | SHFE.rb2301 | Vol: 1 | Price: 3636.00 | Comm: 0.36 | PnL: 16.00\n",
" 2022-11-25 21:15:00 | BUY | SHFE.rb2301 | Vol: 1 | Price: 3752.00 | Comm: 0.38\n",
" 2022-11-28 09:15:00 | CLOSE_LONG | SHFE.rb2301 | Vol: 1 | Price: 3730.00 | Comm: 0.37 | PnL: -22.00\n",
" 2022-12-08 21:30:00 | BUY | SHFE.rb2305 | Vol: 1 | Price: 3878.00 | Comm: 0.39\n",
" 2022-12-16 13:30:00 | CLOSE_LONG | SHFE.rb2305 | Vol: 1 | Price: 3983.00 | Comm: 0.40 | PnL: 105.00\n",
" 2022-12-16 22:00:00 | SELL | SHFE.rb2305 | Vol: 1 | Price: 3945.00 | Comm: 0.39\n",
" 2022-12-19 09:45:00 | CLOSE_SHORT | SHFE.rb2305 | Vol: 1 | Price: 3987.00 | Comm: 0.40 | PnL: -42.00\n",
" 2023-01-06 13:30:00 | BUY | SHFE.rb2305 | Vol: 1 | Price: 4111.00 | Comm: 0.41\n",
" 2023-01-06 21:15:00 | CLOSE_LONG | SHFE.rb2305 | Vol: 1 | Price: 4113.00 | Comm: 0.41 | PnL: 2.00\n",
" 2023-01-13 21:15:00 | SELL | SHFE.rb2305 | Vol: 1 | Price: 4122.00 | Comm: 0.41\n",
" 2023-01-17 22:00:00 | CLOSE_SHORT | SHFE.rb2305 | Vol: 1 | Price: 4158.00 | Comm: 0.42 | PnL: -36.00\n",
" 2023-02-02 14:30:00 | SELL | SHFE.rb2305 | Vol: 1 | Price: 4059.00 | Comm: 0.41\n",
" 2023-02-09 10:00:00 | CLOSE_SHORT | SHFE.rb2305 | Vol: 1 | Price: 4096.00 | Comm: 0.41 | PnL: -37.00\n",
" 2023-02-16 13:45:00 | BUY | SHFE.rb2305 | Vol: 1 | Price: 4138.00 | Comm: 0.41\n",
" 2023-03-06 09:15:00 | CLOSE_LONG | SHFE.rb2305 | Vol: 1 | Price: 4194.00 | Comm: 0.42 | PnL: 56.00\n",
" 2023-03-07 13:30:00 | BUY | SHFE.rb2305 | Vol: 1 | Price: 4268.00 | Comm: 0.43\n",
" 2023-03-08 09:15:00 | CLOSE_LONG | SHFE.rb2305 | Vol: 1 | Price: 4247.00 | Comm: 0.42 | PnL: -21.00\n",
" 2023-03-09 22:00:00 | BUY | SHFE.rb2305 | Vol: 1 | Price: 4339.00 | Comm: 0.43\n",
" 2023-03-10 13:30:00 | CLOSE_LONG | SHFE.rb2305 | Vol: 1 | Price: 4312.00 | Comm: 0.43 | PnL: -27.00\n",
" 2023-03-15 21:15:00 | SELL | SHFE.rb2305 | Vol: 1 | Price: 4298.00 | Comm: 0.43\n",
" 2023-03-29 21:15:00 | CLOSE_SHORT | SHFE.rb2305 | Vol: 1 | Price: 4157.00 | Comm: 0.42 | PnL: 141.00\n",
" 2023-04-03 10:30:00 | SELL | SHFE.rb2305 | Vol: 1 | Price: 4089.00 | Comm: 0.41\n",
" 2023-04-03 14:45:00 | CLOSE_SHORT | SHFE.rb2305 | Vol: 1 | Price: 4059.00 | Comm: 0.41 | PnL: 30.00\n",
" 2023-04-19 22:00:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3877.00 | Comm: 0.39\n",
" 2023-04-19 22:45:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3907.00 | Comm: 0.39 | PnL: -30.00\n",
" 2023-04-24 09:30:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3723.00 | Comm: 0.37\n",
" 2023-05-05 14:00:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3619.00 | Comm: 0.36 | PnL: 104.00\n",
" 2023-05-10 22:45:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3628.00 | Comm: 0.36\n",
" 2023-05-12 21:45:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3663.00 | Comm: 0.37 | PnL: -35.00\n",
" 2023-05-22 14:15:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3554.00 | Comm: 0.36\n",
" 2023-05-22 21:45:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3592.00 | Comm: 0.36 | PnL: -38.00\n",
" 2023-05-24 21:15:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3433.00 | Comm: 0.34\n",
" 2023-05-25 10:45:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3464.00 | Comm: 0.35 | PnL: -31.00\n",
" 2023-06-26 09:30:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3651.00 | Comm: 0.37\n",
" 2023-06-27 09:15:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3683.00 | Comm: 0.37 | PnL: -32.00\n",
" 2023-07-24 22:45:00 | BUY | SHFE.rb2310 | Vol: 1 | Price: 3845.00 | Comm: 0.38\n",
" 2023-08-02 11:15:00 | CLOSE_LONG | SHFE.rb2310 | Vol: 1 | Price: 3818.00 | Comm: 0.38 | PnL: -27.00\n",
" 2023-08-02 22:15:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3764.00 | Comm: 0.38\n",
" 2023-08-15 13:45:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3684.00 | Comm: 0.37 | PnL: 80.00\n",
" 2023-08-15 14:00:00 | BUY | SHFE.rb2310 | Vol: 1 | Price: 3691.00 | Comm: 0.37\n",
" 2023-08-18 22:15:00 | CLOSE_LONG | SHFE.rb2310 | Vol: 1 | Price: 3663.00 | Comm: 0.37 | PnL: -28.00\n",
" 2023-08-18 22:30:00 | SELL | SHFE.rb2310 | Vol: 1 | Price: 3663.00 | Comm: 0.37\n",
" 2023-08-22 13:45:00 | CLOSE_SHORT | SHFE.rb2310 | Vol: 1 | Price: 3678.00 | Comm: 0.37 | PnL: -15.00\n",
" 2023-08-22 14:15:00 | BUY | SHFE.rb2310 | Vol: 1 | Price: 3712.00 | Comm: 0.37\n",
" 2023-08-24 21:00:00 | CLOSE_LONG | SHFE.rb2310 | Vol: 1 | Price: 3698.00 | Comm: 0.37 | PnL: -14.00\n",
" 2023-09-21 14:00:00 | SELL | SHFE.rb2401 | Vol: 1 | Price: 3770.00 | Comm: 0.38\n",
" 2023-10-12 21:15:00 | CLOSE_SHORT | SHFE.rb2401 | Vol: 1 | Price: 3634.00 | Comm: 0.36 | PnL: 136.00\n",
" 2023-10-23 09:15:00 | SELL | SHFE.rb2401 | Vol: 1 | Price: 3572.00 | Comm: 0.36\n",
" 2023-10-24 10:45:00 | CLOSE_SHORT | SHFE.rb2401 | Vol: 1 | Price: 3594.00 | Comm: 0.36 | PnL: -22.00\n",
" 2023-10-25 09:15:00 | BUY | SHFE.rb2401 | Vol: 1 | Price: 3679.00 | Comm: 0.37\n",
" 2023-11-23 09:00:00 | CLOSE_LONG | SHFE.rb2401 | Vol: 1 | Price: 3931.00 | Comm: 0.39 | PnL: 252.00\n",
" 2023-12-13 11:15:00 | SELL | SHFE.rb2405 | Vol: 1 | Price: 3975.00 | Comm: 0.40\n",
" 2023-12-21 13:45:00 | CLOSE_SHORT | SHFE.rb2405 | Vol: 1 | Price: 3980.00 | Comm: 0.40 | PnL: -5.00\n",
" 2024-01-16 21:15:00 | BUY | SHFE.rb2405 | Vol: 1 | Price: 3920.00 | Comm: 0.39\n",
" 2024-01-17 10:30:00 | CLOSE_LONG | SHFE.rb2405 | Vol: 1 | Price: 3891.00 | Comm: 0.39 | PnL: -29.00\n",
" 2024-01-17 21:15:00 | SELL | SHFE.rb2405 | Vol: 1 | Price: 3850.00 | Comm: 0.39\n",
" 2024-01-17 22:45:00 | CLOSE_SHORT | SHFE.rb2405 | Vol: 1 | Price: 3882.00 | Comm: 0.39 | PnL: -32.00\n",
" 2024-01-30 14:00:00 | SELL | SHFE.rb2405 | Vol: 1 | Price: 3932.00 | Comm: 0.39\n",
" 2024-02-19 09:15:00 | CLOSE_SHORT | SHFE.rb2405 | Vol: 1 | Price: 3864.00 | Comm: 0.39 | PnL: 68.00\n",
" 2024-02-20 21:15:00 | SELL | SHFE.rb2405 | Vol: 1 | Price: 3742.00 | Comm: 0.37\n",
" 2024-02-21 10:45:00 | CLOSE_SHORT | SHFE.rb2405 | Vol: 1 | Price: 3776.00 | Comm: 0.38 | PnL: -34.00\n",
" 2024-02-26 09:15:00 | SELL | SHFE.rb2405 | Vol: 1 | Price: 3752.00 | Comm: 0.38\n",
" 2024-02-27 10:30:00 | CLOSE_SHORT | SHFE.rb2405 | Vol: 1 | Price: 3789.00 | Comm: 0.38 | PnL: -37.00\n",
" 2024-02-27 11:15:00 | BUY | SHFE.rb2405 | Vol: 1 | Price: 3807.00 | Comm: 0.38\n",
" 2024-02-29 14:15:00 | CLOSE_LONG | SHFE.rb2405 | Vol: 1 | Price: 3775.00 | Comm: 0.38 | PnL: -32.00\n",
" 2024-03-11 09:45:00 | SELL | SHFE.rb2405 | Vol: 1 | Price: 3636.00 | Comm: 0.36\n",
" 2024-03-19 10:45:00 | CLOSE_SHORT | SHFE.rb2405 | Vol: 1 | Price: 3564.00 | Comm: 0.36 | PnL: 72.00\n",
" 2024-03-26 21:15:00 | SELL | SHFE.rb2405 | Vol: 1 | Price: 3492.00 | Comm: 0.35\n",
" 2024-03-26 22:45:00 | CLOSE_SHORT | SHFE.rb2405 | Vol: 1 | Price: 3517.00 | Comm: 0.35 | PnL: -25.00\n",
" 2024-04-17 13:45:00 | BUY | SHFE.rb2410 | Vol: 1 | Price: 3650.00 | Comm: 0.36\n",
" 2024-04-23 21:00:00 | CLOSE_LONG | SHFE.rb2410 | Vol: 1 | Price: 3633.00 | Comm: 0.36 | PnL: -17.00\n",
" 2024-04-30 13:45:00 | SELL | SHFE.rb2410 | Vol: 1 | Price: 3642.00 | Comm: 0.36\n",
" 2024-05-06 09:00:00 | CLOSE_SHORT | SHFE.rb2410 | Vol: 1 | Price: 3674.00 | Comm: 0.37 | PnL: -32.00\n",
" 2024-05-06 11:00:00 | BUY | SHFE.rb2410 | Vol: 1 | Price: 3727.00 | Comm: 0.37\n",
" 2024-05-08 13:45:00 | CLOSE_LONG | SHFE.rb2410 | Vol: 1 | Price: 3706.00 | Comm: 0.37 | PnL: -21.00\n",
" 2024-05-08 21:00:00 | SELL | SHFE.rb2410 | Vol: 1 | Price: 3674.00 | Comm: 0.37\n",
" 2024-05-13 14:15:00 | CLOSE_SHORT | SHFE.rb2410 | Vol: 1 | Price: 3684.00 | Comm: 0.37 | PnL: -10.00\n",
" 2024-05-21 22:30:00 | BUY | SHFE.rb2410 | Vol: 1 | Price: 3791.00 | Comm: 0.38\n",
" 2024-05-23 13:30:00 | CLOSE_LONG | SHFE.rb2410 | Vol: 1 | Price: 3764.00 | Comm: 0.38 | PnL: -27.00\n",
" 2024-05-30 14:00:00 | SELL | SHFE.rb2410 | Vol: 1 | Price: 3729.00 | Comm: 0.37\n",
" 2024-06-06 14:30:00 | CLOSE_SHORT | SHFE.rb2410 | Vol: 1 | Price: 3655.00 | Comm: 0.37 | PnL: 74.00\n",
" 2024-07-05 13:30:00 | SELL | SHFE.rb2410 | Vol: 1 | Price: 3565.00 | Comm: 0.36\n",
" 2024-07-11 13:30:00 | CLOSE_SHORT | SHFE.rb2410 | Vol: 1 | Price: 3531.00 | Comm: 0.35 | PnL: 34.00\n",
" 2024-07-17 13:45:00 | SELL | SHFE.rb2410 | Vol: 1 | Price: 3513.00 | Comm: 0.35\n",
" 2024-07-26 09:00:00 | CLOSE_SHORT | SHFE.rb2410 | Vol: 1 | Price: 3390.00 | Comm: 0.34 | PnL: 123.00\n",
" 2024-07-30 21:30:00 | SELL | SHFE.rb2410 | Vol: 1 | Price: 3283.00 | Comm: 0.33\n",
" 2024-07-30 22:30:00 | CLOSE_SHORT | SHFE.rb2410 | Vol: 1 | Price: 3324.00 | Comm: 0.33 | PnL: -41.00\n",
" 2024-08-12 09:00:00 | SELL | SHFE.rb2410 | Vol: 1 | Price: 3220.00 | Comm: 0.32\n",
" 2024-08-19 21:15:00 | CLOSE_SHORT | SHFE.rb2410 | Vol: 1 | Price: 3164.00 | Comm: 0.32 | PnL: 56.00\n",
" 2024-09-24 09:15:00 | BUY | SHFE.rb2501 | Vol: 1 | Price: 3165.00 | Comm: 0.32\n",
" 2024-09-24 10:00:00 | CLOSE_LONG | SHFE.rb2501 | Vol: 1 | Price: 3135.00 | Comm: 0.31 | PnL: -30.00\n",
" 2024-09-24 13:45:00 | BUY | SHFE.rb2501 | Vol: 1 | Price: 3193.00 | Comm: 0.32\n",
" 2024-10-08 13:45:00 | CLOSE_LONG | SHFE.rb2501 | Vol: 1 | Price: 3477.00 | Comm: 0.35 | PnL: 284.00\n",
" 2024-10-17 14:30:00 | SELL | SHFE.rb2501 | Vol: 1 | Price: 3327.00 | Comm: 0.33\n",
" 2024-10-18 14:45:00 | CLOSE_SHORT | SHFE.rb2501 | Vol: 1 | Price: 3362.00 | Comm: 0.34 | PnL: -35.00\n",
" 2024-10-25 22:00:00 | BUY | SHFE.rb2501 | Vol: 1 | Price: 3426.00 | Comm: 0.34\n",
" 2024-10-31 22:15:00 | CLOSE_LONG | SHFE.rb2501 | Vol: 1 | Price: 3401.00 | Comm: 0.34 | PnL: -25.00\n",
" 2024-11-01 09:00:00 | SELL | SHFE.rb2501 | Vol: 1 | Price: 3379.00 | Comm: 0.34\n",
" 2024-11-01 09:45:00 | CLOSE_SHORT | SHFE.rb2501 | Vol: 1 | Price: 3399.00 | Comm: 0.34 | PnL: -20.00\n",
" 2024-11-06 11:15:00 | SELL | SHFE.rb2501 | Vol: 1 | Price: 3357.00 | Comm: 0.34\n",
" 2024-11-06 13:45:00 | CLOSE_SHORT | SHFE.rb2501 | Vol: 1 | Price: 3389.00 | Comm: 0.34 | PnL: -32.00\n",
" 2024-11-08 10:45:00 | SELL | SHFE.rb2501 | Vol: 1 | Price: 3387.00 | Comm: 0.34\n",
" 2024-11-19 14:15:00 | CLOSE_SHORT | SHFE.rb2501 | Vol: 1 | Price: 3318.00 | Comm: 0.33 | PnL: 69.00\n",
" 2024-11-22 11:00:00 | SELL | SHFE.rb2501 | Vol: 1 | Price: 3292.00 | Comm: 0.33\n",
" 2024-11-22 22:15:00 | CLOSE_SHORT | SHFE.rb2501 | Vol: 1 | Price: 3328.00 | Comm: 0.33 | PnL: -36.00\n",
" 2024-11-29 11:15:00 | BUY | SHFE.rb2501 | Vol: 1 | Price: 3347.00 | Comm: 0.33\n",
" 2024-11-29 14:30:00 | CLOSE_LONG | SHFE.rb2501 | Vol: 1 | Price: 3329.00 | Comm: 0.33 | PnL: -18.00\n",
" 2024-12-05 11:00:00 | SELL | SHFE.rb2501 | Vol: 1 | Price: 3292.00 | Comm: 0.33\n",
" 2024-12-05 14:45:00 | CLOSE_SHORT | SHFE.rb2501 | Vol: 1 | Price: 3283.00 | Comm: 0.33 | PnL: 9.00\n",
" 2024-12-18 14:45:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3308.00 | Comm: 0.33\n",
" 2024-12-26 09:45:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3321.00 | Comm: 0.33 | PnL: -13.00\n",
"正在计算绩效指标...\n",
"total_return: 0.01595601699999971, annualized_return:0.0027416888292601804, 252 / total_days:0.17295813315030886\n",
"绩效指标计算完成。\n",
"\n",
"--- 回测绩效报告 ---\n",
"初始资金 : 100000.00\n",
"最终资金 : 101595.60\n",
"总收益率 : 1.60%\n",
"年化收益率 : 0.27%\n",
"最大回撤 : 0.93%\n",
"夏普比率 : 0.14\n",
"卡玛比率 : 0.29\n",
"总交易次数 : 234\n",
"总实现盈亏 : 1695.00\n",
"交易成本 : 99.40\n",
"\n",
"--- 交易详情 ---\n",
"盈利交易次数 : 35\n",
"亏损交易次数 : 82\n",
"胜率 : 29.91%\n",
"盈亏比 : 3.45\n",
"平均每次盈利 : 151.09\n",
"平均每次亏损 : -43.82\n",
"正在绘制绩效图表...\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 1400x1000 with 2 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWQAAAPdCAYAAAANmGE2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8E/UfBvAnq5tdyrCADFuQPZQtsgRElKGIMhyogAKi/hRwAAoKIuBWUFEElSEbZAgyZG9k71WkQEsZ3Uma+/1xXuZlNTt93q8XLyDjckm+udw9+dznqxAEQQARERERERERERER+Zwy0CtAREREREREREREVFQwkCUiIiIiIiIiIiLyEwayRERERERERERERH7CQJaIiIiIiIiIiIjITxjIEhEREREREREREfkJA1kiIiIiIiIiIiIiP2EgS0REREREREREROQnDGSJiIiIiIiIiIiI/ISBLBEREREREREREZGfMJAlIqKQ1a5dOyQnJ1v8qVOnDh588EGMGDECe/fuDfQq2jhz5gxefvllNG/eHLVq1UJycjK+/PLLQi/v8uXLSE5ORrt27Wyuk16fy5cve7LKLpF7L+T+LF682Ofr4sioUaOCYj2CUWFem8WLF8t+Bps2bYqHH34Yb7zxBubPn4+srCwfrnngOfochrtt27Zh9OjR6NSpExo1aoQ6deqgVatWeO655zBr1ixkZGQEehUD6ueff0ZycjLWrl3r8HY//fST8TM0Z84ch7fdtWsXkpOT0b9/f5vrpGUU1tmzZzFx4kR0794dTZs2Re3atdG0aVM8+eSTmDp1Ks6ePVvoZZPn9u7di+TkZEyePDnQq0JERB5SB3oFiIiIPNWoUSNUqVIFAHDnzh0cOXIEq1evxpo1azBy5Eg899xzPl+HxYsXY/To0ejRowcmTZoke5ucnBy89NJL+Pfff42hhUqlQq1atXy+fv5i/l7IqVy5sh/XxnWuvH9kX0xMDDp16gQAMBgMyMzMxOXLl7Fq1SqsXLkSkyZNwmuvvYb+/ftDoVAEeG3JGzIyMvDGG29g+/btAIC77roLTZs2RUxMDNLS0nDgwAFs374dn3/+OWbNmoX69esHeI39LyMjA1999RXq1q1r/HzYs3DhQuO/Fy1aJBu2+pJer8fkyZMxZ84cGAwGlCxZEnXq1EHJkiWRmZmJo0eP4uDBg/jhhx/wzjvvoF+/fn5dP0mobau//PJLfPXVVxg6dCiGDRvm8fKaNGmCBx98ELNnz0bv3r1x9913e76SREQUEAxkiYgo5D3xxBPo2bOn8f/5+fkYM2YMli5dik8++QQPPvggqlatGsA1FB0+fBj//vsvGjZsiHnz5vn88WbNmgWdTody5cr5/LEk1u9FsHn99dfx4osvIiEhIdCrElZKlSolG45cv34dP/zwA2bPno0PP/wQV69exVtvvRWANSRvyszMxNNPP43z58+jWrVqGD9+PJo0aWJxG61WiyVLluDLL79EWlpagNY0sL766ivcuXPHaRB38OBBnDlzBsWLF4der8fx48dx9OhR1K5d209rCrz55ptYtWoV4uLi8M477+Cxxx6DSqUyXi8IArZt24Zp06bh4sWLflsvsjVs2DBs2rQJU6ZMwVdffRXo1SEiokJiywIiIgo7kZGRGDNmDGJiYlBQUIB169YFepUAAKmpqQDgt4qWypUro3r16tBoNH55vFCQkJCA6tWro1ixYoFelSIhISEBb7/9Nt577z0AwMyZM4OylQi5Z/z48Th//jzuuusuzJ071yaMBYCIiAg8+eSTWLp0KapVqxaAtQysO3fuYMmSJShXrhxat27t8LZSdWzXrl3RuXNni8v8YeHChVi1ahU0Gg1+/PFH9OzZ0yKMBQCFQoFWrVph/vz5ePjhh/22bmSrTp06qFmzJv766y+/tCQiIiLfYCBLRERhKTY21lgVa33AsmXLFgwaNAjNmzc3tg4YMWIEDh8+LLus/v37Izk5Gbt27cLevXsxePBgNGvWDDVr1sTixYvRrl07jB49GgCwZMkSi36a/fv3N/b7GzlypOxtzN26dQvTpk1D165dUb9+fTRs2BA9e/bE999/j7y8PLdeA0c9ZHNzc/Hdd9+hR48eaNiwIerXr4+uXbvi008/xe3bt916HE+dOXMGw4cPR9OmTVGvXj088sgjmDlzJgoKCuw+B2d9Es3fM3NyfVKdvX8GgwHt27dHcnIyDhw4YPcxx40b51Zvv6ysLCxYsABDhw7FQw89hAYNGqBBgwbo1q0bPv30U9y5c0f2fuavyc6dO/H888/jvvvuQ7169dCjRw8sXbrU7mPeunULH374Idq2bWvst/zBBx/g1q1bLq1zYfXt2xd169YFAPzwww8W10l9aEeNGmVcvw4dOqBOnToWp21v374d48ePx2OPPYamTZuiTp06eOCBBzBixAgcOnTI5jFnz56N5ORkTJgwwea6F198EcnJyWjZsiUEQbC4bunSpUhOTpat5N24cSP69euHhg0bonHjxnj66aexfv16p8//7NmzGD16tPF1v//++/HMM89g1apVPl1v816jOp0O3333Hbp27Yp69eqhadOmGDp0qNs9QVNSUrBy5UoAwOjRo1GyZEmHt4+Pj7cIZJ31KjYfD/YulxsnW7ZsQXJyMrp06WJ3XfR6PVq2bInk5GScOHHC4rq8vDz8+OOP6N27N5o0aWJsMzB58mTcvHnT4XO09zxycnLw2GOPQam0f8iVk5NjHAePP/44evXqBQBYuXIl8vPz3X5cdwmCgOnTpwMA+vTp47S1hEajQcOGDW0uP3ToEF599VW0atUKderUQfPmzTF48GBs27ZNdjnm4yAlJQVvvvkmWrZsiTp16qBDhw749NNPodVqLe7jbFstcfadDRR++wuI42jhwoV49tlnLbZFzz77rEX/3+TkZGMF61dffWWxvubj+/r165gwYQI6deqEunXron79+mjTpg2eeeYZzJw5U3YdevToAYPBgLlz59pdTyIiCm5sWUBERGFLmkgoIiLCeNlnn32Gb7/9FgqFAg0bNkTFihVx9uxZrF69Gn/++Sc++OADPP7447LLW7NmDebNm4dq1aqhRYsWuH37NiIiItCpUyccPHgQ+/fvR+XKldG4cWPjfapVq4b4+Hj06NEDFy9elL2NJCUlBc888wz+/fdflC5dGm3atIFOp8OuXbswZcoUrF69Gj/99BNKlCjh0ety69YtPPvsszh+/Dji4uLQrFkzaDQa7N69G9OnT8fKlSvx888/IzEx0aPHccXevXvx4osvIicnB5UqVULLli1x8+ZNfPrpp/jnn398/vgAnL5/SqUS/fr1w6RJk/DLL7/IhhFZWVlYtmwZlEolnn76aZce98SJE3jvvfdQunRpVK1aFbVr1zb2QJ4+fTpWr16N+fPno1SpUrL3X7RoEb799lvce++9aN26Nf79918cPHgQI0eONL7H5tLT09G3b19cuHABJUqUQNu2bWEwGLBixQps2bIFNWrUcP1FK4RHH30Uhw8fxq5du6DX66FWW+6G3rx5E7169UJmZiYaN26M2rVrW1R3jx07FqmpqbjnnnvQqFEjqNVqnDt3DqtXr8a6deswbdo0iz6dLVq0AABjj1OJTqczVummp6fj5MmTqFmzpvF66fbS/SWzZs3CxIkTAQD16tVD5cqVceHCBbzyyisO+1Rv2rQJw4cPR35+PqpWrYqHHnoIN27cwJ49e7Bz505s3boVH330kc/WW7rvSy+9hAMHDqBJkyaoXr06Dh06hHXr1mHXrl1YsmSJy5/3jRs3oqCgAMWLFw/IJGb2xknLli1Rvnx5nDt3DgcPHkSDBg1s7vv3338jPT0dtWvXtnjtrl27hhdeeAGnTp1CyZIlUbduXcTGxuLYsWOYOXMm1qxZgzlz5uCuu+5yeT2loF7u/TC3atUqZGdnGyfEA8SzKC5cuIA///wT3bp1c/kxC+PkyZNISUkBIIZ8hbFgwQKMHTsWBoMB9957L5o2bYp///0XGzduxMaNGzFs2DAMHTpU9r7Hjx/Hhx9+iBIlSuC+++7
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
},
{
"data": {
"text/plain": [
"<Figure size 1400x700 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAKyCAYAAACuWPzHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FOXaBvB7tiSb3um9JJTQu6AICKLiEWxYALECHkRFBQ96FCvop4ICNkQURLEAKgoe6YL0XoOEGnoK6dlky3x/JDuZzc627G52k9y/6/I7U955551kdvjy7DPPK4iiKIKIiIiIiIiIiIiIAoLK3wMgIiIiIiIiIiIionIM2hIREREREREREREFEAZtiYiIiIiIiIiIiAIIg7ZEREREREREREREAYRBWyIiIiIiIiIiIqIAwqAtERERERERERERUQBh0JaIiIiIiIiIiIgogDBoS0RERERERERERBRAGLQlIiIiIiIiIiIiCiAM2hIRUa12/vx5JCUlISkpCefPn3fYduDAgUhKSsLy5curZGxz5sxBUlIS5syZUyXn8/Y5LT/bgQMHemFkVWfhwoXSPbF48WJ/D8evLl26hFmzZuHee+9F79690b59e3Tv3h0jRozAm2++iYMHD9ocY/nZ1RSjR4+WrsnyX3JyMvr164fx48dj/fr1lerXH5/vynj77bfRpk0bHDp0yG6bkydPYsaMGRg+fDh69eqF9u3bo1evXhg5ciTef/99nDx5sgpHTNVZZZ4fSp/RpKQkdOrUCbfccgveeOMNXLx40Ucj9o60tDQkJyfj6aef9vdQiIgogDBoS0RERCTz008/ScvLli3z40gqZ/ny5UhKSsKLL77oUT/z58/H4MGD8emnn+LEiRNo06YNhg4diu7duyMnJweLFy/GPffcg3fffddLIw9sbdq0wYgRIzBixAgMHDgQOp0OGzZswIQJE/Dmm2/6e3g+cfLkSSxZsgRDhgxBhw4dbPYbjUa8/fbbGDZsGL766itcunQJycnJGDp0KDp16oTz58/j888/x7Bhw/DNN9/44QqqVnUJxDvjrWdIVZN/RocPH47u3bsjIyMD33zzDW6//XbFL5kCRePGjXHvvffijz/+wM6dO/09HCIiChAafw+AiIiIaqa6deti1apV0Gq1/h6Ky/bv34/U1FRERkbCaDTi2LFjOHLkCNq3b+/voVWp9957D/Pnz4dWq8XUqVMxatQoBAUFWbXZv38/Zs2ahTNnzvhnkFXspptuwlNPPSWtm81mzJ49G5999hkWL16MQYMGoU+fPi739+CDD+LWW29FTEyML4brFe+++y6MRqPVdcu98MILWLVqFcLDw/HSSy/hjjvugFqtlvaLooi///4bH3zwAc6ePVtVw6ZaquJnFADy8vIwfvx47N69G9OnT6+yN2UqY8KECfjhhx8wY8YMrFixwt/DISKiAMBMWyIiIvIJrVaLli1bokmTJv4eisssWba33XYbhg4darWttti2bRvmz58PAJg1axYeeeQRm4AtAHTu3BlfffUVHnnkkaoeYkBQqVR4+umn0bhxYwDA6tWr3To+NjYWLVu2RGxsrC+G57HTp09j06ZN6Ny5M1q3bm2z/6effpK+lPnyyy9x5513WgVsAUAQBPTr1w/ff/89br311qoaOpEkIiIC//73vwEAR44cQV5enp9HZF9CQgJuuOEGHD16FLt27fL3cIiIKAAw05aIiMhDo0ePxs6dO7Fo0SJERkZi3rx52LVrFwoKCtCkSRPcfffdePjhhyEIgs2xer0e8+fPx8qVK3Hx4kVER0ejb9++LtW1O3z4MBYuXIg9e/YgIyMDoaGh6NChA8aMGYP+/fvbtB84cCAuXLiAdevWISUlBYsWLUJKSgpycnKwaNEi9OrVS/E8H330EebNm4eRI0fi9ddfV2xz8OBB3HPPPahTpw42bNgAjUaD8+fPY9CgQWjYsKFN3U9LzcLjx4/jf//7H7766iscP34cZrMZbdq0wYQJExSvAQAuXLiAOXPmYPPmzcjNzUX9+vUxbNgwjBs3Do899pj0u7B3PfYUFhZi1apVAIC7774ber0ey5cvx2+//YYXX3wRwcHBisetXr0a33//PY4dO4b8/HyEh4cjLi4OXbt2xahRo9CmTRupbV5eHr744gusX78eaWlpMBqNiI6ORqNGjdCnTx88+eSTNpnJOTk5+Prrr7Fu3TqcO3cOZrMZTZo0wS233IKHH34YISEhUlvL7xgAVqxYYZWt1bNnT5dq9H788cdSX4MHD3bYVhAEdO/e3WmfFtnZ2fjyyy+xbt06nD9/HiqVCs2bN8ctt9yC0aNHQ6fT2RyzdetWLFq0CAcPHkROTg5CQ0MRExODjh07YuTIkejRo4fNMdu2bcOSJUuwf/9+ZGdnIyIiAl27dsVjjz2GLl26uDxeZ9RqNdq2bYu0tDTp5w649lmbM2cO5s6di4kTJypmsp4+fRpff/01tm3bhsuXL0OtVqNevXro2bMnHnjgASQmJlq1d+c+ccWSJUsgiiJGjBhhs08URXz66acAgPvuuw+dOnVy2JdWq1X8uR88eBALFizAnj17pN9Tp06dMHr0aPTt29em/YsvvogVK1ZgxowZ6NGjBz766CNs3boVOTk5qFevHm677Tb8+9//VvySASh9Zi5evBi7du1Ceno6QkJCUK9ePfTt2xejRo1Cw4YNpbZ//vknNm3ahAMHDuDKlSvQ6/VISEhAr1698Pjjj6NFixZWfcvrsM6dOxdz586V1keMGIGZM2dK60ajEStWrMCvv/6K48ePo7CwEHXq1MH111+P8ePHo379+lZ979ixA2PGjEHPnj3x5ZdfYuHChfjll1+QlpaGkJAQ9OjRA88++yxatmxpc81bt27FunXrsHv3bly+fBkFBQWIjY1F165d8cgjj6Bjx45W7d19hvzxxx/48ccfceTIEeTn5yMmJga9evXC+PHj0apVK8Xfw759+zBv3jzs378fJpMJzZs3xwMPPIC7775bsb2n4uPjpWWj0Wi1LysrC7/99hs2b96MkydPIiMjAxqNBs2aNcPQoUPx0EMPKT775f+GLVu2DD/88ANSU1ORn5+PdevWoVGjRpV63t95551Yt24dlixZovhsIyKi2oVBWyIiIi/ZsmULFi5ciCZNmqBv375IT0/Hnj178M477+DSpUt46aWXrNoXFRVh7Nix2L9/P0JDQ9GvXz8EBwdjy5Yt2LhxI2688Ua75/r6668xc+ZMmM1mtG3bFh07dkRGRgZ27NiBLVu24KmnnsLEiRMVj124cCG++eYbJCcn4/rrr8fVq1dtMuTk7r//fnz++edYuXIlnn/+eURGRtq0WbJkCQBg5MiR0Ghc/38vPvroI3z88cfo0qUL+vfvj1OnTmHfvn0YN24c5syZYxM0TE1NxahRo3Dt2jXUqVMHgwYNQlFRERYuXIjt27fDbDa7fO6KVq1ahYKCAmmiKQBo1qwZzpw5gz///BO33367zTFz587FnDlzoNFo0KVLF9StWxd5eXm4dOkSfvrpJ7Rq1UoK2hYVFeGBBx7AP//8g9jYWPTu3RuhoaFIT0/H6dOn8fHHH+Phhx+2+iM+NTUVjz32GC5duoSEhAR069YNGo0Ghw4dwocffog///wTixcvRkREBADg5ptvxv79+7F37140adIE3bp1k/qqGGRSkpubi927dwOAYrDOE2lpaXjooYdw4cIFxMbGon///jAYDNixYwfee+89rF69GgsXLkRUVJR0zIoVK/Cf//wHANCxY0f06tULer0eV65cwapVqxATE2MT2HjnnXfw5ZdfQqVSITk5Gd26dcOlS5ewbt06bNiwAW+88Qbuuusur11Xfn4+ACgGCt39rFmsXLkS06ZNQ0lJCRo0aID+/fvDbDYjLS0NS5cuRVxcnFXQ1t37xBXr1q0DAFx33XU2+44fP460tDQAlb9PfvjhB7z66qswm81o164devXqhQsXLmDDhg3YsGGDw2fYsWPH8NZbbyEqKgo9evRATk4O9u7di08//RSpqamYN2+ezTFffPEF3n/
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"图表绘制完成。\n",
"{'初始资金': 100000.0, '最终资金': np.float64(101595.60169999997), '总收益率': np.float64(0.01595601699999971), '年化收益率': np.float64(0.0027416888292601804), '最大回撤': np.float64(0.009314395251809444), '夏普比率': np.float64(0.1370947822507793), '卡玛比率': np.float64(0.2943496335661267), '总交易次数': 234, '交易成本': 99.3983, '总实现盈亏': 1695.0, '胜率': 0.29914529914529914, '盈亏比': 3.4481014671384833, '盈利交易次数': 35, '亏损交易次数': 82, '平均每次盈利': 151.0857142857143, '平均每次亏损': -43.81707317073171, 'initial_capital': 100000.0, 'final_capital': np.float64(101595.60169999997), 'total_return': np.float64(0.01595601699999971), 'annualized_return': np.float64(0.0027416888292601804), 'max_drawdown': np.float64(0.009314395251809444), 'sharpe_ratio': np.float64(0.1370947822507793), 'calmar_ratio': np.float64(0.2943496335661267), 'sortino_ratio': np.float64(0.11400401196758053), 'total_trades': 234, 'transaction_costs': 99.3983, 'total_realized_pnl': 1695.0, 'win_rate': 0.29914529914529914, 'profit_loss_ratio': 3.4481014671384833, 'winning_trades_count': 35, 'losing_trades_count': 82, 'avg_profit_per_trade': 151.0857142857143, 'avg_loss_per_trade': -43.81707317073171}\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": 5
}
],
"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
}