OPEN-SOURCE SCRIPT
TQQQ EMA Strategy

Idea:
Go long on TQQQ when a fast EMA crosses above a slower EMA, only when the market is treated as trending (ADX filter), then manage the trade with a fixed take-profit, a starting stop, and a stepped trailing stop that only moves up.
Entry
Signal: Fast EMA (default 20) crosses over slow EMA (default 50).
Filters: strategy.equity > 0, ADX ≥ 20 (from ta.dmi(14, 14)), and no open trades (strategy.opentrades == 0), so at most one long at a time.
Size: Shares = floor(equity × buying leverage / close), at least 1. Buying leverage is an input (default 1.0), so position size scales with account equity and price, not the strategy’s default “% of equity” field (the script sets qty explicitly on entry).
Exit
Take profit (limit): Exit limit at entry × take-profit multiplier (default 1.3 → +30% from entry).
Stop: Starts at entry × stop-loss multiplier (default 0.95 → −5%).
Trailing / ladder stop: As unrealized gain vs entry grows, the stop is raised and never lowered:
≥ 10% profit → stop moves to breakeven (entry).
≥ 20% profit → stop moves to entry × 1.1 (+10% from entry).
strategy.exit ties the stop and limit to the “Long” entry (from_entry="Long").
Go long on TQQQ when a fast EMA crosses above a slower EMA, only when the market is treated as trending (ADX filter), then manage the trade with a fixed take-profit, a starting stop, and a stepped trailing stop that only moves up.
Entry
Signal: Fast EMA (default 20) crosses over slow EMA (default 50).
Filters: strategy.equity > 0, ADX ≥ 20 (from ta.dmi(14, 14)), and no open trades (strategy.opentrades == 0), so at most one long at a time.
Size: Shares = floor(equity × buying leverage / close), at least 1. Buying leverage is an input (default 1.0), so position size scales with account equity and price, not the strategy’s default “% of equity” field (the script sets qty explicitly on entry).
Exit
Take profit (limit): Exit limit at entry × take-profit multiplier (default 1.3 → +30% from entry).
Stop: Starts at entry × stop-loss multiplier (default 0.95 → −5%).
Trailing / ladder stop: As unrealized gain vs entry grows, the stop is raised and never lowered:
≥ 10% profit → stop moves to breakeven (entry).
≥ 20% profit → stop moves to entry × 1.1 (+10% from entry).
strategy.exit ties the stop and limit to the “Long” entry (from_entry="Long").
Script de código abierto
Fiel al espíritu de TradingView, el creador de este script lo ha convertido en código abierto, para que los traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Aunque puede utilizarlo de forma gratuita, recuerde que cualquier republicación del código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones no constituyen, ni deben considerarse como, asesoramiento o recomendaciones financieras, de inversión, de trading u otro tipo, proporcionadas o respaldadas por TradingView. Obtenga más información en Condiciones de uso.
Script de código abierto
Fiel al espíritu de TradingView, el creador de este script lo ha convertido en código abierto, para que los traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Aunque puede utilizarlo de forma gratuita, recuerde que cualquier republicación del código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones no constituyen, ni deben considerarse como, asesoramiento o recomendaciones financieras, de inversión, de trading u otro tipo, proporcionadas o respaldadas por TradingView. Obtenga más información en Condiciones de uso.