When it signals
A bullish signal occurs when the fixed 9-period EMA crosses above the fixed 21-period EMA. A bearish signal occurs when the 9 EMA crosses below the 21 EMA.
A TradingView Pine Script v6 overlay that plots 9/21 EMA trend crosses with visual markers and alert conditions.
How it works
When it signals
A bullish signal occurs when the fixed 9-period EMA crosses above the fixed 21-period EMA. A bearish signal occurs when the 9 EMA crosses below the 21 EMA.
What confirms it
The indicator plots the two EMA lines and places a green or red triangle on the crossover bar. It also provides separate TradingView alert conditions named Bull and Bear.
What risk is framed
No risk framework is coded. The script does not include entries, exits, stop-losses, profit targets, position sizing, or additional confirmation filters.
Walkthrough
Live market chart
Backtest evidence
E0 · Reconstructed reference
algonexta-reference · Yahoo Finance · EURUSD · 1h
Net profit
0.0105
Max drawdown
0.0086
Trades
46
Symbol · TF
EURUSD · 1h
Equity curve
| Time | Side | Price |
|---|---|---|
| Jun 9, 05:00 AM | long | 1.15473 |
| Jun 9, 11:00 AM | exit | 1.15737 |
| Jun 9, 09:00 PM | short | 1.15420 |
| Jun 10, 05:00 AM | exit | 1.15545 |
| Jun 10, 06:00 AM | long | 1.15540 |
| Jun 10, 11:00 AM | exit | 1.15408 |
| Jun 10, 08:00 PM | short | 1.15393 |
| Jun 11, 01:00 AM | exit | 1.15556 |
| Jun 11, 07:00 PM | long | 1.15821 |
| Jun 12, 05:00 AM | exit | 1.15648 |
| Jun 15, 08:00 PM | short | 1.15915 |
| Jun 16, 08:00 AM | exit | 1.16045 |
| Jun 16, 09:00 AM | long | 1.16050 |
| Jun 17, 10:00 AM | exit | 1.16009 |
| Jun 17, 10:00 AM | short | 1.16009 |
| Jun 17, 06:00 PM | exit | 1.15575 |
| Jun 19, 05:00 PM | long | 1.14784 |
| Jun 21, 11:00 PM | exit | 1.14650 |
| Jun 22, 03:00 AM | short | 1.14600 |
| Jun 22, 07:00 PM | exit | 1.14261 |
| Jun 25, 03:00 AM | long | 1.13727 |
| Jun 25, 06:00 AM | exit | 1.13593 |
| Jun 25, 10:00 AM | short | 1.13482 |
| Jun 25, 01:00 PM | exit | 1.13685 |
| Jun 25, 02:00 PM | long | 1.13779 |
| Jun 26, 01:00 AM | exit | 1.13631 |
| Jun 26, 02:00 AM | short | 1.13623 |
| Jun 26, 03:00 AM | exit | 1.13740 |
| Jun 26, 03:00 AM | long | 1.13740 |
| Jun 26, 08:00 AM | exit | 1.14087 |
| Jun 29, 03:00 AM | short | 1.13882 |
| Jun 29, 05:00 AM | exit | 1.13973 |
| Jun 29, 05:00 AM | long | 1.13973 |
| Jun 29, 04:00 PM | exit | 1.14280 |
| Jun 30, 04:00 AM | short | 1.13934 |
| Jun 30, 07:00 AM | exit | 1.14079 |
| Jun 30, 02:00 PM | long | 1.14364 |
| Jun 30, 04:00 PM | exit | 1.14157 |
| Jul 1, 03:00 AM | short | 1.14077 |
| Jul 1, 12:00 PM | exit | 1.13744 |
| Jul 2, 07:00 AM | long | 1.14116 |
| Jul 2, 12:00 PM | exit | 1.14694 |
| Jul 6, 01:00 AM | short | 1.14325 |
| Jul 6, 06:00 PM | exit | 1.14454 |
| Jul 6, 06:00 PM | long | 1.14469 |
| Jul 7, 05:00 AM | exit | 1.14370 |
| Jul 7, 07:00 AM | short | 1.14299 |
| Jul 7, 11:00 AM | exit | 1.14415 |
| Jul 8, 07:00 PM | long | 1.14312 |
| Jul 10, 02:00 AM | exit | 1.14577 |
| Jul 10, 11:00 AM | short | 1.14351 |
| Jul 12, 11:00 PM | exit | 1.14057 |
| Jul 13, 10:00 AM | long | 1.14390 |
| Jul 13, 01:00 PM | exit | 1.14210 |
| Jul 13, 02:00 PM | short | 1.14064 |
| Jul 14, 11:00 AM | exit | 1.14103 |
| Jul 14, 11:00 AM | long | 1.14103 |
| Jul 14, 12:00 PM | exit | 1.14585 |
| Jul 15, 11:00 AM | short | 1.14168 |
| Jul 15, 12:00 PM | exit | 1.14325 |
| Jul 15, 01:00 PM | long | 1.14364 |
| Jul 15, 05:00 PM | exit | 1.14762 |
| Jul 16, 02:00 PM | short | 1.14469 |
| Jul 20, 04:00 AM | exit | 1.14482 |
| Jul 20, 04:00 AM | long | 1.14482 |
| Jul 20, 06:00 AM | exit | 1.14385 |
| Jul 20, 06:00 AM | short | 1.14377 |
| Jul 20, 07:00 AM | exit | 1.14490 |
| Jul 22, 01:00 PM | long | 1.14168 |
| Jul 22, 10:00 PM | exit | 1.14092 |
| Jul 22, 10:00 PM | short | 1.14103 |
| Jul 22, 11:00 PM | exit | 1.14142 |
| Jul 22, 11:00 PM | long | 1.14142 |
| Jul 23, 03:00 AM | exit | 1.14324 |
| Jul 23, 11:00 AM | short | 1.13986 |
| Jul 23, 09:00 PM | exit | 1.13727 |
| Jul 27, 12:00 AM | long | 1.14051 |
| Jul 27, 11:00 AM | exit | 1.13919 |
| Jul 27, 01:00 PM | short | 1.13766 |
| Jul 28, 03:00 PM | exit | 1.13922 |
| Jul 28, 03:00 PM | long | 1.14038 |
| Jul 28, 06:00 PM | exit | 1.13901 |
| Jul 29, 12:00 PM | short | 1.13804 |
| Jul 29, 01:00 PM | exit | 1.13928 |
| Jul 29, 01:00 PM | long | 1.13934 |
| Jul 29, 06:00 PM | exit | 1.14399 |
| Jul 31, 12:00 PM | short | 1.14929 |
| Jul 31, 04:00 PM | exit | 1.15198 |
| Jul 31, 04:00 PM | long | 1.15207 |
| Aug 3, 03:00 PM | exit | 1.15128 |
| Aug 3, 03:00 PM | short | 1.15128 |
| Aug 3, 09:47 PM | exit | 1.15128 |
⚠Executed from the versioned AlgoNexta IR on the same OHLC dataset used by the chart.
⚠This is an independent reference backtest; TradingView Strategy Tester remains the official comparison.
⚠This is an AI-reconstructed approximation of the script’s logic, not an execution of the exact source — verify the real script in TradingView Strategy Tester.
Vision Grade
Vision Grade requires a reference backtest with enough reconstructed entries to measure — not available for this script yet.
Full breakdown
Published by AlgoNexta, an evidence-first platform for building, reviewing, and documenting algorithmic trading tools. This page explains the script's actual logic and intended use; it does not promise profitability or replace verification in TradingView.
Live V23-2 Test is a chart-overlay indicator built around two exponential moving averages (EMAs): a fast 9-period EMA and a slow 21-period EMA. It identifies when the fast EMA crosses above or below the slow EMA, then marks that event on the price chart and exposes it as an alert condition.
The EMA lengths are fixed in the source code at 9 and 21; this version has no user-configurable inputs.
ta.crossover).ta.crossunder).These are moving-average crossover events, not a full trade system. The script does not apply RSI, volume, support/resistance, stop-loss, take-profit, or position-sizing filters.
You can create TradingView alerts using the script's two alert conditions:
EMA bull crossEMA bear crossWhen creating an alert, choose whether it should trigger once per bar, once per bar close, or according to your preferred TradingView alert setting. For signals confirmed at candle close, use a bar-close alert frequency.
The code does not restrict the indicator to a symbol class or timeframe, so it can be applied to any TradingView market with price data. The 9/21 EMA pair will react more frequently on lower timeframes and more slowly on higher timeframes; evaluate the behavior on the specific market and timeframe you intend to use.
Source
// ============================================================================
// © algonexta
// This script is for education and research; it does not guarantee results.
// Verify this source in TradingView before use.
// ============================================================================
//@version=6
indicator("Live V23-2 Test", "LV232", overlay=true)
fast = ta.ema(close, 9)
slow = ta.ema(close, 21)
plot(fast, color=color.blue)
plot(slow, color=color.orange)
bullCross = ta.crossover(fast, slow)
bearCross = ta.crossunder(fast, slow)
plotshape(bullCross, style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(bearCross, style=shape.triangledown, location=location.abovebar, color=color.red)
alertcondition(bullCross, "Bull", "EMA bull cross")
alertcondition(bearCross, "Bear", "EMA bear cross")FAQ
It detects crossings between a 9-period EMA and a 21-period EMA. A cross above is marked as a bull cross, while a cross below is marked as a bear cross.
The blue line is the 9 EMA and the orange line is the 21 EMA. Green upward triangles below bars mark bull crosses; red downward triangles above bars mark bear crosses.
Not in this version. The source code sets the fast EMA to 9 periods and the slow EMA to 21 periods, with no input controls.
It does not use future-data or lookahead logic. However, on an open real-time candle, a crossover can appear and then disappear before the candle closes; bar-close alerts help use confirmed candle signals.
No. It is an indicator with plots, shapes, and alert conditions only; it does not call strategy entries or exits and does not define stops, targets, or position sizing.
No, this indicator and its signals are not financial advice. It has no built-in strategy results, so TradingView Strategy Tester—or an equivalent independently validated testing process—is the source of truth for historical and live results.
Describe the change in plain English and AlgoNexta rebuilds it as a fresh Pine v6 script — with its own explanation, evidence, and walkthrough.
Build your own versionEducational content only — not financial advice. TradingView is the source of truth for live data, compilation, and Strategy Tester results.