Soroka - market signals and automation platform
Soroka is a distributed backend platform with event-driven architecture for real-time crypto market analysis, signal generation, and post-event analytics. The system focuses on data pipelines, anomaly detection, and automated feedback, not on direct trade execution.
System overview
The platform is built as a set of independent Python microservices that communicate through a shared database and Redis event queues.
The system continuously scans the crypto market, detects structural anomalies, generates filtered signals, and evaluates their behavior after the event.
Market data collection
The Python backend on FastAPI performs minute-by-minute API calls to Binance, scanning 150 most liquid trading pairs.
- Market snapshots are collected every minute
- Database operations are fully asynchronous
- Historical data is stored for comparative analysis
Analytical microservices
Independent Python microservices analyze market data in near real time.
- Comparison of current market state with historical context
- Detection of structural anomalies (for example BOS events)
- Metric calculation and confidence assessment
- Storage of analysis results
Each analytical component can be configured and scaled independently.
Signal pipeline
When an event matches the defined filtering rules, the system generates a market signal.
- Signals are enriched with computed metrics
- Published to Redis queues
- Consumed by a Telegram bot or a trading component
Redis acts as a decoupling layer between analytics, notifications, and execution.
Post-signal analytics
Each signal is automatically evaluated after publication.
- PnL is calculated after 1, 2, 3, 5, 10, and 15 minutes
- Purely analytical assessment (no trade execution)
- Results are published to a Telegram channel
This feedback loop enables continuous validation of signal quality.
Configuration philosophy
System behavior is controlled through .env files
for each microservice.
- Configuration without rebuilding containers
- Fast experiments with detection logic
- Clear separation of code and strategy
Typical configuration (excerpt)
# Event filtering
EVENT_FILTER_TYPE=BOS_UP
CONFIDENCE_MIN=0.45
CONFIDENCE_MAX=0.80
# Market structure detection
INTERVAL=1m
LOOKBACK=3
MIN_CANDLES=5
BOS_STRENGTH_THRESHOLD=1.006
MIN_VOLUME_MULTIPLIER=1.3
REQUIRE_BODY_RATIO=0.6
MIN_EVENT_INTERVAL_MINUTES=2
# Risk & analytics parameters
ALLOCATION_PCT=0.50
STOPLOSS_PCT=0.08
LEVERAGE=1
TRADE_TIME=90
# Liquidity & volatility filters
MIN_LIQUIDITY_USDT=10000000
MAX_VOLATILITY=0.25
MIN_TRADE_COUNT=300000
# Infrastructure
REDIS_URL=redis://redis:6379/0
TRADE_QUEUE_NAME=trade_bot_queue
MAX_SIGNAL_AGE=60
Publishing and distribution
Verified signals are published in the Telegram channel Soroka signals
The same signal stream can be consumed by a mobile app or programmatically by automated components.
Engineering focus
- Event-driven architecture
- Asynchronous data pipelines
- Configuration-based behavior
- Post-event analytics and feedback loops
- Operational transparency