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.