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").
Skrypt open-source
W zgodzie z duchem TradingView twórca tego skryptu udostępnił go jako open-source, aby użytkownicy mogli przejrzeć i zweryfikować jego działanie. Ukłony dla autora. Korzystanie jest bezpłatne, jednak ponowna publikacja kodu podlega naszym Zasadom serwisu.
Wyłączenie odpowiedzialności
Informacje i publikacje nie stanowią i nie powinny być traktowane jako porady finansowe, inwestycyjne, tradingowe ani jakiekolwiek inne rekomendacje dostarczane lub zatwierdzone przez TradingView. Więcej informacji znajduje się w Warunkach użytkowania.
Skrypt open-source
W zgodzie z duchem TradingView twórca tego skryptu udostępnił go jako open-source, aby użytkownicy mogli przejrzeć i zweryfikować jego działanie. Ukłony dla autora. Korzystanie jest bezpłatne, jednak ponowna publikacja kodu podlega naszym Zasadom serwisu.
Wyłączenie odpowiedzialności
Informacje i publikacje nie stanowią i nie powinny być traktowane jako porady finansowe, inwestycyjne, tradingowe ani jakiekolwiek inne rekomendacje dostarczane lub zatwierdzone przez TradingView. Więcej informacji znajduje się w Warunkach użytkowania.