pivot: rewrite as BTC accumulation signal optimizer
Replace day-trading bot with long-term accumulation signal model. Predicts optimal BUY times using forward return analysis at 7d/30d/90d horizons, scoring each candle 0-100. Primary metric is now cost_basis_improvement_pct (model buy price vs DCA). - train_and_backtest.py: regression models (XGBoost/LSTM hybrid), accumulation-focused features (price position, momentum, volatility, volume, cycle), forward return targets, signal quality backtesting - orchestrator.py: cost improvement scoring, signal count validation - analyzer.py: accumulation-focused LLM system prompt - dashboard: cost improvement display, signal metrics table - config: new accumulation-focused parameters Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
a21e635d9f
commit
560863fa0d
+24
-33
@@ -1,62 +1,53 @@
|
||||
{
|
||||
"model_type": "hybrid",
|
||||
"features": {
|
||||
"technical_indicators": ["RSI_14", "RSI_7", "MACD_line", "MACD_signal", "MACD_hist", "BB_upper", "BB_lower", "BB_width", "ATR_14", "SMA_20", "SMA_50", "EMA_10", "EMA_20", "OBV", "stoch_k", "stoch_d", "williams_r", "CCI_20", "ROC_10"],
|
||||
"lookback_periods": [3, 5, 10, 20],
|
||||
"use_volume_features": true,
|
||||
"use_volatility_features": true,
|
||||
"use_candle_patterns": false,
|
||||
"use_lag_features": true,
|
||||
"lag_periods": [1, 2, 3, 5],
|
||||
"use_price_position": true,
|
||||
"use_momentum": true,
|
||||
"use_volatility": true,
|
||||
"use_volume": true,
|
||||
"use_cycle": true,
|
||||
"use_pca": true,
|
||||
"pca_variance": 0.95,
|
||||
"use_scaler": true
|
||||
},
|
||||
"target": {
|
||||
"type": "classification",
|
||||
"direction": "both",
|
||||
"horizon_candles": 8,
|
||||
"threshold_pct": 1.5
|
||||
"type": "regression",
|
||||
"forward_periods_1h": [168, 720, 2160],
|
||||
"forward_periods_4h": [42, 180, 540],
|
||||
"weights": [0.2, 0.3, 0.5],
|
||||
"score_range": [0, 100]
|
||||
},
|
||||
"hyperparameters": {
|
||||
"learning_rate": 0.001,
|
||||
"learning_rate": 0.01,
|
||||
"max_depth": 5,
|
||||
"n_estimators": 300,
|
||||
"n_estimators": 500,
|
||||
"subsample": 0.8,
|
||||
"colsample_bytree": 0.8,
|
||||
"min_child_weight": 5,
|
||||
"min_child_weight": 10,
|
||||
"gamma": 0.3,
|
||||
"reg_alpha": 0.1,
|
||||
"reg_lambda": 2.0,
|
||||
"reg_alpha": 0.5,
|
||||
"reg_lambda": 3.0,
|
||||
"lstm_hidden_size": 128,
|
||||
"lstm_num_layers": 2,
|
||||
"lstm_dropout": 0.3,
|
||||
"lstm_epochs": 100,
|
||||
"lstm_batch_size": 64,
|
||||
"lstm_sequence_length": 20,
|
||||
"lstm_sequence_length": 30,
|
||||
"lstm_patience": 10
|
||||
},
|
||||
"strategy": {
|
||||
"entry_threshold": 0.60,
|
||||
"exit_type": "trailing_stop",
|
||||
"stop_loss_pct": 2.0,
|
||||
"take_profit_pct": 4.0,
|
||||
"trailing_stop_pct": 1.5,
|
||||
"position_sizing": "confidence_scaled",
|
||||
"max_position_pct": 100,
|
||||
"min_confidence_to_trade": 0.55,
|
||||
"dynamic_sl_tp": true,
|
||||
"atr_sl_multiplier": 1.5,
|
||||
"atr_tp_multiplier": 3.0
|
||||
"strong_buy_threshold": 80,
|
||||
"good_buy_threshold": 70,
|
||||
"poor_threshold": 30
|
||||
},
|
||||
"training": {
|
||||
"rolling_window": true,
|
||||
"rolling_train_size": 2500,
|
||||
"rolling_test_size": 300,
|
||||
"walk_forward_windows": 5,
|
||||
"train_pct": 0.7,
|
||||
"validation_pct": 0.15,
|
||||
"test_pct": 0.15,
|
||||
"rolling_window": true,
|
||||
"rolling_train_size": 2000,
|
||||
"rolling_test_size": 200
|
||||
"test_pct": 0.15
|
||||
},
|
||||
"timeframe": "4h"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user