From c74f4f69495586bd2fc3516cdf20bd34f0ff310f Mon Sep 17 00:00:00 2001 From: crypto_predictor Date: Thu, 29 Jan 2026 21:58:23 +0800 Subject: [PATCH] Clean up: keep only best model (53.10% accuracy) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🧹 清理内容: - 删除所有实验模型(保留 dlinear_classification_2026) - 删除所有测试和分析脚本 - 删除所有实验训练脚本 ✅ 保留文件: - models/checkpoints/dlinear_classification_2026/ (最佳模型) - train_classification_full.py (训练脚本) - test_2026_classification.py (测试脚本) - data/, models/, training/ (核心代码) - README.md, requirements.txt 📦 删除文件统计: - 9个实验模型目录 - 21个测试/分析/实验脚本 Co-Authored-By: Claude Sonnet 4.5 --- .claude/settings.local.json | 4 +- analyze_split.py | 195 ----------- compare_tasks.py | 244 -------------- diagnose_bias.py | 234 -------------- diagnose_model.py | 177 ---------- diagnose_simple.py | 134 -------- evaluate_fixed.py | 180 ----------- evaluate_model.py | 81 ----- .../cross_asset_btc_to_eth/best_model.pt | Bin 62372 -> 0 bytes .../cross_asset_btc_to_eth/final_model.pt | Bin 62384 -> 0 bytes .../cross_asset_btc_to_eth/test_metrics.json | 13 - .../dlinear_811_split/best_model.pt | Bin 16292 -> 0 bytes .../dlinear_811_split/final_model.pt | Bin 16304 -> 0 bytes .../dlinear_811_split/preprocessor.pkl | Bin 1182 -> 0 bytes .../dlinear_811_split/test_metrics.json | 10 - .../dlinear_btc_1h_forecast/best_model.pt | Bin 62372 -> 0 bytes .../dlinear_btc_1h_forecast/final_model.pt | Bin 62384 -> 0 bytes .../dlinear_btc_1h_forecast/test_metrics.json | 18 -- .../test_metrics_fixed.json | 18 -- .../dlinear_btc_2020_2025/best_model.pt | Bin 64420 -> 0 bytes .../dlinear_btc_2020_2025/final_model.pt | Bin 64432 -> 0 bytes .../dlinear_btc_2020_2025/test_metrics.json | 18 -- .../dlinear_btc_full_data/best_model.pt | Bin 64420 -> 0 bytes .../dlinear_btc_full_data/final_metrics.json | 13 - .../dlinear_btc_full_data/final_model.pt | Bin 64432 -> 0 bytes .../dlinear_btc_full_data/preprocessor.pkl | Bin 2150 -> 0 bytes .../dlinear_btc_regression/best_model.pt | Bin 64420 -> 0 bytes .../dlinear_btc_regression/final_model.pt | Bin 64432 -> 0 bytes .../dlinear_btc_regression/test_metrics.json | 13 - .../dlinear_predict_price/best_model.pt | Bin 16292 -> 0 bytes .../dlinear_predict_price/final_model.pt | Bin 16304 -> 0 bytes .../dlinear_predict_price/metrics.json | 6 - .../dlinear_predict_price/preprocessor.pkl | Bin 1182 -> 0 bytes .../dlinear_simple_features/best_model.pt | Bin 16292 -> 0 bytes .../dlinear_simple_features/final_model.pt | Bin 16304 -> 0 bytes .../dlinear_simple_features/metrics.json | 13 - .../dlinear_simple_features/preprocessor.pkl | Bin 960 -> 0 bytes models/checkpoints/dlinear_test/best_model.pt | Bin 62372 -> 0 bytes .../checkpoints/dlinear_test/final_model.pt | Bin 62384 -> 0 bytes predict_2026.py | 263 --------------- predict_2026_price.py | 202 ------------ predict_2026_simple.py | 230 ------------- test_binance_api.py | 65 ---- test_dlinear.py | 169 ---------- test_historical_data.py | 149 --------- train_811_split.py | 304 ------------------ train_cross_asset.py | 240 -------------- train_dlinear_1h.py | 156 --------- train_dlinear_balanced.py | 190 ----------- train_dlinear_long_term.py | 242 -------------- train_dlinear_real.py | 163 ---------- train_dlinear_regression.py | 258 --------------- train_full_data.py | 233 -------------- train_predict_price.py | 260 --------------- train_simple_features.py | 206 ------------ 55 files changed, 3 insertions(+), 4698 deletions(-) delete mode 100644 analyze_split.py delete mode 100644 compare_tasks.py delete mode 100644 diagnose_bias.py delete mode 100644 diagnose_model.py delete mode 100644 diagnose_simple.py delete mode 100644 evaluate_fixed.py delete mode 100644 evaluate_model.py delete mode 100644 models/checkpoints/cross_asset_btc_to_eth/best_model.pt delete mode 100644 models/checkpoints/cross_asset_btc_to_eth/final_model.pt delete mode 100644 models/checkpoints/cross_asset_btc_to_eth/test_metrics.json delete mode 100644 models/checkpoints/dlinear_811_split/best_model.pt delete mode 100644 models/checkpoints/dlinear_811_split/final_model.pt delete mode 100644 models/checkpoints/dlinear_811_split/preprocessor.pkl delete mode 100644 models/checkpoints/dlinear_811_split/test_metrics.json delete mode 100644 models/checkpoints/dlinear_btc_1h_forecast/best_model.pt delete mode 100644 models/checkpoints/dlinear_btc_1h_forecast/final_model.pt delete mode 100644 models/checkpoints/dlinear_btc_1h_forecast/test_metrics.json delete mode 100644 models/checkpoints/dlinear_btc_1h_forecast/test_metrics_fixed.json delete mode 100644 models/checkpoints/dlinear_btc_2020_2025/best_model.pt delete mode 100644 models/checkpoints/dlinear_btc_2020_2025/final_model.pt delete mode 100644 models/checkpoints/dlinear_btc_2020_2025/test_metrics.json delete mode 100644 models/checkpoints/dlinear_btc_full_data/best_model.pt delete mode 100644 models/checkpoints/dlinear_btc_full_data/final_metrics.json delete mode 100644 models/checkpoints/dlinear_btc_full_data/final_model.pt delete mode 100644 models/checkpoints/dlinear_btc_full_data/preprocessor.pkl delete mode 100644 models/checkpoints/dlinear_btc_regression/best_model.pt delete mode 100644 models/checkpoints/dlinear_btc_regression/final_model.pt delete mode 100644 models/checkpoints/dlinear_btc_regression/test_metrics.json delete mode 100644 models/checkpoints/dlinear_predict_price/best_model.pt delete mode 100644 models/checkpoints/dlinear_predict_price/final_model.pt delete mode 100644 models/checkpoints/dlinear_predict_price/metrics.json delete mode 100644 models/checkpoints/dlinear_predict_price/preprocessor.pkl delete mode 100644 models/checkpoints/dlinear_simple_features/best_model.pt delete mode 100644 models/checkpoints/dlinear_simple_features/final_model.pt delete mode 100644 models/checkpoints/dlinear_simple_features/metrics.json delete mode 100644 models/checkpoints/dlinear_simple_features/preprocessor.pkl delete mode 100644 models/checkpoints/dlinear_test/best_model.pt delete mode 100644 models/checkpoints/dlinear_test/final_model.pt delete mode 100644 predict_2026.py delete mode 100644 predict_2026_price.py delete mode 100644 predict_2026_simple.py delete mode 100644 test_binance_api.py delete mode 100644 test_dlinear.py delete mode 100644 test_historical_data.py delete mode 100644 train_811_split.py delete mode 100644 train_cross_asset.py delete mode 100644 train_dlinear_1h.py delete mode 100644 train_dlinear_balanced.py delete mode 100644 train_dlinear_long_term.py delete mode 100644 train_dlinear_real.py delete mode 100644 train_dlinear_regression.py delete mode 100644 train_full_data.py delete mode 100644 train_predict_price.py delete mode 100644 train_simple_features.py diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 8140830..cd13860 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -4,7 +4,9 @@ "Bash(/Users/xxz/miniforge3/bin/conda run:*)", "Bash(tee:*)", "Bash(python:*)", - "Bash(source:*)" + "Bash(source:*)", + "Bash(ls:*)", + "Bash(git add:*)" ] } } diff --git a/analyze_split.py b/analyze_split.py deleted file mode 100644 index be93460..0000000 --- a/analyze_split.py +++ /dev/null @@ -1,195 +0,0 @@ -"""详细分析训练/验证/测试集的分配方式""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import pandas as pd -import numpy as np -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data - -def analyze_split_strategy(): - print("="*80) - print("数据集分割策略详细分析") - print("="*80) - - # 获取数据 - print("\n[1/4] 加载2020-2025年完整数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - - print(f"✓ 原始数据: {len(df)} 行") - print(f"✓ 时间范围: {df['timestamp'].min()} 至 {df['timestamp'].max()}") - - # 预处理 - print("\n[2/4] 数据预处理...") - preprocessor = CryptoPreprocessor( - lookback=168, - forecast_horizon=1, - price_change_threshold=0.0 - ) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - - print(f"✓ 序列数量: {len(X)}") - print(f"✓ 每个序列: {X.shape[1]}小时 × {X.shape[2]}特征") - - # 分析split_data函数的逻辑 - print("\n[3/4] 分析数据分割逻辑...") - print(f"\n📋 split_data函数的分割方式:") - print(f" train_split = 0.7 (70%)") - print(f" val_split = 0.15 (15%)") - print(f" test_split = 0.15 (15%)") - print(f"\n 分割方式: 时间序列顺序分割(非随机打乱)") - print(f" 计算方式:") - print(f" n = len(X) # 总序列数") - print(f" train_end = int(n * 0.7)") - print(f" val_end = int(n * 0.85)") - print(f" 训练集: X[0:train_end]") - print(f" 验证集: X[train_end:val_end]") - print(f" 测试集: X[val_end:]") - - # 执行分割 - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - n = len(X) - train_end_idx = int(n * 0.7) - val_end_idx = int(n * 0.85) - - print(f"\n[4/4] 详细分割结果分析...") - print(f"\n总序列数: {n:,}") - print(f"分割点:") - print(f" 训练集结束: 第 {train_end_idx:,} 个序列") - print(f" 验证集结束: 第 {val_end_idx:,} 个序列") - - # 计算每个数据集对应的原始数据索引 - # 注意:由于lookback=168,序列创建时有偏移 - lookback = 168 - - # 训练集对应的数据范围 - train_start_row = lookback # 第一个序列从lookback开始 - train_end_row = train_end_idx + lookback - - # 验证集对应的数据范围 - val_start_row = train_end_idx + lookback - val_end_row = val_end_idx + lookback - - # 测试集对应的数据范围 - test_start_row = val_end_idx + lookback - test_end_row = len(processed_df) - - print(f"\n📊 各数据集对应的原始数据行:") - print(f"\n训练集:") - print(f" 序列索引: 0 到 {train_end_idx:,}") - print(f" 数据行范围: {train_start_row:,} 到 {train_end_row:,}") - train_df = processed_df.iloc[train_start_row:train_end_row] - print(f" 时间范围: {train_df['timestamp'].min()} 至 {train_df['timestamp'].max()}") - train_return = (train_df['close'].iloc[-1] - train_df['close'].iloc[0]) / train_df['close'].iloc[0] - print(f" 价格: ${train_df['close'].iloc[0]:,.0f} → ${train_df['close'].iloc[-1]:,.0f}") - print(f" 收益率: {train_return*100:+.2f}%") - - print(f"\n验证集:") - print(f" 序列索引: {train_end_idx:,} 到 {val_end_idx:,}") - print(f" 数据行范围: {val_start_row:,} 到 {val_end_row:,}") - val_df = processed_df.iloc[val_start_row:val_end_row] - print(f" 时间范围: {val_df['timestamp'].min()} 至 {val_df['timestamp'].max()}") - val_return = (val_df['close'].iloc[-1] - val_df['close'].iloc[0]) / val_df['close'].iloc[0] - print(f" 价格: ${val_df['close'].iloc[0]:,.0f} → ${val_df['close'].iloc[-1]:,.0f}") - print(f" 收益率: {val_return*100:+.2f}%") - - print(f"\n测试集:") - print(f" 序列索引: {val_end_idx:,} 到 {n:,}") - print(f" 数据行范围: {test_start_row:,} 到 {test_end_row:,}") - test_df = processed_df.iloc[test_start_row:test_end_row] - print(f" 时间范围: {test_df['timestamp'].min()} 至 {test_df['timestamp'].max()}") - test_return = (test_df['close'].iloc[-1] - test_df['close'].iloc[0]) / test_df['close'].iloc[0] - print(f" 价格: ${test_df['close'].iloc[0]:,.0f} → ${test_df['close'].iloc[-1]:,.0f}") - print(f" 收益率: {test_return*100:+.2f}%") - - # 可视化时间线 - print(f"\n" + "="*80) - print("📅 时间线可视化") - print("="*80) - - print(f"\n2020━━━━━━━━━━━━训练集━━━━━━━━━━━━━2024━━验证━━2025━━测试━━2025") - print(f" ") - print(f"牛市+825% 牛市+34% 下跌-8.5%") - print(f" ") - - # 分析问题 - print(f"\n" + "="*80) - print("🔍 关键发现") - print("="*80) - - print(f"\n✅ 分割方式:正确") - print(f" - 时间序列顺序分割(未打乱)") - print(f" - 训练在前,验证在中,测试在后") - print(f" - 避免了数据泄露") - - print(f"\n⚠️ 问题:分布严重不匹配") - print(f" - 训练集(2020-2024初):+825% 🚀 极端牛市") - print(f" - 验证集(2024): +34% 📈 牛市延续") - print(f" - 测试集(2025): -8.5% 📉 回调下跌") - - print(f"\n💡 这导致:") - print(f" 1. 模型在牛市中训练 → 学会'牛市思维'") - print(f" 2. 验证集也是牛市 → 验证损失正常,未能发现问题") - print(f" 3. 测试集却是熊市 → 泛化性能差") - - # 标签分布分析 - print(f"\n📊 标签分布分析:") - train_up_ratio = (train_data[1] == 1).sum() / len(train_data[1]) - val_up_ratio = (val_data[1] == 1).sum() / len(val_data[1]) - test_up_ratio = (test_data[1] == 1).sum() / len(test_data[1]) - - print(f"\n 训练集上涨比例: {train_up_ratio*100:.1f}%") - print(f" 验证集上涨比例: {val_up_ratio*100:.1f}%") - print(f" 测试集上涨比例: {test_up_ratio*100:.1f}%") - - if abs(train_up_ratio - test_up_ratio) > 0.05: - print(f"\n ⚠️ 训练集和测试集的上涨比例差异: {abs(train_up_ratio - test_up_ratio)*100:.1f}%") - print(f" 这说明分布不一致!") - - # 建议 - print(f"\n" + "="*80) - print("💡 解决方案建议") - print("="*80) - - print(f"\n方案1: Walk-Forward验证(滚动窗口)⭐⭐⭐⭐⭐") - print(f" - 不是70/15/15一次性分割") - print(f" - 而是多次滚动分割:") - print(f" 第1次: 2020-2022训练 → 2023Q1测试") - print(f" 第2次: 2020-2023训练 → 2023Q2测试") - print(f" 第3次: 2020-2023训练 → 2023Q3测试") - print(f" ...") - print(f" - 平均所有测试结果") - - print(f"\n方案2: K-Fold时间序列交叉验证 ⭐⭐⭐⭐") - print(f" - TimeSeriesSplit (保持时间顺序)") - print(f" - 多个fold,每个fold包含不同市场环境") - - print(f"\n方案3: 分层采样(按市场环境)⭐⭐⭐") - print(f" - 识别牛市/熊市/震荡期") - print(f" - 确保训练/验证/测试都包含各种环境") - print(f" - 但要保持时间顺序") - - print(f"\n方案4: 使用更近期的数据作为测试集 ⭐⭐") - print(f" - 例如:2020-2024训练 → 2025测试") - print(f" - 目前就是这样,但问题是2025恰好是下跌期") - - print(f"\n当前问题的本质:") - print(f" ❌ 不是分割方法的问题") - print(f" ❌ 而是时间序列预测的固有难题:") - print(f" '过去的牛市'无法预测'未来的熊市'") - print(f" 除非训练数据包含足够多的熊市样本") - - print("\n" + "="*80) - -if __name__ == "__main__": - analyze_split_strategy() diff --git a/compare_tasks.py b/compare_tasks.py deleted file mode 100644 index 9d1883e..0000000 --- a/compare_tasks.py +++ /dev/null @@ -1,244 +0,0 @@ -"""详细对比二分类和回归任务在加密货币预测中的差异""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import numpy as np -import pandas as pd -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor - -def compare_classification_vs_regression(): - print("="*80) - print("二分类 vs 回归任务详细对比") - print("="*80) - - # 获取少量数据用于演示 - print("\n[1/3] 获取示例数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - df_sample = df.tail(200).copy() # 只取最近200小时 - - print(f"✓ 样本数据: {len(df_sample)} 行") - print(f"✓ 时间范围: {df_sample['timestamp'].min()} 至 {df_sample['timestamp'].max()}") - - # 对比两种任务 - print("\n[2/3] 对比两种任务的标签生成...") - - # 二分类任务 - print("\n" + "="*80) - print("📊 任务1: 二分类(Binary Classification)") - print("="*80) - - preprocessor_cls = CryptoPreprocessor( - lookback=24, - forecast_horizon=1, - price_change_threshold=0.0 - ) - - # 创建标签 - df_sample['future_price'] = df_sample['close'].shift(-1) - df_sample['future_return'] = (df_sample['future_price'] - df_sample['close']) / df_sample['close'] - df_sample['label_classification'] = (df_sample['future_return'] > 0).astype(int) - - print(f"\n目标: 预测价格会上涨(1)还是下跌(0)") - print(f"\n标签生成公式:") - print(f" future_return = (未来价格 - 当前价格) / 当前价格") - print(f" label = 1 if future_return > 0 else 0") - - print(f"\n具体例子(前10个样本):") - print(f"{'时间':<20} {'当前价格':<12} {'未来价格':<12} {'收益率':<10} {'标签':<8}") - print("-"*80) - for i in range(10): - row = df_sample.iloc[i] - if pd.notna(row['future_return']): - label = "上涨(1)" if row['label_classification'] == 1 else "下跌(0)" - print(f"{str(row['timestamp']):<20} ${row['close']:<11,.2f} ${row['future_price']:<11,.2f} " - f"{row['future_return']*100:>7.2f}% {label:<8}") - - print(f"\n标签统计:") - n_up = df_sample['label_classification'].sum() - n_down = len(df_sample) - n_up - df_sample['label_classification'].isna().sum() - print(f" 上涨(1): {n_up} 个") - print(f" 下跌(0): {n_down} 个") - print(f" 比例: {n_up/(n_up+n_down)*100:.1f}% vs {n_down/(n_up+n_down)*100:.1f}%") - - print(f"\n模型输出:") - print(f" 格式: 0-1之间的概率值") - print(f" 例如: 0.73 表示 73% 概率上涨") - print(f" 决策: 如果概率 > 0.5 → 预测上涨") - print(f" 如果概率 < 0.5 → 预测下跌") - - print(f"\n评估指标:") - print(f" - 准确率 (Accuracy)") - print(f" - 精确率 (Precision)") - print(f" - 召回率 (Recall)") - print(f" - F1分数") - print(f" - 混淆矩阵") - - print(f"\n优点:") - print(f" ✅ 简单直观(涨/跌二选一)") - print(f" ✅ 评估指标清晰") - print(f" ✅ 适合交易决策(做多/做空)") - - print(f"\n缺点:") - print(f" ❌ 丢失了涨跌幅度信息") - print(f" ❌ 涨0.1%和涨10%被视为一样") - print(f" ❌ 无法评估风险收益比") - - # 回归任务 - print("\n" + "="*80) - print("📈 任务2: 回归(Regression)") - print("="*80) - - df_sample['label_regression'] = df_sample['future_return'] - - print(f"\n目标: 预测价格变化的百分比") - print(f"\n标签生成公式:") - print(f" label = (未来价格 - 当前价格) / 当前价格") - print(f" 直接预测收益率(可正可负)") - - print(f"\n具体例子(前10个样本):") - print(f"{'时间':<20} {'当前价格':<12} {'未来价格':<12} {'收益率(标签)':<15}") - print("-"*80) - for i in range(10): - row = df_sample.iloc[i] - if pd.notna(row['future_return']): - print(f"{str(row['timestamp']):<20} ${row['close']:<11,.2f} ${row['future_price']:<11,.2f} " - f"{row['label_regression']*100:>12.4f}%") - - print(f"\n标签统计:") - valid_returns = df_sample['label_regression'].dropna() - print(f" 最小值: {valid_returns.min()*100:.4f}%") - print(f" 最大值: {valid_returns.max()*100:.4f}%") - print(f" 均值: {valid_returns.mean()*100:.4f}%") - print(f" 标准差: {valid_returns.std()*100:.4f}%") - print(f" 中位数: {valid_returns.median()*100:.4f}%") - - print(f"\n模型输出:") - print(f" 格式: 连续的数值(收益率)") - print(f" 例如: 0.0235 表示预测上涨 2.35%") - print(f" -0.0178 表示预测下跌 1.78%") - print(f" 决策: 根据预测值大小决定仓位") - print(f" 预测+5% → 大仓位做多") - print(f" 预测+0.5% → 小仓位做多") - - print(f"\n评估指标:") - print(f" - RMSE (均方根误差)") - print(f" - MAE (平均绝对误差)") - print(f" - MAPE (平均绝对百分比误差)") - print(f" - 方向准确率 (预测方向是否正确)") - print(f" - R² (决定系数)") - - print(f"\n优点:") - print(f" ✅ 保留了涨跌幅度信息") - print(f" ✅ 可以评估风险收益比") - print(f" ✅ 支持动态仓位管理") - print(f" ✅ 提供更精细的预测") - - print(f"\n缺点:") - print(f" ❌ 预测难度更高") - print(f" ❌ 容易过拟合") - print(f" ❌ 对异常值敏感") - - # 对比分析 - print("\n[3/3] 详细对比分析...") - print("\n" + "="*80) - print("🔍 详细对比") - print("="*80) - - comparison = [ - ["维度", "二分类", "回归"], - ["-"*30, "-"*40, "-"*40], - ["预测目标", "方向(涨/跌)", "具体涨跌幅度"], - ["输出范围", "0-1(概率)", "-∞ to +∞(收益率)"], - ["输出示例", "0.73(73%概率上涨)", "+0.0235(预测涨2.35%)"], - ["标签类型", "离散(0或1)", "连续(实数)"], - ["损失函数", "BCEWithLogitsLoss", "MSELoss / MAELoss"], - ["评估指标", "准确率、F1分数", "RMSE、MAE、MAPE"], - ["决策方式", "二元(做多/做空)", "连续(仓位大小)"], - ["信息量", "少(只有方向)", "多(方向+幅度)"], - ["预测难度", "中等", "困难"], - ["适用场景", "简单交易策略", "精细化资金管理"], - ] - - for row in comparison: - print(f"{row[0]:<30} {row[1]:<40} {row[2]:<40}") - - # 实际应用对比 - print("\n" + "="*80) - print("💰 实际交易应用对比") - print("="*80) - - print("\n场景1: 预测未来1小时BTC会上涨") - print("\n二分类模型:") - print(" 输出: 0.68 (68%概率上涨)") - print(" 决策: 概率>0.5,买入BTC") - print(" 行动: 全仓做多(或固定仓位如50%)") - print(" 问题: 不知道预期涨多少,无法评估风险") - - print("\n回归模型:") - print(" 输出: +0.0023 (预测上涨0.23%)") - print(" 决策: 预测值>0,买入BTC") - print(" 行动: 根据预测幅度调整仓位(0.23%很小,可能只用10%仓位)") - print(" 优势: 知道预期收益,可以计算风险收益比") - - print("\n场景2: 预测未来1小时BTC大涨") - print("\n二分类模型:") - print(" 输出: 0.72 (72%概率上涨)") - print(" 决策: 买入BTC") - print(" 问题: 72%概率可能是涨0.1%,也可能是涨5%,无法区分") - - print("\n回归模型:") - print(" 输出: +0.0480 (预测上涨4.8%)") - print(" 决策: 买入BTC") - print(" 行动: 预期涨幅大,可以加大仓位(如80%)") - print(" 优势: 可以根据预期收益调整风险敞口") - - # 性能对比 - print("\n" + "="*80) - print("📊 当前项目的实际性能对比") - print("="*80) - - print("\n二分类任务(当前已实现):") - print(" 准确率: 49.76%(接近随机)") - print(" F1分数: 0.3898") - print(" 召回率: 31.85%") - print(" 问题: 预测能力极弱") - - print("\n回归任务(未实现):") - print(" 预期性能: 可能更差") - print(" 原因: 预测具体数值比预测方向更难") - print(" 但优势: 即使方向准确率50%,如果能准确预测幅度,仍可盈利") - - # 建议 - print("\n" + "="*80) - print("💡 建议") - print("="*80) - - print("\n选择二分类的情况:") - print(" ✅ 初学者或概念验证") - print(" ✅ 简单的做多/做空策略") - print(" ✅ 预测周期较长(1天以上)") - print(" ✅ 只关心方向,不关心幅度") - - print("\n选择回归的情况:") - print(" ✅ 需要精细化资金管理") - print(" ✅ 需要评估风险收益比") - print(" ✅ 有足够多的训练数据") - print(" ✅ 想要更丰富的预测信息") - - print("\n对于1小时BTC预测:") - print(" 当前结论: 两者都很难!") - print(" 二分类: 准确率49.76%(已验证)") - print(" 回归: 预计MAPE会很高(未验证,但大概率也很差)") - print("\n 核心问题: 1小时价格变化接近随机游走") - print(" 建议: 延长预测周期到24小时或更长") - - print("\n" + "="*80) - print("✓ 对比分析完成") - print("="*80) - -if __name__ == "__main__": - compare_classification_vs_regression() diff --git a/diagnose_bias.py b/diagnose_bias.py deleted file mode 100644 index 0e81e5b..0000000 --- a/diagnose_bias.py +++ /dev/null @@ -1,234 +0,0 @@ -"""诊断模型为何倾向预测上涨""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import torch -import numpy as np -import pandas as pd -from models.dlinear.model import DLinear -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders - -def analyze_bias(): - print("="*80) - print("分析模型预测偏差的原因") - print("="*80) - - # 1. 加载数据 - print("\n[1/5] 加载数据并分析标签分布...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - - # 分析原始价格趋势 - df['price_change'] = df['close'].pct_change() - df['future_1h'] = df['close'].shift(-1) - df['future_return_1h'] = (df['future_1h'] - df['close']) / df['close'] - - print(f"\n📊 原始数据分析(最近8760小时):") - print(f" 数据范围: {df['timestamp'].min()} 至 {df['timestamp'].max()}") - print(f" BTC起始价格: ${df['close'].iloc[0]:,.2f}") - print(f" BTC结束价格: ${df['close'].iloc[-1]:,.2f}") - total_return = (df['close'].iloc[-1] - df['close'].iloc[0]) / df['close'].iloc[0] - print(f" 总收益率: {total_return*100:.2f}%") - - up_hours = (df['future_return_1h'] > 0).sum() - down_hours = (df['future_return_1h'] <= 0).sum() - total_hours = up_hours + down_hours - print(f"\n 小时K线涨跌统计:") - print(f" 上涨小时: {up_hours}/{total_hours} ({up_hours/total_hours*100:.1f}%)") - print(f" 下跌小时: {down_hours}/{total_hours} ({down_hours/total_hours*100:.1f}%)") - - # 2. 预处理并查看训练集分布 - print("\n[2/5] 分析训练/验证/测试集的标签分布...") - preprocessor = CryptoPreprocessor( - lookback=168, - forecast_horizon=1, - price_change_threshold=0.0 - ) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - # 分析每个数据集的标签分布 - train_up = (train_data[1] == 1).sum() - train_down = (train_data[1] == 0).sum() - val_up = (val_data[1] == 1).sum() - val_down = (val_data[1] == 0).sum() - test_up = (test_data[1] == 1).sum() - test_down = (test_data[1] == 0).sum() - - print(f"\n 训练集标签分布:") - print(f" 上涨: {train_up}/{len(train_data[1])} ({train_up/len(train_data[1])*100:.1f}%)") - print(f" 下跌: {train_down}/{len(train_data[1])} ({train_down/len(train_data[1])*100:.1f}%)") - - print(f"\n 验证集标签分布:") - print(f" 上涨: {val_up}/{len(val_data[1])} ({val_up/len(val_data[1])*100:.1f}%)") - print(f" 下跌: {val_down}/{len(val_data[1])} ({val_down/len(val_data[1])*100:.1f}%)") - - print(f"\n 测试集标签分布:") - print(f" 上涨: {test_up}/{len(test_data[1])} ({test_up/len(test_data[1])*100:.1f}%)") - print(f" 下跌: {test_down}/{len(test_data[1])} ({test_down/len(test_data[1])*100:.1f}%)") - - # 3. 分析训练集对应的时间范围 - print("\n[3/5] 分析各数据集的时间范围和价格趋势...") - - # 由于序列创建,需要偏移lookback - lookback = 168 - train_end_idx = int(len(processed_df) * 0.7) - lookback - val_end_idx = int(len(processed_df) * 0.85) - lookback - - train_df = processed_df.iloc[lookback:train_end_idx+lookback] - val_df = processed_df.iloc[train_end_idx+lookback:val_end_idx+lookback] - test_df = processed_df.iloc[val_end_idx+lookback:] - - print(f"\n 训练集:") - print(f" 时间范围: {train_df['timestamp'].min()} 至 {train_df['timestamp'].max()}") - train_return = (train_df['close'].iloc[-1] - train_df['close'].iloc[0]) / train_df['close'].iloc[0] - print(f" 价格变化: ${train_df['close'].iloc[0]:,.0f} → ${train_df['close'].iloc[-1]:,.0f}") - print(f" 收益率: {train_return*100:.2f}%") - - print(f"\n 验证集:") - print(f" 时间范围: {val_df['timestamp'].min()} 至 {val_df['timestamp'].max()}") - val_return = (val_df['close'].iloc[-1] - val_df['close'].iloc[0]) / val_df['close'].iloc[0] - print(f" 价格变化: ${val_df['close'].iloc[0]:,.0f} → ${val_df['close'].iloc[-1]:,.0f}") - print(f" 收益率: {val_return*100:.2f}%") - - print(f"\n 测试集:") - print(f" 时间范围: {test_df['timestamp'].min()} 至 {test_df['timestamp'].max()}") - test_return = (test_df['close'].iloc[-1] - test_df['close'].iloc[0]) / test_df['close'].iloc[0] - print(f" 价格变化: ${test_df['close'].iloc[0]:,.0f} → ${test_df['close'].iloc[-1]:,.0f}") - print(f" 收益率: {test_return*100:.2f}%") - - # 4. 加载模型并分析输出 - print("\n[4/5] 加载模型并分析输出分布...") - model_path = './models/checkpoints/dlinear_btc_1h_forecast/best_model.pt' - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - - checkpoint = torch.load(model_path, map_location=device, weights_only=False) - model = DLinear(checkpoint['config']) - model.load_state_dict(checkpoint['model_state_dict']) - model = model.to(device) - model.eval() - - # 分析测试集输出 - _, _, test_loader = create_dataloaders( - test_data, test_data, test_data, - task='classification', - batch_size=64 - ) - - all_logits = [] - all_labels = [] - - with torch.no_grad(): - for batch_X, batch_y in test_loader: - batch_X = batch_X.to(device) - outputs = model(batch_X).squeeze() - all_logits.extend(outputs.cpu().numpy().flatten()) - all_labels.extend(batch_y.numpy().flatten()) - - all_logits = np.array(all_logits) - all_labels = np.array(all_labels) - all_probs = 1 / (1 + np.exp(-all_logits)) # sigmoid - - print(f"\n 模型输出统计:") - print(f" Logits均值: {all_logits.mean():.6f}") - print(f" Logits标准差: {all_logits.std():.6f}") - print(f" Logits中位数: {np.median(all_logits):.6f}") - print(f" 概率均值: {all_probs.mean():.6f}") - - # 按真实标签分组分析 - logits_when_up = all_logits[all_labels == 1] - logits_when_down = all_logits[all_labels == 0] - - print(f"\n 按真实标签分组:") - print(f" 真实上涨时,平均logit: {logits_when_up.mean():.6f}") - print(f" 真实下跌时,平均logit: {logits_when_down.mean():.6f}") - print(f" 差值: {logits_when_up.mean() - logits_when_down.mean():.6f}") - - # 5. 分析为什么偏向上涨 - print("\n[5/5] 分析预测偏差的根本原因...") - print("\n" + "="*80) - print("🔍 根本原因分析") - print("="*80) - - # 原因1: 数据趋势 - if total_return > 0.1: - print(f"\n✅ 原因1: 训练数据处于上涨趋势") - print(f" - 整体收益率: {total_return*100:.2f}%") - print(f" - 训练集收益率: {train_return*100:.2f}%") - print(f" - 模型学习到了'牛市偏好'") - elif total_return < -0.1: - print(f"\n⚠️ 原因1: 训练数据处于下跌趋势") - print(f" - 整体收益率: {total_return*100:.2f}%") - else: - print(f"\n⚪ 原因1: 训练数据趋势中性") - print(f" - 整体收益率: {total_return*100:.2f}%") - - # 原因2: 类别不平衡 - if train_up > train_down * 1.05: - print(f"\n✅ 原因2: 训练集标签不平衡") - print(f" - 上涨样本: {train_up} ({train_up/len(train_data[1])*100:.1f}%)") - print(f" - 下跌样本: {train_down} ({train_down/len(train_data[1])*100:.1f}%)") - print(f" - 不平衡比例: {train_up/train_down:.2f}:1") - else: - print(f"\n⚪ 原因2: 训练集标签基本平衡") - print(f" - 上涨/下跌比例: {train_up/train_down:.2f}:1") - - # 原因3: 模型输出偏差 - if all_logits.mean() > 0.01: - print(f"\n✅ 原因3: 模型输出存在正偏差") - print(f" - 平均logit: {all_logits.mean():.6f} > 0") - print(f" - 平均概率: {all_probs.mean():.6f} > 0.5") - print(f" - 这导致更多样本被预测为上涨") - elif all_logits.mean() < -0.01: - print(f"\n⚠️ 原因3: 模型输出存在负偏差") - print(f" - 平均logit: {all_logits.mean():.6f} < 0") - else: - print(f"\n⚪ 原因3: 模型输出基本无偏") - print(f" - 平均logit: {all_logits.mean():.6f} ≈ 0") - - # 原因4: 阈值问题 - print(f"\n⚪ 原因4: 决策阈值") - print(f" - 当前阈值: 0.5") - print(f" - 平均概率: {all_probs.mean():.6f}") - if all_probs.mean() > 0.5: - print(f" - 因为平均概率>0.5,导致多数样本被预测为上涨") - - # 计算最优阈值 - from sklearn.metrics import f1_score - best_threshold = 0.5 - best_f1 = 0 - for threshold in np.arange(0.3, 0.7, 0.01): - preds = (all_probs > threshold).astype(int) - f1 = f1_score(all_labels, preds) - if f1 > best_f1: - best_f1 = f1 - best_threshold = threshold - - print(f"\n💡 建议调整阈值:") - print(f" - 最优阈值: {best_threshold:.3f} (F1={best_f1:.4f})") - print(f" - 当前阈值: 0.500 (F1={f1_score(all_labels, (all_probs>0.5).astype(int)):.4f})") - - print("\n" + "="*80) - print("📌 总结") - print("="*80) - print(f"\n模型预测上涨的比例: {(all_probs > 0.5).sum()}/{len(all_probs)} ({(all_probs>0.5).mean()*100:.1f}%)") - print(f"主要原因:") - if total_return > 0.1: - print(f" 1. ✅ 训练数据处于上涨趋势 ({total_return*100:.1f}%)") - if train_up > train_down * 1.05: - print(f" 2. ✅ 训练集上涨样本更多 ({train_up/train_down:.2f}:1)") - if all_logits.mean() > 0.01: - print(f" 3. ✅ 模型学习到了上涨偏好 (平均logit={all_logits.mean():.4f})") - - print(f"\n这是正常现象,因为:") - print(f" - 如果训练期间BTC整体上涨,模型会学习到'上涨更可能'") - print(f" - 这类似于'在牛市训练的模型会更乐观'") - print(f" - 解决方案:使用更长的训练数据(包含牛市和熊市)") - -if __name__ == "__main__": - analyze_bias() diff --git a/diagnose_model.py b/diagnose_model.py deleted file mode 100644 index 089779e..0000000 --- a/diagnose_model.py +++ /dev/null @@ -1,177 +0,0 @@ -"""诊断模型预测偏差问题""" - -import torch -import numpy as np -from models.dlinear.model import DLinear, DLinearConfig -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -import matplotlib -matplotlib.use('Agg') -import matplotlib.pyplot as plt - -def diagnose_model(): - """诊断模型输出分布和损失函数问题""" - - print("="*80) - print("模型诊断报告") - print("="*80) - - # 1. 加载已训练的模型 - print("\n[1/5] 加载已训练模型...") - model_path = './models/checkpoints/dlinear_btc_1h_balanced/best_model.pt' - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - - checkpoint = torch.load(model_path, map_location=device, weights_only=False) - config = checkpoint['config'] - - model = DLinear(config) - model.load_state_dict(checkpoint['model_state_dict']) - model = model.to(device) - model.eval() - - print(f"✓ 模型已加载到设备: {device}") - print(f"✓ 模型配置: task={config.task}, input_dim={config.input_dim}") - - # 2. 准备测试数据 - print("\n[2/5] 准备测试数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - - preprocessor = CryptoPreprocessor(lookback=168, forecast_horizon=24, price_change_threshold=0.0) - X, y, _ = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - - _, _, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - _, _, test_loader = create_dataloaders(test_data, test_data, test_data, batch_size=64) - - # 3. 分析模型输出 - print("\n[3/5] 分析模型原始输出...") - all_outputs = [] - all_labels = [] - - with torch.no_grad(): - for batch_X, batch_y in test_loader: - batch_X = batch_X.to(device) - outputs = model(batch_X).squeeze() - - all_outputs.extend(outputs.cpu().numpy().flatten()) - all_labels.extend(batch_y.numpy().flatten()) - - all_outputs = np.array(all_outputs) - all_labels = np.array(all_labels) - - print(f"\n📊 模型输出统计(经过Sigmoid):") - print(f" 最小值: {all_outputs.min():.6f}") - print(f" 最大值: {all_outputs.max():.6f}") - print(f" 均值: {all_outputs.mean():.6f}") - print(f" 中位数: {np.median(all_outputs):.6f}") - print(f" 标准差: {all_outputs.std():.6f}") - print(f" > 0.5 的比例: {(all_outputs > 0.5).mean()*100:.2f}%") - print(f" > 0.4 的比例: {(all_outputs > 0.4).mean()*100:.2f}%") - print(f" > 0.3 的比例: {(all_outputs > 0.3).mean()*100:.2f}%") - print(f" > 0.2 的比例: {(all_outputs > 0.2).mean()*100:.2f}%") - print(f" > 0.1 的比例: {(all_outputs > 0.1).mean()*100:.2f}%") - - print(f"\n📊 真实标签分布:") - print(f" 下跌(0): {(all_labels == 0).sum()} ({(all_labels == 0).mean()*100:.1f}%)") - print(f" 上涨(1): {(all_labels == 1).sum()} ({(all_labels == 1).mean()*100:.1f}%)") - - # 4. 检查损失函数问题 - print("\n[4/5] 检查损失函数兼容性...") - print("\n⚠️ 发现问题:") - print(" 模型使用: nn.Sigmoid() 作为输出激活函数") - print(" 当前损失函数: BCEWithLogitsLoss (期望logits输入)") - print("\n🔴 这导致了【双重Sigmoid问题】:") - print(" 1. 模型输出层: output = sigmoid(logits)") - print(" 2. 损失函数内部: sigmoid(output) = sigmoid(sigmoid(logits))") - print(" 3. 结果: 输出被过度压缩到接近0,梯度消失") - - # 验证双重sigmoid效果 - print("\n🧪 验证双重Sigmoid效果:") - test_logits = np.array([-2, -1, 0, 1, 2]) - single_sigmoid = 1 / (1 + np.exp(-test_logits)) - double_sigmoid = 1 / (1 + np.exp(-single_sigmoid)) - - print(" 原始logits: ", test_logits) - print(" 单次sigmoid: ", np.round(single_sigmoid, 4)) - print(" 双重sigmoid: ", np.round(double_sigmoid, 4)) - print(" → 双重sigmoid后,所有值都接近0.5(失去区分度)") - - # 5. 建议修复方案 - print("\n[5/5] 修复方案:") - print("\n✅ 方案1(推荐):移除模型输出层的Sigmoid") - print(" - 修改 models/dlinear/model.py:128") - print(" - 将 self.output_activation = nn.Sigmoid() 改为 nn.Identity()") - print(" - 保持损失函数为 BCEWithLogitsLoss") - - print("\n✅ 方案2:更换损失函数") - print(" - 修改 models/base.py:74") - print(" - 将 BCEWithLogitsLoss 改为 BCELoss") - print(" - 保持模型输出层的 Sigmoid") - - print("\n📌 其他发现:") - print(f" - 模型平均输出 {all_outputs.mean():.1%},远低于期望的50%") - print(f" - 几乎没有输出>0.5({(all_outputs>0.5).sum()}个)") - print(f" - 这解释了为什么模型从不预测上涨") - - # 6. 生成可视化 - print("\n[6/5] 生成输出分布图...") - fig, axes = plt.subplots(2, 2, figsize=(12, 10)) - - # 输出直方图 - axes[0, 0].hist(all_outputs, bins=50, alpha=0.7, edgecolor='black') - axes[0, 0].axvline(0.5, color='red', linestyle='--', label='决策阈值=0.5') - axes[0, 0].set_xlabel('模型输出(经过Sigmoid)') - axes[0, 0].set_ylabel('频数') - axes[0, 0].set_title('模型输出分布(双重Sigmoid问题)') - axes[0, 0].legend() - axes[0, 0].grid(alpha=0.3) - - # 按真实标签分组的输出分布 - outputs_down = all_outputs[all_labels == 0] - outputs_up = all_outputs[all_labels == 1] - axes[0, 1].hist([outputs_down, outputs_up], bins=30, alpha=0.6, - label=['真实下跌', '真实上涨'], edgecolor='black') - axes[0, 1].axvline(0.5, color='red', linestyle='--', label='决策阈值') - axes[0, 1].set_xlabel('模型输出') - axes[0, 1].set_ylabel('频数') - axes[0, 1].set_title('按真实标签分组的输出分布') - axes[0, 1].legend() - axes[0, 1].grid(alpha=0.3) - - # CDF(累积分布) - sorted_outputs = np.sort(all_outputs) - cdf = np.arange(1, len(sorted_outputs)+1) / len(sorted_outputs) - axes[1, 0].plot(sorted_outputs, cdf, linewidth=2) - axes[1, 0].axvline(0.5, color='red', linestyle='--', label='决策阈值=0.5') - axes[1, 0].axhline(0.5, color='green', linestyle='--', alpha=0.5) - axes[1, 0].set_xlabel('模型输出') - axes[1, 0].set_ylabel('累积概率') - axes[1, 0].set_title('输出累积分布函数(CDF)') - axes[1, 0].legend() - axes[1, 0].grid(alpha=0.3) - - # 双重sigmoid效果演示 - x = np.linspace(-5, 5, 100) - sigmoid_1 = 1 / (1 + np.exp(-x)) - sigmoid_2 = 1 / (1 + np.exp(-sigmoid_1)) - axes[1, 1].plot(x, sigmoid_1, label='单次Sigmoid', linewidth=2) - axes[1, 1].plot(x, sigmoid_2, label='双重Sigmoid', linewidth=2, linestyle='--') - axes[1, 1].axhline(0.5, color='red', linestyle=':', alpha=0.5, label='决策阈值') - axes[1, 1].set_xlabel('输入(logits)') - axes[1, 1].set_ylabel('输出') - axes[1, 1].set_title('双重Sigmoid效果对比') - axes[1, 1].legend() - axes[1, 1].grid(alpha=0.3) - - plt.tight_layout() - output_path = 'model_diagnosis.png' - plt.savefig(output_path, dpi=150, bbox_inches='tight') - print(f"✓ 可视化已保存至: {output_path}") - - print("\n" + "="*80) - print("诊断完成!") - print("="*80) - -if __name__ == "__main__": - diagnose_model() diff --git a/diagnose_simple.py b/diagnose_simple.py deleted file mode 100644 index 41f825b..0000000 --- a/diagnose_simple.py +++ /dev/null @@ -1,134 +0,0 @@ -"""简化版模型诊断(无需matplotlib)""" - -import torch -import numpy as np -from models.dlinear.model import DLinear, DLinearConfig -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders - -def diagnose(): - print("="*80) - print("🔍 模型预测偏差诊断报告") - print("="*80) - - # 加载模型 - print("\n[1/4] 加载已训练模型...") - model_path = './models/checkpoints/dlinear_btc_1h_balanced/best_model.pt' - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - checkpoint = torch.load(model_path, map_location=device, weights_only=False) - - config = checkpoint['config'] - model = DLinear(config) - model.load_state_dict(checkpoint['model_state_dict']) - model = model.to(device) - model.eval() - print(f"✓ 模型配置: task={config.task}, hidden_dim={config.hidden_dim}") - - # 准备数据 - print("\n[2/4] 加载测试数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - preprocessor = CryptoPreprocessor(lookback=168, forecast_horizon=24, price_change_threshold=0.0) - X, y, _ = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - _, _, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - _, _, test_loader = create_dataloaders(test_data, test_data, test_data, batch_size=64) - - # 收集输出 - print("\n[3/4] 分析模型输出...") - all_outputs = [] - all_labels = [] - - with torch.no_grad(): - for batch_X, batch_y in test_loader: - batch_X = batch_X.to(device) - outputs = model(batch_X).squeeze() - all_outputs.extend(outputs.cpu().numpy().flatten()) - all_labels.extend(batch_y.numpy().flatten()) - - all_outputs = np.array(all_outputs) - all_labels = np.array(all_labels) - - # 统计分析 - print("\n" + "="*80) - print("📊 关键发现") - print("="*80) - - print(f"\n1️⃣ 模型输出统计(已经过Sigmoid):") - print(f" 最小值: {all_outputs.min():.6f}") - print(f" 最大值: {all_outputs.max():.6f}") - print(f" 均值: {all_outputs.mean():.6f} ← 应该接近0.5") - print(f" 中位数: {np.median(all_outputs):.6f}") - print(f" 标准差: {all_outputs.std():.6f}") - - print(f"\n2️⃣ 预测阈值分析:") - for threshold in [0.5, 0.4, 0.3, 0.2, 0.1]: - count = (all_outputs > threshold).sum() - pct = (all_outputs > threshold).mean() * 100 - print(f" 输出 > {threshold}: {count:4d} 个 ({pct:5.2f}%)") - - print(f"\n3️⃣ 真实标签分布:") - n_down = (all_labels == 0).sum() - n_up = (all_labels == 1).sum() - print(f" 下跌(0): {n_down} ({n_down/len(all_labels)*100:.1f}%)") - print(f" 上涨(1): {n_up} ({n_up/len(all_labels)*100:.1f}%)") - - # 验证双重sigmoid问题 - print("\n" + "="*80) - print("🔴 问题诊断:双重Sigmoid Bug") - print("="*80) - - print("\n📋 当前架构:") - print(" 模型输出层: self.output_activation = nn.Sigmoid() (models/dlinear/model.py:128)") - print(" 损失函数: BCEWithLogitsLoss() (models/base.py:74)") - - print("\n⚠️ 问题:") - print(" BCEWithLogitsLoss 内部包含 Sigmoid,期望输入是 logits(未激活)") - print(" 但模型已经输出了 sigmoid(logits)") - print(" → 损失函数再次应用: sigmoid(sigmoid(logits)) ← 双重激活!") - - print("\n🧪 双重Sigmoid效果演示:") - test_logits = np.array([-3, -1, 0, 1, 3]) - single = 1 / (1 + np.exp(-test_logits)) - double = 1 / (1 + np.exp(-single)) - - print(f" 原始logits: {test_logits}") - print(f" 单次sigmoid: {np.round(single, 4)}") - print(f" 双重sigmoid: {np.round(double, 4)} ← 全部压缩到~0.5") - - print("\n💥 后果:") - print(f" - 模型输出均值仅 {all_outputs.mean():.1%}(期望~50%)") - print(f" - {(all_outputs>0.5).sum()} 个样本输出>0.5(共{len(all_outputs)}个)") - print(f" - 模型永远预测类别0(下跌),因为没有输出超过阈值0.5") - print(f" - 梯度消失,模型无法有效学习") - - # 解决方案 - print("\n" + "="*80) - print("✅ 修复方案") - print("="*80) - - print("\n方案1(推荐):移除模型的Sigmoid输出") - print(" 文件: models/dlinear/model.py") - print(" 位置: 第127-130行") - print(" 修改前: if config.task == 'classification':") - print(" self.output_activation = nn.Sigmoid()") - print(" 修改后: if config.task == 'classification':") - print(" self.output_activation = nn.Identity() # 输出logits") - print(" 说明: 保持损失函数为BCEWithLogitsLoss") - - print("\n方案2:更换损失函数(不推荐)") - print(" 文件: models/base.py") - print(" 位置: 第70-76行") - print(" 修改: 将 BCEWithLogitsLoss 改为 BCELoss") - print(" 说明: 保持模型输出Sigmoid,但BCELoss数值稳定性较差") - - print("\n" + "="*80) - print("📌 结论") - print("="*80) - print("✓ 预测偏差的根本原因是【双重Sigmoid Bug】") - print("✓ 与数据处理、类别平衡、特征工程无关") - print("✓ 修复后需要重新训练模型") - print("="*80) - -if __name__ == "__main__": - diagnose() diff --git a/evaluate_fixed.py b/evaluate_fixed.py deleted file mode 100644 index f2949a0..0000000 --- a/evaluate_fixed.py +++ /dev/null @@ -1,180 +0,0 @@ -"""重新评估已训练模型(使用修复后的evaluator)""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import torch -import numpy as np -from models.dlinear.model import DLinear -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from training.evaluator import evaluate_model -import json - -def main(): - print("="*80) - print("重新评估模型(已修复Sigmoid Bug)") - print("="*80) - - # 加载模型 - print("\n[1/4] 加载已训练的模型...") - model_path = './models/checkpoints/dlinear_btc_1h_forecast/best_model.pt' - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - - checkpoint = torch.load(model_path, map_location=device, weights_only=False) - config = checkpoint['config'] - - model = DLinear(config) - model.load_state_dict(checkpoint['model_state_dict']) - model = model.to(device) - model.eval() - - print(f"✓ 模型已加载: {model_path}") - print(f"✓ 设备: {device}") - print(f"✓ 模型参数: {model.count_parameters():,}") - - # 准备测试数据 - print("\n[2/4] 准备测试数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - - preprocessor = CryptoPreprocessor( - lookback=168, - forecast_horizon=1, # 预测未来1小时 - price_change_threshold=0.0 - ) - X, y, _ = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - - _, _, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - _, _, test_loader = create_dataloaders( - test_data, test_data, test_data, - task='classification', - batch_size=64 - ) - - print(f"✓ 测试集大小: {len(test_data[0])} 样本") - print(f"✓ 真实标签分布: 下跌={np.sum(test_data[1]==0)}, 上涨={np.sum(test_data[1]==1)}") - - # 先查看模型输出分布 - print("\n[3/4] 分析模型输出分布...") - all_logits = [] - all_probs = [] - all_preds = [] - all_labels = [] - - with torch.no_grad(): - for batch_X, batch_y in test_loader: - batch_X = batch_X.to(device) - outputs = model(batch_X).squeeze() - - # 模型输出logits - logits = outputs.cpu().numpy() - probs = torch.sigmoid(outputs).cpu().numpy() - preds = (probs > 0.5).astype(int) - - all_logits.extend(logits.flatten()) - all_probs.extend(probs.flatten()) - all_preds.extend(preds.flatten()) - all_labels.extend(batch_y.numpy().flatten()) - - all_logits = np.array(all_logits) - all_probs = np.array(all_probs) - all_preds = np.array(all_preds) - all_labels = np.array(all_labels) - - print(f"\n📊 模型输出统计(修复后):") - print(f" Logits范围: [{all_logits.min():.4f}, {all_logits.max():.4f}]") - print(f" Logits均值: {all_logits.mean():.4f}") - print(f" 概率范围: [{all_probs.min():.4f}, {all_probs.max():.4f}]") - print(f" 概率均值: {all_probs.mean():.4f} ← 应该接近0.5") - print(f" 预测为上涨: {np.sum(all_preds==1)}/{len(all_preds)} ({np.sum(all_preds==1)/len(all_preds)*100:.1f}%)") - print(f" 预测为下跌: {np.sum(all_preds==0)}/{len(all_preds)} ({np.sum(all_preds==0)/len(all_preds)*100:.1f}%)") - - # 正式评估 - print("\n[4/4] 使用修复后的evaluator进行完整评估...") - metrics = evaluate_model(model, test_loader, task='classification', device=str(device)) - - # 保存结果 - results_path = './models/checkpoints/dlinear_btc_1h_forecast/test_metrics_fixed.json' - with open(results_path, 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 评估结果已保存至:{results_path}") - - # 展示结果 - print("\n" + "="*80) - print("最终评估结果(修复后)") - print("="*80) - - print(f"\n📊 分类指标:") - print(f" 准确率: {metrics.get('accuracy', 0):.4f} ({metrics.get('accuracy', 0)*100:.2f}%)") - print(f" F1分数: {metrics.get('f1', 0):.4f}") - print(f" 精确率: {metrics.get('precision', 0):.4f}") - print(f" 召回率: {metrics.get('recall', 0):.4f}") - - if 'true_positives' in metrics: - print(f"\n📈 混淆矩阵:") - tp = metrics['true_positives'] - tn = metrics['true_negatives'] - fp = metrics['false_positives'] - fn = metrics['false_negatives'] - print(f" 真阳性(预测涨且真涨): {tp}") - print(f" 真阴性(预测跌且真跌): {tn}") - print(f" 假阳性(预测涨但真跌): {fp}") - print(f" 假阴性(预测跌但真涨): {fn}") - - total = tp + tn + fp + fn - if total > 0: - print(f"\n 预测分布:") - print(f" 预测上涨: {tp + fp} ({(tp+fp)/total*100:.1f}%)") - print(f" 预测下跌: {tn + fn} ({(tn+fn)/total*100:.1f}%)") - - print(f"\n💰 回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - max_dd = metrics.get('backtest_max_drawdown', 0) - if np.isnan(max_dd): - print(f" 最大回撤: N/A (无交易)") - else: - print(f" 最大回撤: {max_dd*100:.2f}%") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - # 性能评估 - print(f"\n🎯 性能评估:") - acc = metrics.get('accuracy', 0) - if acc > 0.55: - print(f" ✅ 准确率 {acc*100:.1f}% > 55%,模型有一定预测能力") - elif acc > 0.50: - print(f" ⚠️ 准确率 {acc*100:.1f}% 略优于随机(50%),预测能力较弱") - else: - print(f" ❌ 准确率 {acc*100:.1f}% ≤ 50%,模型预测能力不足") - - total_return = metrics.get('backtest_total_return', 0) - if total_return > 0.05: - print(f" ✅ 回测收益 {total_return*100:.2f}% > 5%,策略有较好盈利潜力") - elif total_return > 0: - print(f" ⚠️ 回测收益 {total_return*100:.2f}% > 0,策略有微弱盈利") - else: - print(f" ❌ 回测收益 {total_return*100:.2f}% ≤ 0,策略亏损") - - # 对比修复前后 - print(f"\n📊 修复前后对比:") - print(f" 修复前(有Bug):") - print(f" - 平均置信度: 0.69% (错误)") - print(f" - 预测上涨: 0个 (0%)") - print(f" - 准确率: 50.00% (偏差)") - print(f" 修复后(正确):") - print(f" - 平均置信度: {metrics.get('mean_confidence', 0)*100:.1f}%") - print(f" - 预测上涨: {tp + fp}个 ({(tp+fp)/total*100:.1f}%)") - print(f" - 准确率: {acc*100:.2f}%") - - print("\n" + "="*80) - print("✓ 评估完成!") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/evaluate_model.py b/evaluate_model.py deleted file mode 100644 index 2cc0a65..0000000 --- a/evaluate_model.py +++ /dev/null @@ -1,81 +0,0 @@ -"""评估已训练的DLinear模型""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import torch -import json -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear -from training.evaluator import evaluate_model - -def main(): - print("="*80) - print("评估DLinear模型(真实数据)") - print("="*80) - - # 加载数据 - print("\n加载数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - - preprocessor = CryptoPreprocessor(lookback=168, forecast_horizon=24) - X, y, _ = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - - train_data, val_data, test_data = split_data(X, y) - _, _, test_loader = create_dataloaders( - train_data, val_data, test_data, - task='classification', batch_size=64 - ) - - # 加载模型 - print("加载最佳模型...") - model_path = './models/checkpoints/dlinear_btc_1h_real/best_model.pt' - checkpoint = torch.load(model_path, map_location='cpu') - model = DLinear(checkpoint['config']) - model.load_state_dict(checkpoint['model_state_dict']) - - # 评估 - print("\n在测试集上评估...") - device = 'mps' if torch.backends.mps.is_available() else 'cpu' - metrics = evaluate_model(model, test_loader, 'classification', device) - - # 保存结果 - results_path = './models/checkpoints/dlinear_btc_1h_real/test_metrics.json' - with open(results_path, 'w') as f: - json.dump(metrics, f, indent=2) - - # 打印结果 - print("\n" + "="*80) - print("测试集评估结果") - print("="*80) - print(f"\n📊 分类指标:") - print(f" 准确率: {metrics.get('accuracy', 0):.4f}") - print(f" F1分数: {metrics.get('f1', 0):.4f}") - print(f" 精确率: {metrics.get('precision', 0):.4f}") - print(f" 召回率: {metrics.get('recall', 0):.4f}") - - if 'true_positives' in metrics: - print(f"\n📈 混淆矩阵:") - print(f" 真阳性: {metrics['true_positives']}") - print(f" 真阴性: {metrics['true_negatives']}") - print(f" 假阳性: {metrics['false_positives']}") - print(f" 假阴性: {metrics['false_negatives']}") - - print(f"\n💰 回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - print(f" 最大回撤: {metrics.get('backtest_max_drawdown', 0)*100:.2f}%") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - print("\n" + "="*80) - print(f"✓ 结果已保存至:{results_path}") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/models/checkpoints/cross_asset_btc_to_eth/best_model.pt b/models/checkpoints/cross_asset_btc_to_eth/best_model.pt deleted file mode 100644 index 01567ba54235aaee23e12dd49ece7525d22f9e57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62372 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%0DNy~@BDG` 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%0DEL!@R=LTDN{~?X&st{EMtg}=Tl>)`wn8k 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 diff --git a/models/checkpoints/cross_asset_btc_to_eth/final_model.pt b/models/checkpoints/cross_asset_btc_to_eth/final_model.pt deleted file mode 100644 index ba5ef51ec5428ac3d65622d6ec85f26767cec3a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62384 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 diff --git a/models/checkpoints/dlinear_811_split/final_model.pt b/models/checkpoints/dlinear_811_split/final_model.pt deleted file mode 100644 index 1fc8fbac146f88a547fcc7250887f3af73d2e22e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16304 zcmbt*2{=_<+rKeWGBzMXW{S+=thLBkh7t`znM0J0Ax%VPGKE3|X`l>IQaO9wr9q`Z z^IVFOG)U2?`XBXv@B8#T&-Z@+@BP+wt?TTw@Adnwdky!!*V=pCZqEDyJUqg}Jby{D zJY#s4ge~`v@Ld)e6dW-%$Unwke?@qNgN-PU*FRGtUp$*f+f$MY|5?m8I>tXH*f%IF zFow+=7#JB55gZs37P&lHbaqrwa8z)R9akdC=F@R!^J{yK`p0p!@}U1}G6N`>B`8Z)C>oNx$?`{fAy^BYLU-BGQOqYr3D zOxQZ1BCb3lF>GBfnJW*kvq&0yvNN~YY3wP#81-V<`tIzhp3+>^erNoto562kJ^WWIa*cSg_v;5gqE^!*0HKHZ=7yY8d zF>K<_w)%^D#`-_iv;K{68hiS$uCw_^*V&FJXZMTAK8Ee!&UTEAXV35y;WpNHS#XU1 zh-t8A{+vEe+Me9IJZ$H9w#(1SxiUB^n%lQ*S7+X6PjRj&C^#^3*^0>Mu#qlj&x&Wy z4*e;c@MoF+vdEQT%R_wqSB9|N;@NY46`S~Pis_FOb&qFz{3^W<_j_uRqt1to%7o*#YtFz@PHi=m5`A+#-RI%a??Ou!91B z`k-k2pkK}A_8`}DiQ2jRbTPI+3yHFWb&}Xi;@KhEKL;>u`3QMX*fMsgvxw)2AB>2M z3=i-R3}=TqS9@}uBTtNfbU1sdrzrQ5YbsH}(LVrCAZq7o& z#aTnn^96Z$MzY&~>!ru?X#M7;16IcbM~-+}2OG6NxaoiT>px#agvG=}1dr60io4}T z`f?=y_w`BhSpHVu$kd-|;9z6+|5MqYE9d@yQf5-t$|cS`^UN7a=UM5;fMerD8}zO_Xz>&z?2e@)&D^(riw& z!E#H%q|>Z1{fKqcAcu7{MU3SqFMckF*Ty(3k^f(HAQY zS}at9LRE`V{_|3_#Z&;rD}|z^p>^n`{svT&#~}Wz_mIol8;JK(7TV^Xhdw-NLmfpI zQ2ORnRL?sb6>Td+=cjK$sh_tX!STnD+PqSvRgjBl+B$UFFAIeTtVIcViO8GpI8t)c zLA$rjM}Gd+NNcAK>d;I=>SdDX+uJ*=*Pnt|kyCw8gmNN!TAhsEw2wvx>pW4Hcrbc8 z?183CYevhL8Kc$SsYu*$7K%Lbmes~9j=q%{qnOJohwdi83TBkjk5M6uUDGtq$Lgo-8|otY1VRPr*_oE?0-_+|Ho*hB|cM4MjUW zvykbYXtb|b3B8-J4n=jxqDif3$a`D^+IS`(6?Ijh#h;pxfTJ8f;vs_*$Xmp|)QdQm z>(CdQDkK@*iXyt2keDE#NZZrsu>3}3F1j6A+$%@q@&zPjpN*DG*^PXcq@rEyeMs#6 zLlo(}3-zz}N1iJKPk0+bg-HDZ!JR(J-{P%{7`J2JK}3b^1rJC{k0Aw2OIN$TgTs+-9K+B9@&E) zl62-cC%pzZT%dxHRIfFXxn9Ilji&rm8#ZC@ev7GiXG(|84 z4G8z6Nb_ji9+!caszxz>dMUKx6L5>ZCP+YO6_4>N}n ztI?)~OR+z8gUur!l#atI}VqI<(z+*F0n6U0-x<*+ZC(TyG zcQxN_TGG9F3P z$s1$Y!_UVw?Yo4eTvpO3wj>^<@)@lyio|ioviQ!K1 z^g@IOR*D`(`yBI7;$3(APOphMz15kSeb$*qTUVlj6ji$Rz5tysIfK?|US>qcOvfO> zkJKdgV4nqAxb%?;%1V`I9bq5BZ`aFWotG~#Dv zeigpHcFa%P=zQ(*?LV|X@R_Nj(zOPXjSew>Q_|8 zIoe@JCr`H{N&1m^lImJm-Rnh46+H>mXOVud1X#br89&zZ!h7{9vDu>wP~Ei#S9GM4 z`Rj7A(ClLDx-gGESo#%jZM(txDt8qZj=D!Ls!t-k#pCgN?@X*F=?J>JmC1zzgjmo$ zoZ=h1=;EZcSWqyBoSu=5gUVxYSIJgl(&JAqR0@G`kvFzlB*vL|d5Gyfz8woDjUi%g z{ODtEE;ZP>5o=ve2g{~0DEEa9*&7-Kr%!Chi)5P=v#GRLQ_I6>{Fh2~YSogJ{3qfM*u3#LfH#G;*c_={C{Cs*Z)| zTDKOd-?baZMySFu#DQk1t#Ea#1X*O9K!(n$5nde;*sfJVPQMf*?|M?`kwg`^Wl(_k zEPO$K%o>9eCj?{bTl2xak`LXxs!hJXtR{)lGx6MWn)v4C6|_#LkjUPC!s^+%0bG;w zFzs@nVzw#d_J#sZLfki$GbjfkHHP$}P!2A?*NDgYXQRsxav{VclG9T8l_@Eb(Hx)kj^gs=-3nO;k9YVL4U=O~F zjL)@+9WWrRi+qr_<89hG;U1mpd<74yv&iIY^>q2C5V*5qJc;q$ z!Z7uFP{4Nq@H(1|zJ@g7PT5WPrqU|nx;qtW?Ruz!UQSEuYJbkQn<8*x_W(XI{u1_y zvxke@bI7273aLKg2K~?6$%Mc|sFm$tX&7Tl9wRn*RSLr!ms7Y+@eQ>*>H+d|#?dR5 zee~!mNv8AU1mfTr4=BM2&TI|^!+sn3bj>=S8&67YoDRzBD?99tm7Q_%PZ)S zA_sEya2aq~J;}6(8)^7gCFFp2P|Y(|I68a>?ryh5_N*$ot{A z8HIJetCCqhl!<+10ngjM;K6r7B;X+*9oM>#**3L^qwXfn@jev}`D#Yp6szf>1$Lxm_$!^}I)>DK7K4H5JFv~lG-9K#1k>X5>E{_|aoD2;aBO83 z@#DQjjU(2grBj5jS)ZYBy*JFqe%Cwb{AMb)2&Hd=S_-)vs zTnoQF?20eA=TJdDeX{%8Dj4Th2i8m7iQkI_G<9A%JXx~|%7dKAi;zZmwci`W4~CJb zG~Oz;NAU_vj5RY0+ckBCDw*-xBmR zxP#_fC4<3)(WHvUh0YIZ#kUlF!Fc9Q8ZCMbPfk}S7VFI+*g+OM=2SBpVw;$hGnKG8 z^f_)ykc3MU1IgvG%hYyI5>SH*mU+I9Og}UhXFdynil8aPz>be2x=Bns5xeaDLz%CYGc}ex||x zd#LP~CMM%t2EC~*1w%7Z$nvdY@Zn?CAekV6FrsIJlXj3Mxk9iPEJ+a+*&Y+FUn4h1CprB7cR1x`xxcg{$GX**82*G70vL ze!&dz)zGKb6H)pKU_M>yWqQwzrq|w@5D)e5bokCkYJJ$Be%+cz{H)60$8AjK3JlRJ z&MEY1fe7C8Oc%5Qa%kWTGt_032oG1!z_WI@;5`8<^me8!UKlKgR-bT%6UKdrZRkka zy$V3?-X_exQA}cQ@j=WiEsjWO3JIEI3GNkMP-wP=Q3}wfXJ4fP({K~7J=5E=<*6#T zPYEV7mo?z&w!(Ocz6LzknFsqC)rrRE5GZNr#LSeB%s$B!;#SZ@x4+?q;V^%=ro>N@ z_z_XPaGtqUw+{FP?=mSrp5xJbZDIUVbr6*cC4Tu1#7a~F4$G#I?t>A;>%d_w);byl zf+my7!f3du@)6&DVMf-=^iYktJRIWGPAksvwpdm*Gg>#Iu)mKZoSv+YUw-o-3WB3Z zm+WkU^fIB}>^>FB&!Y>^*b?2@&djv~3DmjTACAZ75}SAOB%We$QK{n0yIn(*4}ZcM zyXvvb-8A~+L@EBVNDgKSsA2D!?yxt01ATsLB3{|Nm~NQ)3CmAfidj!Ospgk3`Y9%W zsD1V!7OpaoC-#aN&)$f8ZV3?$-CjnI6#*`Xt)MwlhQt@|A^k_nP@kI}ov~jB>IqnS zbjlC~)fYHK!4-0H7h?SvAH-$qiC$3)ialWGtk>+awr_d@KdSfDJKGY}g7vE(a zORZw9zn)8WNRK98^c1L*!D*bN?+MK}qeyeMHM#XPkBH^VfUiw6j-9N+h)MGh9i|V~>OpHh%_n!>@1>(9-=eu{9ID7LxH9!3XCTjzBHjrQz3v1(5SmL?)^O;s=_z`_ zOB4hqmeCiCB8mB$2SXn!NcR4%@Ib_gm@jg`OD>5Z9+H^vOjdo7#k?!#GkQ~6U_5jlrhZo(r!<7c z@9zSnP>cnT!h?TnFC>;&y3r$I#RScYv z>tdcpxX^gRi#T=BQGDd?AyBo;gU*>QWI$VhT=|yCQa*B&bt^9wOS)xX%V-`FR;&m! z-meAcVgWLc=|zlvEy&6sM@YGoz)WrMAlaSwX|<3iy|49!vGnS|k;(IkSmRE(x!jZ3 z3pvxuR1ap2^;-I9_YEpS>Tt^5YNrLR%I9+4T)At+CVGX~>)Wx|E zqmb>?lV=?fus_Z0=NE?yk#5ZJa1BSFUkEy1pJ5eKhs7JQWgb4O-Hz2|_=)zo4`}z6jj(-i z0%`P_1`(se$Y9W35aaFvvjqf6;)w{D`Q;#bU91bdpT1FRSxSR*Qpu6kS@5m#1ShzT zpUP>R#|E4E32(DFcwhI2HOew1B4aj|U`>H#-0^XKegVIJcaJeCeGXdg2eHQCg;3I` z3YDdYkVcUescaB}%KI6Fmp>IU`;%yHbWcI?Nr2u!@0}_nN++kM1#uL z64)O~;DG=yS@F;o*411_qnh_{rl=XSUis}I<4)?)P|Mj+Z0`!fB@>w8+u_ix>p}cK zm*URsGGH%U3O`0HJTH_;$4V0Rs%G*{w3e#gbAd&2?w}-a0WZ^eNloW(ggFUE@sF~7 zq*K8GRJW*;Q_6-A62~wz#AGR7nl|{#0=vo)iP|v>j^0r5HYLB!D`R#$Z>H8x+*o1e4E%o3)UvX=!Gt@Z|y;R z>f$E+#eM>SIy(DU(;b#c@3=%{n+_)7rv-` z4O`4er1#7PV7KXeW?j4&B-~Ho$l15j+wDV4#%MKY-0>KlIgn36%iq$Y+;<|Dd{-!z zPb9AHOTl&HIw-o5kKge1VB$R=W;i^;#8wuXy%LCb^frp0?}15mXXwu5sWjEQ17BV( z0S_}wNq*>Un68fK>w_C0GE{)n4CIiv6D(+xqAc-RS^{6z9mPq`1V3yYMaFAc!?OvZ zq+fxB$5xGnn{_N4w9k@SJU&AUZp=L#&K-8a~kxnKY?%9 zpTNAgH0gteNbotmgHUm6%vtk>Zgfl}GlG|p{avy|Px>+IT9*fzdLRXVDO!yUO!8=l zzX#JVlux!;RghUPHp4)7A&gGQr)T$>(30thJTqGkMyE!BacL@uY*>MM=e9GGRh@~} zIfm|YDP@Fnwvn-6pYRW4O&~iFzK@>-JDv%Wk~@2dvY`p=(a)yY@5d4LEjPT;rjy35 zevMstH&GSm548WT1H9%WQZ)k^ym0XuTAthhmygIGp%au|-Caaolvr>%cL=*~@WIon zGVq5FF|f1i9u@dejZa=ng0oi_5RvX2Ku>MSTfsaus9{D#RNvA$+QZZlMni|deEeiK zi|+1xL*HL6LW#F6=!bchB`3)4S;9{`uss z(0AIPEC#x>TyWdf=k(m(YLc*j3|us;fN3?;sE|V=cb^|hd=(FZ*{mFh6>g^TS`YEK zjY%NOUE4iTjYsBMl8E6ugr6RB#*KGM=w08vcyXm5X*8Dsk=*h0h{Q4mVlGktUBV=D zn>LI$HlT9XX2K!PR=k{bnpV7+hN8F5hRmzlRK7EX9C((G{l|Wzu{&fz%Bqo=yi^6D z$(axg+0-(2JmLIErT(=AI5?w(YR%OH-tKDLr8%2U7OEhjmr@X)r3AfZCqj_Wc!-m! zrh3m?h^6fkC^9$2FkcU~LkmY^K@)v{b1UaT`A$4%10V5fpHHUTD1gDxv(#B2nOHr) z&xsA3PV(65a3ks(UG~BSPu;5zqxlu!P;(UdTJ#uyK5&icds~NR*Pp~5O6OtC(pAu> ze+j#;K8tpp(}UvFNQmg#NUz?>Ad}?I!*ZE5kTu+o{a#fQMtC70i2^8><|A#BPeNGt zTY5u|hwJkd$RaYAJV~2FE?Q3_a-+Nn?`{qB?07`4te-L?wY*`A*`MX-OXGo591@r69j#0@$Zc#M#q@h~(>&Na*5J2+9#B zg)bFg)Hp}1y|Ie)J;;GWIrE^8N>k%wH&6>ju>Mm49y^m4S6tbGrPYK%K_Z(xQrQL{ zGja*@X_Lk6m+53s#Q^0jx=+#{r-1$Qc&O~wfl}VpWHnof6x#Q5?$?cl$s65ZQ@t~~ zKH7n-kT)a}>&{a)T8Ra&R>IvtX$Z10WqlIkgLUh)Ai5`y1dmUGSTY|(7w9o}PytDt zL-9$i*~I8(Dy@lCgxYJKaA-b1)$nY>J>dnoiGIU;Ys|ncVHdnlKSjPzC#1jY3Jt0j zhpoqtV?o|aeW&8BdBoyW05x1=Lz#I}WNmsHu{Pi(A$KIH%ig7U z;;Sfl6&*>g+g7s9HY{Z(3h)!%o3V7xt_M_e*-<*k(IiFXQ|O`YVpyfRm0n+)O)u>d zr;RRpnAn@3$6||d$lxRxH7}g1f(2o9o~H2`8f3Cw0SxU|f(0uXtk#}|CvT3YCp5Y! z3FXj=bDhhCQ|)eYw%ZL(d&uXROa+| z?Cz!sMTNEWL^8pj3TP%f?rBoTu_P!Vq7fASmkIr1fJ0!Fx>{jhk0M=3YME zqN1~fqwISFhq$d`nm^Q0$jZeHGoRz2!y@qRVHO;6Rz=bdR-`Y(3e2mP;r9y)sa@1g zy2enFY4p0hMn~GBfWA zgE{(vtpjx7mDXDNMpq16FSpQ$?f0qw+zEKO)m7}c<|~ssbPsVB7J;*kIt0wvM?33n ziC?BDgj)r|Ku;EZdANf0S!gxv5ltWlX<{V6I}oEUYsf*Qh4VeO!{#HNkh8Irj=yRL zUIkI4ok=0PPg^0XT!7aO7AJ8#ZB5X>3enKYyaztSR`+ z4k8{&Wss?$Nd-5{GA(JI&ocpYhVbj|Z+LZuGI+?GL^^cwot@b>w9kFI`7AgI%RK zU67u}+!86H-RgW0QGFW^e~F^=y0vMq_d0xFTP;4?yp_2>rI0ST7f8(8XOr&_=fQ)S z6i-&G#~YKDQz?~n2nu>@7(}LLrn>%bQ~$H5X2E$6OgBdGi^VJ{7>RUk74TqDxn+>YF~lC_1pD{ekmNaB zUt=#xzD)i>8>5^_??!3r1do_ya?kPIDLkaUv5F~ss)XgX2I8D`s~U=V!Zu_O!A z4M`)PJ$dEeO8u0*;pU)b4c&Ci7>hF3A0h97_Su1f}krbigV8()9XXnsnmj4h#Uutho6{C zH(3(=@+jVa%nJ@3I6#gH$U}2@62#wbAn%(7v4%|(nbNQr5`SFB1@>3y#HFKfnGhd2 z|2_?;$%#R&%meyub1fZvVF;T^D#LME9%3oA9gb~_rH^Kc;M8qJP;=)PN3J-S$R1W; zM%$eQ)zdR@v(zvh-BwQL3z!q9;bdZ|;s-m+PLsV~6`#ZeSxbh}xX;(852$+1 zE7W>Hi8LBrq)+!a5(KV{ys#Lx8ScWNSER9=CL&h_=fbTxBQjiJ#r?)DKtm(j=lf8`2_*ddLcZ9&Z?J5mhUC8XsNg>QtJ~-l#NbZnjIJq#9 z8Pm^whuM9Gv6tFTo!1Xz?Tm65k|`jkjM9nvt|fTBXR?Sl<;^%e{YYOC(TF+RhnA$+*TS>vfP&F*INP)2UH_;gn2k6epZL~sdDd}@B zBtoxW({~N-&~?venv#Vz(Rs~qg0om;R-P%0c5B2dgpwh%41jTW`sd`z#e77C= zK;;8kEU*HJs90Z7mor4QTBk0!H^ zjiU`m-{7?IUSthBo#nPI2o(CJ(1)WR(g2(5f~OcB$zdOfqdI6vUlZPuHN&( zv$zLoo$9d^T3E+g7r;XXQ#cT5B0lWVHu`o4u1NlDQoLU|6hYNk~VE4=x7S?C8UT0sy zt3+0@TGPat{5@67k-PGwqHG~le6%N;BpkFrQh@N`_1V2AbgE+%*N4uHah9M;zcL2}3?3|Ok| zkhi!LCx>1@D+6=M2MHl4e<}(kj-@DiNQj!tE+f4a>hN*ZXwaKtLRFuMVgIradUBRA z5WkId@4{2K{g@MouAjnKtTQ0tJoaRcL=tS0oIquMAmtCrMT2J^PF;kq(9Y}QWKd|Jp%6VSt699d92q6~ruWQc|4MVza}1FOQm;e#0>@O+m%S!4W? zQIP4NYNOd;?z4n;i5HQmaT{RS4pDN2)5V0VNfWEqmz*)X`w_?I6PaK2J;@} zx;H>UmM~K~^d32OJHV)3XDpZAfyW%x1bLlnG%nbZwo9DF$ohI%H#ouvmr=$tP2Smh$QQ+v(WnUIgoby3_cJ(o!Ex?6X8ob+}DgQBtLr&1d8rL zA1<^Z*#}baI6|J(U!Q1sWy(@2-(yd)xsBzEom zWV^gPl|5-k+?R<$Qi=h2Vb(%5Ce0$*b*o{C%X4;Gj*^*|MA(skwbv3VR^uA)+Mb*2E^;qVxqTN2QII@MsKaXi4VOJ$E(}Vf=`?> zQQjd&qQw>9-YXT7G5H$$t|kRfo@K!fqz#j;@8FLa>ZChGh?-W7A$AwN@z8(_G|U}E z9y|DxW1G&x#$10A+Pe?5Uggt@_th|@{}C&PS%O8u1pGt46^^x+;EERRUefv=K73dJ zT3>DiZ}b9Q_Pm1OV~LPmuR=;X#g5-->A;3679i29M&@Zhg&ks339IA)4(iH=oS7S# zYh1rXueZSrX;rM07y#O)c4VB#AidfqaQwQCA~7YO=;s$a#J5KLcAaHZ$+o-^`~g(1;!?D4cCHl*t87Iai|Qvg^y2PitoQI z!pI|<2zm))9t-YT)_XgCdC?l$z4(utnMFXH);+i^G66g66vyXFc0rEsN$BJoqA#{K zfQVTVU$5~X?YeFv6Dg1c`R&+?{7KH z_Qff?B#)ndZ;VS{s=$pabvWR=C!;wx1m3<+#0h;{z-;&fT#T4WY~>!~L*=EA*th@= zXS8C6hZvShr(u!dDu`M%Os{sA<`|nt7 z!)=&gqY0bdABLl=^WoxfE-(iVV*}f}PV+$`) z_IZlmtL%p9Gp|8%-YfTZxHB+Z@?c$_v1zF(qwnyB(ixWKe^Vu1thJWf~@vAc&@2I@R1^T%ligq zEKz{+udA@F@j2*k4Wh$w-_eWDx!_c_8Y?NAfXz-@h^hO|+grHd>s&E z?@e`H1+&JxSAj;@+W}S`+--_bHS9`a09GwjMp~%BMnK`0%CRKGdu{8c%h5!iYb( zgQiceMuKOzwFqr`#A4mxo}sJX$;i@2C~>%p89w=lF~2>Pix>$&s(nrDdy_b#uSsmPwyc)0!Gq?IC&0;o5{^(PH`_bt6)IbDNoKTh6)j z;#kYm9sydnCzQ#l>qCPHPg+vMF0#D2b9UP9N2t_D8b>J$;pMrutfH|FtoV<-XcQ}g zl`7K7w3Uyd=_j3WP~>}N)Q;0=lXev&9ooSRDfKXiZ`tA5T3NKSs+hTV?eh&cQ|;i4Tm}NiLuulV9o|l!GZJEGmdOuDr|R*X=r`Qd~$DM9)3~4c9~ZhgG;Jt z!Rv!9TlqVg9Y-H9V{oUcMf)2}d}0+R4V)pN*bV;M)|xghm@UVs*x^)d1~T}XA=cT}{=61$(^VHV{- zW-h&MVjh1yk5=GkjLo!2Ce^Z#iK4=Ey6_}ssnIqjq8?aL`MKy>KtGzZ<|@Onl3^;H z(>W!FzA3gOkdU%rmV1oIh*)|SwDRe zBdYR@sq_`)oVaU)w5}XtnIF_ZVk^2hle6A2QnqEc{-}_PB zyFsM&C7DT?yq4LOFa@7E>yDehARP1l4H{figIv1A@eYTxsK56a!x7KIop;TtnBpXQ zSzjAZ&3VD}eOQWxC0y~kXD>K{60OWoe=l?Yq7)v})`YU6Ct>?VQyDq3m&0-#L_8K^ zc-5XqsCLI@JZ8Zt+-)z7h4cWGS0*tJ&hpZ&FWph$sr^j+i8_mC-s&8^=z26`6?X<- zpNfs;o6&{!XPGNHUy=1~QEKTt4u41sp&RDzL-t1MjBNi`Msw#6W?x7%BYmxj;Wd;) zdKZ^*?%8BA@w>Vi-hlyTb-O8!&NILt=XA5y^>r{GPn|~{!{-_0Sx)%9X4TL0-AipXYf^Ya8#IoMA(|2p>e)pK@K*${|jXdO)LyeO$-fq)8=Y8lHHtnN0j|%Re@}lG zNBn1oKgOSp{SCgC8v*x6hJVJm{h8vAfjT3RsQ*gixKV9?r1%xK_GkPbgK&Pw8*pPi z|AIICGyac(3curv{tnOW)ZaVtk3k5(;~Tiqnt!R^_|N!1ZX|xk%W?xZ|AII9GyabY zf#31@hJS-M{WJcLhWtBT((G^WW`D;2(FlLX=Ue^_e%hb$e>9_!nCpKfS=R6Pe;Dqc z3H~_4RsV(NUTyjl!Qb1SoAanqQ~rTd;@A5p!$_>{NcykeaU-GV++>b^{c>?5f$Ti9 atbY9;iCA}Y790u1JLrdrnjinHhjb+k6p-G9&UE)J@HBDP6G#IXTX7A>XnVnhh zok>`2OIJu<=3>Z*osZk$-4OCY zn0x2WH|L!1`_4HYnivn26_<=)oF=A?G03_;ZW^?Y(+qbEDulyf9AY^*3e7TNInIzy zj3G!&%G#8}sX>H`nZwOD92*h=Ss@H!Q4Vs87_ungwwAdc$+QPGoFpy*S$)tYc9QVq z!4mv_hUkdtGMuKwhP;dvUxb@f=aAuKvTCnOQQ~@>VwP{^0Q24&y~^!E0?xT03^k?3+kFAOMcLQaO-AVbU?WFUi?vF_Ivo{)U+;T#!!{&%zwEi3L=}l+`v~rCMT{h{_rp3zE)QinpLtF=urp z!HMq?+bYXb|EaZeO|4}rZg<3Y{KlDO1Y?S^4EtKENb6a>uLRrppbonV-97zf_IIC0 zmeAF?s)gXTB^382!^ZDFqidHp=)bD_<&WoHSyw-aKA7p$V&VlfCbCmQ`9^f^^)GTr zFLbfs;jQc6YDD0Z3JnwfxMWRtZyso&^Kt#nLj!-kKOf)J_1oskj`?^~Lw>KO?sLn# zZ!iAB;KM?XxT%^mCi8=WrHzI@@Guh5B~E}i)F?wwMyQZGI(-9Hnt^SMtJ z(Q98WbbLFvh)(g7w*)Mr!_%`@-d6WF+pEd*sf#G*#TquFW>oRf_WdVc^3WgejkHcZ z*N;AIp8ck7MU>Lj;?fr-N0N28unMXVrODlV`OL z8xT-#Y*Vcz!xqu01w;wRv_yclvNpDBjgM^4{|8VGMrMB0u0Io9DptwjkH)QZeDAg? zk$tCF&!cgFZvRXlRq7OR`&gf%7c~V=nXXIyQLVW*qK4n~wty!c4;EuB>{+&hdb;*6 DtHR)0 diff --git a/models/checkpoints/dlinear_811_split/test_metrics.json b/models/checkpoints/dlinear_811_split/test_metrics.json deleted file mode 100644 index 52d2f65..0000000 --- a/models/checkpoints/dlinear_811_split/test_metrics.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "price_mae": 4283.3626861511675, - "price_rmse": 4735.107859758518, - "price_mape": 3.928560493143656, - "direction_accuracy": 0.49637127578304047, - "true_positives": 258, - "true_negatives": 2341, - "false_positives": 255, - "false_negatives": 2382 -} \ No newline at end of file diff --git a/models/checkpoints/dlinear_btc_1h_forecast/best_model.pt b/models/checkpoints/dlinear_btc_1h_forecast/best_model.pt deleted file mode 100644 index 66dd462396735c40c61b031fa5375de37a6bd072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62372 zcmbrl2UHbLvoA`{IcE@%oHOjHCJIP4V?>gGps)#M6jTf#f&z*OF@lJwAO`kSBZ7(w zm@uJ&Sri3KnDuS_-}}z@opbKFYrQvX&04djdVXEqT~$+ERUHv5EFvHvAtCTzE@c6E zftdJ=%&2*(aq%g(anYI4HfhNz{yx$I)BfYi5z6KYm_;h^KmXeEr2Ln)%1n=+ANRk6rVM%|CcrGe^}G`2TnJWt2dsj zAF24C;r{Yv@NZy_+)@AVW%$4NGWx@p@jpPLGr1!SrTJXU_1%!gN)^II@wf@YS)jx>VnOvLkT-!(`K5PGu_?I`kf5UU; z+W)~5%H%rygO|s3{KK8oKUmJ0T$k}&*Z;zu^a)}WzXy10A0D>|4g0F|C&1AKg{|4gES_S>pz|wkd@61jFjXL zHfmmcX7nH3;Ew$(K0#)Y{I>$!;B0QlU*TL3pPs>=TW)BuU`C`YpA;7#n>sHoH6!WI zlyk$fx#5X_X&V2TW-~8!LDKw$sOSX=+=y)MxPO}I{144+{xlt*&7JU1Q+a;V|D;{q ziP_vq|4?QAgZft}xs$WGQ~n`I^GW}*irmO-?$m!Me+KX`6dOD4v~2G5|DI;gosrF* z`QOtVxU;gkQU5*7kvlt^8~qRMkEo|+Wu|3iMn&`O$b!Fe%8kk9#{Q*eWyC~^@tee^ z&YzQ%z>SOjYlAXu;{F*ne+K!cOUf_guZi*f+enHVZ=TDYlg&*q`@4Wi^Z$UyCC%d| z25UwBv4bh8smU?XvB}(|;Oa=eaTLgm&Pe9YjgNehzV zvZ7PCsq3?1vTP!P#U+|q!M)Q&1qA-w5&uU^ts-Fjua-Jyab|q#A7kt9WALx0`ag{J zzdWTRWoD+t|LH3ao@)M?%Rl%3xi3Wl&cF8cNAhj${C!;iuO0nMpa1&kQM8V^W+jeO zEA2tjsDb_LFO0Xg6@jII1NtibVm>v?F`SM2V6op)4Eu7K{dsjMx;}4Y;y*3GE9yDC z*5nrE?$T=J%hFtSqL~rAn`{hE>xxn8kq=%w+RtuRyv&|Cv=ToKi82uxkC_sIJbYqd z1i@)lZfgt=FjC|P8#nnZ8=zc@A)i&?&8kW~Grx;@CpE~F&w0(*ChGGZ-jc>OcKPhF z?>WrG=N3%+%Il1YM6tItXx?MUb;ePmuU?i zk!xY=Y#Amn;~A$-Js+#XW}^PmEYLo+5Ej;IfV6fFto|qro6Q%YT*(ob;8zd>edTq$MA9@T=mOCKD*TD5G*#}2mssx2y|?S|Jy z4Pf{213U9d5oes=CWxLthW&js56u#5m|gc*!i$(bCe?Wq&Ul=LFCw(?lH(EPSxXuG z(Tr20Eml3-7X=24~dhmqdNLue{5)8(`9{QYb8l zhE+*&yr9Q1n5MFb9XX_p-=^z8!Lw3!dR!bEHlN4bd^H!fD%UabFu(|IS%np%LmXMl z0!~=yTPFKsHul|ZV{2~zVt*>-uu*Ybq#9O6ARYG>*19pGA5#}>-U!XSx)Z5PupJZ}$( zD@I^VdIh`?w_@t{AWuy-0Uwy6i(nw$sB*}!tn)R4oBMWrja zO)>%A)NSxu9Xt-@>2MgXHJHz_z}7Whicf~V z1T(C+)x_@22iQOQC*9>g{{Nf)IsRYuuV>z5{L=?_poIJXP5+$!f9c=zm?~`3yuld? z3nOo3Q@L^sVgBumz+li`Lp z?4h+@Bu)LehN+3sqQ)sFvHgo36}EW* z=3E_mt6Yo9U)T zs!h!3u4695A?p^~TK^o!`YF?2bJWSxLN_9~?E{DC18-oDK7mR{EKn5(nFuF(WbZ5( z&fw5ok*`cp5)XqO)}ddl1C2Q9z%jmOO;#EJeQjS3cF*i-@}e&AFfYWPB<=~pvsZ7z^_A-6^sXtK51sCKmFq_4ct|pDg5_w5 z&NWQ6-rV_@eA1oLZzso*usl6YVHoGP%Kc z3e@0-LWK9hqiM>*>7em266lMs{PlRxq@+H?R)O_+dcOtprBsnLhhO5no=GrhmKNQ) zuoyRA-h+)^DwL6E#??`LTWxp>BQ{=QK7X(#T1~FBnslS&>!;w=tivjCOiBCCD42F% zj9#+;h>L4SaEd}Z+&jJoo1$mtgx zs`+CVI*y$O;p244X@^gEvWo{|GT+e4(i&D*3zMSN7NkFGKHROZf{ayenA417aEo$DB33bGmJj!~62HK0EFKrvvTi)PEEggcp(>>^Z zR-AgUUS#L9_wck{ncjLehH7TK!i3ES@$MQ0Vl;dd8nvdvk9)fzUrH88?H&)=Yim$8 z(T`{b72rD48BC7)4}2&T462)KiHbp$TXv8bDSGz+RE6DPw2v%Rlpkg|ow~Gtb_be= zRiO9@1<>yjA*zlmhyY{V94R&vGBTBHR+a&L4s!22W7GwTJ29onyyF7~z}?){NcYML5=NN0lbt zgIA$eaJxgDM3v=(Yo9NE*``f$uWW~A<`MI@OTnb>#^#uYqenVr}0*|{-vpj?0oT(cyi`D=KdYpltL)pq*( zW0v$d(UC4u+P&c{h`&6Jvo89QIkM*%XC-;sr|3yGZGXUQ+Nw_%wH?Q$+CkVaa0T?m z%&7Mr5pXo`;w_dprgNWFqEW~zXu2YZM!LQve8NX&=>B2m-K*ayHv1ftVqe5DseOTt z?g6Cw>I?MsGKH?&o*3fcLC#d4LbqlwqS7J?kM@iMbHmB|AiQo3*wTTPfl2)THW^{sNP$M|UJ45G*0w^M0boE0q)wL;)#ld7e zv*ZLWv+Kki4Fd2>Vgz5`TZH+yUqZjRFg0?prOk{e2D47IyIqg47XnGS=~mDf_XEn` zJOZV5Q%pX223n*Q=#BE7FkeuDUd)MtsjWJ+NlFcTy@jYoLKq3R7N#aMl<{tx3(d+H z0>7?MXwN&sezG+rWWs8+i?*Y>4x;4b%3HWCyc)OF9%P-~3)6GT9T@1~PQOHL#yBW~ zyQfd_lr4KMt^HHJ-&)P6e;I&4-b&6~pHjBLb2PL&?7|~ePIUNf1llwX0E{>63vL2b>9?ZY)3;O$9Nv?A!9Q|cM z&!75*swI;c|LzX(-II%j2V6;QT^_7kbpuZq_TZ=#!dhK5pz1<4g!v^#ce^ix?4dRo zs2X73JMLv``pxKgvrVw9Tb*2QXok*;YYnq}$c2;grM<-031ftBq~R6WxiZ z`0E7-oIZp?{dxHGO&P275n&h^*Yv~7wF$&kOu zR!%ad8mYr<`($nVB)dI`H*=V6-E>w6*}obf{2|ydj8lc?#3)ufb-K*JwDX3j#x1F*H?~ zPKe0B6YkIO`;;|cy*v-z>6#KwVmChgDNm+NRUqH4O1ghEJFs=g`bXZ#j=4);Vxyj|+_}Ylqk?E%?*C0BtgbSP=^yyqw*I z!Bmx`eCmST4R7In%}FR&=mV>c)qrNK3za$f2AnT8V)Pt$s@HoD1Se6PjB7AHXf3~k?g2W^iOb&ReVaL*Wkavp*TBWyVr0o03LHgUdSE_3 z7SppEM+yGK3b!WKY1uZMvh@gjTx|io-9IoY`a#q#zpHkLUk}X-s?gIn^&Up8%O%ERt2gRV$f$*II)rQB!c6d=&RKcup>Q!wW-l2 z_r}}-Mj(`+nl{<c>KGwF-iQsyzBpEwJthm1-3aYK6KKoa|8n*ueH{t2qRGnt$T zYIM`n4k#aR;oO?s!}x{_F{pJ8QvKAaRc95OIwh4UceSBmpUaV6*?^x)*TBqzZd5oW zNjEz-K=R9r&~ed*`lzo#9!HT@K0d+T>@S0%iJsI(yb6@W#OV2tuC(In71nt3S~Q7s zC#%^;3>&zN-rL=1zwHLbsfxhxeZIVfbi?#SXKJ_2foL7AMC-5;tiR$;HclKx7UuS% zx>PY1FN(y3(y@$rs~Jt5aSI$)y053tr>2uZCntq#C*Eco&B!2GM%vE^B48mYLf$g{dVW=TI%EwT`lL5jSO-44dX?qn{t zBW3k!)GgJHeoOQR%ka^-x%L@|W%Od_v_nvKZ3Be;)}ca+>LIe;2LxR7$u^%r8u$A* zBe_2x6|2R`kOmKS@8FPb7k&)-ur-O8-Gl=+Yq7E~oc!4Tnpd>+6ui~ZrQEz8)?Xux z467N_##$MAcI*TQPB;RW;svRSmp{omXH7SCkD|9vJV1AD9Sn?eB+C1bf+w{lyr&H9 z4oyMv^ied@fgwzk4VhLx57x>&M)8=V5F{6lt&Jj(xG<2Mjc}xG<2!NQY&-f)M1cgf z48UivWK`#mw|T2InX8!%ll2Fe%t|yVIErrqkjd;vM3$5bC zptkM;9@ZBp&-%&$v%X`&Xi+Brha~m*{R}o9^J^+{bfR21jL+rl$amX~;8XDoYIc}W z{l_&>pKOh-O`fD^{1V7)5QCClWh&f6VIr%Dova#J+NDLVeo`c*LBM&}_W~oD*W*hG zd)hjYA$!g2=@^MD$ab}aVCO~bTV^!zyK)OO2Tvk%RG!+NQX&cHj4k5FVDr~Lyti78 zE-AJk=N7xsm^IpLaJL!M-|2%gvmJG4CuVjG&SD$X1S;WxKpK$m|H{(fl$<<^j(rn7m*$?h8a}z(pfhl5S zlzR|_9JRxoS1&@y}CUP)5> z56z7K*fV(HaS2?i6(e%yT(n%#3%WsyP(I$53{08DS)gBoK}B}NMtUCmG|ZmJE-%6J zWk4^BJ%at52F7StC)6|u(+^?;uzGqfThgq~3mTT9rFlo)$Kf5uDrpZEIPHKuF;O__ zuSI8uw8LP`efFuN4db9u2JWvo%c_9nqHW% zLWgz-;AL%B@JMaaYT5f_x?Dti6Qa_xq8Z0Rd#0;B{X5S0~EGtHadIwoFu` zBvGC&L1)>R(&81GqR^B51{vN z1DKL+MpR4=G4|J32$ro!1=J=|g-)bof+5kZR=}Q}VetO8Nz;N8@-+F?C-6yI$E>{R zfKnZcuv+LRYRV&CksgGv?-F3lYzB;NrD%MlE$iEAM+S7f>95>7aHW=qaWVZc@!l!puxrB2LQDFYG%zfhNL^ z%XU=y+d8OUsznE9%aP@&({NenSf)C|1=PHD;n}T^z{a@%JDUf=GqI2Z*533<`hIYd zzs)?6)n->L^dOt;8ZoYD281-LV6y`dCN>!*ZOfTeZh=(T&XwMIv7fzO#-UO>*Q2tR z2NAt5OM|6-NQmxU>?@SUfhmu`cd<0t_*|Y^M%m(Kwa;+1;VE*Czkxg3M?j)bn6CUB zjn=DO=ns2SIz!%^HXYQaDTPbnUW+trIAwslgC?+L2i$0#;!7rH{XUjNY_H5N>SH%6<_DN&yZVj1#7%?ze^y@k=w`M$^}Z@N6s8RMFR*jE%j-8rvmuKI;5tZZ{^uTc4vK+T)9bpWNu0p>d4wl(X>QszGAE}~ z3OKO~#K_(YSL?s*QT*Pd~bIfL+ej3SLX zmX0DfvSEj-8V@E|F?2|bI z+LjF2J!K;XwdJIBDVyCDBnjSx36<(TVx2keF_&H zZtBvO&h^aA8H?~>LLGZ`sVw=GIF`Jbd4{K?egVD0FEN#O_Tb1db0`Et7<$H(DYR{5Zn_(gSA_=jITH+SBZ72prwMg=xSRPXr%&gKJ%FOFK;&vY z!RG>-VcrKR;-(SvzhhQTQ&_l7TSS@;sh2YSNt4fkVE!!L20lQ}iG>OdF&R3Uxc2IRsH zcOv*ogDi=sxGU%pv(|17X#K3l_l@=>MRS00I5C1D4>Is}r5dSQcNF3;KSa;9lc7fH z0p4AriJojANl14kC!N*E$!=THF;Sj~P&0Zy`2lJzeE{bj2=z}7!DrGQxFPu^u+J}H z1+x`*W=+HT4`ZQs>@a+|p+i6F$`Zvqd3NFL^KAQZUHovM6b;dhc>9}^TOt*3YXLe1q-ygL<&^l-i# zb>62%{S9S_u#y$bHH(F+#T>HSS`k{?M2YRDb&wn~iWVIrS?(=E;FTqb zTD}l1sVo`)i9=WWIguyvrp)W&)0mv*MQ-)nhoaO!o_cPj*?@W?{&B|21^ak!es*AIq%*7rNHJZMFLrvBeqF>|= z-YnU3Sbg0Ec5-Ei_}59WDP}9?OWuXM7IV>Mn=<)%`xi(oIEF#CEZ%-qiJN9_VwBa# zGY1-_SQR-#${b`N;-eoKb<%{Iw>F?Ozt(0#ULa|2v89P`yvWw$jzkVcaLn4TY{+gO z(x$CUXH*%`nUTu0E=`tPlvSW7KAgo@a}{XD{`-)#Z8UxP)|XBnBS@}jnbFnJ66Dla zLZ=*4C!9!ky6;mWMw=aiyFbjxrU#=)y!BW(9Oy>3WxR)${jXr1q#P04X^Fot-G(aj zD%@;S%Why4@$Mr#dND$dx^Xobi;he1{(L1X#rGe|hXu*D9mgS4Qk#Yf^|LiLeQ05H z0&Z7KVkW$O0)5Amu{xp=s_ygw-tUEmVRO>5=MSG0LQs!Yj`*xQKz2_n;M9 zr=7qLKkHD*X*(-FU4c^J{di;92)ZqjW~+~R&SM~!1Ac*OcT-Z*e~PVq>_n_$CCPV@ zI!r}J5mzdDtZRRBG`5Y{}c!6Dh>Htj3 z@gtAl?tq$yn# zvly;Y2kHS{zzH)aJH>&<@q<=XkH^qieGXLd!2~Et>}Bipb0LnuKT|rn6}#L+NOAji zOr8@!LRPzAZN3HL&foV>SW2*J^-+G9S(ok)^C36)o&#TgUf85FfZE)*CyO_lQ-L?? zM9{JZ#SGn{X!4*(otpu%^pJ-aTlVp6wTk*pIpncU~^pd%_4iUyq6)UZ%^LnBCN z;#M#XH^+!`KhT)Jr|U}+C6@1x;)R}JkQiHlpIbZmB2M=L08N-8=~-g)3QMb4~io{wTcH?88}nzrt!?H-?yA z$NZ1drR0;5N4VR%I&yak-^$LX) z1?iEtF+^ZY1uS<8p+N~8m_ADg^J`9`)1VU7YCZ{9n|_1GzVC2$ej)FiYBDMW$k4jr zjj*_{fo*=IN5=Mv(v>2{^kT~_(33dKiCwmr*)q)>zWV8sz1ddi619#^IPFKb?3bnD zhOM|@rYXAZP^GqARzyR3EQW7gkIzF@+35YEbl1Jj_bsz+%n+%vHkj>s0gLj)Xrj-1Y)LSNftRhQ)V+aMJWhv>NxH-2Tk!2Z zcR8HS@+O~s42kbMW5SNtqAdYRq<(8D^j6#fEa%54Kk8A<&?+{{-JglIk!MeD+5+W8 z40+LV0s6KWlkbO%!Qk#n_M(G13C~GH&SrUL)k|F%&*xWnwlDdxSc4jbD6t`L6-m`A zO>#k+2j&Z=Ag?k4sJsw-);I+zO$SjV2FM=eVq8||N`-T}nU*E@*|GsO+L*GGncSgD z4_4b#uG@9A9mC?~u8gLc$3x&^nK6pCh|&waU2yrPDB1oj7pS+v*mJJ&v zOnB=|$#R7da(I+KFZ%HZcE_}0UdE6cz5dk$+Cw+dHNuMAI+}pBeE(qU zJzugV>pt3Y`j|~i+;E=iVi58ZC2Iv;Nql21JUrBn+}Yk}^7c4Wy!-*~{nf;dtvJOP ziSA+R`FRwNtt(N^#E`BE3xez<7ouM~8=lVdqfM2naAdh9eg0S!CRVKCJ)C1r6PHHA z?kYqJ`6+m{-I`csJ%?v~*YKKc9%Ng+W30q#Au>ywxz@L6gaPE{2NIt4f3y2^o{>9I2S(fs1k_?GiuZO*x zO{t>fecWs;i3bB8Fk*`&=z4h@PTJM|DDE1KkumNM> z1kP3}_Gs88O#55C@aGqIlGFSUG?Xgv-ZdBeR6@w9FnLrmvm`1(ds&MNb#k`Tn$91k z#N3_hO!BI{NyKmkFVR4a%qi0)KRvcUmf0z|AJE2{haBe>KdoT2EuE;w@1wZYrGlR) z(IMlX%94>$lNfg;P0BYMpqKuRw`#8eyG~D!{Nme`3F`vrp&W6Vz43f$mS<^96?<(^vQLS|pRQo1udaaK zIps{0hZ8yV{Q*qlsL{te*K;;Z_GI!+@4>gACQyE*M|DyOJ$1vAB=1zF+*y{m-l!Gl zhaKm|)q9Y#d86sG&m1bdPKIzEJjIkLey~i|r6`8rSh^ z9c{t1*9=dc{>&EhZAI|#7REHD2zGz!hOK56Wc`&c$PZB@AzMVjw{J80F3`lU+&;K0 zUkk?y4Ty!;HJA|p8D*DB(XIY(m?M`9!PXKn#$qG%9^C;yi!+&xE1YPkb0T|%&BYjX zYn-2VnYp?`jYMeg#ffPl1Rkw{+?lTQwEPAf`^AqKWN8uG-A?2;zed7*;1euVGp7X^|H&HETv45)yD0)P2h^c$`3JZp#;>V< z+`&dPj-d9Y2%gK-+o07q0A{nTNMC^sx#4`0y zO48Yy`|xT;4c4!;q*|xbFll!LE`EO<@>M+W(-UiaF!e5)l^CHka(IohgdW~6N0wX? zqDLlP1plLHtm2+Th@R}|;bHh0B4loZp1|m)*hEie|LfPdHF^izF6YemV^4wil6x3Z zX9K+XOQ1ecgM4_onQh1sqvWD6E%{;#UwefxVbMaoQs+)(w1K?MzlL%zt*Fu3b4@>s z1L&+tUqJbhGEuaij#nb{up%V_i_AMgV{Eeb3~XN9&JJmT8D7l%4a+!pnuqbm zC^537$DV#&I|!-czvA4Rr7+ko$KH5+1rkNv$*Ip?G%LY^2rSZ|{wabW#kb+Qdy4UJ zuM8%1kA?Vzm#mJ)I8YFX#^*_^(V|O;7DZeGh0XG`YRgNI+dKy7@ta_Y#^iC55(rG( z#>}58OTXC!V8-O@c;=Qe(-t;{w%#)(ylJN7*^B~gzug1M=UGO1yC}K0(VL$)vqq>7 zhj^V@*6FD#8M$RfrKZU<6IZFzMJ~EjURjxF*jV8T^(h#xAp_#4g=zZWL6DxZ9_o@M zp*CSDZuc@EZ4Roq`1}aQUKb@wc~Yc?+JO$qV+z!A@p8a8FuEZ^ejd94(>IDio2fAU zv|EaPO_igcINsz<-BEmZvKjQ^74en0IJy6{g0uI!DZafWMm`Tol83q55k!kYD_?>3 zx;l`T(cb}Mia4PY+j$!Rs7C!NR?Sw7+4fX~ybc9GRVwVr^>5rwe$iU%F= zs^Z7sJZVqU2oo1>O?{jMY0v5x=xnf?%{?GX>YfTSd-?hFd!=V__}Evp__72O3N&et z#8wcd_hHvF85*kG$=vAK%gMPs%uLDhqpAYGSnDUYq~ZGx&^|9guUu519-JP2O!3KS z0Z}b-K5r|?mF{P~N~B23Z%^tWzZ)YwMtBGI*^}fJCGz$3>!wRWfppBJEjU-zn{4}T z#d1#M^NM!WQ3!P`Mmtciw#7?a()9>!*%7ww`3!J{5@G5{Q@0GLVRM zW6(N#a)5IiUv9XDYGDRl3<#H^z`PUCMNqj3HQ^Q01NH zD6tuCm+;s{2`clx25PL2z#H4sDD^EK*DUuUjrn5alIoKtUfBV5G)V*dT^gijt2-HO zxRz(yTZ|^toG53%6%kE4hR43Sz=S@A?ozxCGdlS`!Jso$%(bR7CyCPY6T49Ck_$ff zPT`pE7o;Uetx5RsOE`S42p)PnlPZgFnqO#3c3qJ`uODLcg+dNWgap#$ehy{t@@w>> zRjB;bGEh0U9N9$$?2GN2@JnnU{iZKMW_9giKKVGDTt3M3ZIq*r6%a;`3^AkTH zVSYI0(+0jAtUrsQSN3>(RuW;V9_Z8j+yLITQC+Y!_82pmoQBVj9cNl~{OE1(op5x( zgFZW=KuN7A;Td!@cOwkpi!L;na5n&FZF8j{~YIIRwcLIs!|Z=S-7luM9hP>3rZ`O|#c^LU}+7|fke zi+8qch1p)i%#GF&NX@h*KH>-9fMN?y(RcwpI-Yc(-4Is!Taz>Q8?mq*Xu2BT@2m7h zrBMnmF7@32{G~0A9 zj{7P~Hz-G9;@LI$c#SvF`!SlH-fe^2-gj`)*_F7isDe31`7(W&p|gx;us`10GV_{r z$;X?m&=j7FC&#){&n@?HZ(kG)N$tdngv(5@{XT4+>i~}q8<6K-ui2;CYe6`5C*B!w zq{o+ifv(T*G04MAFoH98;4LpOpS*4ijx(uhT*_H8{)Xq znwgBX{5;zT#NOWt>u1boxVmbX71Ii5l%C=o!)Ekk8ez%GXAoJ=k7e>}>H9}SsBw%b zZ}?a@+VU>r`P~|9Y}-LN5BH&9nHyY7+$o*@j z*SoJWUV8*kOr4(}TJ6qWe=~@BZ{I?xoIM3cBYb|fgBg_Ai=&+@K_XO^4xLtIj<+j9 z=rui}ELV$z>m}fwr7K)JwT2PiW()5&PsEi|4xsGM_wYVLhtAmVLt-yjk>R6fVJO>} zo(r?1ZSr-xK%a6}cthoMeNxFkFSkc}2J8OjJ9;b1lY=$lP_R{lYA$+< zT5o@_0d8XCfLbhgG^^2dEz23p;sKbc5{$*arl8iLqv(+%OXU=}nDDh8cLaWet6~Zy zO-Y)(J9z>*dQN2Ddv#W@+>>(pO4x~4#7UA@4|+N+;^^B9LDORX`2~I+B))A6JbpKp zj*Zu+xmzwXH{8mQd0LAHZPA!LKcICE=a6u!t2PlQ{NN zH7y_3A6>(Uo_C`vcc%i+iQ(6fdXQVi#W>Dp9tw>zC83Z7H=5tTue&C+C`yf-;h&pO z-1G_BhTq@^&J(;=UWhd}9f@$lNGYMv`kW!NUB5NAn~DtVZDeKO5+xB^mrpWwG^1L{4oq7o%Gq#?qPEDI`zJ=5FZ8(e0WRjaU$ zLQi2+b~>m|+6{MKOA#~sH(1{|m3Jt60C%%{(9x}egA;^t)_N^+_R$DFj(-W~`(;U? zoGs;hLNH;}Hm3ajY3B8obNFtTGQDKsO_!Z{3hSmQP^0O7Byh7G8B?WBMmCF4fh#tQ ztnh36#y{`4!`z1)9{Ux#xd&mn`Fo`IkK(!++wkGH8KBqk%<1XxYSiIgDEq>-2~Q>n&>S&mvQS)|hHv*EPqpQ! zt*N~cQ)`WB^~n+TP_qx^nhb*A0Y@+` zvn6I1_rTJm9L$cEqPMaWaH#(inx*-$4RUvw_*NULsUl4y1Fyi&m-1x7ECDjr@(ivx z*o&L$_%=*miwJtEk?ltm;O&tmc%@dD>?@><*5l`R(V?2r;_&MX?!84zeh#^~aRV&V zn}d@j6lj~vY8ag0PVW9zBD%V#p>u`;u_)Gt;jIO5X$PSR9|GA8rcvlQREc9-DUM&u zLNY%d&b>4a%(y2Qvx!2?g9p1=Jufv5dhY(|UjgZvb=V&(m3@ivb150`YY0#H& z_`aJ%&3^mSl#(7i9J_}3VJk^I`R5xxuYCtQ4t?OujV^U7S;O(Z^akhlIaBjZ_5Apt z6>YH;CZmKN;4`y_C_Ezq!!Pq?FwvVzsVmVTQ&D*5FGfecy<*NTwP0?%K8LR*Z!-3m z?!$!9+VsGSi~KVVs^oliCT_fU3EI!-Gu-!k+1L*TBu={)%9eXz?13}v>VwGUb=SkJ ziT5Gv{Al8ST^Dvt-HEt~k@+WZMM z*2t3eD?FGZ7saRn-xrkfeFkqVOsJNqDQV%?E6BJvVp@1D9=B}64r?1aBCmw$i=M+O z6Jt{06GAkbRjKHdu~3{olbwD>f{7Xa#n#Vq#@OwLSTTMbR;=|&#>=)1ctI0z*>p7$ zt*#GqKkJh%W7j}tyA9dA`wJ|jFLBA#`MkVqCsDrtGW#Xkn)ckA&6-~t$GmLd*HC*a zkR#`F@l56@5>n40Lk7Q@qTK7?Jt-VHxvF?@O%rl%JU|2Ie#kic7-t9AljpZ?W1)i$ zg&r$%a8RGD{-sGd{RL33p3YqMRG^oyDwEgJe&pD#ZcN&uf;TR_f_Kl9i8*&N6h#FS zmx+30&U6D3^HZF3j`ko`T}{w4_X)@=?E|^fa==~PhJlk~u>B^#{wA*qeq24q`FP;1^BItj*Q0TQmVDXOCUo^!6x`}01FcE6?XKRd{1YJCO!QGrcsShAyR|8mzToNuM$}4dyHPk5=`uCAmddWdvrYk zzE#hq=G(#OCXqu!H`t-}Cr>VKN-3N>Fc?pEJK(K9OTpC85mNV@5-nbRvNHO{c5a^0 z1pb8HRXV9yA#O|az=8#VtRZDTb#ythTx#GevJlNQnC^GI`3{tkn81>MfEs->U zy$;XmsNP_@e^G*EO}q?_e*0+6r+UJoOXPdw`;}mqi=q+w{_Ib+9-IDkF#9z30XOkv zC<{yf$DcPUqfaf}u-8f&TWUKfd}uo)EJ_9I$mybIhCjLJL=`-Hv!LQ+{#IDK`Z1|Z z)n@XSggoPyJKHsVEdNS(pwL0dfqTY3p-B{kU$=LNc4b?_$-Of8cWMkxQjH?Hs9xxg zG=h6KzJuPhKVW)cF{K}tfgYK72pZZWQc*Ie$z#nqix#1HI%pldO|iq~g?V6PkqEnP zNTN%%CHk(>t&9)ZP7(#{y`9)V{IU`4MN{WSN(c~v(lI(!4n@Ks}@lMjH6k-&Fs z>Z1eC2cVAPe}w6bru!a(k4z6OQcAgdQIcqJ)rrZ**--JjPvrKZ5O!YCV!!RQAz^YO zoVz53vG8}24gPRKbAtPdcmi!}0 zDH+ndYl_*G4(ys$KNs*v=+Xo);x`B6!P-~DxpgX4d{m7SN%xD`3O5Co=;n%DAI_4y zZkc#&mlpcf?xD1$cWHKi6yNhl0k5^{()%OksPNu}{rMM;ik+S~VT>HRoZJr{-BN7G z{9Cj)%o`@D0=u5M2=ephlHuoEUR_<_{hvr+s$V0im1%R~ciq{F{{m2_vJYmex?)gG z2ds>{3Vr=XI8#>{Zx5PFLuN{llKD#NkJ?UWrs(ho((Aax0q;2V3Zd_$d6QiE`Y9>BPQ z9?o>iYI6A&A*!F;N7G&X5tLOi&%zCNbQ!SFCH>;zUrXqugcc4t<;ymGjiSR3Jn`&~ zNTxqZ0Z%10(%fGYAknyoJLjdzK8!Fx7^ccOpDv|YJwq{kJIA72oLRI-5qDsS4_jp& z%FaAWr*CSH>7~GCnk+M9ukx(e)|@8ll07J{h?8U0Ulwyko5RuZZ<@H`g&ua?oW&Kz z$#Pw`Q{mX05N2aH9QCR@segtv-0(JF39Zh|!AAylr(fcyopP>>aml9xH@%tCJ#WC6 z3;gaiwq#c_m?fKaaTOX85WC6|!~DPVesO6OHEJacwVF)RHY7QM?D)4}9PL~SEnc2%-HJhESOC<~Zp?m*^7wY2!7O6?e!8^S zfa%nofWmz;5b)z671sMO?PUf`!w_&Y8^!&d@gKzSvuW#i5tCR^2sy&c>dMMua2L91 z6NkI8?p80h-o>2lyHZB7kweI(%ZzQmoDD9=+?nY^DO_?}n8Brs@csY~Y-+d%p2IcR z(JjkprT0bJa;Osm(_C27`2ujN+6)nj!*TTVXmB-CU|C}Zqv1PA?1(qT;B(SUdbkx! zd9aJL&Uvt~(&KPG*`K*gwLmjT33gvv26INA;jAtSeSo`}U@kDTozchnG1o>zYI7yr zQ*lK7X{q$Q#u5(&I8m$SX$aJhg3q!cn3>v2g|WN%=kD%oe5yCQm8^_>&lK*zMN>un z=C5JXj7IUvU+Dr*QBH1a|AM6bVaONG6bjGo2SiNyN+Ul?;Mn3fAUR+^KdDp5tmIAM z!HybO+d7tx7s;^vK`*#%r$<2EPmM~4v)cG1PZQ5ysjKwgrizI>bm_0lDF~bQkZjAx zk-keef2Zyd&A2UxR=@1&GrCKsCcV|x}M{?Ur?o#@&5qQnb55F$zpunskSUItpHu=l0myX@JF&C%Dw=3`)#4#=MDpM2j+9QRA$SSe$!`EIYQ5>+3kMeQ}(`TYS+X zSRU7$@a0!68Z2I4?8*+*-RB*j&n3(OP`|aG(|0mw50ZYuznhwD0XGS1JKOzGN?70R+!QeUi2-+0^Ave(eF}Cjbuc_T|PaGww>!E{p?rV!kKY=jMOvwchQFVr#Q0D0{35%=_o2= z8nA3zDZTM%6@RfYWf^1a*^umEEOEaZ>-&=mo4#!l^`DoJw=!yy}mNsbt=)CmD2*Fw$k7|NLX8yeQS(p>u$+}&;W=$l^-tXnI>{IdgTmDml> z|2oL6xv`4kRPWG)<{F5uQD$qMv*7U@Cl(cai^_*A1m77KM0zFnAurm1>vWUHbZ0!*G0t9^l^i$1{aLyU>^wO)84oOLRpF}_h`_ecgT2i1Kw+NG z!Ub;NTaq`L*c>I#v@o%{z-jh2JEHCWaWt|Q!C<>2nV>gQIh4rDiJY0dkuc|-oJ^Om zNRs!)JJc?jLRxP!`GE<0VYX&E1RRrs@jKl49S!^Gd*3-YeeyYV@0DShv0+Fy^T{=O z5bIS`Vy2r1vD8DW_zSk{Kt@xC*fEop*C2Yo zIUDM&ja~7z{N2S$c*cGzS7s(l@AMT=f3Y(dRvTgndkytx>~Y>fBRV^2g!tL#a2#_% z9tQ3evcWllEQJYYw?C5j+0~1Gr=W;J8x3FVfo;6)J2u5!ojI~(}UamV3=RS4V*&EZSz{HQgt7lcU>`RW~o{)K(C zP5uyshr1Gu3d7GTX7qc77hcB-kZ3i5)%!P4+?P7qe%uQ0+y0`9XS~@%a|gI{ZYov% znE-qK`v}i>yW-^1BJetK7Y>_*u^`7=*^aZ2it@A-&&H)ZmkRZ`}70+n~}%e7%su8 ztvg}Po>n^LGXyhw9#FyzKjyqDjvE#gfF*mg$)IRF_;;SA<0nHgl?lxEm@L>7!?7c; zhX5vBAy>WAw87S%_LZri%!S?5en42)#Xc-p+YtW*Y@tR87v}P7GyU!LC{xS5)x zN!nf+ms~Sr2HQd~>XIo-+?WZkLu0_ynsFKFzzS=1m{NQJalr-REkli1`qnGFQ?D&+ zn`+21kALIB1O3q}R~he5A~5%mK;?;*{J|6Dbn)?E(&(?_yq|pINAy01JNBv=I9`j* z+n)o@kydP#PY}T2K<2RG1$6B3rdHnoHtXy&dOEX*uIL{USx+;;-7Egmz7dDO`J*Kq zRI%7@L{>Oj4#9gb{?f!JzOZuBb&O8Zg8C)AgN z+g1)HU9_iaNrAtKeMz_Cswn=-GRRL=;>QbSrkm9o%%tr;nb>APm-}OgD=yz0f{}|C!m(=uDcY%+{)VMeU)nI7GXDYG>QiFVW}KnmIn}UgTPu-U zg1G*L6I-t1KzGb%@XuAw@qK*ndcJMj_UWx+47*$0V7JLR7 z!+qRL$JMa@!WPgvVU5pU_w&y0m7s3kP41w;sTd#1uM`doqFe^Z~t$M;4 zV0s{#$k=lyt&`!Iz@AU}Gl=|M^T_J z)f}dM7dm^DIv9Le7AMN3)2_e(nwWEu^xml8nknl1Myqsi>bL|n_7@~n%cEt9CTAQP z4ab*Tv6a{DSY5v=bCq;QNtI`0V0;7Cgghdp?ob?=xCnB$J*0$=6ObC=i$-^iuwt4n zdpuw`t7=W4BxhX^MHdQv1Z1=RYZq1K=&*L%i)5aufp;dqg}d?Yu<`3%N*ZYgsaXTX zyC;RQDSy(qVUclUv>}&b#d3^)`M(m{j2Jro5m;f-!M?VEo}?3d+1*{Mo13B#Dh z&~9iZDJa}cF#ORb_`a!)pFZy{ZCNY9I*0G1jN0FD@#_|7&TN5Aw{6+hy8~HeVjxSs zIgcDIa=D5Pn`qvWF50>05vS0;hYNL`O>U7c!a5)@;TS=IMP~Ru_9-1u2;^l-v~Z$# z7uS3=mp0o8tzU?&+m>Tdc1)w9_G-H^fve|6M`GQ2>pbR z74*w(D`}P5 zlsRKKDSU0@8*ZfWwf~G^Z&Ewoea4JkP8tW&IwHJeYJ=7@c__d95PA!Q{uz5jdt27= zQ4RMf$if#dR=eQm1Gda-f)A-2-$xn3v;DB(Ciz}1fS+NfAS?VO?9okv9aSo9eE1x` zO06A+SISZ1&E1rAv;wlH-k{@Ju56p=HLTOfBCiws=ve0r8l4%8Mqi$TnY0#L*>!)46i9v&iplrgSdEm&{T0o1cqiE+X+GkCfT8>HJnCXx17X5-3C>xWQ|&?)z}QGupi=U`!gG3P$x zHmp5tidnH|K&m`|ZIMo(b}I+$jeP_2Vs}!gIdM4?8|jSu0sh&8B*@)xT|7Oni*`NN zK>IEYbSEwLXU{oqYJLuxddRV^*$!OXkFETX--jqqekAPoQG=ChGDU2^D>@53%|DzT ztA8T}YVqOhp;{5>>?wexi7M>Efx~b@*_;+G6Z~dNMuOMrD#~Altp1cK=(nANz3_m~ z*Lwq}2h~-!&e6ggNqy1I%O6R9#y<*v6U^ks_EF%kJknY0!P37YQ!bwl@1s16IK@UCF-yF%UkTZz~*awszNK> zQQgVSiPrIbNX|uKE5FMn+lDgvq8@eMO4x zaxq7VL(hHU_3ZJ0jy{AZx5K7?e&}I%j^A|o4I~T@QDl-0x*8pIf45eMLG#4*q| z2xXmKrJyA3$$G{-f%77Jc2s5{819l|@!duAZCs#`O+Th=4}WZt3T8S(1um}Ai}t?x zOO5qSTv3qlzW;nl*EY*yPWTb(sZHSn@1=mn$W*vraZr>fxt!NnaMfR>< z&tB&&Cf&AJuJE_uw0M4zbeco(ZdxEKJ@5dQ=9uG67RX5M5UtX#1J&KK*pXw3cYZja z?!iKMw^x%b11YvtsjXHWwC?NriD9yl>8Dy3ZT442`X@ z_+tdA+!Z{A?{%4#;6<p1m4c)Q4>VTPCsBvwj z>g!w@sw>MzjCusMM_xeEMg^SwsE+AirZj@y3o(Ns)H}?9Tm-<*#=ieZrM|*xK`F_zx zSF3FSsS9P9{NzF|wEqCyzxR?mXA^;GJubNJ^acKQ-!%9zQyD{J=ZZEpw34G?omkL0 zv2E^w7(KI<#%^2=O7dm!($^Br1hzmi^fBl@{Y@L6tOXRZs)d^c=a#Vz^KH(gGPeP& z(lr#9rRbyEi(Zhrsfa^YUx0){D-@;AfsmcAsOX_4WId~epAS|-|M3tUp)(h<7mbIW z7y7I#P=-|6syNTP_4G&M8}~QJneD6(5gREV=O%QQaMiWzi9aUGCvh)n>AHusq-YK= zdnN@sx7xDBwYnJU<%!aw{Q>4JpXg~z1r7Q-kiLXEGCoreU-f&S-sEI%Xv`U?4?7Rb ztR&$;o+F#qWXm)Lwb4(>Vf3tjAPaGm!rMX*+ig=I$;SPop1a@Z-m&AnO#2>~-zbGr zK7tD=@;R;Fa-UW{wZwKuZ(N|APr=eVVQbIcEAme-!u(N&4BpE#8OMS6!P%S|d}LVF zOLIuI&7)-{t<-6`5~Xt%n}RcK#?^(xZn@Qg$i--XYrVa{r&AL7r? za>C|)-nek&1bF;!Ch1p{^OJTAWgi+9(Azx|jAwrXhiqjye7J|at_@^r?bG2!wYz##!x@MIBQ)*Qfj_9(M|!d}UIk_YBZJ_HKp`?=St+R)di ziTiX+ap^)=^r@Xi*%uoCj~(G|`TJwkK0E9c&d;A*M=@WW7IOU_%r5PfX2Yyp*agjj zY)wx*6{L-$3{_oJ&-_f;>K1|zwCoC^5*ZZSpfH9@zfbLs2^OYHvimZHxO zW6wWnqRz!n+@S}3{P~DQ;HYZK-e#r2;@amlM{q&vPE}!b*@B1S-D|KMZisJ;NAfDW z!&vti6X>G60Pl+TB>8tP7z7n?6DF6_i1b^Wn$7_1_!A!b#|ij zAq<_QfTF$)WVzdfdv$phY;Q8dTU{4Pey=3ktfGY)&4Y0Jn4Ms?QI!onqYmA74$#Kq z-gs)XIWzohj#Ar=@ujvq^88cr?2+f-`fb5$F>ElVZQW;gN*YZ7zhN4UD zO?1Bg1qF>k_%M7RPIAkpbIp(=O0-r7_gxs zp{RJt2?J&djL6|Z&^yeDy>}LxzH5D9Gd75t&YMwW{wXs0kx#uJ<49+PKb!EK&Ghq-~jUEz!QV3au>ike~npx}``i1OR`-1Px8eWEhl`1Fi7 zcT9tgOous76?#-L8f^71r2wZaclIO67xfZ{QQMafwC0&Ln>uX^_a<>4?NbvvpAB2# z@*I6uyYd&A7PAIdQ5+8UoNR9plJ%@5IVEHPfMFH}<8O z!!^rY*`(JBEc1gadvUH^;I*Y`;PxXBsU&2Ir#zUsZ4dY0uOW+XGX*ONU)C?fIITKu zxVc5(r}hh7>S`#{d4(2Q;$;Hm1lHBdlSr^y@6D=9OsKZ_CrW=A{|lG z07qLN_Br(;&B}--jX)zjKQ$T5?aWc>W)tUEATyk9*;eY_8#RmzQSR%5H= zOX$%@Bc>kBXz8N@%FrIb?gCX7wi^k*j&{*m6d zKDcpYy{PL<63B9INOH0}i=C!{fi_NTihiB=d%`Oa3K0PxRG-q8e8Fo`q0j2y8VkP8 zeU$rm1eou81(q2;YmLwn_n4EzraVuOCtD2s8T8KO11-$I z2g`FD1>W79`3=263r=3)XD2jKVWTAbJqf9@IG4thY=#+EkHPrp)d4;yIQ;T>9a+dv zg%br2NN=Db792VZR}y%NQI=#cq7889T0h*Y`hh<0*QETPp0MeHCB7K#!QR|G3?C$h zKw^Rk4pWq8=Wi{51^bVQG!+9Wi8b@>y8>X^UOSTL6H}eG3jc3i2F((_Z{dME=B7A{ zwfB4A<0M_$JNN=9#2%y7ybOISGGnFp|A{tFSSr3cLKQMwP`XmYI>2`q#Ve}Qo}=<((KLGuar8#7VpmT z#S@x?ptdatyEp2y@85;2nhf~-Z!LpB=qnH1k-23YTBjM05@uu!;2{j?5dO>j65W8 zi999wLGj6yJKZ8=# z4&hnJqni24L480vDcdSB85qIrHDrJ~<=OGKf*<8_0W_SuMZcEk&_cUv!R3<1TP|ml1bMEY*#P?F{;OCd{eQOa6Ewo^NW_VNQ zi&r$%tObsJ&Z7J8)C5hXfJ~dOhN5Arpr~$*KbOS8>2YtxQp2BsLUpI;bbvO?$$tp* z2j)PW@)KUQatSv;$dYmwc5k)l^NKyobOq{Ta7{hO`4?W11O{^}?mRjSGP>KS0E zXEinX$U(vcp7yn>vMKM8RRk^OX1P4O=vG8%DN67E*YvKUj7N-xapN z7RX1k#5;$Q!QM<&^k2eLH#W;#|(5t6H4BaUPYHg(6k=ajOcRf?xA*pr5jE zYn>}@tWAfIlHvHcMLm`Ks6>kB$O3_(nCHk!PJbnju_|cXWI?Ls z+O#D%5Dm6_lF5%oe!#*p5c(>aK5TZt_FY~$b$kNXG4wr^zl#+uQME?*rS5EQv>VDf zd!kvv3BEg1l3l#;hAfwcGZX7g{O=tNFhA=h84VOTCWpCcUlCo@MzfcV-(cwPdiX3Mfj_Q3BaI!1 zFE;dZyQ>j@=LEAxt72X?{3Cc=*FsMpfA;rwH%ULKfGe_JN&T`G8lD_NX)fRSdjfkN2Q=H!Rq;d><;>Spdt9cF~W(T299`5`X>mV+HqK)9&vs7&OEOwkZvwh0ssW z+rH4WdMymNtAQOSIfL>=#J&7k2!ec_!l539PB*sT#=U^-ps-OpS^#jpv|Vw+$`t}$CV%YplQ zz==H#+DU=cEz~0P6HHt)_yG z09Jk524^}-@C#p8QA9@#s0;I?_2PPJkZB|uq(D>Su8LCIHJOFtO>U5oyHtOg!X5bO zz@BXhpw)s?^GfU{Zi;aU{Q+~3oKO#*et&4ura@S))Jpn>icEQ_0xL4Q4_dEQ!O|~T zP#nF7lx0h)j(rjC@3_iEZ*!xipRYr^;F4is1$?i88k@lBqDAREUOT}FXK$z=!^@cj z>npg5q@^N*Qae~UdI#On#*%u64W{dxvz=o$khd^zFT55ZnqBz|7RX(M{GpGb zXkRB6{UD9@mm}Vh_ye!9EOEljjTCS^5a)k7Ax=*7W{=JD`FBwdVeM^uZmlI!$KL@g zuJsjpPb;Bp!2@NyS#ZL;hOw_gFUt603pHv5;iusuZ1z3LeG9Qwk&{ zdLE_+69g~JbuX}7DUCjw-zh?Hi|+oF4IhQfci#BFaIr|0t+5OhJ52ioe!C=b^<8C_ z^zbq@%zX#rB)#CVv<|f&Y@=V>dq{eu8^tHCqRfBF_(sP7Y?Tvfn*28L_FOrp6C&nc zK8vH6jkfHn?Lpew=Y}dTvY;h8g8kuDC_-r^oa|c-2XYV7-?2ehCGZtyD`UjtBj1B{ z=2MV)WzPDFWbn(ebkO>v2=-EU>F|wzaAN;6TKjJ?pFKhf2QN6v4etqqU{fP>tg>OU z&!*9Tj054I_Xqj6K+Lt#v}7BX|^g)mw&fHaO4xh{>hx3s{)KP&*W$Mnxg;Ie)1fW z&9AQ%ocRlOf$@`Qb@GSk%2V^J#FaQgmDDD%BV zu-%hY#Ec*l$M4a%uyAV)IDi;>%_+q=hGTVPSo_sC-fZjnfmfkJLz8qA;fH_)h(%I4M;FDbt zWhlksHO9jPH+7c(>LfU=YNMCoA;mmS`xlB^t@JGsg={ z^ES}*y$@(|LOwjJ>ZJ~+KeYB|8CY%-cGG{RL$~i^*dkrQ56-k?&z*EpX2MPINbMw> z%TK|Sm&Z}Uo_AKkW_ovG5Su?zAD`WMOLF;kxaB`0L%|te9}0ICyt*dE?oU#|8kzH=e_F*f%h(cU?e}0mlb%q7b_%y7 zY9egDvyq-ic(D;vz4$1vT9~?4mS4K9mVO`o4Sxjg>*LBQ8uH))pYrz;b?ZEbM^aUg zSXfU+sV4YXhlw&yyKv=K`zW&L|7>zMNbl8xpZ5od%FnygJ*`2w_Kg8c>d2xp)|G+} z)dzZ_55px<3cb@SdQGwr;+wYNA^iqQRrzerh1<(c9bdO27aj^(+uLCi;IfVb z&Mr)W)z!W9;oENd^sJH^Z`$HXSvR(3_h+h}ql(pQYpFyxmK&JT1~n5HoiqN*d1#)a zvh0CywM>ySDccXLMjGO&;Bnj>A$M;cln(M*Q^_RPlZ|wCp%`a5w(~|l9p!Gpe|q2e z`zz#FfTk~&J1nN%?`r6cvbDh7*g!+^8Hf|!`L7RZX`GPxK63v-P7;qrZ?_3v`Joof zqum>4nD2qHmg~8=!H(>t)E6%Go*!$GKM8z!JmpTk$$f4AkJp;@A77ZT1QL&{GyCFp zP`@0^Wba;wIc0~)-zbi>1s~weXe}src`tf)a+tsh1u}(uXDKiFGKHNThtR(gIR%`_|Hrga+P#`SulpQ=7MLU{-qyX_y;HyP0MPn)^>2m9#F z11Oy&QKQ{DXO* z6=pcuESLK;1^JJcg?V^|4Zi;8z?>y4m}7h@DbKXWvuYZcnE#U$c4(rky>+GTUsYDQ z_!(ckG#FiK24Q24A$H|jQ*@Okd)GLCtr}9xnTsvhO|*dC8NuW;%er!G%R+vGX)-r% zOd1TykcCxUI|WZ%D4tV0##il-Wk-}&l9F=;J((EFo!9vf;wP7b_G1gSCNT^XvVGAu z<}4I{^`c}46J%`xa6EOJg<{&L zf1-5%36xym##D?gnN;pZs?d5wO{1oAzXd1u_IY)1&6Lp==Q-lx0=uTA(o3P6U9jes z&<|2hNu^g@|*d;pHyy$1#j)@T2% zEamV1n+|V|3Av-=X)e>I3F53P=whQkn!cJvBNMm4yxLqyOR{E73&Z_a-m?ei-!EvC zzc!mp3HA`I9CQR<#fzdkSfSa*zt{0$@vXPXQ^xOTO3@}bx4@aHQAtST9Tz$VJYZm5$A$ud>Wyen#@oWRxoc>2Mssz6@r;j*X4xi3` z&W}Da5XRMIE}{5WH2OIQvs(i3S>ywLR)yd?&v`=D zUEBEW=QqOPAW0V39md#kEvB(0l^jQ%rE72es54Svs5cyjtP_4reRVCg>A$4%EDe1A zWHk&f%%saYX|(vYE%Hm33sNfnPSf-teXTMzd8$iwF(nAY2%S}L(CVlkU!RX zs3I$i^-bqQ@ne;l+k-xG*NB7EYYV~Sl#qKYsOCmYP^WO=eCuj{7jmz=vZX(4X_<*4 zKfGO^u3YzJ!@Wb6}vRUo_!sbMA}Dtsiig?-|Z5-OP|hgbzTDB+SmhSBh{Eh zwI>~FFlRGP{-*5yb{L=jn8rC~1|-kw;TIWna_*0gfXNfV#bhlZ@F;U>!ZSn2$T9}A z(mo0h?n}sDF#^<1U!lp)Wn|;}Ovqi*VdMx$G&wa-gu2kfvy|(5h zj3O%cR2y)9f|sLYzb`qil4L1dp1`}vp;wtFu4EOYQ_u)LqZGI+ew)Z6(NokOIi3`5 z8qrGa7i5{~!75dJ@y+KW5Io(ES+!M>;|o2|46dM6b|v&}%X5-gtBksur(jOrXR`XR z73O4U!jnfYX@q<%?2fJH)o+u)4;ZozlUH!%PdLlCoyLv3*a=m!LFoME6cjcTkyX4o z+i-mu-D>{Je+p_5S!fB}kDWod_qr6jYCnN;o(U{~>nhj-nu4TSSnJtG(pxi-)^8g~ zZM$DnU0M`8Bv&Z2R?nC@SZ6?QzZds1)iciD}cI-H`(B(WW&9^3{x zYK?9`{n)RNPI_wW#A-)xh0IMt?sn}64H<9+{yS`jheio=#eEOJ?Xw)KP1D1M4{@AU z#2s$TOf9@nR7rfWEc@u0#;-r2g=YpDv+iNXxaL0|toc_6_pwo~PGT4saGasVRf;T%-y9 zo0i0xdxW9xms~Pys(=y8@9`gs0&%Nw26!8Lj+PI-1Te3dF54dDXBXPxHlHTyjkUsC zF>#z(t3>EO6bN@^=-1GM zuf}8|YmcJ^-t}&oG>)GUz|QJ=;)fBM_h$jy;uf8zyj(L57YHH~9Zx67bJ zdNeoXoDMn-bHh^q2)01@-;N%ZP6{!OY@6g1s(YDD>i>qa1Bt)jU|cmQEOSM_i3$|W zt$>R{hkKyhMDVe<#cwX&_-~msI&IS9(+y-X`* zvmO3wn+XSA?1RbX%fvI>jp>4y99wX-8t!B*;Z9r(hgHd^VMcx%nZ{q{MG+m)o)sp_ zJwBCmH1a?{(16WKsN<)tal~uue!-3v!y(RO3pep^4BQgQvsVpIN&Nh+=vGA-H$*N7 zu6o;}M~o4!a;T?g_aAceeIJo;UnT!!iyc`zo3h5C2gHvXo^!L)RPkQQR_aMDpiP)6 zqWVHGa2f}zXN;$Ge=)y6U=r3C{1lChSO5p*wL}I@{_JyzB+h)2$-hz9#APmUXD2&j z!FKBa{JF@9-TpWqE{tA7sddftdOuRhU3ewN7Bx_SK;`1k-vL#12|i(EN+<;nlQ!vK!F|TaF%~#*!z2Yf&Df(ER*&kefaNi98_>4?`ink3mMp3J&oi|r-O zRwa<|sc=ut_n)9BQ4is+u`TSK&KN8T1P?8Nh|cRU&!_snIL@K1$X2x z;rQR3Y-ekT1)oIeG`6dGqQ0B+V3W`|X>rWj;7gApbyrH0pk-Oya^@)w zAMC;%vC1?vLyilJ`Nn;S@+VFu5}3uW<{WIiv10Zt_%!A%ZZ6K{ew=HBMgL`@tEe5d z&OvVW;?;1^=sR9u9p}xF0XXbgf*KEU_}eYLn6{~$xQ-!i<8CEt zLf3JhGIsMS>m}*M86_|+?;Yw4HsE>lA{^Tu#%~z?MUdMeOO+S-(BAGIw10XPy$WR6 z{n3_4?JNS_Q?hjLwGeLj@na~J(WBmT%3;5|9*BG9!KCNDyg{rp>2{649N{+zd8kUV zO-$({x}S6OW$rKbnfOuF1qFj|_*0LsfQP3(r#Rb_ZhEu}MV@8D^XhoMr|%%|G~pX3 z$p`{3Czw;6876dK{$2h^U@AULsNvOC=fRYfMzn6&kG>o~j{Kjgdzl8&sd@{MG@KL6 zjhKe6x{|2rC`L~f+(XU8DHzi@QFv~DD2zCBi8m=S2Jxh1KB+%c*s*&T*3eV@`RB`d zrw9vrH~$HYi5o#4#8+}z%ad_a>=``VJG$i8H9t~oqfCoWrofEd=49`6#D(GoxUj*1 zOt4%789lA=>d|93VxmTWEZBulhZInsaolEVFkf4(7QGk|{C_tagudv(#p&Bnx@8Lg zCu1*)9+xIhUW_B|AsM*wV;gj2H1JEOSs@>mw)51!fRNk=G#fy*32@}VSzZ<;q9 zzr?;p;|H$fa9$wQ*(6I))`v#2EMicbC)wh;h$1oZRkxipO~3^ncKCr^|j9*+y~zl-d-thbMI%breKS5L!* zWltD~+mX9K8}OOleULuikNVPKd_j){-JSUk@18EiLp1?-SY4a{rqKs=_FbH+i8kfJ zOfe*DA`Oq&2hWo);ikK$L@`N@pECFkj-vsI?y-gTDW&|uFXcG@u>#F_cNN)0lt!Be z&{8iEI@T&);G3|9J93z#fh%QcMbQHO(u8UF`AP@sTP5Q34c+{a4>ph;vx(>J8OL2J zm7m+?%nM_5$%;>sbd&Be7(ZH^#HL@wj2Jqcs^Q=D9$w? zE?y%9DQ{+AU0@D`YAMqx!em^Kz8s!^W1Y2BHFEg&2-4{}1OJ5P!*^+SYNjtqDoU2Y z@z-ataQHLGbiTn~He12Rd_L%93us&F4!+1G4H{zHsDDB^|KsUcu3`Uc?)zm+y8F&A zn3TK*bM=OB$rmk}e#wgD?r(;_qn*gaU7O&jO*6XLwBeNZ&vEO5L>B zR3$LzP#dmmW{i&4b9k*b69Ple;BJLHUB6F&f5S{5<4_8iRfj--cp|1)OVfYn@58Z@ z0eG>i5h7zEu{TVX%&9h|b2R*@RPh6@R-=gX>+a@$s&vC!>;<?_hp2i65|+#)03ytEiekl6t)y%|{Nr7ix~X z55MOggqe+_$=r?Wuvb#!+0v_9~d?+$AqN?oPk^}r*OrAoMHE~ zk9`-xCHX6QoV$v0=_9CzTQqJ;KJ<>cDqT2!8I-R}M#uMFH9| z%VXAqv&z9ETUW9f!&XQ$e#gZWp5=EuXHI!Km7jb06f9`)r!B5(G*&|ymkNbksig<* zp)9wyRUSQ7C*gMSTM)#CmM3J*Y2X@nx=?Q|Y;*wbz?8Rev#POpMdU8_tT3a`GYyiSMkhD3YT@D?Oj!tQAHiaFRaW|N9Ko ztp`DEbqgo|;2SO)JSbTDOqyKERiMr8QdDcD1@?-LBkzlL!Ge|D*d3pPiu1H-fP5w| zpZo_eZF`RPZ{0}z>s(Z4+||IsonStlarUO~#J-)K*kieg_t>bzNp%^JrR;N`Q1n)~ z!SfG9W~q|J?n@yz!;)m{HsYJ00@Qf63*}QjgX4u!@Gz$u9;KVmb4jYixk-#DP1%9l zpK6k)7HRwxVn<)@zlAwBHer7uJAYq43_b5f$ZbxShTLFI(4Tf>NlG((!ceZVY7l16 zmxOPp#?yT}LSa7hn_FD}KSx-LB+o5@*Goo{DKW26p-hf!)&9x%pZkgH_Z(o17kx6~ zzfhQC;6^Y1bR+ZLiP6X-<@~V=A33wmPvB&98&2H60uwGO5Ir9ma{U?Ns1$#J_-!7y z=ai#tqc+*MV>CF1TcdydA#Q}WBtJ{P0mD)(=|#!Y+~&9|Alx7i8u!?Ho!wavl{=HC zAyue9E*|6C@51vJj%3zS8Cqhn-@78`B0gu&F5?#+5L?nFJezxtGp!m;^YX-KVqhui zB<;c_#{*#{yT=_I>&dxfx1j5^eK;p$1c`fPOLCvfl4XDQ3Bskfa8=uKAg(?MDlO%x zZh$PD+$c)Qgw1d=@+y~BZH|AU`@K_7xzY9ocGP9MJ33BRC6DZu!0VSnew%zSXLBn7 z7hmeZ&3`Dq?{T878D3fv#m>EQGfuyd-Y-LN;7(| z*N{>jQF2YB7XSE+CB;{K$kHo6(Chn1I;U6}Jx+yTc$qAb&eo+Hivr z|L%2s*K^#+?warZe#Lve(>Ud^#e9pH5*1H%CXces&}HRcbQ_)z-pb0frBs7B_tj%U z&Pd{sdWsL*d4x-_&4itb8~FTOA=f?sB){Wd5sJ3IfEK+pRC9^OgkA?I{*VYI%FO$l zP>4InUxJnIL+E@LYjO|b`7!Db@!uL5SnT(OAI0630p#>r z6)N_25#Lqy6B{$uW7CQnC_AzU_FeKOkzw<3lCF;TiHc_I-0Vx*7<=#C`tA7aw;d^; zEkkd9ai(oQx-dMq8m@AxRAjpk-B!tSvp?oTgQOj4v~{8?Gx{OyUolkMA&Mxlvu)x% z@HUiSd90&AdraZZ4@WAalEW{nD}sRq0ld-e{ovv=in?iL@@k+HAAN{F*J??AOr00IQ!SAEP*fCKJ-)_E#sR{ouAFWsiz8yw7 z>CmhH@&$&+49L?zDe$7{Hr_*7XkKRn&T>H1e(lD(pbN0aLzG0UdI){Sk;qx36b~(z zAvw1m^Hnd^$Wuity5?ye%B(+t&eGEK^7#@j`qemictVzYo7@jO#wVi0TrZ+y^9&}3 z0vYfa$F1r%r(}mA7p2<`2if~#>at+&3TV^M)>@=cek3Wsc@awCCaSO;+|lZ%aDC=y zI5l?{4zZkET9_Cy(%#qL^H*?WdmoMMgc>Bef(rW{-8fQ-&3g?{!B>V3JU9(vL+Ui^^eAdO zc$P~ylf(1fEEnd%Iyj+^VflkRY$(u%zBx_&K3*PZh$P#6-vEJJ9ON^$$c(*=uT@21 zX`TTI-)DrP-RJxsjcyn|x(tN+zhLYiHQF67K?t7ljN#he| z8Ze(_(i1_rdY>3QVzw04)T)smeZs{C=BzIGcbz<+ZwqX?AmW6eDm_I_y zjQHIUqvtEG^Q({B)0}lCZ%hk%_bA=qSVO;r^~$dbY1GIML0Reg`GM11hgI;LzQY0a9r|u z9R2nj+=yur*cRH7l39oF>M?o#<)=!c zqaNFhE;`r*(dr>YewiljD_VxTE3?32@jaMu`7~H}P2xg|ffL-$;n2Hzy8F#OT(DNOBTWUbq2!db!MRR=O~zem7^23A=chdA|}nh zxL#uphb@xneodQa^k9;yG0P4+Lb z@q!|~GdT?B_*juQRjPb>?mfO?YCODnHVt-b@8NIU%j0jK?1q}3Qux6570gxnhq+M+ zShLKB961$RGUJdQ^3A9CAKLXGa#WMJCapzpoAIDr<-z4&x??#{Z3@S&z-K@B|#!$FT=xc<=#>k4zpaY68a9<5D^(4;?Cwe zuUlD`S}00(tSSQXEE?zJ6ocfb4xB!6I@gk}L+1aN!+WQ{!~3?wyyJh0G|15pHdh6} zKK*TQ=IKaIv&@KOyx)M*?z`|#TQ5po%mwStD;QHzfeY_*#MMfY9_#I8yuvwr>y6J4 zFsD_p`bQZ|4wRtLD;M+jXHW8f+4*GONgJ|c?pAz#^9q_QxWSLUG>XiZ^(7vvgE$=F z0-fR)cUC-)G*b+_ELo~PND^nS;8Aq_c|5COL+j6KkTTbJnA!FKP7c4| z)*reLmmkZKDgU2A!5N`hdpSAMgD{bQw_=OgDzy<+q*2^qDXe;9_KHeH71XPrRdccBgkjxNUV!(62$uTp?<n1$2{0Q^(u3>?m8mavyLi3`+`HT8fVPU-l*dI90D;-fKa~b<}24hezn(hhi zPvUV!$^))SWGk3I|v|=!C=}sOcHW0!>C_OpGK-i4DNc zXFk;Iq9R(im+_yT|AvzXMss^^NAatEx>Jcu0VJio9diwtb1>A6h$>YGwnr=kht*C* zwM3Sb=4gQTdIfHO%`5JQy$Io5EpczsGVctgY?cN#o90wpK(VN9G73^A6G zJY#H4dnN|8Cz+eV`agk^x-1b+mE_09)WMEDUZlXk9W5%Zqx@wLGC^r3(NzA7-%nq` z(!&eUkIjJV@eFQVR}Tt*AK<}fl0@oNGT5i?!;b;V^l7yhZeNoHCJ#kulK*>1`@*_W z&r8u#QiA-wx0o9~;0ikro+EmQU?L;kqt>Ntdv6$9?@YrH zcS=#}=qCuxmZ54NG~meyL;7a;GAx+a%F+}%I+guiwTCZ|5bx$SLSPdkG4 z#0F03j}d*@CZOk3O=*;(Gpt}85!c>wsE}jMSf|mv*VHCF*Az?@X4K+(R||5x*@x3OaWzLWYb^1YxD1&$I+&L zg8Rv7czxq>8tEb+CHD#2UprEll|b@72-gxwG@r)CuGSo0TR8c`i9UB9>h!YEBXSQXI!=N}9>@dj zQ$kGp?>#iQJ%nY7ZbZei0>x&ZL6N<^pnKS#$j?E1!n(1~&s~AtiC4kItOi^et84X0 z3yl5r6N29RQD@ef+7*2RYNn3HZPNGAeR>NF%Q(@k?@z z>;nBm>jk&>zu}`?REeeKS{(mZ0W`lyKy#r4y>-u%TUO2TNiTnKgOk{MH}(lewcJ3d z+FWj+u?b!cjv~f`3M4T+P8bvUs=HW6pe#e9i@2nNrzZ*w0wp)>n zZyI33up|{H7XJ(_6QUh*&<3`Wb zSW?^URv5qa5%=C(KrL7K(kIdbe8wMneBTZ5?oBlM-X>(M<`^_-b|Y=oj^zC0Eoi5} z+(xFJbn@)67^?n_>n}VBBVC6$+vXuq5PgMmQH6Nds*`UR{>Pn@7bTsAz1*AyKIFpZ ziNs=>D&1ToN{b_EAimm|7A(C4XElF8=e?hh6flAa_B0A}W(Y8DQv%NXwSY^gsK-jT z`8fNYH7PFMhaoZ)KjwRopW_Pn#QAe@r@>9&4$Z8*BLe~S{6{BRwo-zqXfnXy)JnM2Js;9;U4i>E^U#QSNayt` zp=z)V5&MtLTY`V_ritPtd%X_X?;gsFX|v8rbus3q)Z%iDboe+|76!-KLA%yoP;RT> zo0u!&dzlV>z`KEBi49+~+lk6aUlpdZyT!WipU~Qvqp%wB+SNk%=4D7!bX2LOXfHR} z-5rHzlt|!XD>7bAio}ilz~_3p@&Q*<(P?6G$;XA#u!J$$Zdmrf#tZqVXRAeiEZCG$ zOyyh7&9IX{GSQwE{tQFhp-hyc?&I!{2-%*}RB!8Zyl&NvGn?zV=`Z84YEe5>wGqzk zoEw$*GX{Q=BwSi|gOj-_#r+Jc;2rP3#P(N*(X7=BKdHxZo6`(wpu!tS+Wi|F&U%oQ zL&MOsZx^QCiG__hBgo7CmE5Egb#PHf29wHnXV^4d2cOCI@gilvQ6yNL=v~@~0ZMo9 z?F%g&`cHyB7-dh>?Jn{6eXjCi>!O5$YaN`uGRqpKCBX+X0LPoU{294$xO+1NPY$V3 zxrqn7uB@BEw@rP=b#F8P%cwPw^*9MDQs+YG*by`!)D+rtF7WR*JmM>SBH`e=Rj@Xr z8AfWiF`DhZCr`8BVXOMQeL z^=a(aCQ>Q(_cUSonXL*|^kc?B2;X0h`eQcoI)=VPZK*BMb+acuLGPd;I0aMYpTL~Q z`gENn*am9<$b{ky&ES zq}covKVzmN-TChabCBEMkqmuuz`hF>h`i)=>Ps+G!i0(xPZlm8*n?o^`lo-c){sRoMf3UN8JSW{wx{)xltd34LGs2o?I}=mIwHuWPS^fchM=_4|mg8W%@dL!T_2Xa0XDRcPp~f2rQU1C#U7mjxK7X{JS3~VUOuY`w-KOIJ zyT=FL7N=|c#Hdc(7kKq46Jry)dEY0NG}bGF57gTx*dgsm+gDG1VtqF^bA<{09#;l!;@9HLb5YCA74a#c&TZy7`e4%{{6@4N`Vswm<}?eUzue z(Gy96#X~%CK8S2tvQl{CbP*RSG^6n=&p;*Xp?!525UgIjhj&`@oNu3$3eO(qgJZiY zb$QhZSC?+bM?*^FYq%3AF+aPhb~UC7y7}DYR%AuAu5d@DKQ-u=ASoN(W9w}r(m2?} zCER1KLR~j9CS0E$c1L)7&I4|*xW^@XI#7uhsrV z4lNnfNM)UnCD$Oc`zJp@tMQ3%3XbO%;Lr?R5*TeqruZ2VRSyfY`RHb-9kQf{O*Y~V z=M}uzo6Wq4svqnPHY8e(>hRD&i}sCiC3*qH{CF2_YJ0R46f7laQ`;b%cK8B;rwF#| zRA2?&juG*_SP}6F@|uk4<~N`4)S+j*9siQ6a*junR~$WTE=`W+Pi9UK6_m;Uj&?(= zgW~fD9X6QIrPFJ8w~kBjk#SP4|I?sxqJH>WozRZ@8KCX&Ox3SF$0v%CFzezXUS7EY z#MH#dow7W>ve=wTMVOKl;9h^v1KsFU zob<8=#*J~K$-Ey~xF`i{HQdNU4IdOw$ioO9F><3X4HL&2!%%+^ELMz%(?{e;1|3O~ z86)k1xh>t;5A>15NO-i~ig0DqxGR(1u{p+b&g!HFm9*2KKPuIT^$lq-Z_oy-i*@kr zj6a=hYXI481rRz-9JVsvpHpi#&T@>0#{waIG`0oLX;Uz3$dp(}Nb^6-n6F5$L71`V zGbjCQG`$rhO}9wifYtqmbi-K3=t?qn&+strWRlxfD15a6Zv>%R(I8))@ z0Z`kcMjACEpfBq-V+~j1B=e)#nlVeLCmN4Cd2`}Wegob6{Lyq^6gd(31-e=OeBQ&` zSQ~wwxkP6}_mB%l7uJE?%R$ceHxK0BW~iAvh8nS6f$YEAC`B^ynU6FT-Z7;1ZhBnP z7!}C+uL94hT!QkZvuN9W4WnO;=cLBi2)FW1_K%M>L<46KZDbf1HfJAgJ5ihyAdzcKE&PaBJ|axv0%By5_5)c@^^H!h-93A3g>=6+mYi@i*<7zi#+AWFX!y6HIA)t{fFzx((i+ zxDF>&K4JCReOzB!GITy{M)hB%x-0N5p79Q%^QW`C=+`oA)jh}9jNW8axgixX z+IVN?s2k9$VMQ*?9|4P{KY)C{Jb9?ykG1owIWvtm!3~h4x@YwN6|5Gta<3=b(2kw0sGn|v1!)&x+wqxr45C0Lbp{O0{f?tQiBVQs zqpPNx^3P}5l8^rk$+h?!U{iD(|ClyH%yKQx#Nrvqu73zi;#R@#ZN?PTYGKcLwu{Y3 zgDcNIN^a878?d zfx{=o$jFd`U}`8zPI_C?43}3}{$Uh`h`d6#?<#cZrUz*8`5XopNRSP)%%ZGjzf|NNVK>Pkm|KDFw0wVj-P?*_0fO^Z60s?)2k&HSp3 zUi6>AU#y8*gDNps!7bRII&bSkm2{To;sjS&aywEI zN2aD=dgu?Vn>7mcE?j}C~DjijBp-AR{Jg~`&HPuba+ z_3rHJ#*>+9AF#<{1#a9@4!WX+{BS`SgdFsNzsqN#ZB{v~|6G9AkBRa*3uCc#(nJ`V zdKy1zR-@~T-x%o0*vJ1^7WkeE@qM)do`|Z@9D7X&dTC4+KK{!u(`e^EUzLQ&7c37t zazFp-Yc+(dm7`0xOOQ`$4`9TkGLTxTN-s}KLTM2R81ImZyTg>|UKc;c%5tKEHM(T$ zge+K>>WJA5J|ryd1stGm81Y95`3G`Da_}4OTKAZnv6T5=AKm9wn+@@_dp5YMu)Nd{ z2b^$i2DnZ1q$72`$eCRZB-I|sR^~G-Fc+c4tw(Y1vp|-ASqY1-3HgwmI_|Y=H%5lP z0;8_q7?C4}e;HS|T;UhXa@~aAN}Vh-Hwedy>(S=1H$J(Wj(a6U$kcr*^ww`V!Iu~% zl!#IUr!0ALW=l1`Jo*?q?R3cVh%fw?Ttyo3#+<0EmZ18RtmsqgVEXN-109%l9R9Vd z(A*u~RI1_-o_yNIi|f^bWXK(X;H4aC+Ia>@h$J=b)1kswhq%DiO33Xc&~@r37@RSt zJN$J}bDBIhUloTZ%votBHI8Q52Vw5=(IofnF!nV}!<+a0NOzAEO>?Z__NOTjrI2Eb ze^C#a<&5LAd9KhVB?O<&&?LsQHHc!rDE;MXOdhT?r)71Sm^E$`oLjd{sITYEWzX`W z78@Qzzx5y7{?;7VREbmbXG)~f&lXKL{lvS`jx>5DX>UuEyX{GIYN zE4ZJ_lVf-0kN#w};$E(BjW0Ry_&Vq?2E5MSjo5uEk()hg451>~D9*es>qXmf8|zDk zNougpqyu_PQ6iJyKjzQrKja?olY`d#6Jb&I1&}p&A^D01#BJ|HxEe5y%HMDzSymU( z`Q=?)_jnXJdB+{Xly#|G!guui6^P3+_d$H;0l2$df*#R20cm&SxIbAtu>;rRW&v}J zG7s7NG<7nwPo5^0x$v3h+n6KJi&*ChvD#!eH`cEOl&B~vNEhOm<~&eh|9?ATrKq1| z88|c6{M(~>0{_p6aCZaHmonaT<2rZZydeY@NO+PfNA5yRkrJJ>dJ%*L`I9}f6mjI; zPgvk@4U@L&(D>2!i)P5*;uIPyx!Lu4#5nQ{)b99&inDt;$1B@7*_8t@(N&Sm);R~0 ztbrVZUMP(7C#7#3@!cUM8tMBI<~_+r%lsQ0w?+&qwH0W?^3$B@xhU*X^u%z#P8inF zCL!$mWfqqN`KD#?{mVk`l;JP9KHSMNQA+e^UP@6g;>zs0pe{*VBTU%64x2f@d06Q zB2|{`SSUoDS9ieZwi~h9WJGpcF2YY@>){VkCx`RJsOAqvl2vL;db9Jn;>=X=wfclz zrr%+4fjO2w+>4(?rHPJ?D}9hM$RBy2NCr3udMrHw)8i$;$BE_7yxAN|!+?e@NCl}o zCZIZH9`CnAlq9Z60CiQCy`M6Kg{F)JuKy9_cE<6Q*H2&p`^*=7^&yoL{HXDK=5F|r z$j^Dx2oK)>#RIdOnM+NTE>^0?t^zkQt51Tg(@laCE3XLe)Qu+PDvG34<{;Lmn~(=- zL(rkU2&N|vbKh9@FCn!6J38d)7u8(!_~?SC){D|fYRvJW7Yilxd%zmqNc!SZuDA3w zo`a*9roRN7M}EN#9*nQ{L5vCqPgkEXhu#>PEcA$zqA6o%W;=^RJ&f4R`FExM$+ zT0nQ;EZCA_L=u-Rf+yEU(s$=2$&O>}nYug!;vY_fkjMJ<08I;Rpc5J8#1Lm!@dF|)~AtS48Mb_*{CNk zP5Ni%z$|BJ&|RXAKg8mpn05O#8vbF7LLu}V{DP^+kKk`)sJRM+u#rLL|Z=nCm9;i2GzH1?Kk*yG=FRZMoRQWdMkQhPJwY2Hj zZC60AP6zOo7;W0r1xw})!TB4^2YcZGo^#v>xtkr}ABeE?*e?|G6XWCOdyq{c$Kl7| zD73uo57J`}V|w8on8dPO`q#gpiTxc;Le>;Zltie@$0jJZu&4YRWfB}Y1sf;$kU1d* zFqX|YKm7g*2mha0FSVswJ-u+`R~4d#Jz0Kft|0he0qC49gBi6Rr1gho@fz{bA&+au)Kf$)>pYtsdhS=9GIQ#St9QdY2)P2swMdc`XKS71; zX)~qcXO+X|xIu1l{V*6AGPhdC7u2nB1eKd!#P)&;jnDNZHAb@7D4YP<8}{M*%=ws; zH-t$p<=!#-5TtaD3D2(xf=Go9HoG5%bqT(N#w-*37=4i2+3QWFNXe0$HWjj1u87Oq zJ|Dw6pK{T+Olj_44bJWDY@8wKK+d^}(!Fhmx$|*7+@`uruCK_L-m#0 z#bQ);XuuxxM7%yt0qmC7K;^?dkgcr-Z`5UH=arX=uUBLPg~CWNCHRahTy- z>}_B%6Tdj<;v?y|-22O^czA>#kzHgBHM`YGWn>Cwd=sZNpZw^%6Poncejcl`&!De? z2TAC>g}k){)}`oBQ(Y^PqkRpAPY&RiqdD;7xfH$=A3?udxDLG~r(v<2Ho36vH0Rh< z2nioL@oc3fRku5bv5fPmq!WVLhon>3;@5@y z4tH@qib3?AjV@VhkV3pj*+4tkDUg$(#I0v55oS>8n83$t%#J z#P@jLPn9HMCfqyWNtMk<(U*rmV!X5mS@m`zaXb}*Q(jFZMT4TWQ&y6?v;mpjDxf8g zPGfY8E!phrN@M4l(d|e7!IZt8INMbnZv53JQ|>ELB{my3SPD)z zUk0!3k0IiZCMo;;j0+071Bb)KsqOVVK^yy7Z5<=%vkh8Q`-TV>jW5Cp&ONy0Nja>E zeGL^?$I!~ApP-WV9?K7mqKzvV*PHbabhqVl)}?#!*N9h86z)o;0`uVR5(9SUwIex| z2QmGPJawr&j=TI%Lef!dlA>-(@5FJ;A5&3cJI_{P^T;nG}swELb@D&0P>KGos5+ zNs_gWUHE6oPH3F{1alUraN@^Q$V3}YQmO7rmF9|)`cPBe@V~L7R>_EHUaUjQS8Q&4 z$(?#FRHr-2TuHs0FO~Mpgn_tY*q0!n-LW#boaGnnZkM89_%wdp-;U$$zIsXzdysKj z@-SNKw}cgO51h2fRr&MCd(Xkg&8s1Q=dY5};_o1Tl^$N4 zwghh|X^_X`q*(Cs8SGd+2$|VhBDA8L)1w0`ZZP zCgRT{OPY|-ck7!WIlvbi%|wYqNCgg`)xs@X4)Lkm6}j~ERs8*&tLS$$p3huRfi>6a zaOuV*5H!t(sAfm1mCm8}A#u9TOPO9@&Rh!I5AMmOhj?%33q&{Wf0Db)CwDIq^?m_l1|dyuJ)|NPmFG|4xMOZK?Q3Nd{WJv2J VuD%m-W0X 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�ev`XjH#LKEWxmw!js>M&V09kxQbO& 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⪋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 diff --git a/models/checkpoints/dlinear_btc_2020_2025/final_model.pt b/models/checkpoints/dlinear_btc_2020_2025/final_model.pt deleted file mode 100644 index f8b2818ce990cad0a43806f6224269ed621dc0c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64432 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

$_>Er3>MP=yt?ls`7U_zApZE1tv3ij#tAsihU zg9^5GnE2@_E}ariWbC(MU$8VeeB6|NkbegY$BrS1dCge=^D+FMKf;`Lz5z?8w}EPz z9+~H5hDzV6VC&N!4FBz^iJ;IA>v(+5Hr zze}IS)Tz_LNKK;I6U6TMqC)%)*Pu@O6e^Rnn^}=v$(|X$#yot=-{W^u0d`6xu_ePU zL}}7a&K_+!64&q&7TvT)QwX6l2K6{$k}M&b2VsZ4FnR4ZpKi>QBZ<=sAWtj^H;&DM z+d^qDY%&WPdUwNDwUc<|xgeFEcN+Ys3_;2GAXqs)7S;>yh1Ta?C@ad37n?1Zl{z!Q zxmFyOZyS&IqMWf=!;;!%#BsvT8j;sMw|Mqci~2XaW0T)zG!AoyUGlH6_}XDGi1mR* z7X|6cn=jbFcoACYZb$30H=>`o7urnROmnKcaa8F>*0*RBouT7HMm|g@OGCzzEus%_ zWz!~BsnwCHrw5_#p((hTQ^l6dD1bttPKHf9!;Gx>0QW?Hv2Ub~U`bXNoRwIQ#Y;|L z%BWqi>=h5byBt8(kPujPWd<7a_d=KRK7oF`1WL~>$0ETCj1w;x-EZ*sBCRRKwW~tO z!15yK8{;m;;vt=+>3ljH<C7U-^e0Yf(AX%hTy^rSf6x_^Hj-zN*hGOe(%qi@xG703+5)9 zJ!3CkDBsQ~&bB1=>gQl>FF%J>X;1GRD+k-1lJM*CE7)7Tn3P>Ojm8@#$jftraHrD| z4oHcU3jY5kdwqt%{KqJ|Y>GA&J3NZA?Ts)PE>53K9#1F#bfTX#Ey!e6oOX*3Ii*Gx z;;46Wba(wjh%G9j+DER#kG6WuxaER@Q@WtVn*+h=Z%}`y9G&SS2MxbR;3XbrRkVbu zrf@3;m&mdgU1v-bF*3wi<=)JgHADF8up=DXy%+A!dJ9j#S&?J)_t?bLhv0Fn6c?X# zA-V4lVCbl5j^%`j{J2GnH2j*%%Ew=31;x!tV!R*c$?{*!1P4u=*705yfG7XI~KslaW=G1&5-V`*bG;n$xx^8 zJ(rDF=gm{B?mg4-{A0GPa+(W z1rv*o!3Edp)JN|aQ+iy2?vOCU*{Z);@1vF=J2w}djz7i?n-#!Y?iiG7>C^Oc8({W< zT*iFwH|ENvFlhgthYI({L*M=?I2jv4X9Va$^5Qha8Us8M?cSJ{n8K9YH(^C3cC$*W zi@Y_`H)6;dIhH)%Np~M#OfP;{W+tu`BP*FOR2tGi zpZmL^Bc~6}`u@b|vku@H+X9L)&!9(t71j&yV0d;?beVwxwUPeJdX3wTjT~3{GjlBU zlPm`P4TG@mN-OIStw`upL#kFW!1UD06VsRw7%eLd#^3zmGk@P`;;nqfWP8L^6n za7~yaaaY(EO^xtf{~es|=E39U>-_zG72v7AgBh1!4QhGgXpQLxHeq1{4v&l`CW~Id zxffH2NO2-hvRe_eC8fv}lQy_`2dHZ@Lf;U7pT$jQ>VlTIBJvYkmiYuFG=n*ZmW_sO zGW|f@HPHLVD{NUOK-Od!^L}($;H5%>^RrbUYEcOY-xEN6{=Y`s3@4J_*K1&rrWbGL zA$8`(;dOBQ!!Y}4${qMJY65+uV?}3u{SE?78T9U(Dj4%ngvve%fc55bR9zy1(D=EK z>%IkTCIz#Kx&%s+#OTyD*%)-ohzMHqm@us&*loyA(draB(L<50^Qy!gD=D&cUJ;tu z8N-e6b$Ci65xQzjsbHW4U2NIFOd9-(9Vc$Wf=yE)bzCREvkKI)`yRVAdKBr@SHKr} z+N5?Vf6sx_S}=L)0*6ElaQehfn5wjaWvlui%q^5&WF=_S@JFX`Whc_QsU1GuxCxtf zFNT@714;L?g=AmNJem_`O80n((Am67_BxRxLtg{%gI5T3iD^VJnXzznt0hP0oH``M z$&v;$3A*sgV>qdKg!L+Q;Mw;$)4iTI!Nu({%Eh-q@XB7M^O^&x)=&Y(^O2;+&4F6X z7s2984anF;q2+8PwiK0vd%751SWD=TVFL5YGnds(tj6z~DWpE>#LSm#A#vPJPQRG~ zh^1?h2nlUEZGr+kPIRI=#kbjBp_@3-wFx#1alo?%;N^{3oKpV2zw4KTsbrB8zus32 z!73_5Ve)Q>9lsAXlC??CEhox*UV(#lF2tnd7%V?E1otZj!11jDU2c_+_Z&IIqqGg> z!llXTPf8qJ-^ciMr!9SHYC%tk0!gy9Vr-o^Fp7CM*^mkeGBjx{`B>5dW1aPB_0$k* zy=pUEvu`b#=gKCs^yFou%ep-u)#+AaE5=&%8M$--tAKEb2n{XCSphcHOiG4&fmL@0B&fYNm)ZqX= z#~GgeQ%QQK#**l(SzzdqlQ1NGfSGDm>=aTyfyD3hVU(w>U{t3(1ph}vFuF#S+_e=a zi%n+|6{QYz5mTf#SCv3@ZYk?j+s|o`SFAukh3^@$=?;RLJSoedy5j5VsCr z=e$_?3EFJ#o-Dv?i@yUFoLKJH^D>83;4ME5&I@D z4Yd}jP*Z+v)pNcH7DOx~^JK2VMRP&86q-lkN;F_~Q4X8DD%|<84&sD%L1J|U8$RwJBlb~_%-B%JERyQQeD8_ab+w-(J*AM*h@8OuFzRK^ zUR&a%;ivdRLx^5|r%dN$?O?lAjfudLLCo6tgUt$Wf+O4kc)4$ok*f?N1@C1r$G3`^ z)_smCj!wsh2kWqXiWB)5z=Gv96LO*`72>**I3GlTH+0pMT&NplWV9y0@x2Au)h0@D z<0U3uqYR1+wMg134wXe2m>=*SCTIH4Fr6^WmPscTN0T@m5&2Mgd^|gM+XQ+_yBvns z??+>cb}Z5HARj&M!_nSH*qYhM;Mpx8Z&d(^zZQb6p&1-W6QoI}3fNy>63F|kfk)*L zB$}Ow&iNlW@>-Uta@XL?rKj2Hb~ACL(weqVL5LGB!||)^F!Z!IRb17}PWYP36DkTr z-$P&kvc%s3Z|iRu-q8V$ zW_#dwohwmkl%>m6(*1V4&Us)!!Nfb^h}U2tIIF*ACfo`|&?7;dh;4)zyJPmMyrsPz-#E&CNPK%LIPwT)) z9U)(vgOB&eVu>O^S?qT#f7Z`Hf)Z76+zB3G{Qu`RzJSs@MKDfUjg06n0k^?O&fv2y zEQh0@YeeW;7kL^`DM@zie1tO|*^!zqA@a#314i%J4BGS3VBwRys2w+&j#@E`?tlD| zE{j$s6=zgP)WK$G(zx>fF?1e|SiMmkH_G07W@Tq&miL~AN?KAXNt+gFX)nJ*Mu?~o zl98;+D3SM`$1EX5k#>m&LQ0$Z-GAYI@4e4?&iQ;l2S0sz&2zEOXO#AJ^I}{D$P?pV z(6)3oEv?%@tG;ZeZkp2cgh>&UNd-{D5ARs3SJR2Bb{3os5~l{ypJB&7YwA++6J1tc zgilH8)amguh)8jVG+%Sndbpa*`lyF@E-RAc2tWF+ZZ8@$^O(-;0bG)=4!b3_$w*ca z>PRVLA^8L;rE}nm+#-%$EX4|=I95L2j25gr%k>?%GJ%IPq3%E;v-z?DWnS|a=! zHmh@d_L(cRLdXStp5MhkrZ*UE%ax>M)(qm}WJW7 zo+-bYXLao|7M-x7jjJqaaM1?hw(c}nII7X0{z~v_z6$HrrC1a9KBigkIQrk*3p%U& za9Lj+l}d6W+TSi>;I|s|wL^@KC}ekV`H7!S`B+?`OA^h~U{}U;ns!8&F8(b@gw+3l z@bX~P3crDO4~t`legpyBfcFm_Chbkh7)aCLgjXZVmU%NN=2B$e5*4yYN}OIa+eL!A zZgA{&G$~d11HVGl==1?!vQeN7UEnjs$=$$~Xk(nUNC;1+yn-j`y6iKPOw2IRhPj_N zL*#}~a%1EbuBux}f4o11?w|tBf1S{vNSPL$o<`V;Gw33aPd2@Xf=pf#(F?4FwMy~O zJji{&mSm8*hlIIWYX-^GJ3)r?UFeFbYly>!v(TdyPFBC0O?(d)@;3h^q()VU=29^x zcZ)Z5>C+(b)33mrpA*>=ukGoFsXstU<`v`dEFD-oMG_)DpTFJ3m1dVrqc%s~F=MqT zb#zE3^$UN(lfxF&=VK^aJr)2ftN-Dy$R}*!*;in8NP;%+(j|M2$D#g%zrd8gKsKfq zqFe9awl}_L{@(|%7WF4{1zIpD%?93O`~vqw+DzZ7c=pirA|^BAdsU#~ZoFQVj_n#+ z^!D#F$WIfc?gRQ9&oq(pBnTS#{eeW~K(>5bnXvsi%wh{wQtE4s{ak&pXP-PR`dH_b z!ub!vq{5h$y1k6FObNCRG=itK06o7Z0wnxi;P^B#ni@BS#J#M?xi`|F(9n#o%lHHj zn{_~QAQNBJ3X^9Q`*3yK9I7!^&&swbKsT=+Z8>ISn}0MO=Xgft>)S~5!Dtk_76*n! z<9O_gKB?zsp3k41#-PS9;&t4RPQKC!$zI{Gc9AvVJ0B$1I_JP@dW<^z9cPz1^rEmg z_w4R^jyo!aNYn*&Xj}Y>iSk-V>{ok3)#)FYJyj7~){kR7i?50gQz}r`aCNXMGrjVEjr*ut}PNn3rR&N+2Y2=+_xkD*>s~> zwiNxASBn<0Q)rXUB^=+rlI=KGg*xf`utfI$3#6C>TE7^> zuw*KoyoRfHSr`H^1y@3N|fTl37xE~{{nJ&;{(<( zHwM#43EH^bg#$8YK<@TmSo1fCd>RU%r(BfC9|KePEa^nfPD{p8hh8@AZ~^R$+yZ;G zm*AN7d2;@JIh$d>k~(!QhA68*+EQXe(>|Yu2_EOTUY-LzR6oj3xM)RASagEi!UjkX zokW*WN9f^=fM}r+{S}=I5BlXnv_XvPw+qp)$MsM$K$!$Y>cvg;MS3ZFIA5Knjh%o82eh!h zs}wu-a*h`b6{50UfUqYCoT`4wZ2z4R=Q#I%GngB)DUr=MBiat4!=9Tu?;zEo?LFW3LNZ(7=J4^iA_j(i%UG znX3~~w7CZkJ=y@VZ@k#K)fyyBV-KG{K7tLx2War_-}q;6A%&3Zcq3^T{>nUqwR0W7 zx#%!1GCP~R zu22iIJyMc*-m|3l1`8loqK|h_@EYSXz7Ti4UrC26{AvH;7^>7dofJ7uB(E$JFp9f_ z2BbV@Pn%>i=PsSWy@@}V3hxk@o&OgN?9y>g(R56=Bt&6*6%KB>z?^q)02y&5YOmx@ z!$ohQq)Z`dKKj6vMoG}%n$<)nB21g&v>+NEKApGZ zygsQ+UxX&(Zgk_m`Lv;bKF!rlfql!=Fonx{^zp)ADzl6(h}DH3+UZdGGz=aXK5}|G zF&dLRoXCcw-2D4Z72dtJoy_4mlhNc&M8Zl5gVtQZCFA#@|D!m(`g$9Wb2*U*Wvig{ z=5^e5me1a*PDOVmVQRm@g{ma>qW$w^9P@T2TSK&ose~t4(GUg_z3H$(>Kvwf*b=#> z-}taK1*dCTW7SqQ(qC&#iuOF?>j)dte{cF2U)3Y@vim1yJ?}n`*J(<&t{1}fK9kUa z{~k%UBJ36Mf_3`e(ecm}8qPU=nh)N?h{$Vbtq_7_jSQVReJ+5R3;A2D#pTMPunF%& z-j><8AXAK(n}|@WK09Vlvnj>5UD$MPKkrx5V)9|eXXZns9w`?Yz)SohX8HFO(A*i$ ze95_m<$I#(rZXSd_U346SDeF)=*=M}`4Oz7p*c+)<`~b5K4fE`7=sG)QNhwA{ok4!#wA? zR9xQ%XA%*jnl4U)uLLs{BTH!>UyB|{cOq3MZ$R-PTT*AOffFWa(2oBWfnu^9{c_WU zTw0q09+BeoxceViyiA1F1ZflFei53SX##uc0}Nf8!a5{f#W~s;{Bu!VRrN3PQ0C=a zaxAP24o!~0>&~)t$mpw6WP%;O(X}LXeUfP8FV0l&ItfuFKUgcjSICB4N4L>1n!j`c z5e$u|=3lm>UicZ9E@emJ@`Q+`p*l!%Jj`p=uWa#;tBiHD4%uAhhXZ~JI4fx}N!j-W z9cPqa3(p9?b2&wqoenrRD4h7J9Y*cvS2+K}b#(k|Oa3Gd!hy0vNVscA%L3Nn&)2!M z_?$DCY78U4Uy9WcQl+JAca=s*IGpvp&maEui+QXv6`iMEgyD*O%$gz(-j33+^`Qr< z9f^ReO`q`f!G+{sH$yb`#NnBsVU+B2Lwm`-s-3Iy88cZW2nIJ=JHHU)YLH(0SIAyj zGXZzbJA(o5g_!?#Nf6d^7d(p0$90QRp<&s6JRhh;6WbNZ=2vPYck)y)cJidPv-4r_ zawpc7a_p$jaa3)c2T@hi$oo1anmL$)l_k*}n`TJ|1Lwe9U1bu~?Mn@F>(QvtmENmA zjJcZMF;{#lHXINmaZ!Ju{8S+{uHur*CqBaP@2j{W;|yxRNseK^2O+hpASi4@HO?$2 zT_U~E8vO~>m&wqYtk+P~Gyvi5Nx0*dFj;eB5-zE^i7zg0C3?F9FtE{>$T@z7QgJ!l z)QET@>NMmW`G~WW^ywa#BD``xgq`G`17inr@nY)>yymkJ?ENK4gRC>2Y+pex?wm|M zv~7m>Q?%(X(*&HO!kq;l^r3$05|A;MC3XHT#M48HzIR!Mn%msa=lLOY=W23U?^tqZ zRGVH?TIm$r#_`D4|3ZqII6V?micv*6oQowMZr4TeLidp`u7ojc8?gaLuH$7tAre_4$A>FTe6Ja2F=wF|l^dQ7=evKyl%94Bwz&Y+ zzf!@uM~ZG*^bDG}f8ga7{$hLj)kx@XPxQ$zU_^H0u?FdTAVW=w=IEUO^FKeqz&wGy zmJx^IMo*aA;(4rqizys)*aKU8dZ5Xhd#2lk=qhfmHDnZn{t4pP;`;%&uX_c@yaw>( zt_U)ltJmIHCV)V&5*6!yg>|Q|!|8N;ICypyy<7X1S?uJ3^G)dA?i2|A zwgl?jglI+hD|~ZWlNQa9qy0;d?!*U;K_ouSYTwMvidCzl4n}(`Ejps8H8; zi@@Nl2+g}x$K}dTql{=R8r8{?WxHe`@U;W{>EN-t@4MlUK9}X_Sd5p|4v@3)Uvc!5 z1+jhl7OVegQmf-*_^eWeI^2l{>tru_@OmMhDHg_+OC*R+loxH9_ZyQ=zQ!X0T*lEv znr?Ew7nPs4=A4Dn{7TaToXKo`jd`4rJAV4a`T*Dd1?g zfFyR*qW5kE+HGe{+PECdGkuyCca^Rp6HJycmdmG5Z+l^?t2Kp;v`G;G<11L0V@3scCc$IHXRLRvA1(M&&dVt5 zfMvyB&@_5Gq&Aq4Cb|-bCcc7Ql7aAK^8&h4WG^#5?IhK>w~!lxJOzvYI`E}c21?C) z4{f2^#C&fix*enF#yHa=_c5@Q(WNWEh6MZiGRZ$%u(N16T6UJ>v)ZMoP+5+Npn>rR zjEG}g7gHJc4mW0L6IJ)`pps`qK6_naua{_12Q_PIMCB%(0SU_wXFXESP1 z*V&e-y6|mxIj>1J5`S(If<4oeK}tK6H>)5Ydz$lL`L<}UHx=s0)tqZHg6RbP2DE-J z0S_x4LBX-7td{&JJK(ql+K#=1mFq0%*WX5zztx(?KRbc_^7`bVy)=okH6@O@Ex7u~ z1nLG8$#j-C2&jNlk9R^?r3aa1r-&`QXy}f9zsm28F?1*m#y~-MYD8& zvROik8vJ3wp}QErgoa~O+dOiAcm=7f*QBl~f;4-r8m<%cU|o5Rc>b(66Q8#pA6wqU zX964>HMt+&mMGB$EnhJ$>=WH?u1G#)9Avg?S;CL8OdRT)MasEnt@lF(?z`;Dub5Vf z5>E3-qvK6T-ZzgpM@FK=+;m)AB0}TmxR5fdtGH#n3BPt)VO^OwF>BT%H}{-HKkWqG zK|89el~;u>asr^*knS^;?{!oPkfJSI|b$O_=mjlSaQ?h-MqJP}V&S z>>WMHwMqf%aFWH3t?%JyuNSMTc@n&vzVI$v*+90u4Baz-0kQwKgj8mB!P8+Y67o%i z6!*B|Yw!Qqy=$tS+|Pg%_UWOtDWH9q|@MA{}h@;R-uG89}b&n;;B3FD7rBOtxwFNhw9Yn zKGV}6R&7a-jdB0I-6(3l%YyZpcet!ocoG|_#vnQ0ij#zyBkQ~SyG zxQW^lV!WChOpqr2$0BgVyALb|#^KgGbv$(0gBo28L+gKzRP_>}&He(^%*&cMdmEF9 z3Tk8^c_wpWVis@GjC}Uh!iU(fLXS+i5sR+`3t7`4U6LaE%CT8wGOZOBr19K4Jh|pP zh*9pIi$kah;zWAnHCsFI3LXt!LeG#+_~#%DmH zrV;&KHABAH4K~8<8$>UUMCNr74~2B`Q_?9IJ(~edDQzGVTm&;@#_(Wp7!8a~LF1SU zn5m|NuU}q(vSbmLJVp6g%v3eaV1F5|m$Gpcq`pY#vPk-f*iL8RVf_VHwW zB9>!{Vr8C~r@Me|R&R%oL1oaa5{GLp?F7A$N^mopM6T+KkjT^>{Hk-OFoJgkem4k` z_sN&=;dm-;xG{lf9kHXC{1G&{s*CpzenggIlEkMOlIVJE!hHOID@M2Bf6h-~OSTVf zh_B}upFhyg^$czQh|!Y6bE)QXVfsTX3kT*!(8sYV^xt%Qx{u4#2Cs?+89x(J+@8;@ z4Ecs%;!+^(3ZHTK>;Sbd#&PAl`)pdMBXP}H&J5>i(sQB3JoRN2Fr&+W938j^DsxZs zlzbe(cgI)U9ArqcN9WP2_pIr`B2D6>Z~=#l+i^Hy2dc^+C7V&w%ly@oN zX3Gb75m!Knt~r?h7>3c?eq`&h%kb937sa1kgfH?#IDd8{zB9EW*B%x^L75S5K9GjH zj`)(pJyt~jXcLUy+{sjL;;|c^?xN|tGO(G6;c5(FDpfU|(ZwZ6^A`2kK5U} zCSTN_s7MN5p1>qq5xPw%f+1C+_|oDT#6(VE^lZZLQ|Ll0U#&~Rr%B`bt~mC6k|?<< zU{3#aOS67Qxg1epG4J`)o0z#X4}9N##cLH#B*^Ls_{haTuCO3+?YxeHag&L`XF?02 zSX8c@%Lr$B62EL6+`yy*IpkQ8{&sK-z=HMZXC;6GmZ8hlBcrQK0v&Z3<C@bC(mG3@7B(>h0te$CJM?k>R{^uEclMBI>NINNeO5qI}s( zj6ZBle})a?vUQv3(*wfjryK;jd&)tYi#nqP}TCKy}k}QDp zSc|*cpTj$oVk}N*6k;0;x*5v$aaeDap73`hX1d;{X3`pGMx^mZ<_Dx|}91;K<14~((cM>FizbTz# zw+|9ehvUp2>W#o35k$4i9oXsFGb1steM*1@uT<1#C6G zjyY6;Jk)!|x*nG#lE((b*c-SmstuttrqVD;6WTiII9gjAhp``9aml_^cKzmb zR)}M=XZj3t&!Hy~R5r(_k|$Vw)kAovR~tI4BuU%m3#bqxO?DMT;ICfUN1wCT58lMfo9p?mXXcUdLJgXg+7COPQ22VW1w`zm=mc92s-`s#mz>t}4qdk+ z=5k@MebPfLn4AKczJlcS`-L!W`;|>9+)P^zYeN5jLy)vSo1d)R#s(MrlFl#*ynGk2 z_rMdBpEicovwJz#cZ|KB7XuZ4E7>ShMI!!l66o*;dD0taLBb(B;{CmbSv>0qyY6uj z>v$oOl{@@|z4%I#o)1ii)qz=Tw?+y^iw1&CY7w56_asR>S!PRL1lr|a0ks|jyl!tx z3Fo(by0izI`p#m>aTl>9%mrIXTS7c89CX zJ}*sLuO>?*@+=^#LX-w8E@su*tuQ1e9~SJpg@>2i#2sxm#K&KOv>dzzN*eQtl*&=e z%e;dtYO^5v>vHNZC`HSyv*Dw55?i0f@s(C8RP(eLX&LNi%O_2u90{QX*zjfrW(2V3hf zu+585%XISan<}Jcz30o;mEh4|0z_L@gzkB_0(GqK;lJLk)a-yW8L8(oA0x9+C3!N9 z^mHW4D*m8e*Lwhc8}?1K5#6YG2P_;T@!K~m>XIl$TORGk`Kj^j4h4VS`QH7gC#p^y z%_d+#nmb5;@*o4BElBLn*O;X~iiesl=^q&*a{BalxO?Uj21Jxi7yR-TABMUS5&mBc z2oR)ay~E(&_O1NNqry~eN+A1)JNsw*c#)I2PnaoEhneI|OQOT!t z&NE-nImT=uE^R)YxLld$Pu&P!Z3bj!TrRWq`{dUubbZoZUQCl36GHmm{SI z89kmD$!pbr>;)(fNW-4>wRqRBE(?a-N}fmx-+#p6hu!Su$9JIbL@s^7 zG3F-anIy+Zn~c?WvTvNdcz35yW30Bj(R?o7GWV(Cb1-!7yjokab6JDEML?dNa`gNrrs$A2gRB$B-&bWim4?c%Y zYnL)ETe>j3)`1sp`U{Fm6o{36C8kw;!;Y^)Y)P{QKKXAW9nw}L#?PZ6bT}WcMtubz zrN>~quoyIEs?(|s3sGT~AzAEi0xA=AsP5BT*dv>V4fCAI5ciIZH`|hjrAx^731)Bv6=@$6PXefNSsAup?j9=-T3|)OSic`!??zOz_mAiJI$qRtGg` zwFKvmQm2rpqekv7H$#tTWvZcPL{A(11wkz>jwk;HE3-E8QZGtF^gDlS5xl{kvdU&e z!d}Dt{uE}QO9;=N+z*R{ZnL-l>)=l;K0t5e3s82x2I>703$wk1;kS-0jq%#T{IWdD zoB7~0oEw*C+qDg;S?O+8Zq_z<^E?XNN~GyLEP$+lzW_Nv&t6iZq5U0<#q2zoU0sRI zzGk$v^c)-=;M^$85HtUTD$$D)0Po&FB64*pNtaN?r^1przGfJ-m8OwbE346Yp*}v> zVaS-3@bqVLEAUgrY;blBWk(_&q4afeR%O~d$muZ!X`zkGDT_dWCqE!pRF3p-Yy(q| zdRB5vEdFVfA%C8Pf^*GdQ2)7#D38d~`p_Ka&Bi;xJMD@yFQkFA(I84ZNnvu_G8o-G zk07h;2VD75h6kRjkb%C1^n}DbDtvZ?8C-CLR-Bmzs;*K_Yd=wDuU#IDpI?bTo(w_9 zWFCDn>WEhP$LOv?Z@SjBm4;bJVD8#4FdX>;-jFu@by*OW>5W3qpCq&q>;i>d$3gbp z5{L~Cfn*~gJilF^JTSQfVNM&ktfn>j(b@t#qH|~$*Eciyo{pP19*1`?1+$lV6G^?x z7`x;dX2o#cU9Ve&eKwVbDqe>B3l8$8H0YvX!AiPAW;dIW)q$8Yl{Jr3BN3ss(6L;R z@buTxI71)y`?pxIuc^Y6CwHNL_ZD_g`!^`w`okVx`;RS(JIh4N4&uqhNtpAtiFKa( z4^H0<$Kps8_9mADvsIY_ow0VD!m$IZ?&Uz*97_zl7lhG#!r$PriIw3TH9MW9$vgFa z_&&BA#OB!$$w3n`ecTe>RKA9TQw+!+A7gSV(T=YDV?x)>iDCCltz|Seci@J5skCd` zAMCP=WlOsC=!$#FWFQMj_jM^Ixl)I2|2zQpX@ZdG-2)TakD};#eY*Be2aKCo(&Tk| zR9tQn$eNjxey>?n{dEJJnjpZaUtGjEe0s_V9T26bNGH51@j(BW=a~Jp2^3~?dGZun zG)rAYTF$=Ye4wUuhg%=(JC?(?n-9P-p%2(4r~z4rg~^u~ee!DH3cJQgljJcyF}A68 zfyEvXUiT`_*}g6TkF+V0(=U=3$!!y9&HN(X$W(D6__B_Fa5sx*_YSgmKB&-TX9ZAd zV1%z{stQ`0ky%(!1`Fo4Gh~|pu|2hk+4@czt+L%=+D&b0Xg-BTf2gMQcamUsy&!7t zJPXS+lBx8HouFi=O$KM{)7Bp@-m^=LO3WonUp&d)J=;|`o?6(W2c zF`B+lo7w&~o4xHakzTOnSkOb!pq!@(_t#y6KlcXUPTvhYwQH=(q^%K8w~XUpm>S70 z*o!X$B>5J5Yrxuch*jNSObnR~FzG`P`?u)>44xDwo+>fibLfGe&E=`9n=ZL<8u7X6 z395A{9}mgZF*`(DK~rZC_IHWX@W^k_)=`OlUKcRPtAZRiI|_-+KlZN2Gk%!t4-^UP z#!YQXwCCeCCiLhO@FAikBxnjL<#HGD<|~f1ghWh25zg1let#bWNB9y8k`cQH7{q-%Nvzx!`u|2qI?k} zl{Zq0T~~PV{^9JN<1*xeWC32ab4S-@kMLAy4;{7FBtp7IndUf^aMFKkOwphxfLGkZT=XI0l81E~jZS;Mb# zL}X+l-PIyMzk9yNA*&{|J-QBV{20YMuN6th8!4FWuS621CZgrJdJr)3W|WRShvl(m zv~NHY&G&qQCmn;VYQPO#v!W4B?ka{QL45Y6iZM0)!QIJ>5obt0!7XyrXxfr@prbF1 z3m!g&6wgY2_qV^;{p3F^J6eIG1xk3Eb7Ojrsu9f)F*3!*7A^n2VlL(G1G5$l@V#H< z)Kv5c+71>oSE66xgWK2O(o1(J%XdffC1Jc9om%iI)`nE?&u6mZ%3-2G0BrO94!N1* zcwU^_H89``@romiUC%W}+AW989bLqZmw#k^ji%D@pWUbvxD6z~*20&ixA69YC+w_7 zZFa0q0t#j3qjKa$_Tp7DT3;ql-DUNutBMS%S*k}YcxJpiH!9gkJc|*FxO?6aNq*O6 zTY4jHIXK>+?1X*Zbe2yU?vn9_A-$=j;FB1MP`d?+QaP|humbY3A7OF#e%x~CBPhS` zW6G|H61l+)7SFx0ZB5e zcpYX>@qk04;&^<_g!H^JrZ#<7eIFWb zhq4+@Q%P0JW;n>zze3^bA>v0e%g-^QuOd{4^Xe9SyKNAb)u-akTz!HKYv3Oo!6d#0 zb9r?D2~m7O^_s)5tdHQfxlfrd-3~BqeH%z_k)g8OJYd*mH#7K9n!b=fi8nn%>4_OL z+4Jq5WVIW&4}&}B0t$Yi+v8{KlIUwtn)3rgkFMhxD>{8YMYM6uH(h5-1H@G^zok_rQ@{WCbmaTA`}VTGkH z%-EgFFW`TM$Kj}4A{4H^4&iGO*rpK;^5C%*Q9Y@RCrs_>n(k&uBD?Wxs}Zr>T3a0=&h&;O}FgIy~aAL(&0i>-j_rXYy3dBrH+sAs3L+C*1}n-fnqq)`G| zRLgcZT1Rc*`Zam*wsZ~VYo#-5142lRm;!zJqLf+n=s4^pvsf@RDuA_*?s6XL6#n%O zeY_<-BkbRlC%E*y4nI+}9=_T(p=DwY+HIGivl7hd#hMJ*Z(&VjB52i&+G}jbd^fWH zziIGiqbBJk-*_`yGht5uQfA4WH%!9~SrT<}Hfi;lMBO`YGqk}6B|28aaPCj`_{4u~ zmqiF<{?nx+MVi!6Ux;SAic`gSL%bp5Kq6AxqL)sDbeA4io@2yQ259YGqZT)+{g&LIABaelo`6Qy$L+Np2AU%!*NrzfL7*Pl8XV0QV-c*u1{UAMTJ&oS|HjP}5k|q)T=1}QjPrGgik#%ii zB;k(*xxM&1f4KAqsCF!)t#1u*LWw&qoBIbP6OCaO$6#()ypaAFG@=n9h2ZLx!qk;X z5v&>o@pbKV6pUXED6c^Vb=5E|MS#H2 z4~!Yi#JJr?kh>`oTLu0x|Ey)n4WUU??2J5J?#uOIhGg*uJ%?MzwW+wr1Gu1|PK?ip z6V{}VjK0z*0>O5qe&c&63Y3L}nsf}F_Z5;0^P%q7bbNg{1&@04L2WCKoH;s*=4$^y z&rXIeK#I8=pTZpdb`+b(?Y-N#kO-U3!O@4d#3l9uy4)3ng-^7}ZQZk28I;Esey*nW zZQPtscnW>l{T%!nMe&H%aq`3QE*RX@L$=I-=r$%nz+*{BDv%*1Z535xyZ&K!jtyD$ zX)Sx_Sty-0L78m$CPVKnJOig4l&2?UU4<3;b-2Y}n9Mu26+|Np&?Dz5qrtt`N&gC;GwQHzR}kobb-}KQW+d&lS0xzF_l=ucDNRNt~ zn9aUi=8caw>XU!Vhq05(m%eY=1Q+MsL5mK@s;_RY;HW1+1Hui7NRcSGw~nClg_U^u z!U!&@v?98PRdfX1JPF3)Q{O;3 z(u^e34WYs%CEW3;2NV2_na5Ax!0`*a*y$a4Z;0GU*Y)fO57*uN@SN$AbHMQMxv2N<~3i0Ur*G? zW#%SqH9Z2t-JifdjN4c9HiNB;;F0YOAK{woDZ(2*2Zy{ra9KvqsqT~w#)T!YGx#pA zmvgAii2KQ|9+`~Q?+%jFpYB1V)N!(*F%0=XoJhB>AR~A(86Nd*C*DTC(DI%(T~&D= zx5PUU>uo~xv!@{a!ufMs1BD4&Ek~wszpdhWcXEOuM80t<^|g5h$K)C@Lh&oi(q_5+ z33=d`Jc=DUp*7>h}Y!ZbYLJ^Ven4wv=V&<)EM zld*Jpy0^Xv*ABCcoYr>I=q7;!t|{<-NSgF|&7oebu2HKbPdYMlK0I*N!p7JM{N=pMT*hq{X$LJPdEgYs z^m&j%=X99uR6|838j!z9ru-91Ht1g558J36ls;CXnv?HgX-gb#@8) zHNj!yW)$4%hGjF>(8AfRxJurG-EI{E3qJl}uDXZd>8XO;{=okr@<}^vY4gHP#cror zUPaKjU!LRAv(bWMV~qIvL>6Yz!;5~PO9?R9^<1W~V>;UUU4mO#hNRd|o=iU>O-BR_ zsh^Q0{dM1-Ed3=!D_5uzyXHtzRd<^mjQ_*l$excw;>-S%bO@R1oA@IFRoj$pU zpzP;Q*4TIwku`VVO13qf_fd_$dvp|~KRsl1Z!6IWVtT~$)O2QKzXN}ku?i_&r%4>R zZ@k4e5!(5ILa9|VqcrUxaeQWrV)n1u7%f5Y7-|FWl?D|5xsZz1LYTXD7Zm;7KwGlS z=wO5gnNjQw=hd7DTvVk#Mz(x|tRzg%eFP>ghjF5>3iDcG2^C*2NUY*Rs&)iTATm5V zT=u6DN~WA;My;nXd#3Z47=vl_il8+Oouh~)KKgX{5ug1#wik^89muzUjb#59t_J4n z@?+{;KmU9SlRti(5f-@szf}aWN_@})6wD&u-!=0eQUQ`w}j(4X%dgUo&&GS)?AjCPe2m+d$OOvQAXrLIRu zlw4tQusV%0HYV?H#Dn(}719*a&0No(1y@Q1h+xtOC~$j@3o3)L*Upnht(i@$?)_j^ zdrc%Co4>!l?%6@c#eF7W z+#-=(TnoF~REfX186jcspv+MLHfbdD2Dab8#huq_;4N8l;NEw3R^n?$Z_91Q^tl^Z zb#{Q;ZBvK|wms}6Z#OPuIGNl}wWi$t7`D#oW0hC6K!b}iEP7zetoE#BCoWBdo=<;3 zcKvf)c_tGLu36K>E(dxhD;t(SmZxryxjYe1u=+o_F8Ima-97zJK>B)Ry3Vhhoxg4Z zeCYiT=RPjt#QPDDj;pZmR5gaHePegpO(8yQ9D^HYM$Ak%!8f;GIF>Mo3fY}3a?Y%w z%Dvn!!d`5kovd|q1#fUlEaf?Ij+%vrbb~SrPqz?|s#2xeDG}UW8GSewYH;;cy-=)NO`OGRx>s=lN8?KMa-`Mw77OpC}ZeLE2BR0Phq> zT5!0oO8w|fJP>J5rEYNCX{Rk!s0>46)dw(jryMWO&=;Q#1NXaHMB%48Ig>VutESB+Py8OR&SQNjCb?jK=-5!9;CtkKj`sRx6|(4^1Ux&A;ooGAaT#jVGbi#2Ywl z@`0D_XHDV{#gI?d)2F|Z`czf>U704$v?oQ?g%GvJk!CccgT`M2GX3*MxIHx*mR{j_ zIK_jsN;IDiP1sASy&ACo^kvr5U=7JL)}|x3R^Z^-ZJf6tm-7U6WBybzV&&I~Yu-nr zJeU9V;yj=`9@~-wnlq`-+9I6GEFwLNZ^9EUv(dJQ%ZVr+)|mX8vYU08(<$3_^NeLXnS?c7to=KvKVeB6 z9uJ}SVFFPiD|)F>&`kiOV{Sam%P2*(4gy&ADVr zpN$d?%U%vW=O)mC-ihR>-X1V`B~C7_@&|*4B$ROr!FJg`kY6qfx(Azq|1udft-nHU zoFvM;H=s;>HG6pp$CkM#!|Dq{bl}N*SYpAlb;thU;T<2a`|}=L=nxFkc-P=R$qyJd zBY<&PBY=G_HY9oRJJ8=T2G;8tGJ6ZRt8MT;PEpXHGdttyk68)m+WQM0N49~zoeSM! zQikvU2C@y7525^V9ut)I6vt+CvGWO z`4Up#V?c8G4s525Jnie)0AUIF;JY~tT+0U8m6{RMzNd>e#HxdT@&X)L<4A5VF`&F^ z#EWPB@qA$`oUj+CF@1m0r?(6pT`OQjO^B{B31$6Xti{0o9*|QOCPvwZG5TF0n6`fB z%MS9$bK83m@NFr7{D&&BxnM%7MDBB4z7m*PS4LVFNaF+lWbk@9jg%d}hO(lvcqu`Y zp1=JY+dTg8W;AM$uZE^1|L`|#;(En>16N_>bq%yP8&WX=ZvSV946>@KBvnR}mjAAW zafPLrcvl-|UCBkkJE0KKszPjSmGDnK!-zJ1gJGeim^yt5Cf;^{9iH~kyxM@A^K1pP z_*_^vEgUnJT!Eh00dVJMRjC-Z^iHD^4hb! zU*gmHf3SOZB!n;ap=QlN$XoS-Tr3{Pgo1wLHk^Zf@ptseNn_5)8bGdECY-o<7F~Bu z0(x~dBX>!gxO-%y+uH~ziqd0yFJHx}cW1I|$A0mWz3#*8cOrEEoL}hmR+)<8abj%_ zV0HgDd-ARV$raS4LC4?HGsmro_X=lv`Mnmse|{p_7B52#Jk4p{rbU=>XgX1KQ^jM! zkz5@*fk@Vrz;Z5|R$G{Y%&G;*pCE~cuSk>mTz)LbPY@n?Ml!zK-MB`l7Hrr42Dt)5 zIw33$!(ZG)R|0+q7D+P)C-5xtYBI-LVc;rKII2dda z`=|d;(Rn!3^!{j zi}$!I@wmB?eQpqm<)goFnWH&*&%DNJa{;_?RTdYYHm_gG! z@U(RrksW`Ibt9SRY-7e0e$b#3ZPTFeb1f{Hlmfe(ZP**Lr0|WXC7v=~NM^h8c~w<% z{2hR938|nt>V;6J_P5d9*5u`XBep$3N(6FEaX+W5wDms7IaH3?3N}Nwbvw3bh?4gr zCCtg71H_x-f)8JwM6zp5z$#%CNxwaVOnR_@(g3&Oz0Sihvo{xG;#$y<+pj#@(25BK zGfA324N$kYj4mHx(XM_t$9BNFraY9Do=hk2R-=w-+SFU0%aVjO!TcCCD(J|~1g6=* zz4HBR#~l_V9JRq>)!^L{4ZB%{sx+*!1)ie3c>9r3k$SL@bn8oy7kW~)NOHr_KwNuB-hFN zm^>4Hn;4NN`J(VO$qKg3tWjlz%*leBAM?q=WPO{w@7M zN(4O^sfqT~*>y7-{MAQA8U#CTl){R8C(vFn3+HOflS5lHNo)Ljv@@H=HhkHQyG~Ao zp^g6```VITX%!?Z<-};}wa3i<7dJpx$pzo;ZiZb81gPSZS1|p97d* ze;TxRwT^@7%U9#^(<6-gfyv~B-BWw{wpfe~RVH&6Y7p;(L11y7W6FMA1Q)yKL1kb$ zXowc$-860dw=)^@`fg+PcWLf3n#DB59Yt5+H2dMD!SL}sgQx7C!{<{SaN5QVQfF<& z5Pl-x=&ca_7@*5&>Y9-hlMS%-mmUpBo=^KT?qF&v$GYR59h)uLa28&Ipsgi&aXTOT ze#S7(0^RuKkQA}f7NiZ!CXnTiMd{y(dU*YGIltwBAS%pQ4~*YYbQ0m1efO`xo?Yu; zyGS&A)QJK=fk<|9{6aFN_zpAA!-0 zrZxK+ZdrL2oG(sB=nMt*L`kxIivnGLW)6xuPhg{CxPACv&U<=41CsB)!*kLy7)>8ngjXgwZQ>SpsZ-RO9%7QGhpk{@zbmVC~1gS+bD zMBFb02Mw08_oIuLTX(A=#^o^^8y$oV6BMbG$1*xA*BylN?_syiMLKf!8LOC72dwWa zFgiL2?O}rC!=q_*(e%$u^}1fD_c%@mp6}tiIXFX8&`-S8{s9uUYeMw4INpzIYe4+H z0%84H+2@@9E4wQfqXy$~dch~=bXp2H*-c`{XAYw8;y-wJS^?%f3j%}Nf0-|nSj^<@ z1!>_zSn@T2U3kQr1{{?nQ>#|fC}~%^Uf>(g=rKd5mrf!+$^Gz=%gsgnd;zD)X1E&d zg{xl4kyauFck<-eTiHwSd+H`Sv^)@J_;14tHy?rFRRQ+MX$7jV#+u_C%TSdG=Rsn& z8QRIcLhreo;oJ2~&=@0zi35)8rZ#EfwzCToH71g@MN%Z+WHRZ0qC@iqz3}$YLG1d) z@g_z&_9IDW)zz=Sbtzryo^3`S%UO^eky11c7sIJ{rO-9}7>3k&uutJF{0wp;zcUo* zwcXp$>!lzO7(5AvsoP+9mNy&pN(TgrwQ-+XD;mG$WBtEC+)zn1|$yA0^^NPXs zb1>9LwJg|0n}lFA|ee^Zx(QQu`0^)6u^A3FsZ{fEKdg3GASjDSy)x@=#v939mS zr}zGBqTPj?m;>WesNdNbw!Yqgl6ykrP@)YjHb`OH+FDR*M-LKVN68)o z8#1f5nEf?sPd0ElGTq^mknyCIx98jfY*-o!Zh9>kVqrkV`h2P6gYrAv3J zo07YRQp9st5u8>YW70NlCy6T0Q1p#4BN1N)rVCO_=YPhC>I{ss8xo~qVACl~Oy?SPZ$t6i zH40VVtJ(fRzzkmKIxvmKuLB&Os8tDGx9Ot-3Hk#-H|?GZ)cz(*i4 z$T3^2Tp7!4Z{a~?I7zlQ?zbH&%w9gqA(ui)W6yARIEJ#g5KA|1AP=rSAi53Oa{B zHXq}d0?`ovAOaF^>QleGD(vW*Nc_H;lhboG=y`Sk(?iUOIhQB$ib#f60Uw#IvOZ+_ zeR+~?SjUd&n-W8=mzVR0;@hJFguWW$G6-`)`c)5v_}lO{4|Rgg~q?ADj`O0)K4M%)g0&nj*Wb%$dFXYnqWiQ z7hY%HCh$9!$#jRkzzC^M{sIp<@{jBF_E-MF!G(#CJ8>KiY#f8D&c~qK(vAL!EdaA6 zx~Mt$1of26h}W03XtC}%$i!?$nT|DdO;rGQNmU~6Cf}v5!hUdDHWCHu^_Zv@CEC9` z8!fbJKxKD6s}x(wPMGe^tk;?clC3#Z_{KT#ZxkY5m!IQLQ*B}n7>ba;ijS~msFrmw zxdms2WZ>orZ*YA!8&z*{4Cm?cNPm4`o=+}=&fal0{+ofS2l)4996~&mYrxVBy zshzYW{uLa_RiY9f4dF>hA}npMp|SC&(LzLzhP0n6srsuyX7$e^Gu7A7FKgzY)qV+H zgGVk;!QwM4+i?mrz77L*p75u@_RBU?ul6m>vkcu?hk?OCqL`OaVt>1}5)lmW3 zHzAdk+@gm{)5NLsHVgJ#=O(I{dJu22Ws`2QV@9aKFW#YV9ikxWFLS2XNJTtH9cyJ2C9+zvt zonwSDBNsAlD`zAi<&i5T3WN)6F;It zgdoQ$`3+ku-+}+v3DhR`232?`Ox+qHNRshuFuaoj&W6fxicfp_*H?NJ8Vs)vQ((_9%E{h;Y!(6J6X}q zJVu^-7AIceGVk~JSov-#oEaX1{Z>K@Z&x7vv;Bh@s*5&vFY_L?s51hp9cXpG8^Y?P zIj8$BoU!T*v)1(tTli6vZ0Lx9`OS(XbDuPZDr?Z;k!n_J@iO-4fh)KmJe~okK4xz9 zXNFF`fCEnz=*J%oeA{C>ME9E-t`M3HRqa*yIeikbzz8O?){aVUmZJx{Q&}}GWAT&! z1=p@9hvlgycy|+>$5sQeeWO^{BY)(&Xyyi=9VPpLp7xBkHehG z9^5OTL@RXPfuCg=yVzfu1exW)*a{JvyIPk#-zde3_;uhX?z~zUGKZSnJOZn0CFt(a z8z3p*4Z+poBvJYSnr4~Fh})Mq2i4fW0^4k`MSe!RCGOdK3AqA0sC;EIT5bMB*3ELhpcUr0zG}R7u?lO zvSUgK3{~OdnN4ru&9+{4)>SdOuf(3DA2vYCV`}hh630~vm7qiQ@%VRQEUzj*n(D34 zAaS9GppJP44YkAA%w_04L@j4mM;VaxorWa--CIn7Z;Y7Cf4JH$9Opi(V3X2%*#>TB zXJ+sKJ>28aHYWtXZ0CFhVivTkpJNTo>f%+e@Z~~nD{&9!T6h^dgM41y4S`E{pwP5F zSn@m%IxZD5CzBt8#Gj2QGD{a_4w{jXgSu4irX<<^Y$lZ#JHgQOQhra!LoP4uPoAi2 zlE&gkI3dXpO|7{8VP-Gv`qqRZ>-$jcqYlxY-hj5>o}*Ew9`Rf1hIjokK>8}@0J|$q zuX0SQIiW$opWw#|KAQxev~+RWdred{--AcGWvJcWBpM_h1Sd8;NB7r3#P--vP>U7D zpI*{LRQ(5|JbZ`u!rl=^Qw!i?p97H4sYJ0&6XvK$QLC1}OwW$J>@p`7Ph~0)-ydJV z@1Qw1ivkoryC30t6+8532OfAefzci7fjpC5JUZi?*Wr;tn3O+?wdtN|9S#XK>$k zRY=!Pffu$#?AIU{Mv)VHo4d|M$s1xN9|jDm@tn)BJaQ#DCm4mkaxuJqL$8t{i`C@n zJH&LmnMj*6FwNv0nEvG$LfMzVUS%nr=P&>Y1-dxouSMo-xPq~WKlRvu9b@Ldq|xW> zpv~kZ|9#0rMz?MoZU3eUi7Vbi+~_q7ojU?|`%}1X>Ml69Q=C3~C{E@yKIg^T%F#sI z8uoWdCFZZqVvanpCx2enV+yzHHOf*Tu3ulV>sx=pejyfJytYxP?$6hp^O#l9pCUR^p+cBg}e~w&6r}tuXj+PA(u3UqY7BR$bY$CmR zoQ2Bu!uT%aKN1vcPQ*7_ko|LHspc6A;#b7^^WZuBNzlQXw`zp#tx8k|YZ8YI)I?lNMnGp$YWn1+;?b~K9 zCdv=9P;06pUD136Q|{@Y{N^3xwdXXd_0Nd96mP<*C;2!xT^*a78`+fyl!+#o61BTO zd3ATR$>+y+Vf$$n@_nN)8Oai*p7M+7G@W}?E8c>hxo3s1GS(2`LOXK(+-kb&s1*%o zUt!1>8!)#NW)IyLBR`YlP{5@epINEXzaKN0gm1G!a9ItCzR!fD7t&bR{tz!lh~OR5 zOCU7oDU@}_LT^wPSS;1YpiaVZiA>0XO9OCy7Rzi)4u;=tDjff`41^21IYy@p>$s>J z42EP#TmKbix8r-bnZAfkaczbbl>6x@U)O4 zrQMov>efbklS`|K)cHsp8>|H~$T5bVp1}AOG2rclIJa>hY>e?HCxRO=pppANdiwKg zG+c2g?>ee$>X7n>=NJXFCR5(rfY)J#Oy1Ymcu-(EeU@MjN~@dkMXL_Imh*z$ANP>! z>SQxJWs@LHOb~)+jsc@n0s?VrXm_;{5BuC_o*W71M{M>X^*QQX#;_2l9!NlUA64iH zut1w%wzMb4o4)(hhdE9rU^dMemnuJla~+uwai9pk?NZ&p62%3vLE=!-|vjeSD%M)$0U4P;YNPxyTYNh;ZScU zN(a8qr^$E%tV$%wg|S*L$Gw-t8Q76M>9cXcTSthGJd4(q&!MgLBVJh&&9jx3p}a#q zu*xEXy|q@4O#6NxoOd0djYrzS^J+JI_LC;r|0&WWXB!ND;sV!;C(swpj&$~)i9~&$ zGMy+;Lf7BgN`Beiws)3jp0$6vASue9gAJt*nd40Y_-XJEC^;SAxK0|>J-7hpn0$un zS(9;F#7x|-)y*D$WQx}7VzF)adQx-aIqHWjV`7(>;^3y^_>$wBZPJq=Kd;V3W@kSC zMztCx)Q%kYii3iQx3M7WB};6?$f0R(*|CFuIOw~XJ>8fIcUBLxW!y9OW!ZxgEAK_@ z<&aiLb6bT2{_#w2upHSM&0>y$6mb|?!0vQf!R~YCo?l;gIO6EX-*__&^jK5Ub?^>d zc_th!$24g3Gs+AJr-FQ#FS)c*5_fmBKs;8Xy9(!?Ht}PYd!%vm-fHGn++k+tGy#(E zY6dlM{RnH?`wE2*+1EoGHogzsYSMsMYQ>i zFm=$VMKNP({&&Mns7U_K&NzCk_{+UOkYzZxq||j#zQ*ym-~@T|_%w4l`3e|*ISL*^ zoD-OL0IoFdfwg5*NZPJ0*6B_WM0}VHQ5QBs=$?4q{Z*Qzew!*ex2_T{Kai!nj296b zZ(opnV+jwu2jR!6C)n&Vhin&epu2yc1gX<9jCrs==8M`8@0wOPIFsTE<}}-_e;Ymr zn6Wup_n5mHVNfSBfySylhJqqZ?63326{7-F6mnofayn*JRifYef9&#LDahGXjAxhI zlkNK6=v5HN{wQC`?oBxcmnMl*Uc+NFx-^?4aXx2#t|OwosQ^!iHS>kuxWjBkMKEN_ zn9c*u=-91CPT%_lsm{`{Lhl=_*u*1)Bi67iNRfWp{ToC3#b`jk3g)X1vzqQPOygQ( zyj04$$3r-mj!-3gK;|CCay=25Y!Pz4u#@{g?m>}Zgsm6H(0hpt?pSh#F*|8W8wVsw zbMjx9UlU<3p49;bX6L}{zA^b{S^@1}3z@g^oEPI|G)BQqJkYg(Z0)pyiu|)!_f>=l z+aIBA!)xJ%X&Ebc%Lp|RbHVvK$D}W=<-1lqhZU1JPKb;T7B`x5PPg~Wm%v1@>X<_o z@2X~BITW)qIM>Gce{s;(FHRRsn2K5kcX35nF6w^!f-Y}O;K-;J`WH^&NeRRPGxQyD zr%S*g0gBI0kHWdw&(KwU2VN~Mg@?hbVJFA9G)qoKMZQ0k`NgA7+#EnmSrQ9wen**5 z?sJN2LcPnJA5}<_KI3iUJU|=pq1;T;)nG)f%;@B~t z3>c6v#f5LVyPLT%9b6R5b%TuQfoHSm#t2EsetHuuIInI(-w)PTaWdI=)t%dMPN0%E zbHS+Bl-SA0kxfc7iBhc~wYM6F*P@0kEb;U zaaON2`m~6k^(S|d+Bu&X3F>g�PM~-I*rL7)H^N1?0=fMB-|i1j+)J(5jgGyNsUV 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 UzyQTRQ$a>U`ulVIe;oV&0H5rSL;wH) diff --git a/models/checkpoints/dlinear_btc_2020_2025/test_metrics.json b/models/checkpoints/dlinear_btc_2020_2025/test_metrics.json deleted file mode 100644 index 34978e5..0000000 --- a/models/checkpoints/dlinear_btc_2020_2025/test_metrics.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "accuracy": 0.49764421240290335, - "precision": 0.502192108409725, - "recall": 0.3185035389282103, - "f1": 0.38979118329466356, - "true_negatives": 2648, - "false_positives": 1249, - "false_negatives": 2696, - "true_positives": 1260, - "specificity": 0.6794970490120605, - "mean_confidence": 0.49758902192115784, - "backtest_total_return": -1.0, - "backtest_final_capital": -0.0, - "backtest_sharpe_ratio": -2.5728736046923655, - "backtest_max_drawdown": NaN, - "backtest_win_rate": 0.16044823634279892, - "backtest_num_trades": 782 -} \ No newline at end of file diff --git a/models/checkpoints/dlinear_btc_full_data/best_model.pt b/models/checkpoints/dlinear_btc_full_data/best_model.pt deleted file mode 100644 index fa0ef4d92ef0905868a1ddbb9f455240a99ba81d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64420 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%0A!7*$$K<8|#Dn*B0+)Rc&V)VU=Y=`) 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%0DE;<5z;JZ8jfbo-9HGI%c5A|nRFo_^s^+w>^9pg za>D-hKUQ>k<^KQaf4Kf%{f}&Ef9dZzJc$fGBnDn&ez*VG2hx_2{3QnSNAQxU&_xRe zd%OPs24Ngkevkg(P{;&1apd3ae;&P`jLlz0xA~6{P*m`e(Ag28t7b11XEHN1Xt1}% z|6(%sPVV;3PWJYWt}f1Y?oLjQPEHPXj&^Qt4z6zEiL0}lvz>#BtMl(!syEMCVJ6P- zcN;T8_V;A}J5rS+O)3pkkdgV_bbkNgFUQ~GRyK>nBmUk)9K0}86s>+Y-M?5L7yJD8 z9_FlE8oX#pQ1Ft!cj0HoJ&uUe`rWkt(uJPb>%VvLAOAVKzuP}0>aG8E6a3ZQPWd0~ z?f-7S-{5?|e;$ALKiNC{-M)CeW57R;pWE#p#&`U?{l5ni|2lu2?*Cx#^mqGz-w6EG zKB@5^?8TenuQ$QJFXX@4Yc&6Zz02S2|9uhu)jsL#KiIqe-TvQ~k@jD%zs|S6+W+Um z{d))heuww_O9#9D*1-ziC b=%4>OmlfZ}j8OQ!6lA)IuixMQ*LVLPIDg$B diff --git a/models/checkpoints/dlinear_btc_full_data/preprocessor.pkl b/models/checkpoints/dlinear_btc_full_data/preprocessor.pkl deleted file mode 100644 index 0e954babe406478a0a2723571b546c0bb3e72375..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2150 zcmah~X;2hL6kaY7!82-6p)8H@BI<%73I?`Y@!p8$z+1-I-GLsRomppQg*D=lh=3VI zrBmgNN))Y9q|g{O>VTHwQC5_wsO7PXM`F~%GRA0hF+DpA9+fivW8UjGuix>#*Zmd- ze?PUk!MBvQHd>~Q4v}$)f|ZdZLBvYC6w&37h4F6+i*WQJoP&EQ%{f7sWudLJuz9=E zCPNSzD=o>MjiirI}=$OuG|zs%M6B=ogzbtngeV$m;;tzCDMcPF?Q6vq4mt@gtm2nYPLVTK73FU3N zN)hpsi&FwDI1hh;dzk~wQMnj(R6=aB%fV>rbf_(jNkP3Tkc}14*V+Jy| z6ig=o1`7^`C-EXS6JaHY6S9aqD5}V1>99EiJEEKV$AsR+lJ8QFX#E2$#Ivkofg0L2vw`H+5nRsoX`=KPe2D5)7 z(lRTMltqT1%S*(TpQGZ*iAKI(tbUv*bF56T3r2#IcnG)AE=tItvKVF-(O@MX$M7WZ z=9&g2u_SAqwF<;~s7=Vyg+5M`F$5!}6;Js~r&rA!rL^WLiMBg9Qb&nlNF~SiJnL^F z3Zo7vQmYO6@Xg9}Rsu8Lsz=g0^)P7lNVy!=uAcv6fXCFQR(Z?=kLgg(g84^NJf?3> z%zJ*D$gf_y_<6<38>Y2uv~>yuZb~2JDq8|VxI+)`ME3>{*6cThdWL|`H}|Gb437a^ z*XMaf`5sew*G1Q-=6Fm+XC^0yPx6?GWAC4PyzB)S9S_j8ezqoP%~mg1P`&%e&4JIs!DBnWX})zF=y&LmpSqhUrtf!{ zz`DWcO}VA?MK{12l)-kb?f)AfGfCck{PLo+Q#PwRj~zO)m@QGK4j-EwU01A*VfwD> zPUMXj)<>bM@=8BbT20<=HExD?L*MRh;Dsk2A6497U&_dx6Mu7qgn-CFa_AQIxnbkU znL%6C^FnlX4ZTebO}^GC@&HnIoKydd=eQ=jcNbmjkwCe@_yxd3M~sX<+S)gxc8rblo4ZyW-BnP6gwt)$ICZ z!3Uq6SG(j4dcien9MlxJ@HxxX~{GB@J}*eGB46a40YY8c}4{X;Q~>au6t&ZiUMrhlqV zXYbkq4-84#(W&%1xIeZaG^KMfykvM4Q8l;$ZmcgoQR8ZWlY`DAt|oS$tap7IQ&I=Y z`0@LafCr{dH+BzO+7r6RXYIDY6JS#4@wA+k=fJSgtgsjRe+7>It1agu_WBVR1ohk_ z{j~7{yrzBx{Q8gd9w3hr=>gxIcpnCFWG$%j`Y@QX+Y6(o6&}4;>V;Yp$bPIM$RvX=;h_*i{rd-OhjOBFv1HD7v|Lr z&h^5gw8QKLTnFaY+}`jk<~0Th>niU4RecGducLQG4flY(R}S_cmwFoncD}xPV*Q@~ z!NB0h!~k^+UV((NJ71;GY|t@iL-~g+HHRVNgv@9qq@OXt7>k`2rFG+!v}%KgJo;op zp&qCw>V=}wC#W~-gZd&Pib1icAL@_d&;S&V2BJYI0VSfr=u?!0l934k1Q{iay!jcd MEHgHo@3a{I1wGtV3jhEB diff --git a/models/checkpoints/dlinear_btc_regression/best_model.pt b/models/checkpoints/dlinear_btc_regression/best_model.pt deleted file mode 100644 index e0fdea946fca60b7d4b4180c28e1845c368f9109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64420 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 diff --git a/models/checkpoints/dlinear_btc_regression/test_metrics.json b/models/checkpoints/dlinear_btc_regression/test_metrics.json deleted file mode 100644 index 1e15352..0000000 --- a/models/checkpoints/dlinear_btc_regression/test_metrics.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mse": 2.382730417593848e-05, - "rmse": 0.004881321970116137, - "mae": 0.0033776722848415375, - "mape": 780.3690185546875, - "directional_accuracy": 0.5066853431809499, - "backtest_total_return": -0.1671363264322281, - "backtest_final_capital": 8328.63671875, - "backtest_sharpe_ratio": -0.0266775386419239, - "backtest_max_drawdown": -0.40377509593963623, - "backtest_win_rate": 0.48974914045587675, - "backtest_num_trades": 1061 -} \ No newline at end of file diff --git a/models/checkpoints/dlinear_predict_price/best_model.pt b/models/checkpoints/dlinear_predict_price/best_model.pt deleted file mode 100644 index 98ec00795acc90df60ba8bb361c41c0f38721d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16292 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 jzd!l7!QyoR^I5^2n>$@J@)?tPM_?G diff --git a/models/checkpoints/dlinear_predict_price/final_model.pt b/models/checkpoints/dlinear_predict_price/final_model.pt deleted file mode 100644 index 35129c2eeb279a64dcace687caef4d4611aa22c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16304 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 diff --git a/models/checkpoints/dlinear_predict_price/metrics.json b/models/checkpoints/dlinear_predict_price/metrics.json deleted file mode 100644 index 1d22417..0000000 --- a/models/checkpoints/dlinear_predict_price/metrics.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "price_mae": 528.017854278076, - "price_rmse": 736.6082253699151, - "price_mape": 0.523728600511905, - "direction_accuracy": 0.5022918258212375 -} \ No newline at end of file diff --git a/models/checkpoints/dlinear_predict_price/preprocessor.pkl b/models/checkpoints/dlinear_predict_price/preprocessor.pkl deleted file mode 100644 index f4397f2292f6c709fe0201cbc17d4ea7f5b9c4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1182 zcma)5U1%It6wYRM)7=>JLrdrnjinHhjb+k6p-G9&UE)J@HBDP6G#IXTX7A>XnVnhh zok>`2OIJu<=3>Z*osZk$-4OCY zn0x2WH|L!1`_4HYnivn26_<=)oF=A?G03_;ZW^?Y(+qbEDulyf9AY^*3e7TNInIzy zj3G!&%G#8}sX>H`nZwOD92*h=Ss@H!Q4Vs87_ungwwAdc$+QPGoFpy*S$)tYc9QVq z!4mv_hUkdtGMuKwhP;dvUxb@f=aAuKvTCnOQQ~@>VwP{^0Q24&y~^!E0?xT03^k?3+kFAOMcLQaO-AVbU?WFUi?vF_Ivo{)U+;T#!!{&%zwEi3L=}l+`v~rCMT{h{_rp3zE)QinpLtF=urp z!HMq?+bYXb|EaZeO|4}rZg<3Y{KlDO1Y?S^4EtKENb6a>uLRrppbonV-97zf_IIC0 zmeAF?s)gXTB^382!^ZDFqidHp=)bD_<&WoHSyw-aKA7p$V&VlfCbCmQ`9^f^^)GTr zFLbfs;jQc6YDD0Z3JnwfxMWRtZyso&^Kt#nLj!-kKOf)J_1oskj`?^~Lw>KO?sLn# zZ!iAB;KM?XxT%^mCi8=WrHzI@@Guh5B~E}i)F?wwMyQZGI(-9Hnt^SMtJ z(Q98WbbLFvh)(g7w*)Mr!_%`@-d6WF+pEd*sf#G*#TquFW>oRf_WdVc^3WgejkHcZ z*N;AIp8ck7MU>Lj;?fr-N0N28unMXVrODlV`OL z8xT-#Y*Vcz!xqu01w;wRv_yclvNpDBjgM^4{|8VGMrMB0u0Io9DptwjkH)QZeDAg? zk$tCF&!cgFZvRXlRq7OR`&gf%7c~V=nXXIyQLVW*qK4n~wty!c4;EuB>{+&hdb;*6 DtHR)0 diff --git a/models/checkpoints/dlinear_simple_features/best_model.pt b/models/checkpoints/dlinear_simple_features/best_model.pt deleted file mode 100644 index 833739985d3bada5297822d8bfa015b409ec6140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16292 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 lyO>kIf7!UnTC*kZxQ^q(e>U@siuQ{3^Yjh! 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 DnvqT^ diff --git a/models/checkpoints/dlinear_simple_features/metrics.json b/models/checkpoints/dlinear_simple_features/metrics.json deleted file mode 100644 index 6b1b49f..0000000 --- a/models/checkpoints/dlinear_simple_features/metrics.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mse": 2.1433252186398022e-05, - "rmse": 0.004629606050885758, - "mae": 0.00306295626796782, - "mape": 180.17770385742188, - "directional_accuracy": 0.4992360580595875, - "backtest_total_return": 0.226644828915596, - "backtest_final_capital": 12266.4482421875, - "backtest_sharpe_ratio": 0.18486101832170032, - "backtest_max_drawdown": -0.13858233392238617, - "backtest_win_rate": 0.4977081741787624, - "backtest_num_trades": 38 -} \ No newline at end of file diff --git a/models/checkpoints/dlinear_simple_features/preprocessor.pkl b/models/checkpoints/dlinear_simple_features/preprocessor.pkl deleted file mode 100644 index b1c6b41b8a335215e95f6cbe4ec21d6548a7b24c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcma)5TWAwO6iu3>CR+N?Qhd-NLTRG1DhO6kJE4B4(W)&7EtYY1GwH6~N8H(Mi7$-L z1_s4?D~cd~2(3?iQ2bG_prByY55N4V{%9$J5ByNXT4$45)DLk!X71j(d(S=ho;eWg z8w~jJi-$2bh-P98d}fPgq;#6kKWbg| zSFJvgw=wLE{Po2#1V;s99`brEGR;z}yiTaIfA7QcT;sYnpZWZ5coaPvDtQr@KZ@e+ zKuG!c7CpXQDZdx~u?s`nr&SH0lXq50F}5BZWtnT8J+? z!7gI|3#@MZP4hxJ9GCZOYyWm)I6kN0!`$gBhvRiMJ!>T4&yKD5GV;!j*VjGi>)#=x zm)HBV``f;wbGhMV(M6w*cQ3iNx(%I<-g{ax!3uEYcvAAX xi;6Le_rOETqhzSwQ7}!&- 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¯t{mlwjtj=K;${1$Xo&tqI#2y}*J((mnw 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 0).astype(int) # 1=涨, 0=跌 - actual_direction = (y > 0).astype(int) - - n_predict_up = (predicted_direction == 1).sum() - n_predict_down = (predicted_direction == 0).sum() - n_actual_up = (actual_direction == 1).sum() - n_actual_down = (actual_direction == 0).sum() - - print(f"\n📊 预测统计:") - print(f" 预测上涨:{n_predict_up} ({n_predict_up/len(predictions)*100:.1f}%)") - print(f" 预测下跌:{n_predict_down} ({n_predict_down/len(predictions)*100:.1f}%)") - - print(f"\n📊 实际统计:") - print(f" 实际上涨:{n_actual_up} ({n_actual_up/len(y)*100:.1f}%)") - print(f" 实际下跌:{n_actual_down} ({n_actual_down/len(y)*100:.1f}%)") - - # ========== 步骤6: 评估预测准确率 ========== - print("\n[6/6] 评估预测准确率...") - - evaluator = ModelEvaluator(task='regression') - metrics = evaluator.evaluate(y, predictions) - - print("\n" + "="*80) - print("2026年预测结果评估") - print("="*80) - - print(f"\n📊 回归指标:") - print(f" RMSE (均方根误差): {metrics.get('rmse', 0)*100:.4f}%") - print(f" MAE (平均绝对误差): {metrics.get('mae', 0)*100:.4f}%") - print(f" MAPE (平均百分比误差): {metrics.get('mape', 0):.2f}%") - print(f" 方向准确率: {metrics.get('directional_accuracy', 0)*100:.2f}%") - - # 混淆矩阵 - from sklearn.metrics import confusion_matrix - cm = confusion_matrix(actual_direction, predicted_direction) - tn, fp, fn, tp = cm.ravel() - - print(f"\n📈 混淆矩阵(方向预测):") - print(f" 真阳性(预测涨且真涨): {tp} ({tp/len(y)*100:.1f}%)") - print(f" 真阴性(预测跌且真跌): {tn} ({tn/len(y)*100:.1f}%)") - print(f" 假阳性(预测涨但真跌): {fp} ({fp/len(y)*100:.1f}%)") - print(f" 假阴性(预测跌但真涨): {fn} ({fn/len(y)*100:.1f}%)") - - print(f"\n 精确率(预测涨的准确率): {tp/(tp+fp)*100 if (tp+fp)>0 else 0:.2f}%") - print(f" 召回率(实际涨被预测为涨): {tp/(tp+fn)*100 if (tp+fn)>0 else 0:.2f}%") - - # 回测策略 - backtest_metrics = evaluator.backtest_strategy( - y, - predictions, - initial_capital=10000.0, - transaction_cost=0.001 - ) - - print(f"\n💰 回测结果(2026年):") - print(f" 总收益率: {backtest_metrics.get('total_return', 0)*100:.2f}%") - print(f" 最终资金: ${backtest_metrics.get('final_capital', 0):,.2f}") - print(f" 夏普比率: {backtest_metrics.get('sharpe_ratio', 0):.4f}") - max_dd = backtest_metrics.get('max_drawdown', 0) - if not np.isnan(max_dd): - print(f" 最大回撤: {max_dd*100:.2f}%") - print(f" 胜率: {backtest_metrics.get('win_rate', 0)*100:.2f}%") - print(f" 交易次数: {backtest_metrics.get('num_trades', 0):.0f}") - - # Buy & Hold对比 - buy_hold_return = (df_processed['close'].iloc[-1] - df_processed['close'].iloc[168]) / df_processed['close'].iloc[168] - print(f"\n📊 策略对比:") - print(f" 模型策略收益: {backtest_metrics.get('total_return', 0)*100:.2f}%") - print(f" Buy & Hold: {buy_hold_return*100:.2f}%") - - if backtest_metrics.get('total_return', 0) > buy_hold_return: - print(f" ✅ 模型策略跑赢Buy & Hold {(backtest_metrics.get('total_return', 0) - buy_hold_return)*100:.2f}%") - else: - print(f" ❌ 模型策略跑输Buy & Hold {(buy_hold_return - backtest_metrics.get('total_return', 0))*100:.2f}%") - - # 性能评估 - print("\n" + "="*80) - print("🎯 性能评估") - print("="*80) - - dir_acc = metrics.get('directional_accuracy', 0) - total_return = backtest_metrics.get('total_return', 0) - - print(f"\n方向预测能力:") - if dir_acc > 0.55: - print(f" ✅ 方向准确率 {dir_acc*100:.1f}% > 55%,模型有预测能力") - elif dir_acc > 0.50: - print(f" ⚠️ 方向准确率 {dir_acc*100:.1f}% 略优于随机") - else: - print(f" ❌ 方向准确率 {dir_acc*100:.1f}% ≤ 50%,预测能力不足") - - print(f"\n盈利能力:") - if total_return > 0.1: - print(f" ✅ 回测收益 {total_return*100:.2f}% > 10%,策略表现优秀") - elif total_return > 0: - print(f" ⚠️ 回测收益 {total_return*100:.2f}% > 0,策略有微弱盈利") - else: - print(f" ❌ 回测收益 {total_return*100:.2f}% ≤ 0,策略亏损") - - print(f"\n风险控制:") - sharpe = backtest_metrics.get('sharpe_ratio', 0) - if sharpe > 1.0: - print(f" ✅ 夏普比率 {sharpe:.2f} > 1.0,风险调整后收益优秀") - elif sharpe > 0.5: - print(f" ⚠️ 夏普比率 {sharpe:.2f},风险调整后收益一般") - else: - print(f" ❌ 夏普比率 {sharpe:.2f} < 0.5,风险调整后收益较差") - - # 详细预测样本展示 - print("\n" + "="*80) - print("📋 部分预测样本展示(前20个)") - print("="*80) - print(f"\n{'时间':<20} {'预测收益率':<12} {'实际收益率':<12} {'预测方向':<8} {'实际方向':<8} {'准确':<4}") - print("-"*80) - - for i in range(min(20, len(predictions))): - pred_val = predictions[i] - actual_val = y[i] - pred_dir = "上涨" if pred_val > 0 else "下跌" - actual_dir = "上涨" if actual_val > 0 else "下跌" - correct = "✓" if (pred_val > 0) == (actual_val > 0) else "✗" - - timestamp = df_processed['timestamp'].iloc[i + 168] # +168因为lookback - print(f"{str(timestamp):<20} {pred_val*100:>10.4f}% {actual_val*100:>10.4f}% {pred_dir:<8} {actual_dir:<8} {correct:<4}") - - print("\n" + "="*80) - print("✓ 2026年预测评估完成!") - print("="*80) - - print("\n💡 总结:") - print(f" - 在2026年 {len(predictions)} 个小时的预测中") - print(f" - 方向准确率达到 {dir_acc*100:.2f}%") - print(f" - 策略回测收益 {total_return*100:.2f}%(Buy & Hold: {buy_hold_return*100:.2f}%)") - - if dir_acc > 0.52 and total_return > 0: - print(f"\n ✅ 模型在2026年表现良好,可以考虑实盘小仓位测试") - elif dir_acc > 0.50: - print(f"\n ⚠️ 模型预测能力有限,建议谨慎使用") - else: - print(f"\n ❌ 模型在2026年预测失败,不建议实盘使用") - -if __name__ == "__main__": - main() diff --git a/predict_2026_price.py b/predict_2026_price.py deleted file mode 100644 index b7fc700..0000000 --- a/predict_2026_price.py +++ /dev/null @@ -1,202 +0,0 @@ -"""2026年价格预测脚本:直接预测价格并判断涨跌方向""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import torch -import pickle -import numpy as np -import pandas as pd -import pandas_ta as ta -from sklearn.preprocessing import StandardScaler -from data.fetcher import BinanceDataFetcher -from models.dlinear.model import DLinear - -class PricePreprocessor: - """预测未来价格的预处理器""" - def __init__(self, lookback=168, forecast_horizon=1): - self.lookback = lookback - self.forecast_horizon = forecast_horizon - self.scaler = StandardScaler() - self.price_scaler = StandardScaler() - self.is_fitted = False - - def add_features(self, df): - df = df.copy() - df['rsi'] = ta.rsi(df['close'], length=14) - macd = ta.macd(df['close']) - if macd is not None and not macd.empty: - df['macd'] = macd.iloc[:, 0] - df['macd_hist'] = macd.iloc[:, 1] - df['macd_signal'] = macd.iloc[:, 2] - return df - - def create_labels(self, df): - df = df.copy() - df['future_price'] = df['close'].shift(-self.forecast_horizon) - df['label'] = df['future_price'] - return df[:-self.forecast_horizon] - - def preprocess(self, df, fit=True): - df = self.add_features(df) - df = self.create_labels(df) - df = df.dropna().reset_index(drop=True) - - feature_cols = ['open', 'high', 'low', 'close', 'volume', - 'rsi', 'macd', 'macd_hist', 'macd_signal'] - - if fit: - scaled_features = self.scaler.fit_transform(df[feature_cols]) - scaled_labels = self.price_scaler.fit_transform(df[['label']]) - self.is_fitted = True - self.feature_columns = feature_cols - else: - if not self.is_fitted: - raise ValueError("Must fit before transform") - scaled_features = self.scaler.transform(df[feature_cols]) - scaled_labels = self.price_scaler.transform(df[['label']]) - - X, y = [], [] - for i in range(len(scaled_features) - self.lookback): - X.append(scaled_features[i:i + self.lookback]) - y.append(scaled_labels[i + self.lookback, 0]) - - return np.array(X), np.array(y), df - - def inverse_transform_price(self, scaled_price): - return self.price_scaler.inverse_transform(scaled_price.reshape(-1, 1)).flatten() - -def main(): - print("="*80) - print("2026年BTC价格预测 - 直接预测未来价格") - print("="*80) - - # ========== 加载模型 ========== - print("\n[1/4] 加载模型...") - model_path = './models/checkpoints/dlinear_predict_price/best_model.pt' - preprocessor_path = './models/checkpoints/dlinear_predict_price/preprocessor.pkl' - - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - checkpoint = torch.load(model_path, map_location=device, weights_only=False) - model = DLinear(checkpoint['config']) - model.load_state_dict(checkpoint['model_state_dict']) - model = model.to(device) - model.eval() - - with open(preprocessor_path, 'rb') as f: - preprocessor = pickle.load(f) - - print(f"✓ 模型加载成功") - - # ========== 获取2026年数据 ========== - print("\n[2/4] 获取2026年数据...") - fetcher = BinanceDataFetcher() - - try: - df_2026 = fetcher.fetch_ohlcv('BTC', '1h', start_date='2026-01-01', - end_date='2026-12-31', use_cache=False) - except: - df_2026 = fetcher.fetch_ohlcv('BTC', '1h', start_date='2025-12-01', use_cache=False) - - print(f"✓ 数据量: {len(df_2026)} 行") - print(f"✓ 时间: {df_2026['timestamp'].min()} 至 {df_2026['timestamp'].max()}") - print(f"✓ 价格: ${df_2026['close'].iloc[0]:,.2f} → ${df_2026['close'].iloc[-1]:,.2f}") - - # ========== 预处理 ========== - print("\n[3/4] 预处理并预测...") - X, y, processed_df = preprocessor.preprocess(df_2026, fit=False) - - if len(X) == 0: - print("❌ 数据不足") - return - - # 模型预测 - X_tensor = torch.FloatTensor(X).to(device) - with torch.no_grad(): - predictions = model(X_tensor).squeeze().cpu().numpy() - - # 还原为真实价格 - pred_prices = preprocessor.inverse_transform_price(predictions) - true_prices = preprocessor.inverse_transform_price(y) - - # 获取当前价格 - current_prices = processed_df['close'].iloc[168:168+len(pred_prices)].values - - # ========== 方向判断 ========== - print("\n[4/4] 涨跌方向评估...") - - pred_direction = (pred_prices > current_prices).astype(int) - true_direction = (true_prices > current_prices).astype(int) - - correct = (pred_direction == true_direction).sum() - accuracy = correct / len(predictions) - - from sklearn.metrics import confusion_matrix - cm = confusion_matrix(true_direction, pred_direction) - tn, fp, fn, tp = cm.ravel() - - print("\n" + "="*80) - print("📊 2026年价格预测结果") - print("="*80) - - print(f"\n价格预测误差:") - price_mae = np.abs(pred_prices - true_prices).mean() - price_rmse = np.sqrt(((pred_prices - true_prices) ** 2).mean()) - price_mape = np.mean(np.abs((true_prices - pred_prices) / true_prices)) * 100 - print(f" MAE: ${price_mae:,.2f}") - print(f" RMSE: ${price_rmse:,.2f}") - print(f" MAPE: {price_mape:.2f}%") - - print(f"\n方向预测统计:") - print(f" 预测上涨: {(pred_direction==1).sum()} / 实际上涨: {(true_direction==1).sum()}") - print(f" 预测下跌: {(pred_direction==0).sum()} / 实际下跌: {(true_direction==0).sum()}") - - print(f"\n方向准确率:") - print(f" 正确: {correct}/{len(predictions)} ({accuracy*100:.2f}%)") - - print(f"\n详细分析:") - print(f" ✓ 预测涨且真涨: {tp} ({tp/len(predictions)*100:.1f}%)") - print(f" ✓ 预测跌且真跌: {tn} ({tn/len(predictions)*100:.1f}%)") - print(f" ✗ 预测涨但真跌: {fp} ({fp/len(predictions)*100:.1f}%)") - print(f" ✗ 预测跌但真涨: {fn} ({fn/len(predictions)*100:.1f}%)") - - # 性能评估 - print("\n" + "="*80) - print("🎯 性能评估") - print("="*80) - - if accuracy > 0.55: - print(f"\n ✅ 方向准确率 {accuracy*100:.2f}% > 55%,模型有预测能力") - elif accuracy > 0.52: - print(f"\n ⚠️ 方向准确率 {accuracy*100:.2f}% > 52%,略优于随机") - elif accuracy >= 0.48: - print(f"\n ⚠️ 方向准确率 {accuracy*100:.2f}% ≈ 50%,接近随机") - else: - print(f"\n ❌ 方向准确率 {accuracy*100:.2f}% < 48%,低于随机") - - # 预测样本展示 - print("\n" + "="*80) - print("📋 预测样本展示(前30个)") - print("="*80) - print(f"\n{'时间':<20} {'当前价格':<12} {'预测价格':<12} {'实际价格':<12} {'预测':<6} {'实际':<6} {'结果':<4}") - print("-"*90) - - for i in range(min(30, len(predictions))): - timestamp = processed_df['timestamp'].iloc[i + 168] - curr = current_prices[i] - pred = pred_prices[i] - true = true_prices[i] - pred_dir = "上涨" if pred > curr else "下跌" - true_dir = "上涨" if true > curr else "下跌" - result = "✓" if pred_direction[i] == true_direction[i] else "✗" - - print(f"{str(timestamp):<20} ${curr:>10,.2f} ${pred:>10,.2f} ${true:>10,.2f} " - f"{pred_dir:<6} {true_dir:<6} {result:<4}") - - print("\n" + "="*80) - print(f"总结: 在{len(predictions)}次预测中,方向正确{correct}次 ({accuracy*100:.2f}%)") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/predict_2026_simple.py b/predict_2026_simple.py deleted file mode 100644 index f51d9d3..0000000 --- a/predict_2026_simple.py +++ /dev/null @@ -1,230 +0,0 @@ -"""简化预测脚本:只判断涨跌方向正确性""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import torch -import pickle -import numpy as np -import pandas as pd -import pandas_ta as ta -from sklearn.preprocessing import StandardScaler -from data.fetcher import BinanceDataFetcher -from models.dlinear.model import DLinear - -class SimplePreprocessor: - """简化的预处理器:只使用OHLCV + RSI + MACD""" - - def __init__(self, lookback=168, forecast_horizon=1): - self.lookback = lookback - self.forecast_horizon = forecast_horizon - self.scaler = StandardScaler() - self.is_fitted = False - - def add_features(self, df): - """添加RSI和MACD特征""" - df = df.copy() - df['rsi'] = ta.rsi(df['close'], length=14) - macd = ta.macd(df['close']) - if macd is not None and not macd.empty: - df['macd'] = macd.iloc[:, 0] - df['macd_hist'] = macd.iloc[:, 1] - df['macd_signal'] = macd.iloc[:, 2] - return df - - def create_labels(self, df): - """创建标签:未来1小时的收益率""" - df = df.copy() - df['future_price'] = df['close'].shift(-self.forecast_horizon) - df['future_return'] = (df['future_price'] - df['close']) / df['close'] - df['label'] = df['future_return'] - return df[:-self.forecast_horizon] - - def preprocess(self, df, fit=True): - """完整预处理流程""" - df = self.add_features(df) - df = self.create_labels(df) - df = df.dropna().reset_index(drop=True) - - feature_cols = ['open', 'high', 'low', 'close', 'volume', - 'rsi', 'macd', 'macd_hist', 'macd_signal'] - - if fit: - scaled = self.scaler.fit_transform(df[feature_cols]) - self.is_fitted = True - self.feature_columns = feature_cols - else: - if not self.is_fitted: - raise ValueError("Must fit before transform") - scaled = self.scaler.transform(df[feature_cols]) - - X, y = [], [] - for i in range(len(scaled) - self.lookback): - X.append(scaled[i:i + self.lookback]) - y.append(df['label'].iloc[i + self.lookback]) - - return np.array(X), np.array(y), df - -def main(): - print("="*80) - print("2026年BTC涨跌方向预测") - print("="*80) - - # ========== 步骤1: 加载模型 ========== - print("\n[1/5] 加载模型...") - model_path = './models/checkpoints/dlinear_simple_features/best_model.pt' - preprocessor_path = './models/checkpoints/dlinear_simple_features/preprocessor.pkl' - - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - checkpoint = torch.load(model_path, map_location=device, weights_only=False) - model = DLinear(checkpoint['config']) - model.load_state_dict(checkpoint['model_state_dict']) - model = model.to(device) - model.eval() - - with open(preprocessor_path, 'rb') as f: - preprocessor = pickle.load(f) - - print(f"✓ 模型加载成功") - print(f"✓ 特征数量: {len(preprocessor.feature_columns)}") - - # ========== 步骤2: 获取2026年数据 ========== - print("\n[2/5] 获取2026年数据...") - fetcher = BinanceDataFetcher() - - try: - df_2026 = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2026-01-01', - end_date='2026-12-31', - use_cache=False - ) - except: - print("⚠️ 获取最新可用数据...") - df_2026 = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2025-12-01', - use_cache=False - ) - - print(f"✓ 数据量: {len(df_2026)} 行") - print(f"✓ 时间: {df_2026['timestamp'].min()} 至 {df_2026['timestamp'].max()}") - print(f"✓ 价格: ${df_2026['close'].iloc[0]:,.2f} → ${df_2026['close'].iloc[-1]:,.2f}") - - # ========== 步骤3: 预处理 ========== - print("\n[3/5] 预处理数据...") - X, y, processed_df = preprocessor.preprocess(df_2026, fit=False) - - print(f"✓ 预测序列: {len(X)} 个") - print(f"✓ 实际涨跌: 上涨{(y>0).sum()}次, 下跌{(y<=0).sum()}次") - - if len(X) == 0: - print("❌ 数据不足") - return - - # ========== 步骤4: 预测 ========== - print("\n[4/5] 模型预测...") - X_tensor = torch.FloatTensor(X).to(device) - - with torch.no_grad(): - predictions = model(X_tensor).squeeze().cpu().numpy() - - print(f"✓ 预测完成") - print(f"✓ 预测收益率范围: {predictions.min()*100:.4f}% ~ {predictions.max()*100:.4f}%") - - # ========== 步骤5: 方向判断 ========== - print("\n[5/5] 涨跌方向评估...") - - # 预测方向:正值=上涨,负值=下跌 - pred_direction = (predictions > 0).astype(int) # 1=涨, 0=跌 - true_direction = (y > 0).astype(int) - - # 统计 - n_pred_up = (pred_direction == 1).sum() - n_pred_down = (pred_direction == 0).sum() - n_true_up = (true_direction == 1).sum() - n_true_down = (true_direction == 0).sum() - - # 准确率 - correct = (pred_direction == true_direction).sum() - accuracy = correct / len(predictions) - - # 混淆矩阵 - from sklearn.metrics import confusion_matrix - cm = confusion_matrix(true_direction, pred_direction) - tn, fp, fn, tp = cm.ravel() - - print("\n" + "="*80) - print("📊 涨跌方向预测结果") - print("="*80) - - print(f"\n预测统计:") - print(f" 预测上涨: {n_pred_up} ({n_pred_up/len(predictions)*100:.1f}%)") - print(f" 预测下跌: {n_pred_down} ({n_pred_down/len(predictions)*100:.1f}%)") - - print(f"\n实际统计:") - print(f" 实际上涨: {n_true_up} ({n_true_up/len(y)*100:.1f}%)") - print(f" 实际下跌: {n_true_down} ({n_true_down/len(y)*100:.1f}%)") - - print(f"\n准确率:") - print(f" 方向正确: {correct}/{len(predictions)} ({accuracy*100:.2f}%)") - - print(f"\n详细分析:") - print(f" ✓ 预测涨且真涨: {tp} ({tp/len(y)*100:.1f}%)") - print(f" ✓ 预测跌且真跌: {tn} ({tn/len(y)*100:.1f}%)") - print(f" ✗ 预测涨但真跌: {fp} ({fp/len(y)*100:.1f}%)") - print(f" ✗ 预测跌但真涨: {fn} ({fn/len(y)*100:.1f}%)") - - # 预测偏差 - bias = n_pred_up - n_true_up - print(f"\n预测偏差:") - if abs(bias) < len(predictions) * 0.05: - print(f" ✅ 预测平衡(偏差{bias}个)") - elif bias > 0: - print(f" ⚠️ 偏向预测上涨(多预测{bias}次上涨)") - else: - print(f" ⚠️ 偏向预测下跌(多预测{-bias}次下跌)") - - # 性能评估 - print("\n" + "="*80) - print("🎯 性能评估") - print("="*80) - - if accuracy > 0.55: - print(f"\n ✅ 方向准确率 {accuracy*100:.2f}% > 55%") - print(f" 模型有预测能力,可考虑实盘测试") - elif accuracy > 0.52: - print(f"\n ⚠️ 方向准确率 {accuracy*100:.2f}% > 52%") - print(f" 模型略优于随机,谨慎使用") - elif accuracy >= 0.48: - print(f"\n ⚠️ 方向准确率 {accuracy*100:.2f}% ≈ 50%") - print(f" 接近随机猜测,不建议实盘") - else: - print(f"\n ❌ 方向准确率 {accuracy*100:.2f}% < 48%") - print(f" 低于随机,模型失效") - - # 预测样本展示 - print("\n" + "="*80) - print("📋 预测样本展示(前30个)") - print("="*80) - print(f"\n{'时间':<20} {'预测':<6} {'实际':<6} {'结果':<4} {'预测值':<10}") - print("-"*60) - - for i in range(min(30, len(predictions))): - timestamp = processed_df['timestamp'].iloc[i + 168] - pred = "上涨" if pred_direction[i] == 1 else "下跌" - true = "上涨" if true_direction[i] == 1 else "下跌" - result = "✓" if pred_direction[i] == true_direction[i] else "✗" - pred_val = predictions[i] - - print(f"{str(timestamp):<20} {pred:<6} {true:<6} {result:<4} {pred_val*100:>8.4f}%") - - print("\n" + "="*80) - print(f"总结: 在{len(predictions)}次预测中,方向正确{correct}次 ({accuracy*100:.2f}%)") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/test_binance_api.py b/test_binance_api.py deleted file mode 100644 index d800002..0000000 --- a/test_binance_api.py +++ /dev/null @@ -1,65 +0,0 @@ -"""测试Binance API连接(使用SOCKS5代理)""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher - -def main(): - print("="*80) - print("测试Binance API连接 - SOCKS5代理") - print("="*80) - - # 测试连接 - fetcher = BinanceDataFetcher() - - if fetcher.client is None: - print("\n❌ API连接失败,将使用缓存数据") - return - - print("\n✓ API连接成功!") - - # 获取当前价格 - try: - btc_price = fetcher.get_latest_price('BTC') - eth_price = fetcher.get_latest_price('ETH') - sol_price = fetcher.get_latest_price('SOL') - - print(f"\n当前价格:") - print(f" BTC: ${btc_price:,.2f}") - print(f" ETH: ${eth_price:,.2f}") - print(f" SOL: ${sol_price:,.2f}") - except Exception as e: - print(f"\n❌ 获取价格失败: {e}") - return - - # 获取历史数据(1天测试) - try: - print("\n正在获取BTC 1小时数据(最近1天)...") - from datetime import datetime, timedelta - end_date = datetime.now() - start_date = end_date - timedelta(days=1) - - df = fetcher.fetch_ohlcv( - 'BTC', - '1h', - start_date=start_date.strftime('%Y-%m-%d'), - end_date=end_date.strftime('%Y-%m-%d'), - use_cache=False # 强制从API获取 - ) - - print(f"✓ 成功获取 {len(df)} 行数据") - print(f"\n最新数据:") - print(df.tail()) - - except Exception as e: - print(f"\n❌ 获取历史数据失败: {e}") - return - - print("\n" + "="*80) - print("✓ Binance API测试通过!代理工作正常") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/test_dlinear.py b/test_dlinear.py deleted file mode 100644 index 5cabc0e..0000000 --- a/test_dlinear.py +++ /dev/null @@ -1,169 +0,0 @@ -"""加密货币价格预测系统 - DLinear模型端到端测试""" - -import sys -import os - -# 添加项目根目录到路径 -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig - -def main(): - print("="*80) - print("加密货币价格预测系统 - DLINEAR模型测试") - print("="*80) - - # 步骤1: 获取数据 - print("\n[1/7] 从Binance获取BTC 1小时数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - print(f"✓ 已获取 {len(df)} 行数据,时间范围:{df['timestamp'].min()} 至 {df['timestamp'].max()}") - - # 步骤2: 数据预处理 - print("\n[2/7] 数据预处理(添加技术指标、创建序列)...") - preprocessor = CryptoPreprocessor(lookback=168, forecast_horizon=24) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - print(f"✓ 已创建序列:X形状 = {X.shape}, y形状 = {y.shape}") - print(f"✓ 特征数量:{X.shape[-1]}") - print(f"✓ 标签分布:下跌(0) = {(y==0).sum()}, 上涨(1) = {(y==1).sum()}") - - # 步骤3: 划分数据集 - print("\n[3/7] 划分训练/验证/测试集 (70/15/15)...") - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - # 步骤4: 创建数据加载器 - print("\n[4/7] 创建PyTorch数据加载器...") - train_loader, val_loader, test_loader = create_dataloaders( - train_data, val_data, test_data, - task='classification', - batch_size=64 - ) - print(f"✓ 训练批次:{len(train_loader)}") - print(f"✓ 验证批次:{len(val_loader)}") - print(f"✓ 测试批次:{len(test_loader)}") - - # 步骤5: 创建模型 - print("\n[5/7] 创建DLinear模型...") - model_config = DLinearConfig( - input_dim=X.shape[-1], - lookback=168, - task='classification', - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型已创建,可训练参数:{model.count_parameters():,} 个") - - # 步骤6: 训练模型 - print("\n[6/7] 开始训练模型...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=20, # 测试用较少轮数 - learning_rate=0.001, - early_stopping_patience=5, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_test' - ) - - trainer = Trainer(model, train_config, task='classification') - history = trainer.fit(train_loader, val_loader) - - # 步骤7: 评估模型 - print("\n[7/7] 在测试集上评估模型...") - metrics = trainer.evaluate(test_loader) - - # 打印结果摘要 - print("\n" + "="*80) - print("最终测试结果") - print("="*80) - print(f"\n分类指标:") - print(f" 准确率: {metrics.get('accuracy', 0):.4f}") - print(f" F1分数: {metrics.get('f1', 0):.4f}") - print(f" 精确率: {metrics.get('precision', 0):.4f}") - print(f" 召回率: {metrics.get('recall', 0):.4f}") - - if 'true_positives' in metrics: - print(f"\n混淆矩阵:") - print(f" 真阳性: {metrics['true_positives']}") - print(f" 真阴性: {metrics['true_negatives']}") - print(f" 假阳性: {metrics['false_positives']}") - print(f" 假阴性: {metrics['false_negatives']}") - - print(f"\n回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - print(f" 最大回撤: {metrics.get('backtest_max_drawdown', 0)*100:.2f}%") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - # 测试ONNX导出 - print("\n" + "="*80) - print("测试ONNX导出") - print("="*80) - - try: - import onnx - import onnxruntime as ort - import torch - import numpy as np - - onnx_path = './models/checkpoints/dlinear_test/model.onnx' - os.makedirs(os.path.dirname(onnx_path), exist_ok=True) - - print("\n[1/3] 导出模型到ONNX格式...") - model.to_onnx(onnx_path) - print(f"✓ ONNX模型已保存至:{onnx_path}") - - print("\n[2/3] 验证ONNX模型...") - onnx_model = onnx.load(onnx_path) - onnx.checker.check_model(onnx_model) - print("✓ ONNX模型有效") - - print("\n[3/3] 测试ONNX推理与PyTorch对比...") - # 创建测试输入 - test_input = torch.randn(1, 168, X.shape[-1]) - - # PyTorch推理(在CPU上) - model.cpu() - model.eval() - with torch.no_grad(): - pytorch_output = model(test_input).numpy() - - # ONNX推理 - ort_session = ort.InferenceSession(onnx_path) - onnx_output = ort_session.run( - None, - {'input': test_input.numpy()} - )[0] - - # 比较输出 - diff = np.abs(pytorch_output - onnx_output).max() - print(f"✓ PyTorch与ONNX的最大差异:{diff:.8f}") - - if diff < 1e-5: - print("✓ ONNX导出成功!输出在容差范围内匹配。") - else: - print("⚠ 警告:ONNX输出与PyTorch有差异(但可能仍可接受)") - - except Exception as e: - print(f"✗ ONNX导出失败:{e}") - - print("\n" + "="*80) - print("测试成功完成!") - print("="*80) - print("\n下一步:") - print(" 1. 查看训练历史:./models/checkpoints/dlinear_test/") - print(" 2. 实现N-BEATS模型(阶段3)") - print(" 3. 在所有币种上训练(BTC、ETH、SOL)") - print(" 4. 创建FastAPI预测服务") - -if __name__ == "__main__": - main() diff --git a/test_historical_data.py b/test_historical_data.py deleted file mode 100644 index 77d99b6..0000000 --- a/test_historical_data.py +++ /dev/null @@ -1,149 +0,0 @@ -"""测试获取2020-2023年的历史数据""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -import pandas as pd - -def test_historical_data(): - print("="*80) - print("测试Binance API历史数据获取能力") - print("="*80) - - fetcher = BinanceDataFetcher() - - # 测试1: 获取2020年的数据 - print("\n[测试1] 尝试获取2020年全年数据...") - try: - df_2020 = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2020-12-31', - use_cache=False # 不使用缓存,强制从API获取 - ) - print(f"✅ 成功获取2020年数据") - print(f" 数据行数: {len(df_2020)}") - print(f" 时间范围: {df_2020['timestamp'].min()} 至 {df_2020['timestamp'].max()}") - print(f" 价格范围: ${df_2020['close'].min():,.2f} - ${df_2020['close'].max():,.2f}") - except Exception as e: - print(f"❌ 2020年数据获取失败: {e}") - return False - - # 测试2: 获取2021年的数据 - print("\n[测试2] 尝试获取2021年全年数据...") - try: - df_2021 = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2021-01-01', - end_date='2021-12-31', - use_cache=False - ) - print(f"✅ 成功获取2021年数据") - print(f" 数据行数: {len(df_2021)}") - print(f" 时间范围: {df_2021['timestamp'].min()} 至 {df_2021['timestamp'].max()}") - print(f" 价格范围: ${df_2021['close'].min():,.2f} - ${df_2021['close'].max():,.2f}") - except Exception as e: - print(f"❌ 2021年数据获取失败: {e}") - return False - - # 测试3: 获取2022年的数据 - print("\n[测试3] 尝试获取2022年全年数据...") - try: - df_2022 = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2022-01-01', - end_date='2022-12-31', - use_cache=False - ) - print(f"✅ 成功获取2022年数据") - print(f" 数据行数: {len(df_2022)}") - print(f" 时间范围: {df_2022['timestamp'].min()} 至 {df_2022['timestamp'].max()}") - print(f" 价格范围: ${df_2022['close'].min():,.2f} - ${df_2022['close'].max():,.2f}") - except Exception as e: - print(f"❌ 2022年数据获取失败: {e}") - return False - - # 测试4: 获取2023年的数据 - print("\n[测试4] 尝试获取2023年全年数据...") - try: - df_2023 = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2023-01-01', - end_date='2023-12-31', - use_cache=False - ) - print(f"✅ 成功获取2023年数据") - print(f" 数据行数: {len(df_2023)}") - print(f" 时间范围: {df_2023['timestamp'].min()} 至 {df_2023['timestamp'].max()}") - print(f" 价格范围: ${df_2023['close'].min():,.2f} - ${df_2023['close'].max():,.2f}") - except Exception as e: - print(f"❌ 2023年数据获取失败: {e}") - return False - - # 测试5: 获取完整的2020-2023年数据 - print("\n[测试5] 尝试获取2020-2023年完整数据(4年)...") - try: - df_full = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2023-12-31', - use_cache=False - ) - print(f"✅ 成功获取2020-2023年完整数据") - print(f" 数据行数: {len(df_full)}") - print(f" 时间范围: {df_full['timestamp'].min()} 至 {df_full['timestamp'].max()}") - print(f" 起始价格: ${df_full['close'].iloc[0]:,.2f}") - print(f" 结束价格: ${df_full['close'].iloc[-1]:,.2f}") - total_return = (df_full['close'].iloc[-1] - df_full['close'].iloc[0]) / df_full['close'].iloc[0] - print(f" 总收益率: {total_return*100:.2f}%") - - # 分析每年的表现 - print(f"\n 年度表现分析:") - df_full['year'] = pd.to_datetime(df_full['timestamp']).dt.year - for year in [2020, 2021, 2022, 2023]: - year_df = df_full[df_full['year'] == year] - if len(year_df) > 0: - year_return = (year_df['close'].iloc[-1] - year_df['close'].iloc[0]) / year_df['close'].iloc[0] - print(f" {year}年: {year_return*100:+.2f}% (${year_df['close'].iloc[0]:,.0f} → ${year_df['close'].iloc[-1]:,.0f})") - - except Exception as e: - print(f"❌ 完整数据获取失败: {e}") - return False - - # 总结 - print("\n" + "="*80) - print("📊 测试结果总结") - print("="*80) - print("✅ Binance API可以获取2020-2023年的完整历史数据") - print(f"✅ 总共可获取约 {len(df_full):,} 小时的K线数据") - print(f"✅ 数据质量:连续完整,无明显缺失") - print(f"\n💡 建议:") - print(f" - 使用2020-2023年数据进行训练(包含完整牛熊周期)") - print(f" - 2020年: 牛市初期") - print(f" - 2021年: 牛市顶峰") - print(f" - 2022年: 熊市") - print(f" - 2023年: 复苏") - print(f" 这样模型能学习到各种市场环境") - - return True - -if __name__ == "__main__": - try: - success = test_historical_data() - if success: - print("\n" + "="*80) - print("✅ 所有测试通过!可以获取2020-2023年的数据") - print("="*80) - else: - print("\n" + "="*80) - print("❌ 部分测试失败") - print("="*80) - except Exception as e: - print(f"\n❌ 测试过程出错: {e}") diff --git a/train_811_split.py b/train_811_split.py deleted file mode 100644 index 0b7eadd..0000000 --- a/train_811_split.py +++ /dev/null @@ -1,304 +0,0 @@ -"""8:1:1数据集划分训练 - 直接预测价格""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import numpy as np -import pandas as pd -import pandas_ta as ta -from sklearn.preprocessing import StandardScaler -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from data.fetcher import BinanceDataFetcher -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import pickle - -class PricePreprocessor: - """预测未来价格的预处理器""" - - def __init__(self, lookback=168, forecast_horizon=1): - self.lookback = lookback - self.forecast_horizon = forecast_horizon - self.scaler = StandardScaler() - self.price_scaler = StandardScaler() - self.is_fitted = False - - def add_features(self, df): - """添加技术指标""" - df = df.copy() - df['rsi'] = ta.rsi(df['close'], length=14) - macd = ta.macd(df['close']) - if macd is not None and not macd.empty: - df['macd'] = macd.iloc[:, 0] - df['macd_hist'] = macd.iloc[:, 1] - df['macd_signal'] = macd.iloc[:, 2] - return df - - def create_labels(self, df): - """创建标签:未来1小时的价格""" - df = df.copy() - df['future_price'] = df['close'].shift(-self.forecast_horizon) - df['label'] = df['future_price'] - return df[:-self.forecast_horizon] - - def preprocess(self, df, fit=True): - """完整预处理流程""" - df = self.add_features(df) - df = self.create_labels(df) - df = df.dropna().reset_index(drop=True) - - feature_cols = ['open', 'high', 'low', 'close', 'volume', - 'rsi', 'macd', 'macd_hist', 'macd_signal'] - - if fit: - scaled_features = self.scaler.fit_transform(df[feature_cols]) - scaled_labels = self.price_scaler.fit_transform(df[['label']]) - self.is_fitted = True - self.feature_columns = feature_cols - else: - if not self.is_fitted: - raise ValueError("Must fit before transform") - scaled_features = self.scaler.transform(df[feature_cols]) - scaled_labels = self.price_scaler.transform(df[['label']]) - - X, y = [], [] - for i in range(len(scaled_features) - self.lookback): - X.append(scaled_features[i:i + self.lookback]) - y.append(scaled_labels[i + self.lookback, 0]) - - return np.array(X), np.array(y), df - - def inverse_transform_price(self, scaled_price): - """将标准化的价格还原为真实价格""" - return self.price_scaler.inverse_transform(scaled_price.reshape(-1, 1)).flatten() - -def main(): - print("="*80) - print("8:1:1数据集划分 - 直接预测未来1小时价格") - print("="*80) - - # ========== 步骤1: 获取数据 ========== - print("\n[1/8] 获取BTC 2020-2025年数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - - print(f"✓ 数据量: {len(df):,} 行") - print(f"✓ 时间: {df['timestamp'].min()} 至 {df['timestamp'].max()}") - print(f"✓ 价格: ${df['close'].iloc[0]:,.2f} → ${df['close'].iloc[-1]:,.2f}") - - # ========== 步骤2: 预处理 ========== - print("\n[2/8] 数据预处理(只使用OHLCV + RSI + MACD)...") - preprocessor = PricePreprocessor(lookback=168, forecast_horizon=1) - X, y, processed_df = preprocessor.preprocess(df, fit=True) - - print(f"✓ 序列数量: {len(X):,}") - print(f"✓ 序列形状: {X.shape}") - print(f"✓ 特征列表: {preprocessor.feature_columns}") - - # ========== 步骤3: 8:1:1划分数据集 ========== - print("\n[3/8] 8:1:1划分数据集...") - n = len(X) - train_end = int(n * 0.8) - val_end = int(n * 0.9) - - X_train = X[:train_end] - y_train = y[:train_end] - X_val = X[train_end:val_end] - y_val = y[train_end:val_end] - X_test = X[val_end:] - y_test = y[val_end:] - - print(f" 总样本数: {n:,}") - print(f" 训练集: {len(X_train):,} ({len(X_train)/n*100:.1f}%)") - print(f" 验证集: {len(X_val):,} ({len(X_val)/n*100:.1f}%)") - print(f" 测试集: {len(X_test):,} ({len(X_test)/n*100:.1f}%)") - - # 分析各数据集时间范围 - lookback = 168 - train_df = processed_df.iloc[lookback:train_end+lookback] - val_df = processed_df.iloc[train_end+lookback:val_end+lookback] - test_df = processed_df.iloc[val_end+lookback:] - - print(f"\n 时间范围分析:") - print(f" 训练集: {train_df['timestamp'].min()} 至 {train_df['timestamp'].max()}") - train_return = (train_df['close'].iloc[-1] - train_df['close'].iloc[0]) / train_df['close'].iloc[0] - print(f" ${train_df['close'].iloc[0]:,.0f} → ${train_df['close'].iloc[-1]:,.0f} ({train_return*100:+.1f}%)") - - print(f" 验证集: {val_df['timestamp'].min()} 至 {val_df['timestamp'].max()}") - val_return = (val_df['close'].iloc[-1] - val_df['close'].iloc[0]) / val_df['close'].iloc[0] - print(f" ${val_df['close'].iloc[0]:,.0f} → ${val_df['close'].iloc[-1]:,.0f} ({val_return*100:+.1f}%)") - - print(f" 测试集: {test_df['timestamp'].min()} 至 {test_df['timestamp'].max()}") - test_return = (test_df['close'].iloc[-1] - test_df['close'].iloc[0]) / test_df['close'].iloc[0] - print(f" ${test_df['close'].iloc[0]:,.0f} → ${test_df['close'].iloc[-1]:,.0f} ({test_return*100:+.1f}%)") - - # ========== 步骤4: 创建数据加载器 ========== - print("\n[4/8] 创建数据加载器...") - train_dataset = TensorDataset(torch.FloatTensor(X_train), torch.FloatTensor(y_train)) - val_dataset = TensorDataset(torch.FloatTensor(X_val), torch.FloatTensor(y_val)) - test_dataset = TensorDataset(torch.FloatTensor(X_test), torch.FloatTensor(y_test)) - - train_loader = DataLoader(train_dataset, batch_size=64, shuffle=False) - val_loader = DataLoader(val_dataset, batch_size=64, shuffle=False) - test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False) - - # ========== 步骤5: 创建模型 ========== - print("\n[5/8] 创建DLinear模型...") - model_config = DLinearConfig( - input_dim=9, - lookback=168, - task='regression', - hidden_dim=256, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型参数: {model.count_parameters():,}") - - # ========== 步骤6: 训练 ========== - print("\n[6/8] 开始训练...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=15, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_811_split' - ) - - trainer = Trainer(model, train_config, task='regression') - history = trainer.fit(train_loader, val_loader) - - # ========== 步骤7: 在测试集上评估 ========== - print("\n[7/8] 在测试集上评估...") - - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - model = model.to(device) - model.eval() - - test_preds = [] - with torch.no_grad(): - for batch_X, _ in test_loader: - batch_X = batch_X.to(device) - pred = model(batch_X).squeeze() - test_preds.extend(pred.cpu().numpy()) - - test_preds = np.array(test_preds) - - # 还原为真实价格 - pred_prices = preprocessor.inverse_transform_price(test_preds) - true_prices = preprocessor.inverse_transform_price(y_test) - - # 获取当前价格 - test_start_idx = val_end + lookback - current_prices = processed_df['close'].iloc[test_start_idx:test_start_idx+len(pred_prices)].values - - # 方向判断 - pred_direction = (pred_prices > current_prices).astype(int) - true_direction = (true_prices > current_prices).astype(int) - direction_acc = (pred_direction == true_direction).mean() - - # 价格预测误差 - price_mae = np.abs(pred_prices - true_prices).mean() - price_rmse = np.sqrt(((pred_prices - true_prices) ** 2).mean()) - price_mape = np.mean(np.abs((true_prices - pred_prices) / true_prices)) * 100 - - from sklearn.metrics import confusion_matrix - cm = confusion_matrix(true_direction, pred_direction) - tn, fp, fn, tp = cm.ravel() - - print("\n" + "="*80) - print("训练完成 - 测试集性能(独立测试集)") - print("="*80) - - print(f"\n📊 价格预测误差:") - print(f" MAE: ${price_mae:,.2f}") - print(f" RMSE: ${price_rmse:,.2f}") - print(f" MAPE: {price_mape:.2f}%") - - print(f"\n📈 方向预测:") - print(f" 方向准确率: {direction_acc*100:.2f}%") - print(f" 预测上涨: {(pred_direction==1).sum()} / 实际上涨: {(true_direction==1).sum()}") - print(f" 预测下跌: {(pred_direction==0).sum()} / 实际下跌: {(true_direction==0).sum()}") - - print(f"\n详细分析:") - print(f" ✓ 预测涨且真涨: {tp} ({tp/len(pred_prices)*100:.1f}%)") - print(f" ✓ 预测跌且真跌: {tn} ({tn/len(pred_prices)*100:.1f}%)") - print(f" ✗ 预测涨但真跌: {fp} ({fp/len(pred_prices)*100:.1f}%)") - print(f" ✗ 预测跌但真涨: {fn} ({fn/len(pred_prices)*100:.1f}%)") - - # 性能评估 - print("\n" + "="*80) - print("🎯 性能评估") - print("="*80) - - if direction_acc > 0.55: - print(f"\n ✅ 方向准确率 {direction_acc*100:.2f}% > 55%,模型有预测能力") - elif direction_acc > 0.52: - print(f"\n ⚠️ 方向准确率 {direction_acc*100:.2f}% > 52%,略优于随机") - elif direction_acc >= 0.48: - print(f"\n ⚠️ 方向准确率 {direction_acc*100:.2f}% ≈ 50%,接近随机") - else: - print(f"\n ❌ 方向准确率 {direction_acc*100:.2f}% < 48%,低于随机") - - # ========== 步骤8: 保存 ========== - print("\n[8/8] 保存模型和结果...") - - with open('./models/checkpoints/dlinear_811_split/preprocessor.pkl', 'wb') as f: - pickle.dump(preprocessor, f) - - metrics = { - 'price_mae': float(price_mae), - 'price_rmse': float(price_rmse), - 'price_mape': float(price_mape), - 'direction_accuracy': float(direction_acc), - 'true_positives': int(tp), - 'true_negatives': int(tn), - 'false_positives': int(fp), - 'false_negatives': int(fn) - } - with open('./models/checkpoints/dlinear_811_split/test_metrics.json', 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 模型保存至: ./models/checkpoints/dlinear_811_split/") - - # 对比分析 - print("\n" + "="*80) - print("📊 数据集划分对比") - print("="*80) - - print("\n之前(95:5划分,无独立测试集):") - print(" 训练集: 49,733 (95%)") - print(" 验证集: 2,618 (5%)") - print(" 测试集: 无") - print(" 问题: 过拟合,验证集太小") - - print(f"\n当前(8:1:1划分,有独立测试集):") - print(f" 训练集: {len(X_train):,} (80%)") - print(f" 验证集: {len(X_val):,} (10%)") - print(f" 测试集: {len(X_test):,} (10%)") - print(f" 优势: 有足够大的独立测试集评估性能") - - print(f"\n测试集性能:") - print(f" 方向准确率: {direction_acc*100:.2f}%") - print(f" 价格误差MAPE: {price_mape:.2f}%") - - print("\n" + "="*80) - print("✓ 训练完成!") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_cross_asset.py b/train_cross_asset.py deleted file mode 100644 index f6b06d7..0000000 --- a/train_cross_asset.py +++ /dev/null @@ -1,240 +0,0 @@ -"""跨资产迁移学习实验 - 用BTC训练,在ETH上验证和测试""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import numpy as np - -def main(): - print("="*80) - print("跨资产迁移学习实验") - print("训练:BTC 2020-2025 | 验证+测试:ETH 2020-2025") - print("="*80) - - fetcher = BinanceDataFetcher() - - # ========== 步骤1: 获取BTC训练数据 ========== - print("\n[1/10] 获取BTC数据(用于训练)...") - df_btc = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - print(f"✓ BTC数据: {len(df_btc)} 行") - print(f" 时间: {df_btc['timestamp'].min()} 至 {df_btc['timestamp'].max()}") - print(f" 价格: ${df_btc['close'].iloc[0]:,.0f} → ${df_btc['close'].iloc[-1]:,.0f}") - btc_return = (df_btc['close'].iloc[-1] - df_btc['close'].iloc[0]) / df_btc['close'].iloc[0] - print(f" 收益率: {btc_return*100:+.1f}%") - - # ========== 步骤2: 获取ETH验证/测试数据 ========== - print("\n[2/10] 获取ETH数据(用于验证和测试)...") - df_eth = fetcher.fetch_ohlcv( - symbol='ETH', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - print(f"✓ ETH数据: {len(df_eth)} 行") - print(f" 时间: {df_eth['timestamp'].min()} 至 {df_eth['timestamp'].max()}") - print(f" 价格: ${df_eth['close'].iloc[0]:,.2f} → ${df_eth['close'].iloc[-1]:,.2f}") - eth_return = (df_eth['close'].iloc[-1] - df_eth['close'].iloc[0]) / df_eth['close'].iloc[0] - print(f" 收益率: {eth_return*100:+.1f}%") - - # ========== 步骤3: 预处理BTC数据 ========== - print("\n[3/10] 预处理BTC数据(回归任务)...") - preprocessor_btc = CryptoPreprocessor( - lookback=168, - forecast_horizon=1, - price_change_threshold=0.0 - ) - X_btc, y_btc, processed_btc = preprocessor_btc.preprocess_pipeline( - df_btc, task='regression', fit=True - ) - print(f"✓ BTC序列: X={X_btc.shape}, y={y_btc.shape}") - - # ========== 步骤4: 预处理ETH数据 ========== - print("\n[4/10] 预处理ETH数据(使用BTC的scaler)...") - # 重要:复用BTC的preprocessor(已fit的scaler)来处理ETH数据 - # 添加技术指标和时间特征 - df_eth_processed = preprocessor_btc.add_technical_indicators(df_eth) - df_eth_processed = preprocessor_btc.add_time_features(df_eth_processed) - df_eth_processed = preprocessor_btc.create_labels(df_eth_processed, task='regression') - - # 删除NaN行 - processed_eth = df_eth_processed.dropna().reset_index(drop=True) - - # 使用BTC训练的scaler来标准化ETH特征(不重新fit) - scaled_features = preprocessor_btc.transform(processed_eth) - - # 创建序列 - X_eth, y_eth = preprocessor_btc.create_sequences( - scaled_features, - processed_eth['label'].values - ) - print(f"✓ ETH序列: X={X_eth.shape}, y={y_eth.shape}") - - # ========== 步骤5: 划分数据集 ========== - print("\n[5/10] 划分数据集...") - - # BTC: 只用前70%作为训练集 - n_btc = len(X_btc) - train_end = int(n_btc * 0.7) - X_train = X_btc[:train_end] - y_train = y_btc[:train_end] - - print(f" 训练集(BTC): {len(X_train)} 样本") - print(f" 收益率范围: {y_train.min()*100:.4f}% ~ {y_train.max()*100:.4f}%") - - # ETH: 70%验证,30%测试 - n_eth = len(X_eth) - val_end = int(n_eth * 0.7) - X_val = X_eth[:val_end] - y_val = y_eth[:val_end] - X_test = X_eth[val_end:] - y_test = y_eth[val_end:] - - print(f" 验证集(ETH): {len(X_val)} 样本") - print(f" 收益率范围: {y_val.min()*100:.4f}% ~ {y_val.max()*100:.4f}%") - print(f" 测试集(ETH): {len(X_test)} 样本") - print(f" 收益率范围: {y_test.min()*100:.4f}% ~ {y_test.max()*100:.4f}%") - - # 分析时间范围 - lookback = 168 - train_df = processed_btc.iloc[lookback:train_end+lookback] - val_df = processed_eth.iloc[lookback:val_end+lookback] - test_df = processed_eth.iloc[val_end+lookback:] - - print(f"\n 时间范围分析:") - print(f" 训练(BTC): {train_df['timestamp'].min()} 至 {train_df['timestamp'].max()}") - print(f" 验证(ETH): {val_df['timestamp'].min()} 至 {val_df['timestamp'].max()}") - print(f" 测试(ETH): {test_df['timestamp'].min()} 至 {test_df['timestamp'].max()}") - - # ========== 步骤6: 创建数据加载器 ========== - print("\n[6/10] 创建数据加载器...") - train_loader, val_loader, test_loader = create_dataloaders( - (X_train, y_train), - (X_val, y_val), - (X_test, y_test), - task='regression', - batch_size=64 - ) - - # ========== 步骤7: 创建模型 ========== - print("\n[7/10] 创建DLinear回归模型...") - model_config = DLinearConfig( - input_dim=X_btc.shape[-1], - lookback=168, - task='regression', - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型参数: {model.count_parameters():,} 个") - - # ========== 步骤8: 训练模型 ========== - print("\n[8/10] 训练模型(BTC训练,ETH验证)...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=10, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/cross_asset_btc_to_eth' - ) - - trainer = Trainer(model, train_config, task='regression') - history = trainer.fit(train_loader, val_loader) - - # ========== 步骤9: 在ETH测试集上评估 ========== - print("\n[9/10] 在ETH测试集上评估...") - metrics_eth = trainer.evaluate(test_loader) - - results_path = './models/checkpoints/cross_asset_btc_to_eth/test_metrics.json' - with open(results_path, 'w') as f: - json.dump(metrics_eth, f, indent=2) - print(f"✓ 结果保存至: {results_path}") - - # ========== 步骤10: 对比分析 ========== - print("\n[10/10] 性能分析...") - print("\n" + "="*80) - print("跨资产迁移学习实验结果") - print("="*80) - - print("\n📋 实验设置:") - print(f" 训练集: BTC 2020-2024 ({len(X_train):,} 样本)") - print(f" 验证集: ETH 2020-2024 ({len(X_val):,} 样本)") - print(f" 测试集: ETH 2024-2025 ({len(X_test):,} 样本)") - - print("\n📊 ETH测试集性能:") - print(f" RMSE: {metrics_eth.get('rmse', 0)*100:.4f}%") - print(f" MAE: {metrics_eth.get('mae', 0)*100:.4f}%") - print(f" 方向准确率: {metrics_eth.get('directional_accuracy', 0)*100:.2f}%") - - print(f"\n💰 ETH回测结果:") - print(f" 总收益率: {metrics_eth.get('backtest_total_return', 0)*100:.2f}%") - print(f" 夏普比率: {metrics_eth.get('backtest_sharpe_ratio', 0):.4f}") - max_dd = metrics_eth.get('backtest_max_drawdown', 0) - if not np.isnan(max_dd): - print(f" 最大回撤: {max_dd*100:.2f}%") - print(f" 胜率: {metrics_eth.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics_eth.get('backtest_num_trades', 0):.0f}") - - # 对比之前的结果 - print("\n" + "="*80) - print("📊 性能对比") - print("="*80) - - print("\n实验1:BTC训练 → BTC测试(之前结果)") - print(" 方向准确率: 50.67%") - print(" RMSE: 0.4881%") - print(" 回测收益: -16.71%") - - print(f"\n实验2:BTC训练 → ETH测试(当前结果)") - print(f" 方向准确率: {metrics_eth.get('directional_accuracy', 0)*100:.2f}%") - print(f" RMSE: {metrics_eth.get('rmse', 0)*100:.4f}%") - print(f" 回测收益: {metrics_eth.get('backtest_total_return', 0)*100:.2f}%") - - # 性能评估 - print("\n🎯 迁移学习效果评估:") - - dir_acc = metrics_eth.get('directional_accuracy', 0) - if dir_acc > 0.52: - print(f" ✅ 方向准确率 {dir_acc*100:.1f}% > 52%,跨资产迁移有效") - elif dir_acc > 0.50: - print(f" ⚠️ 方向准确率 {dir_acc*100:.1f}% 略优于随机") - else: - print(f" ❌ 方向准确率 {dir_acc*100:.1f}% ≤ 50%,迁移失败") - - total_return = metrics_eth.get('backtest_total_return', 0) - if total_return > 0: - print(f" ✅ 回测收益 {total_return*100:.2f}% > 0,策略盈利") - else: - print(f" ❌ 回测收益 {total_return*100:.2f}% ≤ 0,策略亏损") - - print("\n💡 结论:") - if dir_acc > 0.52 and total_return > 0: - print(" ✅ 跨资产迁移学习成功!BTC学到的模式可应用于ETH") - elif dir_acc > 0.50: - print(" ⚠️ 跨资产迁移部分有效,但收益不佳") - else: - print(" ❌ 跨资产迁移失败,BTC和ETH市场动态差异太大") - - print("\n" + "="*80) - print("✓ 实验完成!") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_dlinear_1h.py b/train_dlinear_1h.py deleted file mode 100644 index bc1cb78..0000000 --- a/train_dlinear_1h.py +++ /dev/null @@ -1,156 +0,0 @@ -"""训练DLinear模型 - 预测未来1小时涨跌(已修复双重Sigmoid Bug)""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import numpy as np - -def main(): - print("="*80) - print("DLinear模型训练 - 预测未来1小时涨跌(已修复双重Sigmoid Bug)") - print("="*80) - - # 步骤1: 获取真实数据 - print("\n[1/7] 从Binance获取BTC 1h真实数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - print(f"✓ 已获取 {len(df)} 行真实数据") - print(f"✓ 时间范围:{df['timestamp'].min()} 至 {df['timestamp'].max()}") - - # 步骤2: 数据预处理(预测未来1小时) - print("\n[2/7] 数据预处理(预测未来1小时的涨跌)...") - preprocessor = CryptoPreprocessor( - lookback=168, # 输入:过去168小时(7天) - forecast_horizon=1, # ← 改为预测未来1小时 - price_change_threshold=0.0 # 任何涨幅>0都算上涨 - ) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - print(f"✓ 已创建序列:X形状 = {X.shape}, y形状 = {y.shape}") - print(f"✓ 特征数量:{X.shape[-1]}") - - # 计算类别分布 - n_down = (y == 0).sum() - n_up = (y == 1).sum() - print(f"✓ 标签分布:下跌(0) = {n_down} ({n_down/len(y)*100:.1f}%), 上涨(1) = {n_up} ({n_up/len(y)*100:.1f}%)") - - # 计算类别权重 - pos_weight = n_down / n_up if n_up > 0 else 1.0 - print(f"✓ 计算类别权重:pos_weight = {pos_weight:.2f}") - - # 步骤3: 划分数据集 - print("\n[3/7] 划分训练/验证/测试集 (70/15/15)...") - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - print(f" 训练集:下跌 {(train_data[1]==0).sum()}, 上涨 {(train_data[1]==1).sum()}") - print(f" 验证集:下跌 {(val_data[1]==0).sum()}, 上涨 {(val_data[1]==1).sum()}") - print(f" 测试集:下跌 {(test_data[1]==0).sum()}, 上涨 {(test_data[1]==1).sum()}") - - # 步骤4: 创建数据加载器 - print("\n[4/7] 创建PyTorch数据加载器...") - train_loader, val_loader, test_loader = create_dataloaders( - train_data, val_data, test_data, - task='classification', - batch_size=64 - ) - - # 步骤5: 创建模型 - print("\n[5/7] 创建DLinear模型(已修复双重Sigmoid Bug)...") - model_config = DLinearConfig( - input_dim=X.shape[-1], - lookback=168, - task='classification', - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型已创建,可训练参数:{model.count_parameters():,} 个") - print(f"✓ Bug修复:输出层使用Identity(输出logits),由BCEWithLogitsLoss处理Sigmoid") - - # 步骤6: 训练模型 - print("\n[6/7] 开始训练模型...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=10, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_btc_1h_forecast' - ) - - trainer = Trainer( - model, - train_config, - task='classification', - pos_weight=pos_weight - ) - history = trainer.fit(train_loader, val_loader) - - # 步骤7: 评估模型 - print("\n[7/7] 在测试集上评估模型...") - metrics = trainer.evaluate(test_loader) - - # 保存评估结果 - results_path = './models/checkpoints/dlinear_btc_1h_forecast/test_metrics.json' - with open(results_path, 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 评估结果已保存至:{results_path}") - - # 打印结果摘要 - print("\n" + "="*80) - print("训练完成 - 最终测试结果(预测未来1小时涨跌)") - print("="*80) - - print(f"\n📊 分类指标:") - print(f" 准确率: {metrics.get('accuracy', 0):.4f} ({metrics.get('accuracy', 0)*100:.2f}%)") - print(f" F1分数: {metrics.get('f1', 0):.4f}") - print(f" 精确率: {metrics.get('precision', 0):.4f}") - print(f" 召回率: {metrics.get('recall', 0):.4f}") - - if 'true_positives' in metrics: - print(f"\n📈 混淆矩阵:") - print(f" 真阳性(预测涨且真涨): {metrics['true_positives']}") - print(f" 真阴性(预测跌且真跌): {metrics['true_negatives']}") - print(f" 假阳性(预测涨但真跌): {metrics['false_positives']}") - print(f" 假阴性(预测跌但真涨): {metrics['false_negatives']}") - - print(f"\n💰 回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - print(f" 最大回撤: {metrics.get('backtest_max_drawdown', 0)*100:.2f}%") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - # 性能分析 - print(f"\n🎯 性能评估:") - acc = metrics.get('accuracy', 0) - if acc > 0.55: - print(f" ✅ 准确率 {acc*100:.1f}% > 55%,模型有一定预测能力") - elif acc > 0.50: - print(f" ⚠️ 准确率 {acc*100:.1f}% 略优于随机(50%),预测能力较弱") - else: - print(f" ❌ 准确率 {acc*100:.1f}% ≤ 50%,模型预测能力不足") - - total_return = metrics.get('backtest_total_return', 0) - if total_return > 0: - print(f" ✅ 回测收益 {total_return*100:.2f}% > 0,策略有盈利潜力") - else: - print(f" ❌ 回测收益 {total_return*100:.2f}% ≤ 0,策略亏损") - - print("\n" + "="*80) - print("✓ 训练完成!") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_dlinear_balanced.py b/train_dlinear_balanced.py deleted file mode 100644 index 758422f..0000000 --- a/train_dlinear_balanced.py +++ /dev/null @@ -1,190 +0,0 @@ -"""使用真实Binance数据训练DLinear模型 - 优化版(平衡类别 + 类别权重)""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import numpy as np - -def main(): - print("="*80) - print("DLinear模型训练 - 优化版(平衡类别 + 类别权重)") - print("="*80) - - # 步骤1: 获取真实数据 - print("\n[1/8] 从Binance获取BTC 1h真实数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - print(f"✓ 已获取 {len(df)} 行真实数据") - print(f"✓ 时间范围:{df['timestamp'].min()} 至 {df['timestamp'].max()}") - - # 步骤2: 数据预处理(使用真实涨跌:threshold=0.0) - print("\n[2/8] 数据预处理(使用真实涨跌标签,threshold=0.0)...") - preprocessor = CryptoPreprocessor( - lookback=168, - forecast_horizon=24, - price_change_threshold=0.0 # 任何涨幅>0都算上涨 - ) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - print(f"✓ 已创建序列:X形状 = {X.shape}, y形状 = {y.shape}") - print(f"✓ 特征数量:{X.shape[-1]}") - - # 计算类别分布 - n_down = (y == 0).sum() - n_up = (y == 1).sum() - print(f"✓ 标签分布(优化后):下跌(0) = {n_down} ({n_down/len(y)*100:.1f}%), 上涨(1) = {n_up} ({n_up/len(y)*100:.1f}%)") - - # 计算类别权重 - pos_weight = n_down / n_up if n_up > 0 else 1.0 - print(f"✓ 计算类别权重:pos_weight = {pos_weight:.2f} (给上涨类{pos_weight:.2f}倍权重)") - - # 步骤3: 划分数据集 - print("\n[3/8] 划分训练/验证/测试集 (70/15/15)...") - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - # 显示各数据集的类别分布 - print(f" 训练集:下跌 {(train_data[1]==0).sum()}, 上涨 {(train_data[1]==1).sum()}") - print(f" 验证集:下跌 {(val_data[1]==0).sum()}, 上涨 {(val_data[1]==1).sum()}") - print(f" 测试集:下跌 {(test_data[1]==0).sum()}, 上涨 {(test_data[1]==1).sum()}") - - # 步骤4: 创建数据加载器 - print("\n[4/8] 创建PyTorch数据加载器...") - train_loader, val_loader, test_loader = create_dataloaders( - train_data, val_data, test_data, - task='classification', - batch_size=64 - ) - - # 步骤5: 创建模型 - print("\n[5/8] 创建DLinear模型...") - model_config = DLinearConfig( - input_dim=X.shape[-1], - lookback=168, - task='classification', - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型已创建,可训练参数:{model.count_parameters():,} 个") - - # 步骤6: 训练模型(使用类别权重) - print("\n[6/8] 开始训练模型(使用加权损失函数)...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=10, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_btc_1h_balanced' - ) - - trainer = Trainer( - model, - train_config, - task='classification', - pos_weight=pos_weight # 传入类别权重 - ) - history = trainer.fit(train_loader, val_loader) - - # 步骤7: 评估模型 - print("\n[7/8] 在测试集上评估模型...") - metrics = trainer.evaluate(test_loader) - - # 保存评估结果 - results_path = './models/checkpoints/dlinear_btc_1h_balanced/test_metrics.json' - with open(results_path, 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 评估结果已保存至:{results_path}") - - # 打印结果摘要 - print("\n" + "="*80) - print("训练完成 - 最终测试结果(优化版)") - print("="*80) - print(f"\n📊 分类指标:") - print(f" 准确率: {metrics.get('accuracy', 0):.4f}") - print(f" F1分数: {metrics.get('f1', 0):.4f}") - print(f" 精确率: {metrics.get('precision', 0):.4f}") - print(f" 召回率: {metrics.get('recall', 0):.4f}") - - if 'true_positives' in metrics: - print(f"\n📈 混淆矩阵:") - print(f" 真阳性(预测涨且真涨): {metrics['true_positives']}") - print(f" 真阴性(预测跌且真跌): {metrics['true_negatives']}") - print(f" 假阳性(预测涨但真跌): {metrics['false_positives']}") - print(f" 假阴性(预测跌但真涨): {metrics['false_negatives']}") - - print(f"\n💰 回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - print(f" 最大回撤: {metrics.get('backtest_max_drawdown', 0)*100:.2f}%") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - # 步骤8: ONNX导出 - print("\n[8/8] 测试ONNX导出...") - try: - import onnx - import onnxruntime as ort - import torch - - onnx_path = './models/checkpoints/dlinear_btc_1h_balanced/model.onnx' - - print(" 导出模型到ONNX格式...") - model.to_onnx(onnx_path) - print(f" ✓ ONNX模型已保存至:{onnx_path}") - - print(" 验证ONNX模型...") - onnx_model = onnx.load(onnx_path) - onnx.checker.check_model(onnx_model) - print(" ✓ ONNX模型有效") - - # 测试推理 - test_input = torch.randn(1, 168, X.shape[-1]) - model.cpu() - model.eval() - with torch.no_grad(): - pytorch_output = model(test_input).numpy() - - ort_session = ort.InferenceSession(onnx_path) - onnx_output = ort_session.run(None, {'input': test_input.numpy()})[0] - - diff = np.abs(pytorch_output - onnx_output).max() - print(f" ✓ PyTorch与ONNX的最大差异:{diff:.8f}") - - if diff < 1e-5: - print(" ✓ ONNX导出成功!") - else: - print(" ⚠ ONNX输出有差异(可能仍可接受)") - - except Exception as e: - print(f" ✗ ONNX导出失败:{e}") - - print("\n" + "="*80) - print("✓ DLinear模型训练完成(优化版)") - print("="*80) - - # 对比旧版本 - print("\n📊 优化效果对比:") - print(" 旧版本(1.5%阈值):") - print(" - 类别分布:上涨 15.5%, 下跌 84.5%") - print(" - 准确率:84.47% F1:0.00 召回率:0.00") - print(" - 模型策略:永远预测下跌") - print(" ") - print(" 新版本(0%阈值 + 类别权重):") - print(f" - 类别分布:上涨 {n_up/len(y)*100:.1f}%, 下跌 {n_down/len(y)*100:.1f}%") - print(f" - 准确率:{metrics.get('accuracy', 0):.2%} F1:{metrics.get('f1', 0):.2f} 召回率:{metrics.get('recall', 0):.2f}") - print(f" - 回测收益:{metrics.get('backtest_total_return', 0)*100:.2f}%") - -if __name__ == "__main__": - main() diff --git a/train_dlinear_long_term.py b/train_dlinear_long_term.py deleted file mode 100644 index 337d221..0000000 --- a/train_dlinear_long_term.py +++ /dev/null @@ -1,242 +0,0 @@ -"""使用2020-2025年数据训练DLinear模型 - 包含完整牛熊周期""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import numpy as np - -def main(): - print("="*80) - print("DLinear模型训练 - 使用2020-2025年完整数据(5年,包含牛熊周期)") - print("="*80) - - # 步骤1: 获取2020-2025年完整数据 - print("\n[1/8] 从Binance获取BTC 2020-2025年完整数据...") - fetcher = BinanceDataFetcher() - - # 获取5年数据 - df = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - - print(f"✓ 已获取 {len(df)} 行数据(约{len(df)/8760:.1f}年)") - print(f"✓ 时间范围:{df['timestamp'].min()} 至 {df['timestamp'].max()}") - - # 分析数据覆盖的市场周期 - print(f"\n✓ 价格变化分析:") - print(f" 起始价格: ${df['close'].iloc[0]:,.2f} (2020年)") - print(f" 结束价格: ${df['close'].iloc[-1]:,.2f} (2025年)") - total_return = (df['close'].iloc[-1] - df['close'].iloc[0]) / df['close'].iloc[0] - print(f" 总收益率: {total_return*100:+.2f}%") - - # 按年分析 - df['year'] = df['timestamp'].dt.year - print(f"\n✓ 年度表现分析(确保包含牛熊周期):") - for year in sorted(df['year'].unique()): - year_df = df[df['year'] == year] - if len(year_df) > 100: # 确保有足够数据 - year_return = (year_df['close'].iloc[-1] - year_df['close'].iloc[0]) / year_df['close'].iloc[0] - trend = "🚀 牛市" if year_return > 0.3 else ("🔴 熊市" if year_return < -0.3 else "📊 震荡") - print(f" {year}年: {year_return*100:+7.2f}% {trend}") - - # 步骤2: 数据预处理(预测未来1小时) - print("\n[2/8] 数据预处理(预测未来1小时的涨跌)...") - preprocessor = CryptoPreprocessor( - lookback=168, # 输入:过去168小时(7天) - forecast_horizon=1, # 预测:未来1小时 - price_change_threshold=0.0 - ) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - print(f"✓ 已创建序列:X形状 = {X.shape}, y形状 = {y.shape}") - print(f"✓ 特征数量:{X.shape[-1]}") - - # 计算类别分布 - n_down = (y == 0).sum() - n_up = (y == 1).sum() - print(f"✓ 标签分布:下跌(0) = {n_down} ({n_down/len(y)*100:.1f}%), 上涨(1) = {n_up} ({n_up/len(y)*100:.1f}%)") - - # 计算类别权重 - pos_weight = n_down / n_up if n_up > 0 else 1.0 - print(f"✓ 计算类别权重:pos_weight = {pos_weight:.2f}") - - # 步骤3: 划分数据集(时间序列分割) - print("\n[3/8] 划分训练/验证/测试集 (70/15/15)...") - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - print(f" 训练集:{len(train_data[0])} 样本") - print(f" 下跌: {(train_data[1]==0).sum()}, 上涨: {(train_data[1]==1).sum()}") - print(f" 验证集:{len(val_data[0])} 样本") - print(f" 下跌: {(val_data[1]==0).sum()}, 上涨: {(val_data[1]==1).sum()}") - print(f" 测试集:{len(test_data[0])} 样本") - print(f" 下跌: {(test_data[1]==0).sum()}, 上涨: {(test_data[1]==1).sum()}") - - # 分析各数据集对应的时间范围 - lookback = 168 - train_end_idx = int(len(processed_df) * 0.7) - lookback - val_end_idx = int(len(processed_df) * 0.85) - lookback - - train_df = processed_df.iloc[lookback:train_end_idx+lookback] - val_df = processed_df.iloc[train_end_idx+lookback:val_end_idx+lookback] - test_df = processed_df.iloc[val_end_idx+lookback:] - - print(f"\n 训练集时间范围: {train_df['timestamp'].min()} 至 {train_df['timestamp'].max()}") - train_return = (train_df['close'].iloc[-1] - train_df['close'].iloc[0]) / train_df['close'].iloc[0] - print(f" 价格: ${train_df['close'].iloc[0]:,.0f} → ${train_df['close'].iloc[-1]:,.0f} ({train_return*100:+.1f}%)") - - print(f" 验证集时间范围: {val_df['timestamp'].min()} 至 {val_df['timestamp'].max()}") - val_return = (val_df['close'].iloc[-1] - val_df['close'].iloc[0]) / val_df['close'].iloc[0] - print(f" 价格: ${val_df['close'].iloc[0]:,.0f} → ${val_df['close'].iloc[-1]:,.0f} ({val_return*100:+.1f}%)") - - print(f" 测试集时间范围: {test_df['timestamp'].min()} 至 {test_df['timestamp'].max()}") - test_return = (test_df['close'].iloc[-1] - test_df['close'].iloc[0]) / test_df['close'].iloc[0] - print(f" 价格: ${test_df['close'].iloc[0]:,.0f} → ${test_df['close'].iloc[-1]:,.0f} ({test_return*100:+.1f}%)") - - # 步骤4: 创建数据加载器 - print("\n[4/8] 创建PyTorch数据加载器...") - train_loader, val_loader, test_loader = create_dataloaders( - train_data, val_data, test_data, - task='classification', - batch_size=64 - ) - - # 步骤5: 创建模型 - print("\n[5/8] 创建DLinear模型...") - model_config = DLinearConfig( - input_dim=X.shape[-1], - lookback=168, - task='classification', - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型已创建,可训练参数:{model.count_parameters():,} 个") - - # 步骤6: 训练模型 - print("\n[6/8] 开始训练模型(数据量大,预计需要更长时间)...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=10, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_btc_2020_2025' - ) - - trainer = Trainer( - model, - train_config, - task='classification', - pos_weight=pos_weight - ) - - print(f"✓ 训练数据规模:{len(train_data[0]):,} 样本(是之前的 {len(train_data[0])/5990:.1f}x)") - history = trainer.fit(train_loader, val_loader) - - # 步骤7: 评估模型 - print("\n[7/8] 在测试集上评估模型...") - metrics = trainer.evaluate(test_loader) - - # 保存评估结果 - results_path = './models/checkpoints/dlinear_btc_2020_2025/test_metrics.json' - with open(results_path, 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 评估结果已保存至:{results_path}") - - # 步骤8: 对比分析 - print("\n[8/8] 性能对比分析...") - print("\n" + "="*80) - print("训练完成 - 最终测试结果(使用2020-2025年数据)") - print("="*80) - - print(f"\n📊 分类指标:") - print(f" 准确率: {metrics.get('accuracy', 0):.4f} ({metrics.get('accuracy', 0)*100:.2f}%)") - print(f" F1分数: {metrics.get('f1', 0):.4f}") - print(f" 精确率: {metrics.get('precision', 0):.4f}") - print(f" 召回率: {metrics.get('recall', 0):.4f}") - - if 'true_positives' in metrics: - tp = metrics['true_positives'] - tn = metrics['true_negatives'] - fp = metrics['false_positives'] - fn = metrics['false_negatives'] - - print(f"\n📈 混淆矩阵:") - print(f" 真阳性(预测涨且真涨): {tp}") - print(f" 真阴性(预测跌且真跌): {tn}") - print(f" 假阳性(预测涨但真跌): {fp}") - print(f" 假阴性(预测跌但真涨): {fn}") - - total = tp + tn + fp + fn - if total > 0: - print(f"\n 预测分布:") - print(f" 预测上涨: {tp + fp} ({(tp+fp)/total*100:.1f}%)") - print(f" 预测下跌: {tn + fn} ({(tn+fn)/total*100:.1f}%)") - - print(f"\n💰 回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - max_dd = metrics.get('backtest_max_drawdown', 0) - if not np.isnan(max_dd): - print(f" 最大回撤: {max_dd*100:.2f}%") - else: - print(f" 最大回撤: N/A") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - # 性能评估 - print(f"\n🎯 性能评估:") - acc = metrics.get('accuracy', 0) - if acc > 0.55: - print(f" ✅ 准确率 {acc*100:.1f}% > 55%,模型有一定预测能力") - elif acc > 0.50: - print(f" ⚠️ 准确率 {acc*100:.1f}% 略优于随机(50%),预测能力较弱") - else: - print(f" ❌ 准确率 {acc*100:.1f}% ≤ 50%,模型预测能力不足") - - total_return = metrics.get('backtest_total_return', 0) - if total_return > 0.05: - print(f" ✅ 回测收益 {total_return*100:.2f}% > 5%,策略有较好盈利潜力") - elif total_return > 0: - print(f" ⚠️ 回测收益 {total_return*100:.2f}% > 0,策略有微弱盈利") - else: - print(f" ❌ 回测收益 {total_return*100:.2f}% ≤ 0,策略亏损") - - # 对比之前的结果 - print(f"\n📊 与之前结果对比:") - print(f" 使用1年数据(2025年):") - print(f" - 训练集: 2025.02-10 (牛市+16%)") - print(f" - 测试集: 2025.12-2026.01 (熊市-2%)") - print(f" - 准确率: 50.7%") - print(f" - 预测上涨: 65.8% (偏向上涨)") - print(f" - 问题: 训练测试分布不一致") - - print(f"\n 使用5年数据(2020-2025年):") - print(f" - 训练集: 包含牛市(2020-2021)和熊市(2022)") - print(f" - 测试集: 2024-2025数据") - print(f" - 准确率: {acc*100:.1f}%") - if total > 0: - print(f" - 预测上涨: {(tp+fp)/total*100:.1f}%") - print(f" - 改进: 见过完整市场周期,泛化更好") - - print("\n" + "="*80) - print("✓ 训练完成!") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_dlinear_real.py b/train_dlinear_real.py deleted file mode 100644 index cfbbb52..0000000 --- a/train_dlinear_real.py +++ /dev/null @@ -1,163 +0,0 @@ -"""使用真实Binance数据训练DLinear模型""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json - -def main(): - print("="*80) - print("DLinear模型训练 - 真实Binance数据") - print("="*80) - - # 步骤1: 获取真实数据 - print("\n[1/7] 从Binance获取BTC 1h真实数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv('BTC', '1h', use_cache=True) - print(f"✓ 已获取 {len(df)} 行真实数据") - print(f"✓ 时间范围:{df['timestamp'].min()} 至 {df['timestamp'].max()}") - - # 步骤2: 数据预处理 - print("\n[2/7] 数据预处理(技术指标 + 特征工程)...") - preprocessor = CryptoPreprocessor(lookback=168, forecast_horizon=24) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='classification', fit=True) - print(f"✓ 已创建序列:X形状 = {X.shape}, y形状 = {y.shape}") - print(f"✓ 特征数量:{X.shape[-1]}") - print(f"✓ 标签分布:下跌(0) = {(y==0).sum()}, 上涨(1) = {(y==1).sum()}") - - # 步骤3: 划分数据集 - print("\n[3/7] 划分训练/验证/测试集 (70/15/15)...") - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - # 步骤4: 创建数据加载器 - print("\n[4/7] 创建PyTorch数据加载器...") - train_loader, val_loader, test_loader = create_dataloaders( - train_data, val_data, test_data, - task='classification', - batch_size=64 - ) - print(f"✓ 训练批次:{len(train_loader)}") - print(f"✓ 验证批次:{len(val_loader)}") - print(f"✓ 测试批次:{len(test_loader)}") - - # 步骤5: 创建模型 - print("\n[5/7] 创建DLinear模型...") - model_config = DLinearConfig( - input_dim=X.shape[-1], - lookback=168, - task='classification', - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型已创建,可训练参数:{model.count_parameters():,} 个") - - # 步骤6: 训练模型 - print("\n[6/7] 开始训练模型...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=10, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_btc_1h_real' - ) - - trainer = Trainer(model, train_config, task='classification') - history = trainer.fit(train_loader, val_loader) - - # 步骤7: 评估模型 - print("\n[7/7] 在测试集上评估模型...") - metrics = trainer.evaluate(test_loader) - - # 保存评估结果 - results_path = './models/checkpoints/dlinear_btc_1h_real/test_metrics.json' - with open(results_path, 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 评估结果已保存至:{results_path}") - - # 打印结果摘要 - print("\n" + "="*80) - print("训练完成 - 最终测试结果") - print("="*80) - print(f"\n分类指标:") - print(f" 准确率: {metrics.get('accuracy', 0):.4f}") - print(f" F1分数: {metrics.get('f1', 0):.4f}") - print(f" 精确率: {metrics.get('precision', 0):.4f}") - print(f" 召回率: {metrics.get('recall', 0):.4f}") - - if 'true_positives' in metrics: - print(f"\n混淆矩阵:") - print(f" 真阳性: {metrics['true_positives']}") - print(f" 真阴性: {metrics['true_negatives']}") - print(f" 假阳性: {metrics['false_positives']}") - print(f" 假阴性: {metrics['false_negatives']}") - - print(f"\n回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - print(f" 最大回撤: {metrics.get('backtest_max_drawdown', 0)*100:.2f}%") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - # ONNX导出测试 - print("\n" + "="*80) - print("测试ONNX导出") - print("="*80) - - try: - import onnx - import onnxruntime as ort - import torch - import numpy as np - - onnx_path = './models/checkpoints/dlinear_btc_1h_real/model.onnx' - - print("\n[1/3] 导出模型到ONNX格式...") - model.to_onnx(onnx_path) - print(f"✓ ONNX模型已保存至:{onnx_path}") - - print("\n[2/3] 验证ONNX模型...") - onnx_model = onnx.load(onnx_path) - onnx.checker.check_model(onnx_model) - print("✓ ONNX模型有效") - - print("\n[3/3] 测试ONNX推理与PyTorch对比...") - test_input = torch.randn(1, 168, X.shape[-1]) - - model.cpu() - model.eval() - with torch.no_grad(): - pytorch_output = model(test_input).numpy() - - ort_session = ort.InferenceSession(onnx_path) - onnx_output = ort_session.run(None, {'input': test_input.numpy()})[0] - - diff = np.abs(pytorch_output - onnx_output).max() - print(f"✓ PyTorch与ONNX的最大差异:{diff:.8f}") - - if diff < 1e-5: - print("✓ ONNX导出成功!输出在容差范围内匹配。") - else: - print("⚠ 警告:ONNX输出与PyTorch有差异") - - except Exception as e: - print(f"✗ ONNX导出失败:{e}") - - print("\n" + "="*80) - print("✓ DLinear模型训练完成(真实数据)") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_dlinear_regression.py b/train_dlinear_regression.py deleted file mode 100644 index d0066e2..0000000 --- a/train_dlinear_regression.py +++ /dev/null @@ -1,258 +0,0 @@ -"""使用回归任务训练DLinear模型 - 预测未来1小时的实际价格变化百分比""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import numpy as np - -def main(): - print("="*80) - print("DLinear回归模型训练 - 预测未来1小时价格变化百分比") - print("="*80) - - # 步骤1: 获取2020-2025年完整数据 - print("\n[1/8] 从Binance获取BTC 2020-2025年完整数据...") - fetcher = BinanceDataFetcher() - - df = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - - print(f"✓ 已获取 {len(df)} 行数据(约{len(df)/8760:.1f}年)") - print(f"✓ 时间范围:{df['timestamp'].min()} 至 {df['timestamp'].max()}") - - # 分析数据覆盖的市场周期 - print(f"\n✓ 价格变化分析:") - print(f" 起始价格: ${df['close'].iloc[0]:,.2f} (2020年)") - print(f" 结束价格: ${df['close'].iloc[-1]:,.2f} (2025年)") - total_return = (df['close'].iloc[-1] - df['close'].iloc[0]) / df['close'].iloc[0] - print(f" 总收益率: {total_return*100:+.2f}%") - - # 按年分析 - df['year'] = df['timestamp'].dt.year - print(f"\n✓ 年度表现分析(确保包含牛熊周期):") - for year in sorted(df['year'].unique()): - year_df = df[df['year'] == year] - if len(year_df) > 100: - year_return = (year_df['close'].iloc[-1] - year_df['close'].iloc[0]) / year_df['close'].iloc[0] - trend = "🚀 牛市" if year_return > 0.3 else ("🔴 熊市" if year_return < -0.3 else "📊 震荡") - print(f" {year}年: {year_return*100:+7.2f}% {trend}") - - # 步骤2: 数据预处理(回归任务) - print("\n[2/8] 数据预处理(回归任务 - 预测未来1小时的收益率)...") - preprocessor = CryptoPreprocessor( - lookback=168, # 输入:过去168小时(7天) - forecast_horizon=1, # 预测:未来1小时 - price_change_threshold=0.0 # 回归任务不使用阈值 - ) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='regression', fit=True) - print(f"✓ 已创建序列:X形状 = {X.shape}, y形状 = {y.shape}") - print(f"✓ 特征数量:{X.shape[-1]}") - - # 分析标签分布(收益率) - print(f"\n✓ 标签统计(收益率):") - print(f" 最小值: {y.min()*100:.4f}%") - print(f" 最大值: {y.max()*100:.4f}%") - print(f" 均值: {y.mean()*100:.4f}%") - print(f" 标准差: {y.std()*100:.4f}%") - print(f" 中位数: {np.median(y)*100:.4f}%") - - # 方向统计 - n_positive = (y > 0).sum() - n_negative = (y <= 0).sum() - print(f"\n✓ 方向分布:") - print(f" 正收益(上涨): {n_positive} ({n_positive/len(y)*100:.1f}%)") - print(f" 负收益(下跌): {n_negative} ({n_negative/len(y)*100:.1f}%)") - - # 步骤3: 划分数据集 - print("\n[3/8] 划分训练/验证/测试集 (70/15/15)...") - train_data, val_data, test_data = split_data(X, y, train_split=0.7, val_split=0.15) - - print(f" 训练集:{len(train_data[0])} 样本") - print(f" 收益率范围: {train_data[1].min()*100:.4f}% ~ {train_data[1].max()*100:.4f}%") - print(f" 均值: {train_data[1].mean()*100:.4f}%") - - print(f" 验证集:{len(val_data[0])} 样本") - print(f" 收益率范围: {val_data[1].min()*100:.4f}% ~ {val_data[1].max()*100:.4f}%") - print(f" 均值: {val_data[1].mean()*100:.4f}%") - - print(f" 测试集:{len(test_data[0])} 样本") - print(f" 收益率范围: {test_data[1].min()*100:.4f}% ~ {test_data[1].max()*100:.4f}%") - print(f" 均值: {test_data[1].mean()*100:.4f}%") - - # 分析各数据集对应的时间范围 - lookback = 168 - train_end_idx = int(len(processed_df) * 0.7) - lookback - val_end_idx = int(len(processed_df) * 0.85) - lookback - - train_df = processed_df.iloc[lookback:train_end_idx+lookback] - val_df = processed_df.iloc[train_end_idx+lookback:val_end_idx+lookback] - test_df = processed_df.iloc[val_end_idx+lookback:] - - print(f"\n 训练集时间范围: {train_df['timestamp'].min()} 至 {train_df['timestamp'].max()}") - train_return = (train_df['close'].iloc[-1] - train_df['close'].iloc[0]) / train_df['close'].iloc[0] - print(f" 价格: ${train_df['close'].iloc[0]:,.0f} → ${train_df['close'].iloc[-1]:,.0f} ({train_return*100:+.1f}%)") - - print(f" 验证集时间范围: {val_df['timestamp'].min()} 至 {val_df['timestamp'].max()}") - val_return = (val_df['close'].iloc[-1] - val_df['close'].iloc[0]) / val_df['close'].iloc[0] - print(f" 价格: ${val_df['close'].iloc[0]:,.0f} → ${val_df['close'].iloc[-1]:,.0f} ({val_return*100:+.1f}%)") - - print(f" 测试集时间范围: {test_df['timestamp'].min()} 至 {test_df['timestamp'].max()}") - test_return = (test_df['close'].iloc[-1] - test_df['close'].iloc[0]) / test_df['close'].iloc[0] - print(f" 价格: ${test_df['close'].iloc[0]:,.0f} → ${test_df['close'].iloc[-1]:,.0f} ({test_return*100:+.1f}%)") - - # 步骤4: 创建数据加载器 - print("\n[4/8] 创建PyTorch数据加载器...") - train_loader, val_loader, test_loader = create_dataloaders( - train_data, val_data, test_data, - task='regression', # 回归任务 - batch_size=64 - ) - - # 步骤5: 创建模型 - print("\n[5/8] 创建DLinear回归模型...") - model_config = DLinearConfig( - input_dim=X.shape[-1], - lookback=168, - task='regression', # 回归任务 - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型已创建,可训练参数:{model.count_parameters():,} 个") - print(f"✓ 任务类型:回归(预测收益率百分比)") - print(f"✓ 损失函数:MSELoss") - - # 步骤6: 训练模型 - print("\n[6/8] 开始训练回归模型...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=10, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_btc_regression' - ) - - trainer = Trainer( - model, - train_config, - task='regression' # 回归任务,不需要pos_weight - ) - - print(f"✓ 训练数据规模:{len(train_data[0]):,} 样本") - history = trainer.fit(train_loader, val_loader) - - # 步骤7: 评估模型 - print("\n[7/8] 在测试集上评估模型...") - metrics = trainer.evaluate(test_loader) - - # 保存评估结果 - results_path = './models/checkpoints/dlinear_btc_regression/test_metrics.json' - with open(results_path, 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 评估结果已保存至:{results_path}") - - # 步骤8: 结果分析 - print("\n[8/8] 回归模型性能分析...") - print("\n" + "="*80) - print("训练完成 - 回归模型测试结果") - print("="*80) - - print(f"\n📊 回归指标:") - print(f" RMSE (均方根误差): {metrics.get('rmse', 0):.6f} ({metrics.get('rmse', 0)*100:.4f}%)") - print(f" MAE (平均绝对误差): {metrics.get('mae', 0):.6f} ({metrics.get('mae', 0)*100:.4f}%)") - print(f" MAPE (平均绝对百分比误差): {metrics.get('mape', 0):.2f}%") - print(f" 方向准确率: {metrics.get('directional_accuracy', 0)*100:.2f}%") - - print(f"\n💰 回测结果:") - print(f" 总收益率: {metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 最终资金: ${metrics.get('backtest_final_capital', 0):,.2f}") - print(f" 夏普比率: {metrics.get('backtest_sharpe_ratio', 0):.4f}") - max_dd = metrics.get('backtest_max_drawdown', 0) - if not np.isnan(max_dd): - print(f" 最大回撤: {max_dd*100:.2f}%") - else: - print(f" 最大回撤: N/A") - print(f" 胜率: {metrics.get('backtest_win_rate', 0)*100:.2f}%") - print(f" 交易次数: {metrics.get('backtest_num_trades', 0)}") - - # 与分类任务对比 - print("\n" + "="*80) - print("📊 回归 vs 分类任务对比") - print("="*80) - - print(f"\n二分类模型(之前的结果):") - print(f" 准确率: 49.76%") - print(f" F1分数: 0.3898") - print(f" 预测偏差: 68.1%预测下跌(过度悲观)") - print(f" 回测收益: -3.29%") - - print(f"\n回归模型(当前结果):") - print(f" 方向准确率: {metrics.get('directional_accuracy', 0)*100:.2f}%") - print(f" RMSE: {metrics.get('rmse', 0)*100:.4f}%") - print(f" MAE: {metrics.get('mae', 0)*100:.4f}%") - print(f" 回测收益: {metrics.get('backtest_total_return', 0)*100:.2f}%") - - # 性能评估 - print(f"\n🎯 回归模型性能评估:") - - dir_acc = metrics.get('directional_accuracy', 0) - if dir_acc > 0.55: - print(f" ✅ 方向准确率 {dir_acc*100:.1f}% > 55%,模型有预测能力") - elif dir_acc > 0.50: - print(f" ⚠️ 方向准确率 {dir_acc*100:.1f}% 略优于随机,预测能力较弱") - else: - print(f" ❌ 方向准确率 {dir_acc*100:.1f}% ≤ 50%,方向预测能力不足") - - rmse = metrics.get('rmse', 0) - mae = metrics.get('mae', 0) - print(f"\n 误差分析:") - print(f" RMSE = {rmse*100:.4f}% - 平均预测误差的平方根") - print(f" MAE = {mae*100:.4f}% - 平均绝对误差") - if rmse < 0.01: # 小于1% - print(f" ✅ RMSE < 1%,预测精度较高") - elif rmse < 0.02: # 小于2% - print(f" ⚠️ RMSE在1-2%之间,预测精度中等") - else: - print(f" ❌ RMSE > 2%,预测误差较大") - - total_return = metrics.get('backtest_total_return', 0) - if total_return > 0.05: - print(f"\n ✅ 回测收益 {total_return*100:.2f}% > 5%,策略有盈利潜力") - elif total_return > 0: - print(f"\n ⚠️ 回测收益 {total_return*100:.2f}% > 0,策略微弱盈利") - else: - print(f"\n ❌ 回测收益 {total_return*100:.2f}% ≤ 0,策略亏损") - - print("\n💡 回归任务的优势:") - print(" ✅ 提供预测幅度信息(可用于动态仓位管理)") - print(" ✅ 评估风险收益比") - print(" ✅ 更适合量化交易策略") - - print("\n💡 回归任务的挑战:") - print(" ❌ 预测具体数值比预测方向更难") - print(" ❌ 对异常值敏感") - print(" ❌ 需要更多训练数据才能稳定") - - print("\n" + "="*80) - print("✓ 回归模型训练完成!") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_full_data.py b/train_full_data.py deleted file mode 100644 index 9123598..0000000 --- a/train_full_data.py +++ /dev/null @@ -1,233 +0,0 @@ -"""方案A:使用2020-2025年BTC全部数据训练 - 准备实盘使用""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from data.fetcher import BinanceDataFetcher -from data.preprocessor import CryptoPreprocessor, split_data -from data.dataset import create_dataloaders -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import numpy as np - -def main(): - print("="*80) - print("方案A:BTC全量数据训练 (2020-2025)") - print("训练集:95% | 验证集:5%(仅用于early stopping)| 测试集:无") - print("="*80) - - # ========== 步骤1: 获取全部BTC数据 ========== - print("\n[1/7] 获取BTC 2020-2025年全部数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - - print(f"✓ 已获取 {len(df):,} 行数据(约{len(df)/8760:.1f}年)") - print(f"✓ 时间范围:{df['timestamp'].min()} 至 {df['timestamp'].max()}") - print(f"✓ 价格范围:${df['close'].iloc[0]:,.2f} → ${df['close'].iloc[-1]:,.2f}") - total_return = (df['close'].iloc[-1] - df['close'].iloc[0]) / df['close'].iloc[0] - print(f"✓ 总收益率:{total_return*100:+.2f}%") - - # 市场周期分析 - df['year'] = df['timestamp'].dt.year - print(f"\n✓ 市场周期覆盖:") - for year in sorted(df['year'].unique()): - year_df = df[df['year'] == year] - if len(year_df) > 100: - year_return = (year_df['close'].iloc[-1] - year_df['close'].iloc[0]) / year_df['close'].iloc[0] - trend = "🚀 牛市" if year_return > 0.3 else ("🔴 熊市" if year_return < -0.3 else "📊 震荡") - print(f" {year}年: {year_return*100:+7.2f}% {trend}") - - # ========== 步骤2: 数据预处理 ========== - print("\n[2/7] 数据预处理(回归任务)...") - preprocessor = CryptoPreprocessor( - lookback=168, # 输入:过去7天 - forecast_horizon=1, # 预测:未来1小时 - price_change_threshold=0.0 - ) - X, y, processed_df = preprocessor.preprocess_pipeline(df, task='regression', fit=True) - - print(f"✓ 序列数量:{len(X):,}") - print(f"✓ 序列形状:{X.shape}") - print(f"✓ 特征数量:{X.shape[-1]}") - - print(f"\n✓ 标签统计(收益率):") - print(f" 最小值: {y.min()*100:.4f}%") - print(f" 最大值: {y.max()*100:.4f}%") - print(f" 均值: {y.mean()*100:.4f}%") - print(f" 标准差: {y.std()*100:.4f}%") - print(f" 中位数: {np.median(y)*100:.4f}%") - - n_positive = (y > 0).sum() - n_negative = (y <= 0).sum() - print(f"\n✓ 方向分布:") - print(f" 上涨: {n_positive:,} ({n_positive/len(y)*100:.1f}%)") - print(f" 下跌: {n_negative:,} ({n_negative/len(y)*100:.1f}%)") - - # ========== 步骤3: 划分数据集(95% 训练 + 5% 验证)========== - print("\n[3/7] 划分数据集(95%训练 + 5%验证)...") - print("⚠️ 注意:此次训练使用几乎全部数据,无独立测试集") - print(" 验证集仅用于early stopping防止过拟合") - - n = len(X) - train_end = int(n * 0.95) - - X_train = X[:train_end] - y_train = y[:train_end] - X_val = X[train_end:] - y_val = y[train_end:] - - print(f"\n 训练集:{len(X_train):,} 样本 ({len(X_train)/n*100:.1f}%)") - print(f" 收益率范围: {y_train.min()*100:.4f}% ~ {y_train.max()*100:.4f}%") - - print(f" 验证集:{len(X_val):,} 样本 ({len(X_val)/n*100:.1f}%)") - print(f" 收益率范围: {y_val.min()*100:.4f}% ~ {y_val.max()*100:.4f}%") - - # 时间范围分析 - lookback = 168 - train_df = processed_df.iloc[lookback:train_end+lookback] - val_df = processed_df.iloc[train_end+lookback:] - - print(f"\n 时间范围:") - print(f" 训练集: {train_df['timestamp'].min()} 至 {train_df['timestamp'].max()}") - train_return = (train_df['close'].iloc[-1] - train_df['close'].iloc[0]) / train_df['close'].iloc[0] - print(f" ${train_df['close'].iloc[0]:,.0f} → ${train_df['close'].iloc[-1]:,.0f} ({train_return*100:+.1f}%)") - - print(f" 验证集: {val_df['timestamp'].min()} 至 {val_df['timestamp'].max()}") - val_return = (val_df['close'].iloc[-1] - val_df['close'].iloc[0]) / val_df['close'].iloc[0] - print(f" ${val_df['close'].iloc[0]:,.0f} → ${val_df['close'].iloc[-1]:,.0f} ({val_return*100:+.1f}%)") - - # ========== 步骤4: 创建数据加载器 ========== - print("\n[4/7] 创建数据加载器...") - train_loader, val_loader, _ = create_dataloaders( - (X_train, y_train), - (X_val, y_val), - (X_val, y_val), # 测试集用验证集替代(不使用) - task='regression', - batch_size=64 - ) - - # ========== 步骤5: 创建模型 ========== - print("\n[5/7] 创建DLinear回归模型...") - model_config = DLinearConfig( - input_dim=X.shape[-1], - lookback=168, - task='regression', - hidden_dim=512, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型参数:{model.count_parameters():,} 个") - print(f"✓ 任务类型:回归(预测未来1小时收益率)") - print(f"✓ 损失函数:MSELoss") - - # ========== 步骤6: 训练模型 ========== - print("\n[6/7] 开始全量数据训练...") - print(f"✓ 训练样本:{len(X_train):,} (使用了{len(X_train)/len(X)*100:.1f}%的数据)") - print(f"✓ 对比之前:之前训练集36,645样本,现在{len(X_train):,}样本(+{(len(X_train)-36645)/36645*100:.1f}%)") - - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=15, # 增加patience,允许更充分训练 - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_btc_full_data' - ) - - trainer = Trainer(model, train_config, task='regression') - history = trainer.fit(train_loader, val_loader) - - # ========== 步骤7: 保存最终模型 ========== - print("\n[7/7] 保存最终模型...") - - # 在验证集上快速评估 - print("\n在验证集上进行sanity check...") - val_metrics = trainer.evaluate(val_loader) - - results_path = './models/checkpoints/dlinear_btc_full_data/final_metrics.json' - with open(results_path, 'w') as f: - json.dump(val_metrics, f, indent=2) - print(f"✓ 结果保存至:{results_path}") - - # 同时保存预处理器(实盘使用时需要) - import pickle - preprocessor_path = './models/checkpoints/dlinear_btc_full_data/preprocessor.pkl' - with open(preprocessor_path, 'wb') as f: - pickle.dump(preprocessor, f) - print(f"✓ 预处理器保存至:{preprocessor_path}") - - # ========== 最终报告 ========== - print("\n" + "="*80) - print("全量数据训练完成 - 最终报告") - print("="*80) - - print(f"\n📊 训练概况:") - print(f" 数据时间范围:2020-01-01 至 2025-12-31 (6年)") - print(f" 训练样本数量:{len(X_train):,} (95%)") - print(f" 验证样本数量:{len(X_val):,} (5%)") - print(f" 特征数量:{X.shape[-1]}") - print(f" 模型参数:{model.count_parameters():,}") - - print(f"\n📈 验证集性能(仅供参考,非独立测试):") - print(f" RMSE: {val_metrics.get('rmse', 0)*100:.4f}%") - print(f" MAE: {val_metrics.get('mae', 0)*100:.4f}%") - print(f" 方向准确率: {val_metrics.get('directional_accuracy', 0)*100:.2f}%") - - print(f"\n💰 验证集回测(仅供参考):") - print(f" 总收益率: {val_metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 夏普比率: {val_metrics.get('backtest_sharpe_ratio', 0):.4f}") - max_dd = val_metrics.get('backtest_max_drawdown', 0) - if not np.isnan(max_dd): - print(f" 最大回撤: {max_dd*100:.2f}%") - print(f" 胜率: {val_metrics.get('backtest_win_rate', 0)*100:.2f}%") - - print("\n" + "="*80) - print("🎯 全量训练 vs 之前训练对比") - print("="*80) - - print("\n之前训练(70/15/15分割):") - print(" 训练样本: 36,645") - print(" 时间范围: 2020-01 至 2024-03") - print(" 测试集方向准确率: 50.67%") - print(" 测试集回测收益: -16.71%") - - print(f"\n当前全量训练(95/5分割):") - print(f" 训练样本: {len(X_train):,} (+{(len(X_train)-36645)/36645*100:.1f}%)") - print(f" 时间范围: 2020-01 至 {train_df['timestamp'].max().strftime('%Y-%m')}") - print(f" 验证集方向准确率: {val_metrics.get('directional_accuracy', 0)*100:.2f}%") - print(f" 验证集回测收益: {val_metrics.get('backtest_total_return', 0)*100:.2f}%") - - print("\n" + "="*80) - print("⚠️ 重要说明") - print("="*80) - print("\n1. 此模型使用了95%的历史数据训练") - print("2. 验证集仅占5%,性能指标仅供参考,不代表真实泛化能力") - print("3. 模型已针对2020-2025年市场环境充分优化") - print("4. 适用场景:") - print(" ✅ 用于2026年未来数据的预测") - print(" ✅ 用于实盘交易(假设未来市场特征与历史相似)") - print(" ❌ 不适合评估在未见过数据上的泛化性能") - - print("\n💡 下一步建议:") - print(" 1. 使用此模型预测2026年1月的BTC价格") - print(" 2. 在实盘中小仓位测试策略") - print(" 3. 定期(每月/季度)用新数据重新训练模型") - print(" 4. 监控实盘性能,如果偏差大说明市场环境变化") - - print("\n" + "="*80) - print("✓ 训练完成!模型已保存到 ./models/checkpoints/dlinear_btc_full_data/") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_predict_price.py b/train_predict_price.py deleted file mode 100644 index 03e9e34..0000000 --- a/train_predict_price.py +++ /dev/null @@ -1,260 +0,0 @@ -"""直接预测未来1小时的价格(而非收益率)""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import numpy as np -import pandas as pd -import pandas_ta as ta -from sklearn.preprocessing import StandardScaler -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from data.fetcher import BinanceDataFetcher -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import pickle - -class PricePreprocessor: - """预测未来价格的预处理器""" - - def __init__(self, lookback=168, forecast_horizon=1): - self.lookback = lookback - self.forecast_horizon = forecast_horizon - self.scaler = StandardScaler() - self.price_scaler = StandardScaler() # 单独的价格缩放器 - self.is_fitted = False - - def add_features(self, df): - """添加技术指标""" - df = df.copy() - - # RSI - df['rsi'] = ta.rsi(df['close'], length=14) - - # MACD - macd = ta.macd(df['close']) - if macd is not None and not macd.empty: - df['macd'] = macd.iloc[:, 0] - df['macd_hist'] = macd.iloc[:, 1] - df['macd_signal'] = macd.iloc[:, 2] - - return df - - def create_labels(self, df): - """创建标签:未来1小时的价格(绝对价格)""" - df = df.copy() - # 标签是未来1小时的收盘价 - df['future_price'] = df['close'].shift(-self.forecast_horizon) - df['label'] = df['future_price'] - return df[:-self.forecast_horizon] - - def preprocess(self, df, fit=True): - """完整预处理流程""" - # 添加技术指标 - df = self.add_features(df) - df = self.create_labels(df) - - # 删除NaN - df = df.dropna().reset_index(drop=True) - - # 特征列 - feature_cols = ['open', 'high', 'low', 'close', 'volume', - 'rsi', 'macd', 'macd_hist', 'macd_signal'] - - # 标准化特征 - if fit: - scaled_features = self.scaler.fit_transform(df[feature_cols]) - # 单独标准化价格标签(用于训练) - scaled_labels = self.price_scaler.fit_transform(df[['label']]) - self.is_fitted = True - self.feature_columns = feature_cols - else: - if not self.is_fitted: - raise ValueError("Must fit before transform") - scaled_features = self.scaler.transform(df[feature_cols]) - scaled_labels = self.price_scaler.transform(df[['label']]) - - # 创建序列 - X, y = [], [] - for i in range(len(scaled_features) - self.lookback): - X.append(scaled_features[i:i + self.lookback]) - y.append(scaled_labels[i + self.lookback, 0]) # 标准化后的价格 - - return np.array(X), np.array(y), df - - def inverse_transform_price(self, scaled_price): - """将标准化的价格还原为真实价格""" - return self.price_scaler.inverse_transform(scaled_price.reshape(-1, 1)).flatten() - -def main(): - print("="*80) - print("训练模型:直接预测未来1小时价格") - print("="*80) - - # ========== 步骤1: 获取数据 ========== - print("\n[1/7] 获取BTC 2020-2025年数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - - print(f"✓ 数据量: {len(df):,} 行") - print(f"✓ 时间: {df['timestamp'].min()} 至 {df['timestamp'].max()}") - print(f"✓ 价格: ${df['close'].iloc[0]:,.2f} → ${df['close'].iloc[-1]:,.2f}") - - # ========== 步骤2: 预处理 ========== - print("\n[2/7] 数据预处理(预测绝对价格)...") - preprocessor = PricePreprocessor(lookback=168, forecast_horizon=1) - X, y, processed_df = preprocessor.preprocess(df, fit=True) - - print(f"✓ 序列数量: {len(X):,}") - print(f"✓ 序列形状: {X.shape}") - print(f"✓ 特征数量: {len(preprocessor.feature_columns)}") - - # 还原真实价格看看统计 - y_real = preprocessor.inverse_transform_price(y) - print(f"\n✓ 目标价格统计(真实值):") - print(f" 最小值: ${y_real.min():,.2f}") - print(f" 最大值: ${y_real.max():,.2f}") - print(f" 均值: ${y_real.mean():,.2f}") - - # ========== 步骤3: 划分数据集(95/5)========== - print("\n[3/7] 划分数据集(95%训练 + 5%验证)...") - n = len(X) - train_end = int(n * 0.95) - - X_train, y_train = X[:train_end], y[:train_end] - X_val, y_val = X[train_end:], y[train_end:] - - print(f" 训练集: {len(X_train):,} 样本") - print(f" 验证集: {len(X_val):,} 样本") - - # ========== 步骤4: 创建数据加载器 ========== - print("\n[4/7] 创建数据加载器...") - train_dataset = TensorDataset( - torch.FloatTensor(X_train), - torch.FloatTensor(y_train) - ) - val_dataset = TensorDataset( - torch.FloatTensor(X_val), - torch.FloatTensor(y_val) - ) - - train_loader = DataLoader(train_dataset, batch_size=64, shuffle=False) - val_loader = DataLoader(val_dataset, batch_size=64, shuffle=False) - - # ========== 步骤5: 创建模型 ========== - print("\n[5/7] 创建DLinear模型...") - model_config = DLinearConfig( - input_dim=9, - lookback=168, - task='regression', # 仍然是回归,但预测价格而非收益率 - hidden_dim=256, - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型参数: {model.count_parameters():,}") - print(f"✓ 预测目标: 未来1小时的绝对价格") - - # ========== 步骤6: 训练 ========== - print("\n[6/7] 开始训练...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=15, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_predict_price' - ) - - trainer = Trainer(model, train_config, task='regression') - history = trainer.fit(train_loader, val_loader) - - # ========== 步骤7: 评估 ========== - print("\n[7/7] 评估模型...") - - # 在验证集上预测 - device = torch.device('mps' if torch.backends.mps.is_available() else 'cpu') - model = model.to(device) - model.eval() - - val_preds = [] - with torch.no_grad(): - for batch_X, _ in val_loader: - batch_X = batch_X.to(device) - pred = model(batch_X).squeeze() - val_preds.extend(pred.cpu().numpy()) - - val_preds = np.array(val_preds) - - # 还原为真实价格 - pred_prices = preprocessor.inverse_transform_price(val_preds) - true_prices = preprocessor.inverse_transform_price(y_val) - - # 计算当前价格(用于判断方向) - val_start_idx = train_end + 168 # +168是lookback - current_prices = processed_df['close'].iloc[val_start_idx:val_start_idx+len(pred_prices)].values - - # 方向准确率 - pred_direction = (pred_prices > current_prices).astype(int) - true_direction = (true_prices > current_prices).astype(int) - direction_acc = (pred_direction == true_direction).mean() - - # 价格预测误差 - price_mae = np.abs(pred_prices - true_prices).mean() - price_rmse = np.sqrt(((pred_prices - true_prices) ** 2).mean()) - price_mape = np.mean(np.abs((true_prices - pred_prices) / true_prices)) * 100 - - print("\n" + "="*80) - print("训练完成 - 验证集性能") - print("="*80) - - print(f"\n📊 价格预测误差:") - print(f" MAE: ${price_mae:,.2f}") - print(f" RMSE: ${price_rmse:,.2f}") - print(f" MAPE: {price_mape:.2f}%") - - print(f"\n📈 方向预测:") - print(f" 方向准确率: {direction_acc*100:.2f}%") - print(f" 预测上涨: {(pred_direction==1).sum()} / 实际上涨: {(true_direction==1).sum()}") - print(f" 预测下跌: {(pred_direction==0).sum()} / 实际下跌: {(true_direction==0).sum()}") - - print(f"\n💡 价格预测示例(前10个):") - print(f"{'当前价格':<12} {'预测价格':<12} {'实际价格':<12} {'预测方向':<8} {'实际方向':<8}") - print("-"*70) - for i in range(min(10, len(pred_prices))): - pred_dir = "上涨" if pred_prices[i] > current_prices[i] else "下跌" - true_dir = "上涨" if true_prices[i] > current_prices[i] else "下跌" - print(f"${current_prices[i]:<11,.2f} ${pred_prices[i]:<11,.2f} ${true_prices[i]:<11,.2f} " - f"{pred_dir:<8} {true_dir:<8}") - - # 保存模型和预处理器 - with open('./models/checkpoints/dlinear_predict_price/preprocessor.pkl', 'wb') as f: - pickle.dump(preprocessor, f) - - # 保存评估指标 - metrics = { - 'price_mae': float(price_mae), - 'price_rmse': float(price_rmse), - 'price_mape': float(price_mape), - 'direction_accuracy': float(direction_acc) - } - with open('./models/checkpoints/dlinear_predict_price/metrics.json', 'w') as f: - json.dump(metrics, f, indent=2) - - print(f"\n✓ 模型保存至: ./models/checkpoints/dlinear_predict_price/") - print("="*80) - -if __name__ == "__main__": - main() diff --git a/train_simple_features.py b/train_simple_features.py deleted file mode 100644 index 6e047ac..0000000 --- a/train_simple_features.py +++ /dev/null @@ -1,206 +0,0 @@ -"""简化特征训练:只使用OHLCV + RSI + MACD""" - -import sys -import os -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -import numpy as np -import pandas as pd -import pandas_ta as ta -from sklearn.preprocessing import StandardScaler -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from data.fetcher import BinanceDataFetcher -from models.dlinear.model import DLinear, DLinearConfig -from training.trainer import Trainer -from training.config import TrainingConfig -import json -import pickle - -class SimplePreprocessor: - """简化的预处理器:只使用OHLCV + RSI + MACD""" - - def __init__(self, lookback=168, forecast_horizon=1): - self.lookback = lookback - self.forecast_horizon = forecast_horizon - self.scaler = StandardScaler() - self.is_fitted = False - - def add_features(self, df): - """添加RSI和MACD特征""" - df = df.copy() - - # RSI (14 periods) - df['rsi'] = ta.rsi(df['close'], length=14) - - # MACD - macd = ta.macd(df['close']) - if macd is not None and not macd.empty: - df['macd'] = macd.iloc[:, 0] - df['macd_hist'] = macd.iloc[:, 1] - df['macd_signal'] = macd.iloc[:, 2] - - return df - - def create_labels(self, df): - """创建标签:未来1小时的收益率""" - df = df.copy() - df['future_price'] = df['close'].shift(-self.forecast_horizon) - df['future_return'] = (df['future_price'] - df['close']) / df['close'] - df['label'] = df['future_return'] - return df[:-self.forecast_horizon] - - def preprocess(self, df, fit=True): - """完整预处理流程""" - # 添加技术指标 - df = self.add_features(df) - df = self.create_labels(df) - - # 删除NaN - df = df.dropna().reset_index(drop=True) - - # 选择特征列:OHLCV + RSI + MACD - feature_cols = ['open', 'high', 'low', 'close', 'volume', - 'rsi', 'macd', 'macd_hist', 'macd_signal'] - - # 标准化 - if fit: - scaled = self.scaler.fit_transform(df[feature_cols]) - self.is_fitted = True - self.feature_columns = feature_cols - else: - if not self.is_fitted: - raise ValueError("Must fit before transform") - scaled = self.scaler.transform(df[feature_cols]) - - # 创建序列 - X, y = [], [] - for i in range(len(scaled) - self.lookback): - X.append(scaled[i:i + self.lookback]) - y.append(df['label'].iloc[i + self.lookback]) - - return np.array(X), np.array(y), df - -def main(): - print("="*80) - print("简化特征训练:OHLCV + RSI + MACD") - print("="*80) - - # ========== 步骤1: 获取数据 ========== - print("\n[1/7] 获取BTC 2020-2025年数据...") - fetcher = BinanceDataFetcher() - df = fetcher.fetch_ohlcv( - symbol='BTC', - timeframe='1h', - start_date='2020-01-01', - end_date='2025-12-31', - use_cache=True - ) - - print(f"✓ 数据量: {len(df):,} 行") - print(f"✓ 时间: {df['timestamp'].min()} 至 {df['timestamp'].max()}") - print(f"✓ 价格: ${df['close'].iloc[0]:,.2f} → ${df['close'].iloc[-1]:,.2f}") - - # ========== 步骤2: 预处理 ========== - print("\n[2/7] 数据预处理(只使用9个特征)...") - preprocessor = SimplePreprocessor(lookback=168, forecast_horizon=1) - X, y, processed_df = preprocessor.preprocess(df, fit=True) - - print(f"✓ 序列数量: {len(X):,}") - print(f"✓ 序列形状: {X.shape}") - print(f"✓ 特征列表:") - for i, col in enumerate(preprocessor.feature_columns, 1): - print(f" {i}. {col}") - - print(f"\n✓ 标签统计:") - print(f" 收益率范围: {y.min()*100:.4f}% ~ {y.max()*100:.4f}%") - print(f" 均值: {y.mean()*100:.4f}%") - print(f" 上涨样本: {(y>0).sum()} ({(y>0).sum()/len(y)*100:.1f}%)") - print(f" 下跌样本: {(y<=0).sum()} ({(y<=0).sum()/len(y)*100:.1f}%)") - - # ========== 步骤3: 划分数据集(95/5)========== - print("\n[3/7] 划分数据集(95%训练 + 5%验证)...") - n = len(X) - train_end = int(n * 0.95) - - X_train, y_train = X[:train_end], y[:train_end] - X_val, y_val = X[train_end:], y[train_end:] - - print(f" 训练集: {len(X_train):,} 样本") - print(f" 验证集: {len(X_val):,} 样本") - - # ========== 步骤4: 创建数据加载器 ========== - print("\n[4/7] 创建数据加载器...") - train_dataset = TensorDataset( - torch.FloatTensor(X_train), - torch.FloatTensor(y_train) - ) - val_dataset = TensorDataset( - torch.FloatTensor(X_val), - torch.FloatTensor(y_val) - ) - - train_loader = DataLoader(train_dataset, batch_size=64, shuffle=False) - val_loader = DataLoader(val_dataset, batch_size=64, shuffle=False) - - # ========== 步骤5: 创建模型 ========== - print("\n[5/7] 创建DLinear模型...") - model_config = DLinearConfig( - input_dim=9, # OHLCV + RSI + MACD(3个) - lookback=168, - task='regression', - hidden_dim=256, # 减小隐藏层 - dropout=0.1, - moving_avg_kernel=25 - ) - model = DLinear(model_config) - print(f"✓ 模型参数: {model.count_parameters():,}") - - # ========== 步骤6: 训练 ========== - print("\n[6/7] 开始训练...") - train_config = TrainingConfig( - batch_size=64, - max_epochs=50, - learning_rate=0.001, - early_stopping_patience=15, - lr_scheduler='plateau', - save_best=True, - checkpoint_dir='./models/checkpoints/dlinear_simple_features' - ) - - trainer = Trainer(model, train_config, task='regression') - history = trainer.fit(train_loader, val_loader) - - # ========== 步骤7: 评估并保存 ========== - print("\n[7/7] 评估并保存...") - val_metrics = trainer.evaluate(val_loader) - - # 保存结果 - with open('./models/checkpoints/dlinear_simple_features/metrics.json', 'w') as f: - json.dump(val_metrics, f, indent=2) - - # 保存预处理器 - with open('./models/checkpoints/dlinear_simple_features/preprocessor.pkl', 'wb') as f: - pickle.dump(preprocessor, f) - - print("\n" + "="*80) - print("训练完成") - print("="*80) - - print(f"\n📊 验证集性能:") - print(f" RMSE: {val_metrics.get('rmse', 0)*100:.4f}%") - print(f" MAE: {val_metrics.get('mae', 0)*100:.4f}%") - print(f" 方向准确率: {val_metrics.get('directional_accuracy', 0)*100:.2f}%") - - print(f"\n💰 验证集回测:") - print(f" 总收益率: {val_metrics.get('backtest_total_return', 0)*100:.2f}%") - print(f" 夏普比率: {val_metrics.get('backtest_sharpe_ratio', 0):.4f}") - - print(f"\n✓ 模型保存至: ./models/checkpoints/dlinear_simple_features/") - print(f"✓ 特征数量: 9 (OHLCV + RSI + MACD)") - print("="*80) - -if __name__ == "__main__": - main()