加入一个回测,
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user