| root_dir: ${oc.env:PROJECT_ROOT}
|
| data_dir: ${root_dir}/data/
|
| db_file: ${data_dir}/data.db
|
| log_dir: ${root_dir}/logs/
|
| output_dir: ${hydra:runtime.output_dir}
|
| cache_dir: ${root_dir}/.cache
|
| work_dir: ${hydra:runtime.cwd}
|
| binance:
|
| symbols:
|
| - BTC/USDT
|
| - ETH/USDT
|
| - XRP/USDT
|
| intervals:
|
| - 1d
|
| start_date: '2022-01-01'
|
| end_date: null
|
| limit: 1000
|
| storage:
|
| batch_size: 500
|
| update_existing: true
|
| rate_limiting:
|
| requests_per_minute: 60
|
| retry_attempts: 3
|
| retry_delay_seconds: 5
|
| data:
|
| symbols:
|
| - ETH/USDT
|
| interval: 1d
|
| start_date: '2022-01-01'
|
| end_date: null
|
| sequence_length: 7
|
| feature_columns:
|
| - open
|
| - high
|
| - low
|
| - close
|
| - volume_buy
|
| - volume_sell
|
| target_column: close
|
| train_split: 0.8
|
| val_split: 0.1
|
| test_split: 0.1
|
| batch_size: 32
|
| shuffle: true
|
| num_workers: 4
|
| model:
|
| type: GRU
|
| hidden_size: 128
|
| num_layers: 4
|
| dropout: 0.2
|
| bidirectional: true
|
| training:
|
| epochs: 200
|
| early_stopping_patience: 20
|
| early_stopping_min_delta: 0.001
|
| learning_rate: 0.0005
|
| optimizer: adam
|
| loss_function: exp_percentage
|
| ratio_weight: 0.6
|
| gradient_clip_val: 0.7
|
| wandb:
|
| enabled: true
|
| log_model: false
|
| log_every_n_steps: 10
|
| visualize_predictions: true
|
| max_samples_to_plot: 300
|
| visualization_library: matplotlib
|
| checkpoint:
|
| dirpath: checkpoints
|
| filename: '{epoch}-{val_loss:.4f}'
|
| save_top_k: 1
|
| monitor: val_loss
|
| mode: min
|
| huggingface:
|
| push_to_hub: true
|
| commit_message: Training run on {date}
|
| repo_id: eth-predictor-v1
|
| trading:
|
| general:
|
| interval: 1d
|
| position_size_pct: 0.1
|
| max_open_trades: 10
|
| model_and_symbols:
|
| - model: btc-predictor-v2
|
| symbols: BTC/USDT
|
| logic:
|
| buy_threshold: 0.005
|
| sell_threshold: -0.0
|
| stop_loss_pct: 0.05
|
| take_profit_pct: 0.1
|
| enable_stop_loss: false
|
| enable_trend_reversal_selling: true
|
| backtesting:
|
| start_date: '2025-01-01'
|
| end_date: '2025-05-16'
|
| fee_rate: 0.001
|
| slippage_pct: 0.001
|
| plot_results: true
|
| save_results: true
|
| results_dir: backtest_results
|
| initial_capital: 2000.0
|
| allow_mock_predictions: false
|
| visualization:
|
| formats:
|
| - png
|
| - pdf
|
| dpi: 300
|
| combined_report: true
|
| charts:
|
| portfolio_value: true
|
| cumulative_returns: true
|
| trade_points: true
|
| drawdown: true
|
| monthly_returns: true
|
| win_loss_ratio: true
|
| portfolio_composition: true
|
| predictions: true
|
| live:
|
| mode: paper
|
| symbols:
|
| - BTC/USDT
|
| update_interval_seconds: 60
|
| max_retry_attempts: 3
|
| retry_delay_seconds: 5
|
| order_type: market
|
| limit_order_time_in_force: GTC
|
| limit_price_buffer_pct: 0.005
|
| scheduling:
|
| enabled: true
|
| mode: cron
|
| cron_expression: 0 1 * * *
|
| interval_seconds: 3600
|
| timezone: UTC
|
| max_execution_time_seconds: 1800
|
| monitoring:
|
| performance_logging: true
|
| health_check_interval_seconds: 300
|
| metrics_retention_hours: 168
|
| cycle_timeout_seconds: 1800
|
| thresholds:
|
| max_cycle_duration_seconds: 600
|
| max_api_response_time_seconds: 30
|
| min_success_rate_percent: 80
|
| business_metrics:
|
| enabled: true
|
| portfolio_tracking: true
|
| model_performance_tracking: true
|
| trading_analytics: true
|
| min_prediction_accuracy: 0.7
|
| max_acceptable_drawdown_pct: -10.0
|
| min_win_rate_pct: 40.0
|
| model_degradation:
|
| enabled: true
|
| accuracy_drop_threshold: 0.1
|
| baseline_days: 7
|
| recent_days: 3
|
| check_frequency: every_cycle
|
| alert_channels:
|
| - notifications
|
| - logs
|
| short_term_hours: 24
|
| medium_term_days: 7
|
| long_term_days: 30
|
| daily_summary: true
|
| daily_report_generation: true
|
| export_format: json
|
| daily_reports:
|
| enabled: true
|
| generate_after_cycle: true
|
| store_in_database: true
|
| send_notifications: true
|
| report_time: end_of_day
|
| include_charts: true
|
| retention_days: 90
|
| charts:
|
| enabled: true
|
| portfolio_value_trend: true
|
| win_rate_trend: true
|
| daily_pnl: true
|
| save_charts: false
|
| chart_format: png
|
| chart_size:
|
| - 10
|
| - 6
|
| notifications:
|
| discord_webhook: true
|
| include_summary_text: true
|
| include_charts: true
|
| max_message_length: 2000
|
| error_handling:
|
| circuit_breaker:
|
| enabled: true
|
| failure_threshold: 3
|
| recovery_timeout_seconds: 300
|
| reset_timeout_seconds: 3600
|
| half_open_max_calls: 5
|
| error_tracking:
|
| in_memory_only: true
|
| max_error_history: 1000
|
| enable_pattern_analysis: false
|
| retry_policy:
|
| max_attempts: 3
|
| base_delay_seconds: 5
|
| max_delay_seconds: 300
|
| exponential_multiplier: 2
|
| graceful_degradation:
|
| enabled: true
|
| skip_symbols_on_failure: true
|
| continue_on_prediction_failure: true
|
| continue_on_order_failure: true
|
| notifications:
|
| enabled: true
|
| services:
|
| - type: discord
|
| webhook_url_env_var: DISCORD_WEBHOOK_URL
|
| notify_on:
|
| trade_executed: true
|
| critical_errors: true
|
| circuit_breaker_triggered: true
|
| performance_threshold_breached: true
|
| health_check_failed: true
|
| scheduler_start_stop: true
|
| app:
|
| name: crypto-trading
|
| environment: ${oc.env:ENVIRONMENT}
|
| log_level: ${oc.env:LOG_LEVEL}
|
| logging:
|
| sink: stderr
|
| rotation: null
|
| retention: null
|
| format: null
|
| database:
|
| dialect: sqlite
|
| user: ${oc.env:DB_USER}
|
| password: ${oc.env:DB_PASSWORD}
|
| host: ${oc.env:DB_HOST}
|
| port: ${oc.env:DB_PORT}
|
| name: ${oc.env:DB_NAME}
|
| url: sqlite:///${db_file}
|
| services:
|
| binance:
|
| api_key: ${oc.env:BINANCE_API_KEY}
|
| api_secret: ${oc.env:BINANCE_API_SECRET}
|
| testnet: false
|
| wandb:
|
| api_key: ${oc.env:WANDB_API_KEY}
|
| project: ${oc.env:WANDB_PROJECT}
|
| entity: ''
|
| huggingface:
|
| token: ${oc.env:HUGGINGFACE_TOKEN}
|
| username: ${oc.env:HUGGINGFACE_USERNAME}
|
| repo_name: ${oc.env:HUGGINGFACE_REPO_NAME,crypto-models}
|
|
|