ASK $🚀 My Exclusive Indicator on TradingView
Carefully designed to capture the best entry and exit opportunities, combining smart analysis with user-friendly simplicity.
Now available only for premium users – message me to get access and have your username added!
Cerca negli script per "entry"
FibLevel Size CalculatorThis skript calculates position sizes and new take profits for sizing into an long or short position with 3 entrys defined at custom fibonacci retracement levels.
TP: -0,272
Entry1: 0.382
Entry2: 0.618
Entry3: 0.83
SL: 1.05
Expected RR per trade is 0.2 with a High Win rate definitly profitable.
Search for an established trend on the higher timeframe, drop to the smaller ones and look for correction waves. Once they break to the trenddirection of the higher timeframe take the fib from lowest to highes point. Draw a fib level on the chart and use the Indicator to define these Levels above. The calculator gives you the Margin to use in each position, and will check that you will not get liquidated an that you have enough margin. It tells you the new TP for Limit2 and Limit3 if they get hit so you can get out of the trade full TP with a small bounce.
Inputs:
Account Balance, Risk Percentage, and Leverage: These inputs are used to calculate the position size and risk.
Entry 1, Entry 2, Entry 3, Take Profit (TP), and Stop Loss (SL): These prices are used for calculating position sizes, risk, and profit for up to three entry points.
Calculations:
Risk Amount: Calculated based on the account balance and risk percentage.
Position Sizes (Qty): For each entry point, the position size is determined. The second and third entries have a multiplier (3x for Entry 2, 5x for Entry 3) compared to the first.
Stop Loss and Profit Calculation: The script calculates the potential profit and adjusts the TP levels based on the average entries for Limit 2 and Limit 3.
Margin Calculation: Margin requirements for each position are calculated based on leverage.
Output:
Table Display: A table shows key values like entry prices, position sizes, TP levels, potential profit, and margin requirements for each limit.
Warnings: It includes a liquidation warning and a check for whether the account is at risk of liquidation based on leverage.
Position Type: It automatically detects if the trade is a long or short based on the relationship between TP and SL.
Visualization:
Lines: It draws horizontal lines on the chart to visually represent the entry, TP, and SL levels.
Overall, this script is designed to help traders manage risk and calculate position sizes for multi-level entries using leverage.
Pls drop feedback in the comments.
Nef33 Forex & Crypto Trading Signals PRO
1. Understanding the Indicator's Context
The indicator generates signals based on confluence (trend, volume, key zones, etc.), but it does not include predefined SL or TP levels. To establish them, we must:
Use dynamic or static support/resistance levels already present in the script.
Incorporate volatility (such as ATR) to adjust the levels based on market conditions.
Define a risk/reward ratio (e.g., 1:2).
2. Options for Determining SL and TP
Below, I provide several ideas based on the tools available in the script:
Stop Loss (SL)
The SL should protect you from adverse movements. You can base it on:
ATR (Volatility): Use the smoothed ATR (atr_smooth) multiplied by a factor (e.g., 1.5 or 2) to set a dynamic SL.
Buy: SL = Entry Price - (atr_smooth * atr_mult).
Sell: SL = Entry Price + (atr_smooth * atr_mult).
Key Zones: Place the SL below a support (for buys) or above a resistance (for sells), using Order Blocks, Fair Value Gaps, or Liquidity Zones.
Buy: SL below the nearest ob_lows or fvg_lows.
Sell: SL above the nearest ob_highs or fvg_highs.
VWAP: Use the daily VWAP (vwap_day) as a critical level.
Buy: SL below vwap_day.
Sell: SL above vwap_day.
Take Profit (TP)
The TP should maximize profits. You can base it on:
Risk/Reward Ratio: Multiply the SL distance by a factor (e.g., 2 or 3).
Buy: TP = Entry Price + (SL Distance * 2).
Sell: TP = Entry Price - (SL Distance * 2).
Key Zones: Target the next resistance (for buys) or support (for sells).
Buy: TP at the next ob_highs, fvg_highs, or liq_zone_high.
Sell: TP at the next ob_lows, fvg_lows, or liq_zone_low.
Ichimoku: Use the cloud levels (Senkou Span A/B) as targets.
Buy: TP at senkou_span_a or senkou_span_b (whichever is higher).
Sell: TP at senkou_span_a or senkou_span_b (whichever is lower).
3. Practical Implementation
Since the script does not automatically draw SL/TP, you can:
Calculate them manually: Observe the chart and use the levels mentioned.
Modify the code: Add SL/TP as labels (label.new) at the moment of the signal.
Here’s an example of how to modify the code to display SL and TP based on ATR with a 1:2 risk/reward ratio:
Modified Code (Signals Section)
Find the lines where the signals (trade_buy and trade_sell) are generated and add the following:
pinescript
// Calculate SL and TP based on ATR
atr_sl_mult = 1.5 // Multiplier for SL
atr_tp_mult = 3.0 // Multiplier for TP (1:2 ratio)
sl_distance = atr_smooth * atr_sl_mult
tp_distance = atr_smooth * atr_tp_mult
if trade_buy
entry_price = close
sl_price = entry_price - sl_distance
tp_price = entry_price + tp_distance
label.new(bar_index, low, "Buy: " + str.tostring(math.round(bull_conditions, 1)), color=color.green, textcolor=color.white, style=label.style_label_up, size=size.tiny)
label.new(bar_index, sl_price, "SL: " + str.tostring(math.round(sl_price, 2)), color=color.red, textcolor=color.white, style=label.style_label_down, size=size.tiny)
label.new(bar_index, tp_price, "TP: " + str.tostring(math.round(tp_price, 2)), color=color.blue, textcolor=color.white, style=label.style_label_up, size=size.tiny)
if trade_sell
entry_price = close
sl_price = entry_price + sl_distance
tp_price = entry_price - tp_distance
label.new(bar_index, high, "Sell: " + str.tostring(math.round(bear_conditions, 1)), color=color.red, textcolor=color.white, style=label.style_label_down, size=size.tiny)
label.new(bar_index, sl_price, "SL: " + str.tostring(math.round(sl_price, 2)), color=color.red, textcolor=color.white, style=label.style_label_up, size=size.tiny)
label.new(bar_index, tp_price, "TP: " + str.tostring(math.round(tp_price, 2)), color=color.blue, textcolor=color.white, style=label.style_label_down, size=size.tiny)
Code Explanation
SL: Calculated by subtracting/adding sl_distance to the entry price (close) depending on whether it’s a buy or sell.
TP: Calculated with a double distance (tp_distance) for a 1:2 risk/reward ratio.
Visualization: Labels are added to the chart to display SL (red) and TP (blue).
4. Practical Strategy Without Modifying the Code
If you don’t want to modify the script, follow these steps manually:
Entry: Take the trade_buy or trade_sell signal.
SL: Check the smoothed ATR (atr_smooth) on the chart or calculate a fixed level (e.g., 1.5 times the ATR). Also, review nearby key zones (OB, FVG, VWAP).
TP: Define a target based on the next key zone or multiply the SL distance by 2 or 3.
Example:
Buy at 100, ATR = 2.
SL = 100 - (2 * 1.5) = 97.
TP = 100 + (2 * 3) = 106.
5. Recommendations
Test in Demo: Apply this logic in a demo account to adjust the multipliers (atr_sl_mult, atr_tp_mult) based on the market (forex or crypto).
Combine with Zones: If the ATR-based SL is too wide, use the nearest OB or FVG as a reference.
Risk/Reward Ratio: Adjust the TP based on your tolerance (1:1, 1:2, 1:3)
AI Strat ATR Dinamico + ADX + Trend Adaptivo (No Repaint)Below is a fully self-contained, English-language description of every input, function, and logical block inside the “AI Strat ATR Dinamico + ADX + Trend Adaptivo (No Repaint)” indicator. You can copy and paste this into TradingView’s “Description” field when you publish, without exposing any Pine code.
---
## Indicator Name and Purpose
**Name (Short Title):**
AI Strat Adaptive v3 (NoRepaint)
**Overview:**
This indicator combines multiple technical tools—RSI, EMA, ATR (with a dynamic multiplier), ADX/DI, and an “AI‐style” scoring mechanism—to generate trend-filtered and reversal signals. It also optionally confirms signals on a higher timeframe, dynamically adjusts its sensitivity based on volatility, and plots intrabar stop‐loss (SL) and take‐profit (TP) levels derived from ATR. Special care has been taken to ensure that no signals “repaint” (i.e., once drawn on a closed bar, they never disappear or shift).
---
## 1. Main Inputs
All of the inputs appear in the Settings dialog for the published indicator. Below is a detailed explanation of each input, grouped by logical category.
### A. RSI & EMA Base Parameters
1. **RSI Length (Base)**
* **Input type:** Integer (default 14)
* **Description:** Number of bars used to calculate the Relative Strength Index (RSI). A shorter RSI reacts more quickly to price changes; a longer RSI is smoother.
2. **RSI Overbought Threshold**
* **Input type:** Integer (default 60)
* **Description:** If the RSI value rises above this level, it contributes a “sell” signal component. You can adjust this (e.g., 70) to make your system more conservative.
3. **RSI Oversold Threshold**
* **Input type:** Integer (default 40)
* **Description:** If the RSI falls below this level, it contributes a “buy” signal component. Raising this threshold (e.g., 50) makes the strategy more aggressive in seeking reversals.
4. **EMA Length (Base)**
* **Input type:** Integer (default 20)
* **Description:** Number of bars for the Exponential Moving Average (EMA). A shorter EMA will produce more frequent crossovers, a longer EMA is smoother.
### B. ATR & Volatility Filter Parameters
5. **ATR Length (Base)**
* **Input type:** Integer (default 14)
* **Description:** Number of bars to calculate Average True Range (ATR). The ATR is used both for measuring volatility and for dynamic SL/TP levels.
6. **ATR SMA Length**
* **Input type:** Integer (default 50)
* **Description:** Number of bars to compute a Simple Moving Average of the ATR itself. This gives a baseline of “normal” volatility. If ATR rises significantly above this SMA, the indicator treats the market as “high volatility.”
7. **ATR Multiplier Base**
* **Input type:** Float (default 1.2, step 0.1)
* **Description:** Base multiplier for ATR when filtering for volatility. The actual threshold is computed as `ATR_SMA × (ATR_Multiplier Base) × sqrt(current_ATR / ATR_SMA)`. In other words, the multiplier becomes larger if volatility is rising, and smaller if volatility is falling.
8. **Disable Volatility Filter**
* **Input type:** Boolean (default false)
* **Description:** If enabled (true), the indicator will ignore any volatility‐based filtering, using signals regardless of ATR behavior. If disabled (false), signals only fire when ATR > (ATR\_SMA × dynamic multiplier).
### C. Price-Change & “AI Score” Parameters
9. **Price Change Period (bars)**
* **Input type:** Integer (default 3)
* **Description:** The number of bars back to measure percentage price change. Used to ensure that a “trend” signal is accompanied by a sufficiently positive (for longs) or negative (for shorts) price movement over this many bars.
10. **Base AI Score Threshold**
* **Input type:** Float (default 0.1)
* **Description:** The indicator computes a composite “AI-style” score by combining the RSI signal (overbought/oversold) and an EMA crossover signal. Only if the absolute value of that composite score exceeds this threshold will a trend signal be eligible. Raising it makes signals rarer but (potentially) higher-conviction.
### D. SMA “ICT” Trend Filter Parameters
11. **ICT SMA Long Length (Base)**
* **Input type:** Integer (default 50)
* **Description:** Number of bars for the “long” Simple Moving Average (SMA) used in the internal trend filter. Typically, price must be above this SMA (and ADX must be strong) to confirm an uptrend, or below it (and ADX strong) to confirm a downtrend.
12. **ICT SMA Short1 Length (Base)**
* **Input type:** Integer (default 10)
* **Description:** Secondary “fast” SMA used both for reversal logic (e.g., price crossing above it can count as a bullish reversal) and part of the internal trend confirmation.
13. **ICT SMA Short2 Length (Base)**
* **Input type:** Integer (default 20)
* **Description:** A second “medium” SMA used for reversal triggers (e.g., crossovers or crossunders alongside RSI conditions).
### E. ADX & DI Parameters
14. **Base ADX Length**
* **Input type:** Integer (default 14)
* **Description:** Number of bars for the ADX (Average Directional Index) moving averages, which measure trend strength. The same length is used for +DI and –DI smoothing.
15. **Base ADX Threshold**
* **Input type:** Float (default 25.0, step 0.5)
* **Description:** If ADX > this threshold and +DI > –DI, we consider an uptrend; if ADX > this threshold and –DI > +DI, we consider a downtrend. Raising this value demands stronger trends to qualify.
### F. Sensitivity & Cooldown
16. **Sensitivity (0–1)**
* **Input type:** Float between 0.0 and 1.0 (default 0.5)
* **Description:** A general “mixture” parameter used internally to weight how aggressively the indicator leans into trend versus reversal. In practice, the code uses it to fine-tune exact thresholds for switching between trend and reversal conditions. You can leave it at 0.5 unless you want to bias more heavily toward either regime.
17. **Base Cooldown Bars Between Signals**
* **Input type:** Integer (default 5, min 0)
* **Description:** Once a long or short signal fires, the indicator will wait at least this many bars before allowing a new signal in the same direction. Prevents “signal flipping” on each bar. A higher number forces fewer, more spaced-out entries.
18. **Trend Confirmation Bars**
* **Input type:** Integer (default 3, min 1)
* **Description:** After the directional filters (+DI/–DI cross, price vs. SMA), the indicator still requires that price remains on the same side of the long SMA for at least this many consecutive bars before confirming “trend up” or “trend down.” Larger values smooth out false breakouts but may lag signals.
### G. Higher Timeframe Confirmation
19. **Use Higher Timeframe Confirmation**
* **Input type:** Boolean (default true)
* **Description:** If true, the indicator will request a block of values (SMA, +DI, –DI, ADX) from a higher timeframe (default 60 minutes) and require that the higher timeframe is also in agreement (strong uptrend or strong downtrend) before confirming your current-timeframe trend. This helps filter out lower-timeframe noise.
20. **Higher Timeframe (TF) for Confirmation**
* **Input type:** Timeframe (default “60”)
* **Description:** The chart timeframe (e.g., 5, 15, 60 minutes) whose trend conditions must also be true. It’s sent through a `request.security(..., lookahead=barmerge.lookahead_off)` call so that it never “paints ahead.”
### H. Dynamic TP/SL Parameters
21. **TP as ATR Multiple**
* **Input type:** Float (default 2.0, step 0.1)
* **Description:** When a trade is open, the “take-profit” price is determined by looking at the highest high (for longs) or lowest low (for shorts) observed since entry, and then plotting a cross (“X”) at that level when the trend finally flips. This is purely for display. However, separate from that, this parameter can be adapted if you want a strictly ATR–based TP. In the “Minimal” version, TP is ≈ (highest high) once trend inverts, but you could rewrite it to use `entry_price + ATR×TP_Multiplier`.
22. **SL as ATR Multiple**
* **Input type:** Float (default 1.0, step 0.1)
* **Description:** While in a trade, a trailing SL line is plotted each bar. Its value is always `entry_price ± (ATR × SL_Multiplier)`. When the trend inverts, the SL no longer updates, and you see it on the chart.
### I. Display and Mode Options
23. **Show Debug Lines**
* **Input type:** Boolean (default true)
* **Description:** When enabled, the indicator will plot all intermediate lines—ATR SMA, ATR Threshold, +DI, –DI, ADX (current and HTF), HTF SMA, etc.—so that you can diagnose exactly what’s happening. Turn this off to hide all debug information and only see entry/exit shapes.
24. **Enable Scalping Mode**
* **Input type:** Boolean (default false)
* **Description:** If true, many of the “base” parameters are halved (e.g., RSI length becomes 7 instead of 14, ATR length becomes 7 instead of 14, ADX length becomes 7, etc.), and the ADX threshold is multiplied by 0.8. This makes all oscillators and moving averages more reactive, suited for very short-term (scalping) setups.
---
## 2. Core Calculation Blocks
Below is a high-level description of each logical block (in code order), translated from Pine into conceptual steps.
### A. Adjust Inputs if “Scalping Mode” Is On
If **Scalping Mode** = true, then:
* `RSI_Length` becomes `max(1, round(Base_RSI_Length / 2))`
* `EMA_Length` becomes `max(1, round(Base_EMA_Length / 2))`
* `ATR_Length` becomes `max(1, round(Base_ATR_Length / 2))`
* `Price_Change_Period` becomes `max(1, round(Base_Price_Change_Period / 2))`
* `SMA_Long_Length`, `SMA_Short1_Length`, and `SMA_Short2_Length` are each halved (minimum 1).
* `ADX_Length` = `max(1, round(Base_ADX_Length / 2))`
* `ADX_Threshold` = `Base_ADX_Threshold × 0.8`
* `Cooldown_Bars` = `max(0, round(Base_Cooldown_Bars / 2))`
Otherwise, all adjusted lengths = their base values.
### B. RSI, EMA & “AI Score” on Current Timeframe
1. **Compute RSI:**
* Uses the (possibly adjusted) `RSI_Length`.
* Denote this as `RSI_Value`.
2. **Compute ATR & Its SMA:**
* `ATR_Value` = `ta.atr(ATR_Length)`.
* `ATR_SMA` = `ta.sma(ATR_Value, ATR_SMA_Length)`.
* Then define `Volatility_Increase` = (`ATR_Value > ATR_SMA`).
* If the volatility has increased, the weighting of RSI vs. EMA changes.
3. **Compute Weights:**
* If `Volatility_Increase == true`, then:
* `RSI_Weight = 0.7`
* `EMA_Weight = 0.3`
* Otherwise:
* `RSI_Weight = 0.3`
* `EMA_Weight = 0.7`
4. **RSI Signal Component (`RSI_Sig`):**
* If `RSI_Value > RSI_Overbought`, then `RSI_Sig = –1`.
* Else if `RSI_Value < RSI_Oversold`, then `RSI_Sig = +1`.
* Otherwise, `RSI_Sig = 0`.
5. **EMA Value & Signal Component (`EMA_Sig`):**
* `EMA_Value` = `ta.ema(close, EMA_Length)`.
* `EMA_Sig = +1` if the current close crosses **above** the EMA; `EMA_Sig = –1` if the current close crosses **below** the EMA; else `0`.
6. **Compute Raw “AI Score”:**
$$
Raw\_AI = (RSI\_Sig \times RSI\_Weight)\;+\;(EMA\_Sig \times EMA\_Weight)
$$
Then,
$$
AI\_Score = \frac{Raw\_AI}{(RSI\_Weight + EMA\_Weight)}
$$
(This normalization ensures the score always ranges between –1 and +1 if both weights sum to 1.)
### C. Dynamic ATR Multiplier & Volatility Filter
1. **Volatility Factor:**
$$
Volatility\_Factor = \frac{ATR\_Value}{ATR\_SMA}
$$
2. **Dynamic ATR Multiplier:**
$$
ATR\_Multiplier = ATR\_Multiplier\_Base \times \sqrt{Volatility\_Factor}
$$
3. **High Volatility Condition (`High_Volatility`):**
* If `Disable_Volatility_Filter == true`, then treat `High_Volatility = true` always.
* Else, `High_Volatility = (ATR_Value > ATR_SMA × ATR_Multiplier)`.
### D. Price Change Percentage
* **Compute Price Change:**
$$
Price\_Change = \frac{(Close - Close )}{Close } \times 100
$$
* This is the percent return from `Price_Change_Period` bars ago to now.
* For a valid long‐trend signal, we require `Price_Change > 0`; for a short trend, `Price_Change < 0`.
### E. Local SMAs for Trend/Reversal Filters
* `SMA_Close_Long` = `ta.sma(close, SMA_Long_Length)`.
* `SMA_Close_Short1` = `ta.sma(close, SMA_Short1_Length)`.
* `SMA_Close_Short2` = `ta.sma(close, SMA_Short2_Length)`.
These three SMAs help define the “local trend” and reversal breakout points:
* **Primary Trend Filter:**
* Price must be above `SMA_Close_Long` for an uptrend filter, or below `SMA_Close_Long` for a downtrend filter.
* **Reversal Filter:**
* A bullish reversal is detected if **(RSI < Oversold AND close crosses above EMA)** OR **(RSI < Oversold AND close crosses above SMA\_Close\_Short1)**.
* A bearish reversal is detected if **(RSI > Overbought AND close crosses below EMA)** OR **(RSI > Overbought AND close crosses below SMA\_Close\_Short1)**.
### F. Manual +DI, –DI & ADX on Current Timeframe
Instead of relying on the built-in `ta.adx`, the script calculates DI and ADX manually. This makes it easier to replicate the exact logic on a higher timeframe via `request.security`. The steps are:
1. **Directional Movement (DM) Components:**
* `Up_Move` = `high – high `
* `Down_Move` = `low – low`
* `Plus_DM` = `Up_Move` if (`Up_Move > Down_Move` AND `Up_Move > 0`), else `0`
* `Minus_DM` = `Down_Move` if (`Down_Move > Up_Move` AND `Down_Move > 0`), else `0`
2. **True Range (TR) Components:**
* `TR1` = `high – low`
* `TR2` = `abs(high – close )`
* `TR3` = `abs(low – close )`
* `True_Range` = `max(TR1, TR2, TR3)`
3. **Smoothed Averages (RMA):**
* `Sm_TR` = `ta.rma(True_Range, ADX_Length)`
* `Sm_Plus` = `ta.rma(Plus_DM, ADX_Length)`
* `Sm_Minus`= `ta.rma(Minus_DM, ADX_Length)`
4. **Compute DI%:**
$$
Plus\_DI = \frac{Sm\_Plus}{Sm\_TR} \times 100,\quad
Minus\_DI = \frac{Sm\_Minus}{Sm\_TR} \times 100
$$
5. **DX and ADX:**
$$
DX = \frac{|Plus\_DI - Minus\_DI|}{Plus\_DI + Minus\_DI} \times 100,\quad
ADX = ta.rma(DX, ADX_Length)
$$
These values are referred to as `(plus_di, minus_di, adx_val)` for the current timeframe.
---
## 3. Higher Timeframe (HTF) Confirmation Function
If **Use Higher Timeframe Confirmation** is enabled, the script calls a single helper (Pine) function `f_htf` with two parameters: the ADX length and the SMA length (both taken from the “base” or “scaled” values). Internally, `f_htf` simply reruns the manual DI/ADX logic (same as above) on the higher timeframe’s bar data, and also includes that timeframe’s closing price and its SMA for trend comparison.
* **Request.Security Call:**
```
= request.security(
syminfo.tickerid,
higher_tf,
f_htf(adx_length, sma_long_len),
lookahead=barmerge.lookahead_off
)
```
* `lookahead=barmerge.lookahead_off` ensures that no HTF value “paints” early; you always see only confirmed HTF bars.
* The returned tuple provides:
1. `ht_close` = HTF closing price
2. `ht_sma` = HTF SMA of length `sma_long_len`
3. `ht_pdi` = HTF +DI percentage
4. `ht_mdi` = HTF –DI percentage
5. `ht_adx` = HTF ADX value
---
## 4. Trend & Reversal Filters (Current & HTF)
### A. Current-Timeframe Trend Filter
1. **Uptrend\_Basic (Current TF)**
$$
(plus\_di > minus\_di)\;\land\;(adx\_val > ADX\_Threshold)\;\land\;(close > SMA\_Close\_Long)
$$
2. **Downtrend\_Basic (Current TF)**
$$
(minus\_di > plus\_di)\;\land\;(adx\_val > ADX\_Threshold)\;\land\;(close < SMA\_Close\_Long)
$$
3. **Trend Confirmation by Bars:**
* `Bars_Since_Below` = number of bars since `close <= SMA_Close_Long`.
* `Bars_Since_Above` = number of bars since `close >= SMA_Close_Long`.
* If `Uptrend_Basic == true` AND `Bars_Since_Below ≥ Trend_Confirmation_Bars` → mark `Uptrend_Confirm = true`.
* If `Downtrend_Basic == true` AND `Bars_Since_Above ≥ Trend_Confirmation_Bars` → mark `Downtrend_Confirm = true`.
### B. Reversal Filters (Current TF)
1. **Bullish Reversal (`Rev_Bullish`):**
* If `(RSI < RSI_Oversold AND close crosses above EMA_Value)` OR
`(RSI < RSI_Oversold AND close crosses above SMA_Close_Short1)`
→ then `Rev_Bullish = true`.
2. **Bearish Reversal (`Rev_Bearish`):**
* If `(RSI > RSI_Overbought AND close crosses below EMA_Value)` OR
`(RSI > RSI_Overbought AND close crosses below SMA_Close_Short1)`
→ then `Rev_Bearish = true`.
### C. Higher-Timeframe Trend Filter (HTF)
1. **HTF Uptrend (`HT_Uptrend`):**
$$
(ht\_pdi > ht\_mdi)\;\land\;(ht\_adx > ADX\_Threshold)\;\land\;(ht\_close > ht\_sma)
$$
2. **HTF Downtrend (`HT_Downtrend`):**
$$
(ht\_mdi > ht\_pdi)\;\land\;(ht\_adx > ADX\_Threshold)\;\land\;(ht\_close < ht\_sma)
$$
3. **Combine Current & HTF:**
* If **Use\_HTF\_Confirmation == true**, then:
* `Uptrend_Confirm := Uptrend_Confirm AND HT_Uptrend`
* `Downtrend_Confirm := Downtrend_Confirm AND HT_Downtrend`
* Otherwise, just use the current timeframe’s `Uptrend_Confirm` and `Downtrend_Confirm`.
4. **Define `CurrentTrend` (Integer):**
* `CurrentTrend = +1` if `Uptrend_Confirm == true`.
* `CurrentTrend = –1` if `Downtrend_Confirm == true`.
* Otherwise, `CurrentTrend = 0`.
5. **Reset “One Trade Per Trend”:**
* There is a persistent variable `LastTradeTrend`.
* Every time `CurrentTrend` flips (i.e., `CurrentTrend != CurrentTrend `), the code sets `LastTradeTrend := 0`.
* That allows one new entry once the detected trend has changed.
---
## 5. One‐Time “Cooldown” Logic
* **`LastSignalBar`**
* A persistent integer (initially undefined).
* After each confirmed long or short entry, `LastSignalBar` is set to the bar index where that signal fired.
* **`Bars_Since_Signal`**
* If `LastSignalBar` is undefined, treat as a very large number (so that initial signals are always allowed).
* Otherwise, `Bars_Since_Signal = bar_index – LastSignalBar`.
* **Cooldown Check:**
* A new long (or short) can only be generated if `(Bars_Since_Signal > Signal_Cooldown)`.
* This prevents multiple signals in rapid succession.
---
## 6. Entry Conditions (No Repaint)
All of the conditions below are calculated “intrabar,” but the script only actually registers a **signal** on **bar close** (`barstate.isconfirmed`) so that signals never repaint.
### A. Trend‐Based “Raw” Conditions
1. **Trend\_Long\_Raw:**
$$
(AI\_Score > AI\_Score\_Threshold)\;\land\;Uptrend\_Confirm\;\land\;High\_Volatility\;\land\;(Price\_Change > 0)
$$
2. **Trend\_Short\_Raw:**
$$
(AI\_Score < -AI\_Score\_Threshold)\;\land\;Downtrend\_Confirm\;\land\;High\_Volatility\;\land\;(Price\_Change < 0)
$$
### B. Reversal “Raw” Conditions
1. **Rev\_Long\_Raw:**
$$
Rev\_Bullish\;\land\;(CurrentTrend \neq +1)
$$
2. **Rev\_Short\_Raw:**
$$
Rev\_Bearish\;\land\;(CurrentTrend \neq -1)
$$
### C. Combine Raw Signals
* `Raw_Long = Trend_Long_Raw OR Rev_Long_Raw`.
* `Raw_Short = Trend_Short_Raw OR Rev_Short_Raw`.
### D. Confirmed Long/Short Signal Flags
On each new bar **close** (`barstate.isconfirmed == true`):
* **Long\_Signal\_Confirmed** can fire if:
1. `Raw_Long == true`
2. `LastTradeTrend != +1` (we haven’t already taken a long in this same trend)
3. `Bars_Since_Signal > Signal_Cooldown`
If all three hold, then on this bar close the code sets:
* `Long_Signal = true`
* `LastTradeTrend := +1`
* `LastSignalBar := bar_index`
Otherwise, `Long_Signal := false` on this bar.
* **Short\_Signal\_Confirmed** works the same way but with `Raw_Short`, `LastTradeTrend != -1`, etc.
If triggered, it sets `Short_Signal = true`, `LastTradeTrend := -1`, and `LastSignalBar := bar_index`. Otherwise `Short_Signal := false`.
* **Important:** If the bar is still forming (`else` branch of `barstate.isconfirmed`), then both `Long_Signal` and `Short_Signal` are forced to `false`. This guarantees that no shape or alert appears until the bar actually closes.
---
## 7. Plotting Entry/Exit Shapes
1. **Trend Long Signal (Triangle Up)**
* Condition: `Long_Signal == true` **AND** `Trend_Long_Raw == true`.
* Appearance: A small, semi-transparent lime green triangle drawn **below** the bar.
2. **Trend Short Signal (Triangle Down)**
* Condition: `Short_Signal == true` **AND** `Trend_Short_Raw == true`.
* Appearance: A small, semi-transparent maroon triangle drawn **above** the bar.
3. **Reversal Long Signal (Circle)**
* Condition: `Long_Signal == true` **AND** `Rev_Long_Raw == true`.
* Appearance: A tiny, more transparent green circle drawn **below** the bar.
4. **Reversal Short Signal (Circle)**
* Condition: `Short_Signal == true` **AND** `Rev_Short_Raw == true`.
* Appearance: A tiny, more transparent red circle drawn **above** the bar.
Since `Long_Signal` and `Short_Signal` only ever become true at bar close, these shapes are never repainted or removed once drawn.
---
## 8. Unified Alert Message
* As soon as a new bar closes with either `Long_Signal` or `Short_Signal == true`, an alert message is sent:
* If `Long_Signal`, then `alert_msg = "action=BUY"`.
* If `Short_Signal`, then `alert_msg = "action=SELL"`.
* If neither, `alert_msg = ""` (no alert).
* The code calls `alert(alert_msg, freq=alert.freq_once_per_bar)` only if `barstate.isconfirmed` and `alert_msg` is non‐empty. This ensures exactly one alert per confirmed bar, no intrabar pops.
---
## 9. Dynamic TP/SL Logic (Minimal Implementation)
Once a long or short position is “open,” the script tracks these variables:
1. **Persistent Flags and Prices** (all persist between bars until reset):
* `InLong` (Boolean)
* `InShort` (Boolean)
* `Long_Max` (Float)
* `Short_Min` (Float)
* `Entry_Price` (Float)
2. **On Bar Close:**
* If `Long_Signal == true` →
* Set `InLong := true`,
* `Entry_Price := close` of that bar,
* `Long_Max := high ` (last bar’s high, so that we’re not using “future” data).
* If `Short_Signal == true` →
* Set `InShort := true`,
* `Entry_Price := close`,
* `Short_Min := low `.
3. **While `InLong == true`:**
* Continuously update `Long_Max = max(Long_Max, current high)` on each bar (intrabar, but finalized each close).
* Compute a dynamic SL:
$$
SL_{Long} = Entry\_Price - (ATR \times SL\_ATR\_Multiplier).
$$
* If **current trend** flips to non-uptrend (`CurrentTrend != +1`), mark `ExitLong = true`.
* Then the routine plots `TP_Long = Long_Max` as a cross (“X”) at that level.
* Set `InLong := false` so that no further changes to `Long_Max` or `Entry_Price` happen on future bars.
4. **While `InShort == true`:**
* Continuously update `Short_Min = min(Short_Min, current low)`.
* Compute a dynamic SL:
$$
SL_{Short} = Entry\_Price + (ATR \times SL\_ATR\_Multiplier).
$$
* If trend flips to non-downtrend (`CurrentTrend != –1`), mark `ExitShort = true`.
* Then the routine plots `TP_Short = Short_Min`.
* Set `InShort := false` to freeze those values.
5. **Plotting TP/SL if “Show Debug” is On:**
* **TP Shapes:**
* When `ExitLong == true`, plot a solid lime “X” at `TP_Long` (highest high).
* When `ExitShort == true`, plot a solid maroon “X” at `TP_Short` (lowest low).
* **SL Lines:**
* If still `InLong`, draw a thin red line at `SL_Long` on each bar.
* If still `InShort`, draw a thin green line at `SL_Short`.
Thus, your charts visually show the highest‐high take-profit cross for longs, the lowest-low take-profit cross for shorts, and a continuously updating trailing SL until the trend flips. Because all of this is triggered on confirmed bars, nothing “jumps around” after the fact.
---
## 10. Debug‐Only Plot Lines (When Enabled)
When **Show Debug Lines** = true, the indicator will also plot:
1. **ATR SMA (Orange):**
* The simple moving average of ATR over `ATR_SMA_Length`.
2. **ATR Threshold (Yellow):**
* `ATR_SMA × ATR_Multiplier` (the dynamically scaled threshold).
3. **+DI & –DI (Current TF):**
* +DI plotted as a green line, –DI plotted as a red line (opacity \~70%).
4. **ADX (Current TF, Blue):**
* A blue line for the present timeframe’s ADX.
5. **ADX Threshold (Gray):**
* A horizontal gray line showing `ADX_Threshold`.
6. **+DI & –DI (HTF, Darker Colors):**
* If HTF confirmation is on, “HTF +DI” is a greener but more transparent line; “HTF –DI” is a redder but more transparent line.
7. **ADX (HTF, Blue but Transparent):**
* HTF ADX plotted in blue (high transparency).
8. **HTF SMA (Orange, Transparent):**
* The higher timeframe’s SMA (same length as `SMA_Long_Length`), drawn in fainter orange.
9. **Volatility Zone Fill (Yellow Tinted Area):**
* Fills the area between `ATR_SMA` and `ATR_SMA × ATR_Multiplier`.
* Indicates “normal” versus “high‐volatility” regimes.
These debug lines are purely visual aids. Disable them if you want a cleaner chart.
---
## 11. Putting It All Together — Step-By-Step Flow
1. **Read Inputs** (RSI lengths, EMA length, ATR settings, etc.).
2. **Optionally Halve All Lengths** if “Scalping Mode” is checked.
3. **Calculate Current TF Indicators:**
* RSI, ATR, ATR\_SMA, EMA, price change, various SMAs, DI/ADX.
4. **Compute “AI Score”** (weighted sum of RSI and EMA signals).
5. **Compute Dynamic ATR Multiplier** and decide if “High Volatility” is true.
6. **Compute Raw Trend/Reversal Conditions** on the current timeframe (without triggering yet).
7. **Fetch HTF Values** in one `request.security` call (SMAs, DI/ADX).
8. **Combine Current & HTF Trend Filters** to confirm `Uptrend_Confirm` or `Downtrend_Confirm`.
9. **Check Reversal Conditions** (price crossing EMA or SMA short, in overbought/oversold zones).
10. **Enforce “One Trade Per Trend”** (clear `LastTradeTrend` whenever `CurrentTrend` flips).
11. **Enforce Cooldown** (must wait at least `Signal_Cooldown` bars since the prior signal).
12. **On Bar Close:**
* If `Raw_Long` AND not already in a long trend AND cooldown met, then fire `Long_Signal`.
* Else if `Raw_Short` AND not already in a short trend AND cooldown met, then fire `Short_Signal`.
* Otherwise, no new signal on this bar.
13. **Plot Long/Short Entry Shapes** according to whether it was a Trend signal or a Reversal signal.
14. **Send Alert** (“action=BUY” or “action=SELL”) exactly once per confirmed bar.
15. **If New Long/Short Signal, Set `InLong`/`InShort`, Record Entry Price, Initialize `Long_Max`/`Short_Min`.**
16. **While `InLong` is true:** Update `Long_Max = max(previous Long_Max, current high)`. Compute `SL_Long`. If the current trend flips (no longer uptrend), set `ExitLong = true`, plot a “TP X,” and close the position logic.
17. **While `InShort` is true:** Similarly update `Short_Min`, compute `SL_Short`, and if trend flips, set `ExitShort = true`, plot a “TP X,” and close the position logic.
18. **Optionally Display Debug Lines** (ATR SMA, ATR threshold, DI/ADX, HTF DI/ADX, etc.).
---
## 12. How to Use in TradingView Community
When you publish this indicator to the TradingView community—choosing “Protected” or “Invite-only” visibility—you can paste the above description into the “Description” field. Users will see exactly what each input does, how signals are generated, and what the various plotted lines represent, **without ever seeing the script source**. In this way, the code itself remains hidden but the logic is fully documented.
1. **Go to “Create New Indicator”** on TradingView.
2. **Paste Your Pine Code** (the full indicator script) in the Pine editor and save it.
3. **Set Visibility = Protected** (or Invite-only).
4. **In the “Description” Text Box, paste the entirety of this document** (steps 1–11).
5. **Click “Publish Script.”**
Users who view your indicator will see its name (“AI Strat Adaptive v3 (NoRepaint)”), a list of all inputs (with default values), and the detailed English description above. They can then load it on any chart, adjust inputs, and see the plotted signals, TP/SL lines, and optional debug overlays—without accessing the underlying Pine code.
---
### Summary of Key Points
* **RSI, EMA, ATR, DI/ADX, and “AI Score”** work together to define “trend vs. reversal.”
* **Dynamic volatility filter** uses ATR and ATR\_SMA to adapt the weighting of RSI vs. EMA and decide whether “volatility is high enough” to permit a trend trade.
* **One trade per detected trend** and a **cooldown period** prevent over‐trading.
* **Higher timeframe confirmation** (optional) further filters out noise.
* **No-repaint logic**:
* All signals only appear at bar close (`barstate.isconfirmed`).
* HTF values are fetched with `lookahead=barmerge.lookahead_off`.
* **Entry shapes** (triangles and circles) clearly mark trend vs. reversal entries.
* **Dynamic TP/SL**: highest‐high (or lowest‐low) since entry is used as TP, ATR×multiplier as SL.
* **Debug mode** (optional) shows every intermediate line for full transparency.
Use this description verbatim (or adapt it slightly for your personal style) when publishing. That way, your community sees exactly how each component works—inputs, functions, filters—while the Pine source code remains private.
RSI OB/OS THEDU 999//@version=6
indicator("RSI OB/OS THEDU 999", overlay=false)
//#region Inputs Section
// ================================
// Inputs Section
// ================================
// Time Settings Inputs
startTime = input.time(timestamp("1 Jan 1900"), "Start Time", group="Time Settings")
endTime = input.time(timestamp("1 Jan 2099"), "End Time", group="Time Settings")
isTimeWindow = time >= startTime and time <= endTime
// Table Settings Inputs
showTable = input.bool(true, "Show Table", group="Table Settings")
fontSize = input.string("Auto", "Font Size", options= , group="Table Settings")
// Strategy Settings Inputs
tradeDirection = input.string("Long", "Trade Direction", options= , group="Strategy Settings")
entryStrategy = input.string("Revert Cross", "Entry Strategy", options= , group="Strategy Settings")
barLookback = input.int(10, "Bar Lookback", minval=1, maxval=20, group="Strategy Settings")
// RSI Settings Inputs
rsiPeriod = input.int(14, "RSI Period", minval=1, group="RSI Settings")
overboughtLevel = input.int(70, "Overbought Level", group="RSI Settings")
oversoldLevel = input.int(30, "Oversold Level", group="RSI Settings")
//#endregion
//#region Font Size Mapping
// ================================
// Font Size Mapping
// ================================
fontSizeMap = fontSize == "Auto" ? size.auto : fontSize == "Small" ? size.small : fontSize == "Normal" ? size.normal : fontSize == "Large" ? size.large : na
//#endregion
//#region RSI Calculation
// ================================
// RSI Calculation
// ================================
rsiValue = ta.rsi(close, rsiPeriod)
plot(rsiValue, "RSI", color=color.yellow)
hline(overboughtLevel, "OB Level", color=color.gray)
hline(oversoldLevel, "OS Level", color=color.gray)
//#endregion
//#region Entry Conditions
// ================================
// Entry Conditions
// ================================
buyCondition = entryStrategy == "Revert Cross" ? ta.crossover(rsiValue, oversoldLevel) : ta.crossunder(rsiValue, oversoldLevel)
sellCondition = entryStrategy == "Revert Cross" ? ta.crossunder(rsiValue, overboughtLevel) : ta.crossover(rsiValue, overboughtLevel)
// Plotting buy/sell signals
plotshape(buyCondition ? oversoldLevel : na, title="Buy", location=location.absolute, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(sellCondition ? overboughtLevel : na, title="Sell", location=location.absolute, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)
// Plotting buy/sell signals on the chart
plotshape(buyCondition, title="Buy", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY", textcolor=color.white, size=size.small , force_overlay = true)
plotshape(sellCondition, title="Sell", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL", textcolor=color.white, size=size.small, force_overlay = true)
//#endregion
//#region Returns Matrix Calculation
// ================================
// Returns Matrix Calculation
// ================================
var returnsMatrix = matrix.new(0, barLookback, 0.0)
if (tradeDirection == "Long" ? buyCondition : sellCondition ) and isTimeWindow
newRow = array.new_float(barLookback)
for i = 0 to barLookback - 1
entryPrice = close
futurePrice = close
ret = (futurePrice - entryPrice) / entryPrice * 100
array.set(newRow, i, math.round(ret, 4))
matrix.add_row(returnsMatrix, matrix.rows(returnsMatrix), newRow)
//#endregion
//#region Display Table
// ================================
// Display Table
// ================================
var table statsTable = na
if barstate.islastconfirmedhistory and showTable
statsTable := table.new(position.top_right, barLookback + 1, 4, border_width=1, force_overlay=true)
// Table Headers
table.cell(statsTable, 0, 1, "Win Rate %", bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
table.cell(statsTable, 0, 2, "Mean Return %", bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
table.cell(statsTable, 0, 3, "Median Return %", bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
// Row Headers
for i = 1 to barLookback
table.cell(statsTable, i, 0, str.format("{0} Bar Return", i), bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
// Calculate Statistics
meanReturns = array.new_float()
medianReturns = array.new_float()
for col = 0 to matrix.columns(returnsMatrix) - 1
colData = matrix.col(returnsMatrix, col)
array.push(meanReturns, array.avg(colData))
array.push(medianReturns, array.median(colData))
// Populate Table
for col = 0 to matrix.columns(returnsMatrix) - 1
colData = matrix.col(returnsMatrix, col)
positiveCount = 0
for val in colData
if val > 0
positiveCount += 1
winRate = positiveCount / array.size(colData)
meanRet = array.avg(colData)
medianRet = array.median(colData)
// Color Logic
winRateColor = winRate == 0.5 ? color.rgb(58, 58, 60) : (winRate > 0.5 ? color.rgb(76, 175, 80) : color.rgb(244, 67, 54))
meanBullCol = color.from_gradient(meanRet, 0, array.max(meanReturns), color.rgb(76, 175, 80), color.rgb(0, 128, 0))
meanBearCol = color.from_gradient(meanRet, array.min(meanReturns), 0, color.rgb(255, 0, 0), color.rgb(255, 99, 71))
medianBullCol = color.from_gradient(medianRet, 0, array.max(medianReturns), color.rgb(76, 175, 80), color.rgb(0, 128, 0))
medianBearCol = color.from_gradient(medianRet, array.min(medianReturns), 0, color.rgb(255, 0, 0), color.rgb(255, 99, 71))
table.cell(statsTable, col + 1, 1, str.format("{0,number,#.##%}", winRate), text_color=color.white, bgcolor=winRateColor, text_size=fontSizeMap)
table.cell(statsTable, col + 1, 2, str.format("{0,number,#.###}%", meanRet), text_color=color.white, bgcolor=meanRet > 0 ? meanBullCol : meanBearCol, text_size=fontSizeMap)
table.cell(statsTable, col + 1, 3, str.format("{0,number,#.###}%", medianRet), text_color=color.white, bgcolor=medianRet > 0 ? medianBullCol : medianBearCol, text_size=fontSizeMap)
//#endregion
// Background color for OB/OS regions
bgcolor(rsiValue >= overboughtLevel ? color.new(color.red, 90) : rsiValue <= oversoldLevel ? color.new(color.green, 90) : na)
EMA Cloud Matrix with Trend Tablethis script builds upon a standard exponential moving average (ema) by adding volatility-based dynamic bands and persistent trend detection. it also enhances decision-making by including visual indicators (labels and clouds), a multi-timeframe trend table, and optional retest signals. here's an in-depth explanation:
volatility-based bands:
instead of just plotting an ema line, this script creates an upper and lower band around the ema using the average volatility (calculated as the average range of high-low over 100 bars).
the bands represent areas where price is likely to deviate significantly from the ema, signaling potential trend shifts.
persistent trend detection:
a persistent trend variable updates when price crosses above the upper band (bullish trend) or below the lower band (bearish trend). this ensures that the trend state persists until a new cross event occurs.
normal emas don't store such states—they merely provide a lagging representation of price.
visual enhancements:
a color-coded cloud dynamically highlights the area between the ema and the current trend line (upper or lower band), making trend direction clearer.
labels mark significant crossover or crossunder events, serving as potential buy or sell signals.
multi-timeframe trend table:
the table shows the trend direction (buy/sell) for the 15-minute, 4-hour, and daily timeframes, giving a broader perspective for trading decisions.
optional retest signals:
when enabled, it identifies situations where price tests the ema after trending away, providing additional opportunities for entries or exits.
first time ever - why use this and how?
why use this?
this is ideal for traders who:
struggle with trend-following strategies that lack clear entry/exit rules.
want a hybrid system combining ema-based smoothness with volatility-based adaptability.
need to visualize trends in multiple timeframes without switching charts.
how to use this?
buy signal: when the price crosses above the upper band, the trend flips to bullish. you’ll see a green upward arrow (▲) on the chart, indicating a potential long entry.
sell signal: when the price crosses below the lower band, the trend flips to bearish. a blue downward arrow (▼) appears on the chart, signaling a potential short entry.
retest signals (optional): if the price comes back to test the ema during a trend, a retest label can guide you for a secondary entry.
exit based on risk-reward ratio (rr)
this script doesn't explicitly calculate risk-reward ratios (rr), but you can manage exits effectively using the following ideas:
set a defined stop-loss:
if entering on a buy signal (crossover above upper band), place a stop below the ema or the lower band. for short signals, use the upper band as a stop.
this ensures the stop-loss dynamically adjusts with volatility.
use rr to set targets:
decide on a risk-reward ratio like 1:2 or 1:3. for example:
if your stop-loss is 20 points below your entry, set your target 40 or 60 points above for a 1:2 or 1:3 rr.
you can use trailing stops to lock in profits as the trend continues.
exit on opposite signal:
if the trend changes (e.g., price crosses below the lower band in a bullish trade), close the position.
how it gives signals and when to buy or sell
signal logic:
buy signal (bullish crossover):
when the price crosses above the upper band, the script marks it as a bullish trend and plots a green arrow (▲).
sell signal (bearish crossunder):
when the price crosses below the lower band, the script identifies it as a bearish trend and plots a blue arrow (▼).
trend continuation:
the trend state persists until the opposite condition occurs, helping you avoid noise or whipsaws.
multi-timeframe insights:
consult the trend table for confirmation across timeframes. for example:
if the 15-minute and 4-hour timeframes align with a buy trend, it strengthens the case for a long trade.
conflicting signals might suggest waiting for further confirmation.
using retest signals:
during strong trends, price often revisits the ema before resuming. if the optional retest signals are enabled, you’ll see labels at these points. they can be used to:
add to an existing position.
enter a trade if you missed the initial breakout.
key event: price crosses above the upper band
when the price closes above the upper band (ema + volatility buffer), the script identifies a bullish trend.
a green upward arrow (▲) is plotted on the chart, signaling the beginning of a long trend.
visual confirmation:
the cloud between the ema and the trend line (lower band) is filled with a light green color, representing a bullish phase.
the trend table will display "buy" with an upward arrow for the respective timeframe(s).
actionable insight:
entry: take a long position when the green ▲ appears, confirming a bullish crossover.
continuation trades: use the optional retest signals to identify pullbacks to the ema as opportunities to add to the long position.
exit: close the position when a bearish crossunder (sell signal) occurs.
identifying short trends (sell signal)
key event: price crosses below the lower band
when the price closes below the lower band (ema - volatility buffer), the script identifies a bearish trend.
a blue downward arrow (▼) is plotted on the chart, signaling the beginning of a short trend.
visual confirmation:
the cloud between the ema and the trend line (upper band) is filled with a light blue color, representing a bearish phase.
the trend table will display "sell" with a downward arrow for the respective timeframe(s).
actionable insight:
entry: take a short position when the blue ▼ appears, confirming a bearish crossunder.
continuation trades: use the optional retest signals to identify rallies back to the ema as opportunities to add to the short position.
exit: close the position when a bullish crossover (buy signal) occurs.
what makes it different from other ema indicators?
dynamic volatility adaptation:
standard ema indicators only track the average price over a given period, making them susceptible to market noise in highly volatile conditions.
this script uses a volatility buffer (average true range of high-low) to create upper and lower bands around the ema, filtering out insignificant movements and focusing on meaningful breakouts.
persistent trend logic:
unlike traditional emas that simply follow price direction, this script maintains a persistent trend state until a clear crossover or crossunder occurs:
bullish trends persist above the upper band.
bearish trends persist below the lower band.
this minimizes whipsaws in choppy markets.
visual enhancements:
the trend-colored cloud (green for long trends, blue for short trends) helps you quickly identify the market’s state.
labels (▲ and ▼) mark critical entry signals, making it easier to spot potential trades.
multi-timeframe trend confirmation:
the trend table integrates higher and lower timeframes, providing a multi-timeframe perspective:
short-term (15 minutes) for active trading.
medium-term (4 hours) for swing positions.
long-term (daily) for overall trend direction.
optional retest signals:
most ema-based strategies miss the retest phase after a breakout.
this script includes an optional feature to identify pullbacks to the ema during a trend, helping traders enter or add positions at better prices.
all-in-one system:
while traditional ema indicators only show a smoothed average line, this script integrates trend detection, volatility bands, visual aids, and multi-timeframe analysis in a single tool, reducing the need for additional indicators.
summary
this script goes beyond a simple ema by incorporating trend persistence, volatility bands, and multi-timeframe analysis. buy signals occur when price crosses above the upper band, initiating a long trend, while sell signals occur when price crosses below the lower band, initiating a short trend. it stands out due to its ability to adapt to market conditions, provide clear visual cues, and avoid the noise common in standard ema-based systems.
Volume Strength IndicatorThis Indicator is built to give you an edge into the market. Given volume, volatility and price-action, it compares market conditions against the maximum that have occurred so far in the session. Useful for intraday and day trading for timing entries with the smart money.
The green/red histogram gives us a view into the relative strength of the current bar, whether they have strong buying or selling power.
The orange signal line gives us a view of the recent trend, which can be modified using the various inputs.
Daily Manipulation and Distribution Levels with Buy/Sell SignalsIndicator Summary:
This indicator is designed for intraday traders, highlighting key price levels and providing simple buy/sell signals based on price manipulation and distribution concepts.
Key Features:
Core Levels:
Manipulation Plus/Minus: Derived from the daily open and a portion of the daily range (e.g., 25%).
Distribution Levels: Daily high and low serve as ultimate targets or resistance/support levels.
Buy and Sell Signals:
Buy Signal: Triggered when the price crosses above the Manipulation Plus level. A green "BUY" label marks the entry.
Sell Signal: Triggered when the price crosses below the Manipulation Minus level. A red "SELL" label marks the entry.
Clean Chart Design:
Hides unnecessary clutter, showing only relevant key levels and labeled signals for clarity.
How to Use:
Entry Points:
Buy Entry: When a green "BUY" label appears after the price breaks above the Manipulation Plus level.
Sell Entry: When a red "SELL" label appears after the price breaks below the Manipulation Minus level.
Exit Strategy:
Take Profit: Use the Distribution Levels (daily high/low) as take-profit zones.
Stop Loss: Set just above/below the Manipulation Levels to manage risk effectively.
One to Two Trades per Session: Focus on high-probability moves to ensure clarity and reduce overtrading.
Who It’s For:
This indicator is ideal for traders seeking a structured and visual approach to intraday trading, with clear entry/exit criteria based on price manipulation and distribution theory. It simplifies decision-making and ensures clean chart setups without overwhelming visuals.
TradingIQ - Nova IQIntroducing "Nova IQ" by TradingIQ
Nova IQ is an exclusive Trading IQ algorithm designed for extended price move scalping. It spots overextended micro price moves and bets against them. In this way, Nova IQ functions similarly to a reversion strategy.
Nova IQ analyzes historical and real-time price data to construct a dynamic trading system adaptable to various asset and timeframe combinations.
Philosophy of Nova IQ
Nova IQ integrates AI with the concept of central-value reversion scalping. On lower timeframes, prices may overextend for small periods of time - which Nova IQ looks to bet against. In this sense, Nova IQ scalps against small, extended price moves on lower timeframes.
Nova IQ is designed to work straight out of the box. In fact, its simplicity requires just one user setting, making it incredibly straightforward to manage.
Use HTF (used to apply a higher timeframe trade filter) is the only setting that controls how Nova IQ works.
Traders don’t have to spend hours adjusting settings and trying to find what works best - Nova IQ handles this on its own.
Key Features of Nova IQ
Self-Learning Market Scalping
Employs AI and IQ Technology to scalp micro price overextensions.
AI-Generated Trading Signals
Provides scalping signals derived from self-learning algorithms.
Comprehensive Trading System
Offers clear entry and exit labels.
Performance Tracking
Records and presents trading performance data, easily accessible for user analysis.
Higher Timeframe Filter
Allows users to implement a higher timeframe trading filter.
Long and Short Trading Capabilities
Supports both long and short positions to trade various market conditions.
Nova Oscillator (NOSC)
The Nova IQ Oscillator (NOSC) is an exclusive self-learning oscillator developed by Trading IQ. Using IQ Technology, the NOSC functions as an all-in-one oscillator for evaluating price overextensions.
Nova Bands (NBANDS)
The Nova Bands (NBANDS) are based on a proprietary calculation and serve as a custom two-layer smoothing filter that uses exponential decay. These bands adaptively smooth prices to identify potential trend retracement opportunities.
How It Works
Nova IQ operates on a simple heuristic: scalp long during micro downside overextensions and short during micro upside overextensions.
What constitutes an "overextension" is defined by IQ Technology, TradingIQ's proprietary AI algorithm. For Nova IQ, this algorithm evaluates the typical extent of micro overextensions before a reversal occurs. By learning from these patterns, Nova IQ adapts to identify and trade future overextensions in a consistent manner.
In essence, Nova IQ learns from price movements within scalping timeframes to pinpoint price areas for capitalizing on the reversal of an overextension.
As a trading system, Nova IQ enters all positions using market orders at the bar’s close. Each trade is exited with a profit-taking limit order and a stop-loss order. Thanks to its self-learning capability, Nova IQ determines the most suitable profit target and stop-loss levels, eliminating the need for the user to adjust any settings.
What classifies as a tradable overextension?
For Nova IQ, tradable overextensions are not manually set but are learned by the system. Nova IQ utilizes NOSC to identify and classify micro overextensions. By analyzing multiple variations of NOSC, along with its consistency in signaling overextensions and its tendency to remain in extreme zones, Nova IQ dynamically adjusts NOSC to determine what constitutes overextension territory for the indicator.
When NOSC reaches the downside overextension zone, long trades become eligible for entry. Conversely, when NOSC reaches the upside overextension zone, short trades become eligible for entry.
The image above illustrates NOSC and explains the corresponding overextension zones
The blue lower line represents the Downside Overextension Zone.
The red upper line represents the Upside Overextension Zone.
Any area between the two deviation points is not considered a tradable price overextension.
When either of the overextension zones are breached, Nova IQ will get to work at determining a trade opportunity.
The image above shows a long position being entered after the Downside Overextension Zone was reached.
The blue line on the price scale shows the AI-calculated profit target for the scalp position. The redline shows the AI-calculated stop loss for the scalp position.
Blue arrows indicate that the strategy entered a long position at the highlighted price level.
Yellow arrows indicate a position was closed.
You can also hover over the trade labels to get more information about the trade—such as the entry price and exit price.
The image above depicts a short position being entered after the Upside Overextension Zone was breached.
The blue line on the price scale shows the AI-calculated profit target for the scalp position. The redline shows the AI-calculated stop loss for the scalp position.
Red arrows indicate that the strategy entered a short position at the highlighted price level.
Yellow arrows indicate that NOVA IQ exited a position.
Long Entry: Blue Arrow
Short Entry: Red Arrow
Closed Trade: Yellow Arrow
Nova Bands
The Nova Bands (NBANDS) are based on a proprietary calculation and serve as a custom two-layer smoothing filter that uses exponential decay and cosine factors.
These bands adaptively smooth the price to identify potential trend retracement opportunities.
The image above illustrates how to interpret NBANDS. While NOSC focuses on identifying micro overextensions, NBANDS is designed to capture larger price overextensions. As a result, the two indicators complement each other well and can be effectively used together to identify a broader range of price overextensions in the market.
While the Nova Bands are not part of the core heuristic and do not use IQ technology, they provide valuable insights for discretionary traders looking to refine their strategies.
Use HTF (Use Higher Timeframe) Setting
Nova IQ has only one setting that controls its functionality.
“Use HTF” controls whether the AI uses a higher timeframe trading filter. This setting can be true or false. If true, the trader must select the higher timeframe to implement.
No Higher TF Filter
Nova IQ operates with standard aggression when the higher timeframe setting is turned off. In this mode, it exclusively learns from the price data of the current chart, allowing it to trade more aggressively without the influence of a higher timeframe filter.
Higher TF Filter
Nova IQ demonstrates reduced aggression when the "Use HTF" (Higher Timeframe) setting is enabled. In this mode, Nova IQ learns from both the current chart's data and the selected higher timeframe data, factoring in the higher timeframe trend when seeking scalping opportunities. As a result, trading opportunities only arise when both the higher timeframe and the chart's timeframe simultaneously display overextensions, making this mode more selective in its entries.
In this mode, Nova IQ calculates NOSC on the higher timeframe, learns from the corresponding price data, and applies the same rules to NOSC as it does for the current chart's timeframe. This ensures that Nova IQ consistently evaluates overextensions across both timeframes, maintaining its trading logic while incorporating higher timeframe insights.
AI Direction
The AI Direction setting controls the trade direction Nova IQ is allowed to take.
“Trade Longs” allows for long trades.
“Trade Shorts” allows for short trades.
Verifying Nova IQ’s Effectiveness
Nova IQ automatically tracks its performance and displays the profit factor for the long strategy and the short strategy it uses. This information can be found in a table located in the top-right corner of your chart showing the long strategy profit factor and the short strategy profit factor.
The image above shows the long strategy profit factor and the short strategy profit factor for Nova IQ.
A profit factor greater than 1 indicates a strategy profitably traded historical price data.
A profit factor less than 1 indicates a strategy unprofitably traded historical price data.
A profit factor equal to 1 indicates a strategy did not lose or gain money when trading historical price data.
Using Nova IQ
While Nova IQ is a full-fledged trading system with entries and exits - it was designed for the manual trader to take its trading signals and analysis indications to greater heights, offering numerous applications beyond its built-in trading system.
The hallmark feature of Nova IQ is its to ignore noise and only generate signals during tradable overextensions.
The best way to identify overextensions with Nova IQ is with NOSC.
NOSC is naturally adept at identifying micro overextensions. While it can be interpreted in a manner similar to traditional oscillators like RSI or Stochastic, NOSC’s underlying calculation and self-learning capabilities make it significantly more advanced and useful than conventional oscillators.
Additionally, manual traders can benefit from using NBANDS. Although NBANDS aren't a core component of Nova IQ's guiding heuristic, they can be valuable for manual trading. Prices rarely extend beyond these bands, and it's uncommon for prices to consistently trade outside of them.
NBANDS do not incorporate IQ Technology; however, when combined with NOSC, traders can identify strong double-confluence opportunities.
Position Size CalculatorThe provided Pine Script is a custom indicator titled "Position Size Calculator" designed to assist traders in calculating the appropriate size of a trading position based on predefined risk parameters. This script is intended to be overlaid on a trading chart, as indicated by `overlay=true`, allowing traders to visualize and adjust their risk and position size directly within the context of their trading strategy.
What It Does:
The core functionality of this script revolves around calculating the position size a trader should take based on three input parameters:
**Risk in USD (`Risk`)**: This represents the amount of money the trader is willing to risk on a single trade.
**Entry Price (`EntryPrice`)**: The price at which the trader plans to enter the market.
**Stop Loss (`StopLoss`)**: The price at which the trader plans to exit the market should the trade move against them, effectively limiting their loss.
The script calculates the position size using a function named `calculatePositionSize`, which performs the following steps:
It first calculates the `expectedLoss` by taking 90% (`0.9`) of the input risk. This implies that the script factors in a safety margin, assuming traders are willing to risk up to 90% of their stated risk amount per trade.
It then calculates the position size based on the distance between the Entry Price and the Stop Loss. This calculation adjusts based on whether the Entry Price is higher or lower than the Stop Loss, ensuring that the position size fits the risk profile regardless of trade direction.
The function returns several values: `risk`, `entryPrice`, `stopLoss`, `expectedLoss`, and `size`, which are then plotted on the chart.
How It Does It:
**Expected Loss Calculation**: By reducing the risk by 10% before calculating position size, the script provides a buffer to account for slippage or to ensure the trader does not fully utilize their risk budget on a single trade.
**Position Size Calculation**: The script calculates position size by dividing the adjusted risk (`expectedLoss`) by the price difference between the Entry Price and Stop Loss. This gives a quantitative measure of how many units of the asset can be bought or sold while staying within the risk parameters.
What Traders Can Use It For:
Traders can use this Position Size Calculator for several purposes:
- **Risk Management**: By determining the appropriate position size, traders can ensure that they do not overexpose themselves to market risk on a single trade.
- **Trade Planning**: Before entering a trade, the script allows traders to visualize their risk, entry, and exit points, helping them to make more informed decisions.
- **Consistency**: Using a standardized method for calculating position size helps traders maintain consistency in their trading approach, a key aspect of successful trading strategies.
- **Efficiency**: Automating the calculation of position size saves time and reduces the likelihood of manual calculation errors.
Overall, this Pine Script indicator is a practical tool for traders looking to implement strict risk management rules within their trading strategies, ensuring that each trade is sized appropriately according to their risk tolerance and market conditions.
Position Size Calculator (EzAlgo)Upon adding the indicator to the chart, you will be prompted to place entry price lines, stop loss price line, and multiple take profit price lines by clicking at the desired price level on the chart.
Section Summaries
Table Settings: Allows users to select position and font size from drop-down menus. Displays current settings and potential profit/loss values.
Price Points: Users can set their Entry and select whether they want to include a DCA entry, Stop Loss price, Liquidation Buffer %, Take Profit levels and the amount of position to close at each level.
Risk Management: Users fill out their Account Size, set their Risk % (or fixed $ amount) for each Entry, set Manual Leverage, or allow the indicator to automatically choose the leverage based on the Stop Loss price distance from Entry and the Risk % per Entry.
User-Input Descriptions
DCA Price: The price at which users initiate their second, equally sized and leveraged position when using a Dollar-Cost Averaging (DCA) strategy. Upon reaching the DCA Price, the Entry Price adjusts to the Avg Price, calculated as the midpoint between initial and DCA entries.
Liquidation Buffer: A pre-set percentage that determines how close to the Stop Loss a position can get before it's liquidated. This assists the Auto Leverage feature in optimizing the leverage amount according to risk tolerance.
Risk per Entry: The proportion of the account, in % or a fixed dollar amount, that users are willing to risk for each trading position. If DCA is checked, this will assume users are entering with half of the total position size per entry.
Automatic Leverage: Auto Leverage automatically determines the optimal leverage level for a trade based on the user's Stop Loss price distance from the Entry point and the user-defined risk percentage per Entry. It also considers a user-defined Liquidation Buffer, which is a preset percentage determining how close to the Stop Loss a position can get before it's liquidated. This tool allows traders to optimize their leverage amount according to their risk tolerance.
Max Leverage: The highest leverage level users are willing to use, even if the exchange permits higher. This limit applies when the Auto Leverage feature is enabled.
Magnetic Zones v1.1 BetaMagnetic Zones v1.1 Beta
This is one of the most powerful and effective indicator which I personally use for Intraday.
It works well for trending stocks and trending days.
What are the Zones?
The zones are basically Retracement and Reversal Zones. The price will take a halt at this zones. So it will be easy to take an entry.
How to use?
Labels:
Pivot = P
Major Zones = R1, R2, R3, S1, S2, S3
Minor Zones = R0.5, R1.5, R2.5, S0.5, S1.5, S2.5
Previous Day High & Low = PDH, PDL
Breakout:
Opens between Previous Day High or Low and R1 or S1 Zone and taking retracement at the zone can result in a breakout.
Entry Time:
No Entry: 0 to 15min. Wait for the early Algo rush to settle down. Just go through the shortlisted stocks or top gainers and top losers.
Risky Entry: 15min to 30min. It is the right or early time to participate in the beginning of a rally. But, recommended only for experienced, disciplined and planned traders.
Moderate Risk: 30min to 45min
Safe Entry: After 45min to 1hr
Stock Selection Tip:
Use Expanded Floor Pivots to spot Narrow Range stocks.
Entry Tip:
Use Opening Range Breakout (15, 30, 45 or 1hr) to spot false shoot ups.
Entry:
After the retracement on or closer to the zones.
If the retracement happens in between spaces of the zones expect next retracement at the next in between space. Imagine the levels accordingly.
Retracement is the right time to make an entry with minimum stoploss.
Stoploss:
Just below the longest candle which touches the zone.
Target:
If it is a trending stock the price will move easily from one major zone to another major zone.
If the zones are wider on a particular day use the minor zones as target.
Consider the historical support and resistance, highs and lows to confirm the entry or exit.
Indicator Features:
Inclusion of 2nd and 3rd zones: Helpful to identify the target zone and to participation in a major rally.
Clean and cluster free look
Shows only required zones
Hide historical levels
Previous day High and Low levels
Multi time-frame
Caution:
Don't solely depend on this indicator. Always use this with other analyzing tools or methods for more confirmation.
Acknowledgement:
Thanking the original formulators.
Note:
The indicator is under testing. Any errors, updates and additions will be updated in the final version.
Even though there many are other indicators similar to this in TradingView, this indicator is customized for precision, inclusion of extended levels and designed for a squeeze free chart and visual appeal.
Explore, improvise and formulate new methods with your personal experience and ideas.
Momentum Volume Divergence (MVD) EnhancedMomentum Volume Divergence (MVD) Enhanced is a powerful indicator that detects price-momentum divergences and momentum suppression for reversal trading. Optimized for XRP on 1D charts, it features dynamic lookbacks, ATR-adjusted thresholds, and SMA confirmation. Signals include strong divergences (triangles) and suppression warnings (crosses). Includes a detailed user guide—try it out and share your feedback!
Setup: Add to XRP 1D chart with defaults (mom_length_base=8, vol_length_base=10). Signals: Red triangle (sell), Green triangle (buy), Orange cross (bear warning), Yellow cross (bull warning). Confirm with 5-day SMA crossovers. See full guide for details!
Disclaimer: This indicator is for educational purposes only, not financial advice. Trading involves risk—use at your discretion.
Momentum Volume Divergence (MVD) Enhanced Indicator User Guide
Version: Pine Script v6
Designed for: TradingView
Recommended Use: XRP on 1-day (1D) chart
Date: March 18, 2025
Author: Herschel with assistance from Grok 3 (xAI)
Overview
The Momentum Volume Divergence (MVD) Enhanced indicator is a powerful tool for identifying price-momentum divergences and momentum suppression patterns on XRP’s 1-day (1D) chart. Plotted below the price chart, it provides clear visual signals to help traders spot potential reversals and trend shifts.
Purpose
Detect divergences between price and momentum for buy/sell opportunities.
Highlight momentum suppression as warnings of fading trends.
Offer actionable trading signals with intuitive markers.
Indicator Components
Main Plot
Volume-Weighted Momentum (vw_mom): Blue line showing momentum adjusted by volume.
Above 0 = bullish momentum.
Below 0 = bearish momentum.
Zero Line: Gray dashed line at 0, separating bullish/bearish zones.
Key Signals
Strong Bearish Divergence:
Marker: Red triangle at the top.
Meaning: Price makes a higher high, but momentum weakens, confirmed by a drop below the 5-day SMA.
Action: Potential sell/short signal.
Strong Bullish Divergence:
Marker: Green triangle at the bottom.
Meaning: Price makes a lower low, but momentum strengthens, confirmed by a rise above the 5-day SMA.
Action: Potential buy/long signal.
Bearish Suppression:
Marker: Orange cross at the top + red background.
Meaning: Strong bullish momentum with low volume in a volume downtrend, suggesting fading strength.
Action: Warning to avoid longs or exit early.
Bullish Suppression:
Marker: Yellow cross at the bottom + green background.
Meaning: Strong bearish momentum with low volume in a volume uptrend, suggesting fading weakness.
Action: Warning to avoid shorts or exit early.
Debug Plots (Optional)
Volume Ratio: Gray line (volume vs. its MA) vs. yellow line (threshold).
Momentum Threshold: Purple lines (positive/negative momentum cutoffs).
Smoothed Momentum: Orange line (raw momentum).
Confirmation SMA: Purple line (price trend confirmation).
Labels
Text labels (e.g., "Bear Div," "Bull Supp") mark detected patterns.
How to Use the Indicator
Step-by-Step Trading Process
1. Monitor the Chart
Load your XRP 1D chart with the indicator applied.
Observe the blue vw_mom line and signal markers.
2. Spot a Signal
Primary Signals: Look for red triangles (strong_bear) or green triangles (strong_bull).
Warnings: Note orange crosses (suppression_bear) or yellow crosses (suppression_bull).
3. Confirm the Signal
For Strong Bullish Divergence (Buy):
Green triangle appears.
Price closes above the 5-day SMA (purple line) and a recent swing high.
Optional: Volume ratio (gray line) exceeds the threshold (yellow line).
For Strong Bearish Divergence (Sell):
Red triangle appears.
Price closes below the 5-day SMA and a recent swing low.
Optional: Volume ratio (gray line) falls below the threshold (yellow line).
4. Enter the Trade
Long:
Buy at the close of the signal bar.
Stop loss: Below the recent swing low or 2 × ATR(14) below entry.
Short:
Sell/short at the close of the signal bar.
Stop loss: Above the recent swing high or 2 × ATR(14) above entry.
5. Manage the Trade
Take Profit:
Aim for a 2:1 or 3:1 risk-reward ratio (e.g., risk $0.05, target $0.10-$0.15).
Or exit when an opposite suppression signal appears (e.g., orange cross for longs).
Trailing Stop:
Move stop to breakeven after a 1:1 RR move.
Trail using the 5-day SMA or 2 × ATR(14).
Early Exit:
Exit if a suppression signal appears against your position (e.g., suppression_bull while short).
6. Filter Out Noise
Avoid trades if a suppression signal precedes a divergence within 2-3 days.
Optional: Add a 50-day SMA on the price chart:
Longs only if price > 50-SMA.
Shorts only if price < 50-SMA.
Example Trades (XRP 1D)
Bullish Trade
Signal: Green triangle (strong_bull) at $0.55.
Confirmation: Price closes above 5-SMA and $0.57 high.
Entry: Buy at $0.58.
Stop Loss: $0.53 (recent low).
Take Profit: $0.63 (2:1 RR) or exit on suppression_bear.
Outcome: Price hits $0.64, exit at $0.63 for profit.
Bearish Trade
Signal: Red triangle (strong_bear) at $0.70.
Confirmation: Price closes below 5-SMA and $0.68 low.
Entry: Short at $0.67.
Stop Loss: $0.71 (recent high).
Take Profit: $0.62 (2:1 RR) or exit on suppression_bull.
Outcome: Price drops to $0.61, exit at $0.62 for profit.
Tips for Success
Combine with Price Levels:
Use support/resistance zones (e.g., weekly pivots) to confirm entries.
Monitor Volume:
Rising volume (gray line above yellow) strengthens signals.
Adjust Sensitivity:
Too many signals? Increase div_strength_threshold to 0.7.
Too few signals? Decrease to 0.3.
Backtest:
Review 20-30 past signals on XRP 1D to assess performance.
Avoid Choppy Markets:
Skip signals during low volatility (tight price ranges).
Troubleshooting
No Signals:
Lower div_strength_threshold to 0.3 or mom_threshold_base to 0.2.
Check if XRP’s volatility is unusually low.
False Signals:
Increase sma_confirm_length to 7 or add a 50-SMA filter.
Indicator Not Loading:
Ensure the script compiles without errors.
Customization (Optional)
Change Colors: Edit color.* values (e.g., color.red to color.purple).
Add Alerts: Use TradingView’s alert menu for "Strong Bearish Divergence Confirmed," etc.
Test Other Assets: Experiment with BTC or ETH, adjusting inputs as needed.
Disclaimer
This indicator is for educational purposes only and not financial advice. Trading involves risk, and past performance does not guarantee future results. Use at your own discretion.
Setup: Use on XRP 1D with defaults (mom_length_base=8, vol_length_base=10). Signals: Red triangle (sell), Green triangle (buy), Orange cross (bear warning), Yellow cross (bull warning). Confirm with 5-day SMA cross. Stop: 2x ATR(14). Profit: 2:1 RR or suppression exit. Full guide available separately!
RSI Failure Swing Pattern (with Alerts & Targets)RSI Failure Swing Pattern Indicator – Detailed Description
Overview
The RSI Failure Swing Pattern Indicator is a trend reversal detection tool based on the principles of failure swings in the Relative Strength Index (RSI). This indicator identifies key reversal signals by analyzing RSI swings and confirming trend shifts using predefined overbought and oversold conditions.
Failure swing patterns are one of the strongest RSI-based reversal signals, initially introduced by J. Welles Wilder. This indicator detects these patterns and provides clear buy/sell signals with labeled entry, stop-loss, and profit target levels. The tool is designed to work across all timeframes and assets.
How the Indicator Works
The RSI Failure Swing Pattern consists of two key structures:
1. Bullish Failure Swing (Buy Signal)
Occurs when RSI enters oversold territory (below 30), recovers, forms a higher low above the oversold level, and finally breaks above the intermediate swing high in RSI.
Step 1: RSI dips below 30 (oversold condition).
Step 2: RSI rebounds and forms a local peak.
Step 3: RSI retraces but does not go below the previous low (higher low confirmation).
Step 4: RSI breaks above the previous peak, confirming a bullish trend reversal.
Buy signal is triggered at the breakout above the RSI peak.
2. Bearish Failure Swing (Sell Signal)
Occurs when RSI enters overbought territory (above 70), declines, forms a lower high below the overbought level, and then breaks below the intermediate swing low in RSI.
Step 1: RSI rises above 70 (overbought condition).
Step 2: RSI declines and forms a local trough.
Step 3: RSI bounces but fails to exceed the previous high (lower high confirmation).
Step 4: RSI breaks below the previous trough, confirming a bearish trend reversal.
Sell signal is triggered at the breakdown below the RSI trough.
Features of the Indicator
Custom RSI Settings: Adjustable RSI length (default 14), overbought/oversold levels.
Buy & Sell Signals: Buy/sell signals are plotted directly on the price chart.
Entry, Stop-Loss, and Profit Targets:
Entry: Price at the breakout of the RSI failure swing pattern.
Stop-Loss: Lowest low (for buy) or highest high (for sell) of the previous two bars.
Profit Targets: Two levels calculated based on Risk-Reward ratios (1:1 and 1:2 by default, customizable).
Labeled Price Levels:
Entry Price Line (Blue): Marks the point of trade entry.
Stop-Loss Line (Red): Shows the calculated stop-loss level.
Target 1 Line (Orange): Profit target at 1:1 risk-reward ratio.
Target 2 Line (Green): Profit target at 1:2 risk-reward ratio.
Alerts for Trade Execution:
Buy/Sell signals trigger alerts for real-time notifications.
Alerts fire when price reaches stop-loss or profit targets.
Works on Any Timeframe & Asset: Suitable for stocks, forex, crypto, indices, and commodities.
Why Use This Indicator?
Highly Reliable Reversal Signals: Unlike simple RSI overbought/oversold strategies, failure swings filter out false breakouts and provide strong confirmation of trend reversals.
Risk Management Built-In: Stop-loss and take-profit levels are automatically set based on historical price action and risk-reward considerations.
Easy-to-Use Visualization: Clearly marked entry, stop-loss, and profit target levels make it beginner-friendly while still being valuable for experienced traders.
How to Trade with the Indicator
Buy Trade Example (Bullish Failure Swing)
RSI drops below 30 and recovers.
RSI forms a higher low and then breaks above the previous peak.
Entry: Buy when RSI crosses above its previous peak.
Stop-Loss: Set below the lowest low of the previous two candles.
Profit Targets:
Target 1 (1:1 Risk-Reward Ratio)
Target 2 (1:2 Risk-Reward Ratio)
Sell Trade Example (Bearish Failure Swing)
RSI rises above 70 and then declines.
RSI forms a lower high and then breaks below the previous trough.
Entry: Sell when RSI crosses below its previous trough.
Stop-Loss: Set above the highest high of the previous two candles.
Profit Targets:
Target 1 (1:1 Risk-Reward Ratio)
Target 2 (1:2 Risk-Reward Ratio)
Final Thoughts
The RSI Failure Swing Pattern Indicator is a powerful tool for traders looking to identify high-probability trend reversals. By using the RSI failure swing concept along with built-in risk management tools, this indicator provides a structured approach to trading with clear entry and exit points. Whether you’re a day trader, swing trader, or long-term investor, this indicator helps in capturing momentum shifts while minimizing risk.
Would you like any modifications or additional features? 🚀
Bar Color - Moving Average Convergence Divergence [nsen]The Pine Script you've provided creates a custom indicator that utilizes the MACD (Moving Average Convergence Divergence) and displays various outputs, such as bar color changes based on MACD signals, and a table of data from multiple timeframes. Here's a breakdown of how the script works:
1. Basic Settings (Input)
• The script defines several user-configurable parameters, such as the MACD values, bar colors, the length of the EMA (Exponential Moving Average) periods, and signal smoothing.
• Users can also choose timeframes to analyze the MACD values, like 5 minutes, 15 minutes, 1 hour, 4 hours, and 1 day.
2. MACD Calculation
• It uses the EMA of the close price to calculate the MACD value, with fast_length and slow_length representing the fast and slow periods. The signal_length is used to calculate the Signal Line.
• The MACD value is the difference between the fast and slow EMA, and the Signal Line is the EMA of the MACD.
• The Histogram is the difference between the MACD and the Signal Line.
3. Plotting the Histogram
• The Histogram values are plotted with colors that change based on the value. If the Histogram is positive (rising), it is colored differently than if it's negative (falling). The colors are determined by the user inputs, for example, green for bullish (positive) signals and red for bearish (negative) signals.
4. Bar Coloring
• The bar color changes based on the MACD's bullish or bearish signal. If the MACD is bullish (MACD > Signal), the bar color will change to the color defined for bullish signals, and if it's bearish (MACD < Signal), the bar color will change to the color defined for bearish signals.
5. Multi-Timeframe Data Table
• The script includes a table displaying the MACD trend for different timeframes (e.g., 5m, 15m, 1h, 4h, 1d).
• Each timeframe will show a colored indicator: green (🟩) for bullish and red (🟥) for bearish, with the background color changing based on the trend.
6. Alerts
• The script has alert conditions to notify the user when the MACD shows a bullish or bearish entry:
• Bullish Entry: When the MACD turns bullish (crosses above the Signal Line).
• Bearish Entry: When the MACD turns bearish (crosses below the Signal Line).
• Alerts are triggered with custom messages such as "🟩 MACD Bullish Entry" and "🟥 MACD Bearish Entry."
Key Features:
• Customizable Inputs: Users can adjust the MACD settings, histogram colors, and timeframe options.
• Visual Feedback: The color changes of the histogram and bars provide instant visual cues for bullish or bearish trends.
• Multi-Timeframe Analysis: The table shows the MACD trend across multiple timeframes, helping traders monitor trends in different timeframes.
• Alert Conditions: Alerts notify users when key MACD crossovers occur.
Buy Sell Indicator by Independent ResearcherThis is an Buy and Sell Oscillator. Its show the trend reversal or change in price action of the market. This indicator is a combination of various moving averages. This is like a MACD but a very powerful version.
How To Use It
If green line gives crossover white line towards down then price is expected to fall.
If red line gives crossover white line towards up then price is expected to rise.
For better results of indicator trade after closing of crossover candle.
There is a band +.20 to -.20 for better results trade on crossover happens between that band.
Below you will see an example:-
XAUUSD
EURUSD
Donchian DipThe Donchian Dip
This strategy is designed to look for good "Buy the Dip" entries on stocks that are clearly in a strong 1-year upward trend. If you do not know how to identify those stocks on your own please do not use this system or continue your education until you do. The Donchian Dip strategy was designed on the daily time frame but works amazingly well on both daily and weekly timeframes. It does still work on intraday charts also if the current trend on the daily chart is in a strong uptrend.
Chart Setup:
3-period Donchian Channel with a 1-period offset (hide basis)
Bollinger Bands with the default settings of 20/2 (display basis)
Entry Signals:
There are 3 different entry signals that will be printed on the chart that have similar underlying criteria but are ranked based on skill level just like ski slope skill levels! I recommend only taking green entries until you are familiar with the system and the stocks you are trading.
Green Easy Entry:
This is the safest buy the dip entry that is normally found at or near a large retracement bottom. You might get one or two bad entries but be persistent and eventually, a great entry will present itself!
These are the specifics for the conditions that trigger a Green entry if you want to know what they are:
1. The current bar is an up bar (green or white bar) and closed above the lower Donchian channel
2. Previous bar or 2 bars back closed below the lower Donchian channel
3. Previous bar or 2 bars back closed below the Bollinger Band Basis (20 SMA )
4. The low of the previous bar or 2 bars back was below the lower Bollinger Band
Blue Intermediate Entry:
This is a decent entry if you missed the green entry, want to add to an existing position, or are not sure it will pull back far enough to even give a green entry. I would suggest only trade these entries to add to an existing pyramid position or get back into a trade that you were recently stopped out of. However, on high-flying stocks like TSLA these signals and the Black Diamond entry signals might be the only ones you get for a long time. Also, on the weekly chart, Blue or Black entries are sometimes all you will get for a year or more.
These are the specifics for the conditions that trigger a Blue entry if you want to know what they are:
1. The current bar is an up bar (green or white bar) and closed above the lower Donchian channel
2. Previous bar or 2 bars back closed below the lower Donchian channel
3. Previous bar or 2 bars back closed below the Bollinger Band Basis (20 SMA )
Black Diamond Advanced Rule:
This is normally just a small pullback re-entry signal on a strong trending stock like TSLA ...trade with extreme caution!!! You have been warned but daredevils feel free to give it a shot. I sometimes do trade these entries if the market and sector of the stock I am trading are extremely bullish or if I am looking to add to a position but I use a conservative stop.
These are the specifics for the conditions that trigger a Black entry if you want to know what they are:
1. The current bar is an up bar (green or white bar) and closed above the lower Donchian channel
2. Previous bar or 2 bars back closed below the lower Donchian channel
3. Previous bar or 2 bars back closed above the Bollinger Band Basis (20 SMA )
Exit Criteria:
The goal of this strategy is to buy the dip and hold as long as possible...let's practice some Paytience and exercise those holding muscles! RLT!!!
So, we don't want to exit early but we also want to protect our profits somehow. We do this by using the built-in trailing stops that are defined by dots of three different shades of purple on the chart (feel free to change these in the settings). Simply move your trailing stop to the highest current dot price level. Do not move the trailing stop down ever even if a lower dot is printed later. These are simply the suggested trailing stops and definitely use your own judgment for exits but if you backtest this strategy enough you will most likely discover that in the long run, these trailing stops work really well.
I hope this strategy helps you to identify good "Buy the Dip" entries on stocks you love as well as trains you to hold your winners longer for bigger gains.
***HOW TO ADD TO YOUR CHARTS***
1) Click the "Add to Favorite Scripts" button
2) Go to a stock chart and click the "Indicators" icon at the top
3) Next, on the left, click the "Favorites" and then click the "Naked Put - Growth Indicator v2"
4) It should appear on your charts, and you can click the "gear" icon on the study to edit a few settings.
5) Read the release notes above so you understand how it works.
Xen's Flag Pattern Scalper1. Input Parameters:
FlagLength: Determines the length of the flag pattern.
TakeProfit1Ratio, takeProfit2Ratio, takeProfit3Ratio: Define the ratios for calculating
the take-profit levels relative to the entry price.
RiskRewardRatio: Specifies the risk-reward ratio for calculating the stop-loss level
relative to the entry price.
2 Flag Conditions:
BullishFlag: Checks if the current bar meets the conditions for a bullish flag pattern. It
evaluates to true if the low of the current bar is lower than the low flagLength bars
ago, and the close of the current bar is higher than the high flagLength bars ago.
BearishFlag: Checks if the current bar meets the conditions for a bearish flag pattern. It evaluates to true if the high of the current bar is higher than the high flagLength bars
ago, and the close of the current bar is lower than the low flagLength bars ago.
3. Entry Price:
EntryPrice: Calculates the entry price based on whether a bullish or bearish flag
pattern is identified. For a bullish flag, the entry price is set to the low of the current bar.
For a bearish flag, the entry price is set to the high of the current bar.
4. Stop Loss:
StopLoss: Determines the stop-loss level based on the entry price and the specified
riskRewardRatio . For a bullish flag, the stop-loss level is calculated by subtracting the
difference between the high and low of the current bar multiplied by the riskRewardRatio from the low of the current bar. For a bearish flag, the stop-loss level
is calculated similarly but added to the high of the current bar.
5. Take Profit Levels:
Three take-profit levels ( takeProfit1, takeProfit2, takeProfit3 ) are calculated based on
the entry price, stop-loss level, and specified take-profit ratios ( takeProfit1Ratio,
takeProfit2Ratio, takeProfit3Ratio ).
6. Plotting Signals and Levels:
Bullish and bearish flag patterns are plotted using triangle shapes ( shape.triangleup for
bullish and shape.triangledown for bearish) above or below the bars, respectively.
Entry, stop-loss, and take-profit levels are plotted using horizontal lines ( line.new )
with different colors and styles. Entry and stop-loss levels are labeled with "Entry" and "SL",
respectively, while take-profit levels are labeled with "TP 1", "TP 2", and "TP 3".
The colors for bullish flags are white for entry, red for stop-loss, and green for take-profit levels. For bearish flags, the colors are the same, but the labels are plotted above the bars.
7. Label Placement:
Labels for entry, stop-loss, and take-profit levels are placed a distance of 4 bars to the right
of the entry price using bar_index + 4 .
This indicator is intended to help traders identify flag patterns on price charts and visualize potential entry, stop-loss, and take-profit levels associated with these patterns.
Please use risk management and when TP1 is hit, move stoploss to breakeven .
T3 JMA KAMA VWMAEnhancing Trading Performance with T3 JMA KAMA VWMA Indicator
Introduction
In the dynamic world of trading, staying ahead of market trends and capitalizing on volume-driven opportunities can greatly influence trading performance. To address this, we have developed the T3 JMA KAMA VWMA Indicator, an innovative tool that modifies the traditional Volume Weighted Moving Average (VWMA) formula to increase responsiveness and exploit high-volume market conditions for optimal position entry. This article delves into the idea behind this modification and how it can benefit traders seeking to gain an edge in the market.
The Idea Behind the Modification
The core concept behind modifying the VWMA formula is to leverage more responsive moving averages (MAs) that align with high-volume market activity. Traditional VWMA utilizes the Simple Moving Average (SMA) as the basis for calculating the weighted average. While the SMA is effective in providing a smoothed perspective of price movements, it may lack the desired responsiveness to capitalize on short-term volume-driven opportunities.
To address this limitation, our T3 JMA KAMA VWMA Indicator incorporates three advanced moving averages: T3, JMA, and KAMA. These MAs offer enhanced responsiveness, allowing traders to react swiftly to changing market conditions influenced by volume.
T3 (T3 New and T3 Normal):
The T3 moving average, one of the components of our indicator, applies a proprietary algorithm that provides smoother and more responsive trend signals. By utilizing T3, we ensure that the VWMA calculation aligns with the dynamic nature of high-volume markets, enabling traders to capture price movements accurately.
JMA (Jurik Moving Average):
The JMA component further enhances the indicator's responsiveness by incorporating phase shifting and power adjustment. This adaptive approach ensures that the moving average remains sensitive to changes in volume and price dynamics. As a result, traders can identify turning points and anticipate potential trend reversals, precisely timing their position entries.
KAMA (Kaufman's Adaptive Moving Average):
KAMA is an adaptive moving average designed to dynamically adjust its sensitivity based on market conditions. By incorporating KAMA into our VWMA modification, we ensure that the moving average adapts to varying volume levels and captures the essence of volume-driven price movements. Traders can confidently enter positions during periods of high trading volume, aligning their strategies with market activity.
Benefits and Usage
The modified T3 JMA KAMA VWMA Indicator offers several advantages to traders looking to exploit high-volume market conditions for position entry:
Increased Responsiveness: By incorporating more responsive moving averages, the indicator enables traders to react quickly to changes in volume and capture short-term opportunities more effectively.
Enhanced Entry Timing: The modified VWMA aligns with high-volume periods, allowing traders to enter positions precisely during price movements influenced by significant trading activity.
Improved Accuracy: The combination of T3, JMA, and KAMA within the VWMA formula enhances the accuracy of trend identification, reversals, and overall market analysis.
Comprehensive Market Insights: The T3 JMA KAMA VWMA Indicator provides a holistic view of market conditions by considering both price and volume dynamics. This comprehensive perspective helps traders make informed decisions.
Analysis and Interpretation
The modified VWMA formula with T3, JMA, and KAMA offers traders a valuable tool for analyzing volume-driven market conditions. By incorporating these advanced moving averages into the VWMA calculation, the indicator becomes more responsive to changes in volume, potentially providing deeper insights into price movements.
When analyzing the modified VWMA, it is essential to consider the following points:
Identifying High-Volume Periods:
The modified VWMA is designed to capture price movements during high-volume periods. Traders can use this indicator to identify potential market trends and determine whether significant trading activity is driving price action. By focusing on these periods, traders may gain a better understanding of the market sentiment and adjust their strategies accordingly.
Confirmation of Trend Strength:
The modified VWMA can serve as a confirmation tool for assessing the strength of a trend. When the VWMA line aligns with the overall trend direction, it suggests that the current price movement is supported by volume. This confirmation can provide traders with additional confidence in their analysis and help them make more informed trading decisions.
Potential Entry and Exit Points:
One of the primary purposes of the modified VWMA is to assist traders in identifying potential entry and exit points. By capturing volume-driven price movements, the indicator can highlight areas where market participants are actively participating, indicating potential opportunities for opening or closing positions. Traders can use this information in conjunction with other technical analysis tools to develop comprehensive trading strategies.
Interpretation of Angle and Gradient:
The modified VWMA incorporates an angle calculation and color gradient to further enhance interpretation. The angle of the VWMA line represents the slope of the indicator, providing insights into the momentum of price movements. A steep angle indicates strong momentum, while a shallow angle suggests a slowdown. The color gradient helps visualize this angle, with green indicating bullish momentum and purple indicating bearish momentum.
Conclusion
By modifying the VWMA formula to incorporate the T3, JMA, and KAMA moving averages, the T3 JMA KAMA VWMA Indicator offers traders an innovative tool to exploit high-volume market conditions for optimal position entry. This modification enhances responsiveness, improves timing, and provides comprehensive market insights.
Enjoy checking it out!
---
Credits to:
◾ @cheatcountry – Hann Window Smoothing
◾ @loxx – T3
◾ @everget – JMA
[SCOPO]Scalping BotEnglish, German is found Below
Scalping Indicator (5min Mostly)
- An Indicator that Creates Possible Trades, created on MA's, Volumebased Support and Ressistance and MACD, The Take Profits are created by a Simple Support and Ressitance Indicator (Built In)
- The Indicator sends with the Alert Function Buy and Sell Signals
- These Signals exists from 3 Entrys, 5 Take Profits and 1 Additional Take Profit who should be used after Entry 2/3 has been filled
- If a Signal gets Invalid or an Entry has been filled ,there comes a new Alert
- The Indicator Plots Lines on the Chart for TP/SL and has an Integrated Backtester table
If you got Questions pls Contact me via PM!
Update Rolled out Today (2.9.2022)
- Its now possible to set your own choosen minimal TP, before was 0.3 % and the next Ressistance above would have been taken for longs
- FilterMA can now be choosen from Different MA's via Dropdown menu
- Length of FilterMA can now be set by user
- Those Changes have been done to make it usefull for higher Timeframes too
German
Scalping Indikator
- Kurzbeschreibung: Ein Indikator der mit EMA & Macd und Volumenbasierten Supports/Ressistance Long - & Shorttrades vorschlägt
- Der Indikator sendet mit der Alarm Funktion Kauf und Verkaufsignale
Diese Signale bestehen aus 3 Entrys, 5 Take Profits sowie 1 Additional Take Profit der Aktiv wird nachdem der Entry 2 / 3 gefüllt wurde
Sollte ein Signal Invalidiert werden dann kommt ein erneuter Alarm
Sollte der 1.Entry gefüllt werden dann kommt auch ein Alarm
- Der Indikator gibt visuell auf dem Chart Linien für TP/SL wieder und besitzt auch ein Integriertes Info Fenster für ehemalige Trades.
- Die TP's werden durch eine eingebaute Support/Ressistance Funktion ausgewählt.
Alle verbesserungsvorschläge bitte per PN an @ridicolous
Update vom 2.9.2022
- Es wurde die möglichkeit mindest TP's zu setzen hinzugefügt
- Die FilterEMA kann nun aus einer Auswahl verschiedener MA's ausgewählt werden
- FilterMA längen können nun angepasstwerden
- Diese Aenderungen wurden hinzugefügt um das Skript auch auf höheren Timeframes laufen lassen zu können
Self-Optimizing RSI Strategy [Kioseff Trading]Hello!
Introducing the Self-Optimizing RSI Strategy.
The indicator tests up to 800 RSI strategies simultaneously, looping through arrays, and auto plots the best performing parameter set.
The image above shows the result of 800 RSI strategies concurrently.
The table oriented bottom right shows the performance and risk metrics of the best performing RSI system tested across the bar set. Additionally, the conditions for entry and exit are displayed; for the image - a long entry system predicated on RSI crossunders and exit system predicated on a 1% TP and 2% SL are shown.
The indicator calculates numerous risk and performance metrics.
Calculated metrics include:
RSI Parameters
RSI Cross Entry Level
Total Trades
Win Rate
Avg. Gain for Winning Trades
Max Pain
PnL (Cumulative Performance)
Profit Factor
Avg. Loss for Losing Trades
Ratio Avg. Win / Avg. Loss
Avg. Bars in Trade
Max Drawdown
Current Drawdown
Open Position PnL
"Dynamic" indicates the performance of self-optimizing RSI system was tested.
The image above shows the performance of the greatest-performing RSI system - a fixed set of parameters - when adhering to a 1% TP and 2% fixed SL.
Trailing Stops and Profit-Taking Limit orders can be set/simulated.
The image above shows a dynamic entry level - plotted as a purple, non-transparent line.
The entry level "self-optimizes" to mimic the best performing RSI system at current time.
The image above exemplifies the functionality for all horizontal lines plotted on the chart.
The average RSI level achieved subsequent a profitable trade is shown.
The average RSI level achieved subsequent a losing trade is shown.
The entry level for RSI crossunders/crossovers is shown.
The image above show the Self-Optimizing RSI indicator recording entries & exits; gains & losses, for each executed trade.
You can "verify" trades manually.
Blue boxes reflect an entered position.
Green boxes reflect a closed, profitable trade.
Red boxes reflect a close, losing trade.
The percentage gain for a profitable trade is appended to green boxes; the percentage loss for a losing trade is appended to red boxes.
The Self-Optimizing RSI indicator plots off the chart; however, percentage gains/losses are measured against price, not RSI.
Boxes correlate to the interval a trade was entered/exited on.
The indicator hosts various methods to filter the outcome for testing.
For instance, you can:
Use trailing stops or fixed stop losses
Test RSI crossunders and crossovers
Configure the RSI settings that are tested (i.e. RSI 2 - 9, RSI 14 - 20, RSI 50 - 57)
Test short-based RSI Systems and long-based RSI systems
Simulate limit orders (Exit intrabar at fixed stop losses or trailing stop losses; exit intrabar at profit targets)
Require all tested RSIs to trend above or below their respective average (i.e. all RSIs must trend above/below their 50-interval EMA values. SMAs can also be used)
Use external indicators and require a user-defined value be exceeded, measured below, or that price exceed or measure below an indicator. The Self-Optimizing RSI indicator incorporates a few built-in technical indicators - ADX, %k, MFI, CMFI, and RSI. Consequently, you can require these indicators to measure above/below a specified level prior to entry. Additionally, you can supplement an extrinsic indicator (anything custom coded with plot values) to the entry logic for the Self-Optimizing RSI indicator. I'll show an example shortly.
Adjust the time window that's tested.
Adjust PT and SL percentages.
Override plot an RSI system to procure thorough statistics.
Require a symbol to measure above/Below or equal to a particular price level to “validate” a Long/Short entry signal. You can retrieve any data hosted by TradingView and require it measure above/below a user-defined level prior to entry. For instance, you can select "$VIX", and require the ticker to measure less than $30 prior to long/short entry. If "$VIX" measures greater than $30 prior to a long/short signal the position will not open. Alternatively, you can require a symbol to measure above a user-defined price prior to entry. If the retrieved ticker doesn't measure above the user-defined level prior to entry a trade will not open.
Use trailing stops or fixed stop losses
The image above shows results for 800 short-based RSI systems - using a trailing stop loss.
Test RSI crossunders and crossovers
The image shows results for 800 long-based RSI systems. Positions are entered subsequent to RSI crossovers.
You can select which RSI strategies are tested - you aren't not limited to testing RSI 2 - RSI 9 (:
Simulate limit orders (Exit intrabar at fixed stop losses or trailing stop losses; exit intrabar at profit targets)
The image above shows performance test results when exiting during the interval subsequent to the profit target being exceeded.
The image above shows performance test results when exiting during the interval subsequent to the stop loss being exceeded.
Require all tested RSIs to trend above or below their respective average (i.e. all RSIs must trend above/below their 50-interval EMA values. SMAs can also be used)
The image above shows an RSI EMA in addition to prerequisite condition. For each RSI strategy tested, the RSI used for the strategy must measure above an EMA of its values prior to entry. You can require RSI to measure below an EMA of its values prior to entry, use an SMA, and change the length of the MA used.
Use external indicators and require a user-defined value be exceeded, measured below, or that price exceed or measure below an indicator. The Self-Optimizing RSI indicator incorporates a few built-in technical indicators - ADX, %k, MFI, CMFI, and RSI. Consequently, you can require these indicators to measure above/below a specified level prior to entry. Additionally, you can supplement an extrinsic indicator (anything custom coded with plot values) to the entry logic for the Self-Optimizing RSI indicator. I'll show an example shortly.
The image above shows me requiring the ADX indicator to measure above "20" prior to long entry. Any of the built-indicators can be used with similar conditions; you can implement a custom-coded indicator for trade logic.
Additionally, you can supplement an extrinsic indicator (anything custom coded with plot values) to the entry logic for the Self-Optimizing RSI indicator.
The image above shows me retrieving the value for Volume Profile Point of Control - a TradingView coded indicator.
Consequently, I can require price to measure above/below the session's Poc prior to RSI long/short entry.
You can use this feature with any custom coded indicator providing historical plot values - something you or a favored author have coded.
]Adjust PT and SL percentages
The image above shows adjusted TP & SL percentages - optimize and reward/risk ratio you'd like (:
Override plot an RSI system to procure thorough statistics.
The image above shows manually plotted RSI parameters and a corresponding stat sheet.
Require a symbol to measure above/Below or equal to a particular price level to “validate” a Long/Short entry signal. You can retrieve any data hosted by TradingView and require it measure above/below a user-defined level prior to entry. For instance, you can select "$VIX", and require the ticker to measure less than $30 prior to long/short entry. If "$VIX" measures greater than $30 prior to a long/short signal the position will not open. Alternatively, you can require a symbol to measure above a user-defined price prior to entry. If the retrieved ticker doesn't measure above the user-defined level prior to entry a trade will not open.
The image above shows me requiring the ticker "$VIX" to measure below $30 prior to long/short entry. If %VIS measures greater than $30 when a long/short signal triggers a position will not be opened. Further refine your trading system with this feature - exploit correlations.
Adjust the time window that's tested.
The image above shows configurable start and end dates for the optimization period.
You won't be able to test 800 RSI strategies concomitantly on a 20,000 bar data set.
Consequently, for large data sets (intrasession data) you will have to narrow the optimization window to test a larger number of combinations.
You can test 80 (loads on all data sets), 144 (loads on all data sets), 264 (loads on ~15,000 bar data sets), 312 (loads on ~11,500 bar data sets) and 800 (loads on ~4950 bar data sets)combinations simultaneously. You can test 800 RSI strategies simultaneously on intrasession data; however, you'll likely have to narrow the tested time window.
I recently published a bar count script titled "Bar Count for Backtesting", you can access the script here:
The above script is useful for quickly calculating the number of bars in a time window, or the date for a bar that is "x" number of bars back. Therefore, implementing these scripts cooperatively should improve date selection efficiency (not arbitrarily selecting test start & end dates that fail to load).
I included a tool tip describing the near-maximum bars in a data set that the higher numbers of simultaneous RSI strategies can be tested on.
More to come; enjoy!
(P.S. The script uses private libraries and, consequently, is unable to be published open source)
An optimization script is best implemented to discover what won't work, not what will work. The best performing "optimized" parameters are not a guaranteed profitable investment system. While we may see an exceptionally positive performance for a set of parameters, it's impossible to know how much of that performance is the beneficiary of market noise in the absence of additional testing. Most market moves are noise - irreplicable sequences that offer no predictive utility - and most "good" backtests overwhelmingly benefit from these irreplicable sequences. An investor unfamiliar with this concept may be lead to believe they have found a valid correlation between an indicator sequence and subsequent price movement, despite the correlation being illusory.
Consequently, it should be assumed that the best performing parameters strongly benefitted from market noise and will not work in a live market - until further rigorous statistical tests are performed on an investment system built around the best performing parameters. This includes out-of-sample, in-sample, and forward testing in addition to testing negatively correlated, positively correlated and zero-correlation assets; testing additional assets should be treated as prerequisite to live implementation.
Of course, all trading strategies, even one's that methodically exploit a valid correlation/replicable sequence, will benefit from market noise - it's impossible to avoid. However, a "legit" trading strategy has a chance to work on future price data, while an overoptimized strategy will fail miserably on new price data!
An overoptimized strategy is virtually guaranteed to have a better backtest performance than a valid strategy. The overoptimized strategy will fail in a live market while the valid strategy has a chance of working. So, should you notice the best performing RSI parameters, be sure to build a comprehensive trading system around the parameters and perform additional tests. This is the only way to know if the optimized parameters will truly work in a live market!
Unfortunately, they often will not!
This publication does not constitute investment advice.