import pandas as pd # 加载回测结果 df = pd.read_csv('../result/backtest_trades.csv') # 转换时间为 datetime 类型 df['open_date'] = pd.to_datetime(df['open_date']) df['close_date'] = pd.to_datetime(df['close_date']) # 按币种分组 grouped = df.groupby('pair') # 存储最终结果 results = [] for pair, group in grouped: # 按照开仓时间排序 group = group.sort_values(by='open_date') for _, trade in group.iterrows(): entry_time = trade['open_date'] exit_time = trade['close_date'] entry_price = trade['open_rate'] exit_price = trade['close_rate'] profit_abs = trade['profit_abs'] profit_ratio = trade['profit_ratio'] results.append({ '币种': pair, '入场时间': entry_time, '入场价格': entry_price, '出场时间': exit_time, '出场价格': exit_price, '盈利金额': profit_abs, '盈利比例': f"{profit_ratio * 100:.2f}%" }) # 输出为 DataFrame 并保存到 CSV trade_log = pd.DataFrame(results) trade_log.to_csv('../result/trade_log_detailed.csv', index=False) print("✅ 已生成详细交易日志:../result/trade_log_detailed.csv") print(trade_log)