Documentation Index
Fetch the complete documentation index at: https://uncoded.ch/docs/llms.txt
Use this file to discover all available pages before exploring further.
EMA-cross trend-following is the classic trend-capture recipe. Buy when EMA(20) crosses above EMA(50) on hourly candles (uptrend confirmation). Stop buying when EMA(20) crosses below (uptrend break). Late entries vs the absolute peak — but with more reliable trend confirmation than catching the bottom.
Goal
Capture sustained uptrends onBTCUSDT (or other symbol) by entering after a confirmed EMA cross-up and exiting after a confirmed cross-down.
When to pick this recipe
You expect trending markets
Trend-following works when trends are durable. Multi-week or multi-month trends are the sweet spot.
You're running a trend-capable mode
Pair with FullBullMarket (Mode 1) or Tsl2Sell (Mode 7) — modes designed to ride trends. BasicMode works but caps at the sell ladder; trend-followers want to capture more.
You can tolerate late entries
EMA crosses happen after the move is already in progress. You miss the first 5–15% of any rally. The trade-off: confirmation that the move is real.
You can tolerate whipsaw losses
In chop, EMAs cross frequently with no follow-through. You’ll have small losing trades. Net-positive only if the trend periods deliver enough to overcome chop losses.
When NOT to pick this recipe
Prerequisites
- Trend-capable mode (FullBullMarket or Tsl2Sell) running on the target pair.
- SignalEditor + SignalsBot running.
- Capital allocated to the mode (
~$10,000–$20,000). - Mode’s
canBuyset tofalseby default (the recipe will flip it on/off).
Setup steps
Attach a trigger (entry)
Trigger node, mode
once_per_bar_close. Webhook payload writes canBuy: true for the mode.Build the mirror exit strategy
New strategy:
ema-cross-trend-btcusdt-1h-exit. Same EMAs, but condition is crossunder (EMA(20) crosses below EMA(50)). Webhook payload writes canBuy: false.Optional: add ADX filter
To reduce chop whipsaws, add an ADX(14) indicator and an additional condition
ADX > 25. AND with the cross condition. ADX measures trend strength — > 25 is the classic “trend is real” threshold.Reduces firing frequency but improves selectivity.Preview each strategy
Confirm entry strategy fires
1–4 times per month on BTCUSDT 1h (rough expectation). Exit strategy fires after each entry.Backtest combined behavior
Run the trend-capable mode + recipe pair through the Backtester for 1+ year of historical data. Validate equity curve and drawdown.Compare against the same mode without recipe gating.
Forward-test on small capital
$1,500–$3,000 allocation for 2–4 weeks. Trend-following recipes need longer forward-test windows because trend events are infrequent.Expected behavior
Firing frequency
Firing frequency
On
BTCUSDT 1h, expect entries roughly 1–4 times per month in normal regimes. More in volatile markets, less in stable ones. With ADX filter, frequency drops further.Hold duration
Hold duration
Trend-following holds tend to be longer than mean-reversion. Days to weeks per round-trip. Tsl2Sell or FullBullMarket sell logic rides the move.
Win rate vs RSI mean-reversion
Win rate vs RSI mean-reversion
Trend-following has a lower win rate than mean-reversion (typically
40–55% vs 60–80%). But winners are larger than losers, so net-positive expectancy.If you’re sensitive to win-rate variance, mean-reversion may suit better. If you want the upside of trend capture, accept the lower win rate.Common mistakes
❌ Running on a non-trend-capable mode
❌ Running on a non-trend-capable mode
BasicMode’s sell ladder caps at
+5%. The recipe enables buying during a trend, but BasicMode exits at +5% and misses the rest of the rally.Fix: pair with FullBullMarket or Tsl2Sell.❌ Skipping the ADX filter in chop-prone regimes
❌ Skipping the ADX filter in chop-prone regimes
Without ADX gating, the recipe fires on every minor cross — including the many small crosses during chop.Fix: add ADX(14) >
25 condition for chop regimes.❌ Trigger mode set to once_per_minute
❌ Trigger mode set to once_per_minute
For a
1h timeframe strategy, once_per_minute is meaningless — bars close once per hour. Use once_per_bar_close.❌ Forward-testing for only 1 week
❌ Forward-testing for only 1 week
Trend events are infrequent on
1h timeframe. A 1-week forward test may not include any entry signal — you can’t validate a strategy you haven’t observed.Fix: forward-test for at least 4 weeks.What’s next
RSI Mean-Reversion
The mean-reversion alternative.
Multi-Timeframe
Combine trend with faster entry timing.
FullBullMarket Mode
Pair with this mode for trend rides.
Backtester
Validate trend-following on historical bull/bear regimes.