← Back to portfolio
AI Trading Automation Framework
Python • Exchange APIs • Strategy Logic • Logging
Role: Independent developer • Focus: Signal generation, risk logic, and automated decision flows

Overview

This project is a Python-based framework for evaluating crypto market conditions and generating trade signals using EMA, MACD-style logic, and multi-candle confirmation. It is designed to be modular, explainable, and easy to extend with additional indicators or rules.

Key Capabilities

  • EMA and MACD-style trend and momentum checks across multiple timeframes.
  • Three-candle confirmation logic to reduce noise and avoid weak signals.
  • Support for live market data via exchange APIs (e.g., Kraken, IBKR).
  • Structured logging of conditions, decisions, and outcomes for review.
  • Configurable strategy parameters for experimentation and tuning.

High-Level Flow

1. Pull recent OHLCV data from exchange API
2. Compute EMAs, MACD, and supporting indicators
3. Evaluate strategy rules:
   - Trend direction
   - Momentum confirmation
   - Volume or volatility filters (where applicable)
4. Require multi-candle confirmation before marking a valid signal
5. Log reasoning and output a clear "no-trade" or "candidate" decision

Example Pseudocode Snippet

for symbol in watchlist:
    candles = fetch_market_data(symbol)
    indicators = compute_indicators(candles)

    if is_trend_up(indicators) and has_three_candle_confirmation(indicators):
        decision = "long_candidate"
    elif is_trend_down(indicators) and has_three_candle_confirmation(indicators):
        decision = "short_candidate"
    else:
        decision = "no_trade"

    log_decision(symbol, indicators, decision)

Outcomes & Learnings

  • Developed strong intuition for how indicator-based logic behaves under different market regimes.
  • Built a reusable structure for future automated or semi-automated strategies.
  • Improved logging discipline, making every decision traceable and reviewable.
  • Deepened experience integrating with real-world APIs and handling noisy data.