> ## 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.

# Recipe — EMA Cross Trend-Follow on 1h

> The classic trend-follower. EMA(20) crossing EMA(50) on hourly candles. Late-but-confirmed entries on uptrends. Whipsaws in chop, captures durable trends.

<Info>
  **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.
</Info>

## Goal

Capture sustained uptrends on `BTCUSDT` (or other symbol) by entering after a confirmed EMA cross-up and exiting after a confirmed cross-down.

## When to pick this recipe

<CardGroup cols={2}>
  <Card title="You expect trending markets" icon="arrow-up">
    Trend-following works when trends are durable. Multi-week or multi-month trends are the sweet spot.
  </Card>

  <Card title="You're running a trend-capable mode" icon="rocket">
    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.
  </Card>

  <Card title="You can tolerate late entries" icon="hourglass-half">
    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.
  </Card>

  <Card title="You can tolerate whipsaw losses" icon="wave-square">
    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.
  </Card>
</CardGroup>

## When NOT to pick this recipe

<Warning>
  * ❌ **Pure sideways/chop regimes** — EMAs whipsaw constantly. Net negative after fees and slippage.
  * ❌ **High-frequency scalping** — the `1h` timeframe is slow by design. Don't use this for quick trades.
  * ❌ **Extreme low-liquidity altcoins** — slippage on entry/exit erodes the trend-capture P\&L.
  * ❌ **First-week operators** — let modes run alone first; recipes are level-2 patterns.
</Warning>

## 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 `canBuy` set to `false` by default (the recipe will flip it on/off).

## Setup steps

<Steps>
  <Step title="Create the strategy">
    SignalEditor → New Strategy. Name: `ema-cross-trend-btcusdt-1h`.
  </Step>

  <Step title="Add a Price node">
    Symbol: `BTCUSDT`. Timeframe: `1h`.
  </Step>

  <Step title="Add two EMA indicators">
    * EMA(20) — connected to Price.
    * EMA(50) — connected to Price.
  </Step>

  <Step title="Add the cross-up condition">
    Drop a Condition node. Choose `crossover` (EMA(20) crosses above EMA(50)).
  </Step>

  <Step title="Attach a trigger (entry)">
    Trigger node, mode `once_per_bar_close`. Webhook payload writes `canBuy: true` for the mode.
  </Step>

  <Step title="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`.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Preview each strategy">
    Confirm entry strategy fires `1–4` times per month on BTCUSDT 1h (rough expectation). Exit strategy fires after each entry.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Promote if validated">
    Scale to full capital after forward-testing.
  </Step>
</Steps>

## Expected behavior

<AccordionGroup>
  <Accordion title="Firing frequency" icon="clock">
    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.
  </Accordion>

  <Accordion title="Hold duration" icon="hourglass">
    Trend-following holds tend to be longer than mean-reversion. Days to weeks per round-trip. Tsl2Sell or FullBullMarket sell logic rides the move.
  </Accordion>

  <Accordion title="Win rate vs RSI mean-reversion" icon="trophy">
    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.
  </Accordion>
</AccordionGroup>

## Common mistakes

<AccordionGroup>
  <Accordion title="❌ Running on a non-trend-capable mode" icon="ban">
    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.
  </Accordion>

  <Accordion title="❌ Skipping the ADX filter in chop-prone regimes" icon="ban">
    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.
  </Accordion>

  <Accordion title="❌ Trigger mode set to once_per_minute" icon="ban">
    For a `1h` timeframe strategy, `once_per_minute` is meaningless — bars close once per hour. Use `once_per_bar_close`.
  </Accordion>

  <Accordion title="❌ Forward-testing for only 1 week" icon="ban">
    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.
  </Accordion>
</AccordionGroup>

## What's next

<CardGroup cols={2}>
  <Card title="RSI Mean-Reversion" icon="circle-down" href="/strategies/recipes/rsi-mean-reversion">
    The mean-reversion alternative.
  </Card>

  <Card title="Multi-Timeframe" icon="layer-group" href="/strategies/recipes/multi-timeframe">
    Combine trend with faster entry timing.
  </Card>

  <Card title="FullBullMarket Mode" icon="rocket" href="/strategies/modes/fullbullmarket">
    Pair with this mode for trend rides.
  </Card>

  <Card title="Backtester" icon="flask" href="/modules/backtester">
    Validate trend-following on historical bull/bear regimes.
  </Card>
</CardGroup>
