加入一个回测,

This commit is contained in:
ddrwode
2026-03-05 12:51:12 +08:00
parent b74449989b
commit 01b6a0fdcb
17 changed files with 189157 additions and 29751 deletions

View File

@@ -28,12 +28,12 @@ class BitMartETH5M(Model):
def calculate_bollinger_bands(df, period=10, std_dev=2.5):
"""计算布林带"""
"""计算布林带右移1根与回测口径一致"""
df['sma'] = df['close'].rolling(window=period).mean()
df['std'] = df['close'].rolling(window=period).std()
df['bb_upper'] = df['sma'] + std_dev * df['std']
df['bb_mid'] = df['sma']
df['bb_lower'] = df['sma'] - std_dev * df['std']
df['bb_upper'] = (df['sma'] + std_dev * df['std']).shift(1)
df['bb_mid'] = df['sma'].shift(1)
df['bb_lower'] = (df['sma'] - std_dev * df['std']).shift(1)
return df
@@ -503,21 +503,25 @@ if __name__ == '__main__':
try:
print("正在生成回测可视化图表...")
output_dir = Path(__file__).parent / 'backtest_outputs' / 'charts'
output_dir.mkdir(parents=True, exist_ok=True)
# 生成图表数据
chart_data, trades_markers = generate_chart_data(
start_date='2026-03-01',
end_date='2026-03-03',
trades_file='bb_backtest_march_2026_trades.csv'
trades_file=str(Path(__file__).parent / 'backtest_outputs' / 'trades' / 'bb_backtest_march_2026_trades.csv')
)
print(f"📊 K线数据: {len(chart_data)}")
print(f"📍 交易标记: {len(trades_markers)}")
# 生成HTML
generate_html(chart_data, trades_markers, 'bb_backtest_visualization.html')
output_file = output_dir / 'bb_backtest_visualization.html'
generate_html(chart_data, trades_markers, str(output_file))
print("\n🎉 完成!请在浏览器中打开 bb_backtest_visualization.html 查看图表")
print(f"\n🎉 完成!请在浏览器中打开 {output_file} 查看图表")
finally:
db.close()