eth-predictor-v1 / model_config.yaml
minhquan2310's picture
Training run on 2025-07-29
75448b5 verified
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}