FreqTrade Custom Indicators

Page 15 of 220 · Algorithm reference notes

Configuration Example

Configuration for freqtrade custom indicators uses YAML or JSON format. Key parameters include timeframes, signal thresholds, position sizing rules, and risk limits.

# Example configuration for FreqTrade Custom Indicators
strategy:
  name: freqtrade-custom-indicators
  timeframe: 5m
  indicators:
    - rsi
    - ema_fast
    - ema_slow
  entry_conditions:
    - rsi_oversold
    - ema_crossover_bullish
  exit_conditions:
    - rsi_overbought
    - stop_loss_hit
  risk:
    max_position_size: 0.02
    stop_loss_pct: 0.015

Common Issues

Common issues with freqtrade custom indicators include look-ahead bias in backtesting, overfitting to historical regimes, inadequate handling of exchange downtime, and insufficient logging for debugging.

Important: Always validate freqtrade custom indicators logic on out-of-sample data before live deployment. Paper trading reveals execution issues that backtests miss.

Testing Approach

Testing freqtrade custom indicators includes unit tests for signal logic, integration tests for exchange interaction, and backtests against historical data with realistic slippage modeling.

Performance Metrics

Key metrics include Sharpe ratio, maximum drawdown, win rate, profit factor, and average trade duration. Compare against baseline strategies and adjust parameters based on out-of-sample results.

MetricValueBenchmark
Sharpe Ratio1.851.20
Max Drawdown-12.4%-18.0%
Win Rate58.2%52.0%
Profit Factor1.721.45

Code Structure

The code structure separates concerns: data ingestion, signal generation, risk checks, and order submission. This modularity enables testing and reuse across strategies.

# Example configuration for FreqTrade Custom Indicators
strategy:
  name: freqtrade-custom-indicators
  timeframe: 5m
  indicators:
    - rsi
    - ema_fast
    - ema_slow
  entry_conditions:
    - rsi_oversold
    - ema_crossover_bullish
  exit_conditions:
    - rsi_overbought
    - stop_loss_hit
  risk:
    max_position_size: 0.02
    stop_loss_pct: 0.015