46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
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)
|
|
|
|
|