myTestFreqAI/tools/exchanges.py

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)