Session High/LowSession High Low
Trading Sessions
Forex Sessions (oder Futures Sessions, je nachdem, was du handelst)
Pine Script Indicator
Intraday Levels
Market Sessions
High Low Lines
Day Trading Tools
Indikator dan strategi
EMA 7/21 + SuperTrend INDICADOR CREADO PARA MI ESTRATEGIA That sounds like a complex and multi-layered trading indicator you've developed! Combining an Exponential Moving Average (EMA) crossover with an Average Directional Index (ADX) filter, a Volume filter, and a Supertrend for overall trend confirmation can certainly help to filter out false signals and potentially increase the reliability of your entry and exit points.Here's a breakdown of the components you're using and why this combination can be powerful:📊 Indicator Components and Their Roles1. 7/21 EMA Crossover (Signal Generator)The $7$-period EMA and $21$-period EMA crossover is a common strategy used to generate initial buy or sell signals.Buy Signal: The short-term EMA (7) crosses above the long-term EMA (21).Sell Signal: The short-term EMA (7) crosses below the long-term EMA (21).2. ADX DI Filter (Momentum and Direction)The Average Directional Index (ADX) and its directional indicators ($+DI$ and $-DI$) are key to confirming the strength and direction of the move.Directional Confirmation: The EMA crossover must be confirmed by the appropriate directional index. For a buy, the $+DI$ should be above the $-DI$. For a sell, the $-DI$ should be above the $+DI$.Trend Strength ( NYSE:ADX $): A rising NYSE:ADX $ (typically above 20 or 25) suggests the current trend has sufficient momentum, making the signal more reliable.3. Volume Filter (Conviction)Adding a Volume filter ensures that the price movement accompanying the EMA crossover is supported by significant trading activity.Confirmation: A strong signal (buy or sell) is often accompanied by above-average volume. This suggests that market participants are actively supporting the move, adding conviction to the trade.4. Supertrend (Overall Trend Confirmation)The Supertrend indicator is based on the Average True Range (ATR) and is excellent for identifying the dominant market trend.Trend Alignment: The EMA crossover signal should align with the Supertrend's current signal. For a buy signal, the price should be above the Supertrend line (green). For a sell signal, the price should be below the Supertrend line (red). This helps ensure you are trading with the prevailing trend.📈 Why This is a Powerful CombinationYour indicator is essentially a multi-stage confirmation system:Speed (7/21 EMA): Generates a fast, responsive signal.Momentum (ADX DI): Confirms the direction and strength of the signal.Conviction (Volume): Validates the signal with market participation.Safety/Trend (Supertrend): Ensures the trade is in the direction of the long-term trend.The Informative Panel is a great feature, as it simplifies the decision-making process by summarizing the findings of all these components—e.g., "BUY: EMA Crossover $\checkmark$, +DI > -DI $\checkmark$, High Volume $\checkmark$, Supertrend Green $\checkmark$."💡 Next Steps for RefinementTo finalize and test this indicator, you may want to consider:Parameter Optimization: The best settings for the ADX level (e.g., 20 vs. 25) and the Supertrend ATR parameters may need to be optimized for the specific asset (e.g., stocks, forex) and timeframe you are using.Exit Strategy: Since this primarily focuses on entries, define clear Stop-Loss (perhaps based on the Supertrend line or a recent swing low/high) and Take-Profit (e.g., a fixed Risk/Reward ratio or previous resistance/support levels) rules.Would you like to explore specific parameters for any of these components or look into ways to backtest your strategy?
paigep.llc - SuperMA
SuperMA is a multi-layered moving-average and candle-coloring system that combines SMA, EMA, and optional HMA logic to help traders visualize trend shifts, pullbacks, and momentum changes in a clean, structured way.
The script includes multiple modules: trend-based moving averages, pullback signals, exit logic, and an optional HMA cross engine.
📌 Core Features
1. Full SMA + EMA Framework
The indicator plots multiple moving averages (8, 9, 13, 20, 50, 200) using both SMA and EMA calculations. Each line automatically colors bullish or bearish based on its relationship to the 200-period baseline. Users can toggle SMAs and EMAs independently for clearer chart control.
2. Main Trend Entry & Exit Logic (8×200 and 8×20)
Built-in crossover logic detects:
Main Entry: SMA 8 crossing above/below EMA 200
Main Exit: SMA 8 and SMA 20 cross (with an option to choose which SMA is treated as the “fast” leg)
A “first exit only” option allows the script to ignore additional exit signals until a new trend regime begins.
3. Pullback Module (20 SMA Interaction)
Pullback entries and exits occur when price crosses the 20 SMA during existing trend conditions.
This includes:
Pullback entries through the 20 SMA
Pullback exits back across the 20 SMA
Labels and candle colors are available for all pullback events.
4. Optional HMA Cross Module
A separate module allows traders to use two Hull Moving Averages (HMA) with customizable:
Lengths
Independent timeframes
Line colors
Cross-based entries and exits
This module has its own events, labels, and optional candle coloring.
5. Advanced Candle Coloring System
Candle coloring is layered in priority order, based on:
Main trend entries
Main exits
HMA entries
HMA exits
Pullback entries
Pullback exits
Trend-only candles (based on SMA 8 relative to EMA 200)
Users may also independently color wicks and borders.
6. Configurable Alerts (Fully Decoupled from Visuals)
Alerts are available for all major events, including:
Main Entries (8×200)
Main Exits (8×20)
Pullback Entries and Exits
HMA Entries and Exits
Bull or Bear Trend candles
Any colored candle event
Alerts can fire on bar close only or intrabar, depending on user preference.
Use Cases
SuperMA helps traders visualize:
Trend direction using SMA/EMA structure
Momentum shifts through HMA crosses
Pullback zones around the 20 SMA
Early regime transitions based on the 8×200 relationship
Candle-level context through color-coded bars
The indicator works across all markets and timeframes.
⚠️ Note
This tool is for visual and analytical assistance only. It does not guarantee future performance and should be combined with additional analysis and risk management.
Josh FXJoshFX Multi-Timeframe Levels & Fair Value Gap Indicator
This powerful TradingView indicator provides a comprehensive view of key market levels and trends across multiple timeframes. Designed for traders who want precise entries and market context, it includes:
Previous Daily Levels: Automatically marks the previous day’s High, Low, and 50% midpoint.
Multi-Timeframe Trend: Displays the trend direction for 5-minute, 15-minute, 1-hour, and 4-hour charts directly on your current chart.
Daily Candle Display: Shows the current daily candle for quick visual reference.
Pivot Points: Accurately marks technical highs and lows (pivot points) to the exact unit on the chart.
Fair Value Gaps (FVGs): Highlights areas of imbalance for potential high-probability trade setups.
JoshFX Telegram Watermark: Includes branding for the JoshFX community.
This all-in-one tool is perfect for traders combining price action, liquidity concepts, and multi-timeframe analysis to find high-quality setups efficiently.
Long-Term Strategy: 1-Year Breakout + 6-Month ExitDescripción (Description): (Copia y pega todo lo que está dentro del recuadro de abajo)
Description
This is a long-term trend-following strategy designed to capture major market moves while filtering out short-term noise. It is based on the classic principle of "buying strength" (Breakouts) and allowing profits to run, while cutting losses when the medium-term trend reverses.
How it Works (Logic)
1. Entry Condition (Long Only): The strategy looks for a significant display of strength. It enters a Long position only when two conditions are met simultaneously:
Price Breakout: The closing price exceeds the highest high of the last 252 trading days (approximately 1 year). This ensures we are entering during a strong momentum phase.
Trend Filter: The SuperTrend indicator (Settings: ATR 10, Factor 3.0) must be bullish. This acts as a confirmation filter to avoid false breakouts in choppy markets.
2. Exit Condition: The strategy uses a trailing stop based on price action, not a fixed percentage.
It closes the position when the price closes below the lowest low of the last 126 trading days (approximately 6 months).
This wide exit allows the trade to "breathe" during normal market corrections without exiting the position prematurely.
Settings & Risk Management
Capital Usage: The script is configured to use 10% of equity per trade to reflect realistic risk management (compounding).
Commissions: Included at 0.1% to simulate real trading costs.
Slippage: Included (3 ticks) to account for market execution variability.
Best Use: This strategy is intended for higher timeframes (Daily or Weekly) on trending assets like Indices, Crypto, or Commodities.
LiquidityPulse RSI Candle Strength MomentumLiquidity-Pulse RSI Candle Strength Momentum is a multifunctional and original candle-analysis tool designed to highlight the potential internal strength of each candle using a combination of body size and volume.
To view the candle-strength scores clearly: right-click on the chart, go to Settings, and in the Symbol tab untick Body, Borders and Wicks.
Candle Strength Scores
The indicator calculates the average body size and average volume over a user-defined lookback period. Each candle is then compared to these averages, and the indicator combines relative body expansion and relative volume expansion with a square-root calculation to create a (normalised) candle-strength score from 1 to 10.
10 – exceptionally strong compared to the lookback average (large body size and volume)
1 – very weak compared to the lookback average (small body size and volume)
Bullish and bearish candles are evaluated independently, producing separate bull-strength and bear-strength scores.
Optional ATR and volume floors can be enabled to restrict strength scoring to candles that exceed a minimum volatility or participation threshold. This helps users who prefer to filter out low-impact candles during quiet market periods. This option can be enabled or adjusted in the settings but is turned off by default.
Candle Colours
This tool also shows candles coloured based on the candle-strength scores (10 colours in each theme), which makes it easier to visualise the scores and see whether the candle score was high or not. There are several options in the 'colour theme' dropdown menu in the settings. Users can also customise all colours manually.
RSI Candle Strength Arrows
The Relative Strength Index is a long-established momentum tool that calculates the ratio of average upward moves to average downward moves over a defined period, allowing traders to identify potential overbought and oversold market conditions where momentum may be stretched. As well as this, strong early momentum and participation are often associated with more sustained moves.
This indicator combines this methodology and provides optional arrows that appear only when candle strength and RSI conditions align:
– A candle meets or exceeds a chosen strength threshold
– RSI has recently reached an overbought or oversold level
– The candle direction matches the expected momentum shift
For example, if price has reached an oversold RSI level and a strong bullish candle forms (high candle-strength number), an upside arrow may plot.
Users can customise the RSI oversold and overbought thresholds, the minimum candle-strength threshold, and how many bars back the RSI condition must have occurred in the settings.
These arrows are not buy or sell signals but instead highlight rare moments where strong candle behaviour aligns with meaningful RSI extremes. This is useful to users because it allows the candle-strength logic to be applied only when momentum is genuinely stretched, filtering out noise and focusing attention on the most statistically significant market moves.
This indicator brings together a quantitative candle-strength model and a momentum-based RSI filter to give users a clearer view of how individual candles behave relative to their recent environment, while also highlighting when those movements occur during meaningful shifts in market momentum. By combining both forms of analysis, the tool helps traders distinguish ordinary price changes from potentially significant structural behaviour.
How traders can use this indicator
– Stronger candle scores in the trend direction can confirm continuation pressure.
– Powerful opposing candles appearing at RSI extremes may signal potential reversals or exhaustion points.
– If breakouts occur with high candle scores, price may be more likely to follow through.
– Weak candles with low scores help traders avoid false signals or low-quality setups.
– Candle-strength scoring helps users quickly interpret both volume and candle-body behaviour without manual analysis.
Open source, if anyone has any ideas on how to make the script better or have any questions please let me know :)
Disclaimer
This indicator is provided for educational and analytical purposes only and should not be interpreted as financial advice or a recommendation to buy or sell any asset. The candle-strength values displayed by this tool are not literal or definitive measures of market strength; they are derived from a custom mathematical model designed to highlight relative differences in candle behaviour. These values should be viewed as a simplified representation of candle dynamics, not as an objective or universal measure of strength.
Users should be aware that this calculation does not replace the importance of analysing real traded volume, order flow, liquidity conditions, or broader market context. As with any technical tool, results should be considered alongside other forms of analysis, and past performance does not guarantee future outcomes. Use at your own discretion and risk.
1小时区域背景颜色// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © LuxAlgo
//@version=5
indicator("Sessions ", "LuxAlgo - Sessions", overlay = true, max_bars_back = 500, max_lines_count = 500, max_boxes_count = 500, max_labels_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
//Session A
show_sesa = input(true, '', inline = 'sesa', group = 'Session A')
sesa_txt = input('New York', '', inline = 'sesa', group = 'Session A')
sesa_ses = input.session('1300-2200', '', inline = 'sesa', group = 'Session A')
sesa_css = input.color(#ff5d00, '', inline = 'sesa', group = 'Session A')
sesa_range = input(true, 'Range', inline = 'sesa_overlays', group = 'Session A')
sesa_tl = input(false, 'Trendline', inline = 'sesa_overlays', group = 'Session A')
sesa_avg = input(false, 'Mean', inline = 'sesa_overlays', group = 'Session A')
sesa_vwap = input(false, 'VWAP', inline = 'sesa_overlays', group = 'Session A')
sesa_maxmin = input(false, 'Max/Min', inline = 'sesa_overlays', group = 'Session A')
//Session B
show_sesb = input(true, '', inline = 'sesb', group = 'Session B')
sesb_txt = input('London', '', inline = 'sesb', group = 'Session B')
sesb_ses = input.session('0700-1600', '', inline = 'sesb', group = 'Session B')
sesb_css = input.color(#2157f3, '', inline = 'sesb', group = 'Session B')
sesb_range = input(true, 'Range', inline = 'sesb_overlays', group = 'Session B')
sesb_tl = input(false, 'Trendline', inline = 'sesb_overlays', group = 'Session B')
sesb_avg = input(false, 'Mean', inline = 'sesb_overlays', group = 'Session B')
sesb_vwap = input(false, 'VWAP', inline = 'sesb_overlays', group = 'Session B')
sesb_maxmin = input(false, 'Max/Min', inline = 'sesb_overlays', group = 'Session B')
//Session C
show_sesc = input(true, '', inline = 'sesc', group = 'Session C')
sesc_txt = input('Tokyo', '', inline = 'sesc', group = 'Session C')
sesc_ses = input.session('0000-0900', '', inline = 'sesc', group = 'Session C')
sesc_css = input.color(#e91e63, '', inline = 'sesc', group = 'Session C')
sesc_range = input(true, 'Range', inline = 'sesc_overlays', group = 'Session C')
sesc_tl = input(false, 'Trendline', inline = 'sesc_overlays', group = 'Session C')
sesc_avg = input(false, 'Mean', inline = 'sesc_overlays', group = 'Session C')
sesc_vwap = input(false, 'VWAP', inline = 'sesc_overlays', group = 'Session C')
sesc_maxmin = input(false, 'Max/Min', inline = 'sesc_overlays', group = 'Session C')
//Session D
show_sesd = input(true, '', inline = 'sesd', group = 'Session D')
sesd_txt = input('Sydney', '', inline = 'sesd', group = 'Session D')
sesd_ses = input.session('2100-0600', '', inline = 'sesd', group = 'Session D')
sesd_css = input.color(#ffeb3b, '', inline = 'sesd', group = 'Session D')
sesd_range = input(true, 'Range', inline = 'sesd_overlays', group = 'Session D')
sesd_tl = input(false, 'Trendline', inline = 'sesd_overlays', group = 'Session D')
sesd_avg = input(false, 'Mean', inline = 'sesd_overlays', group = 'Session D')
sesd_vwap = input(false, 'VWAP', inline = 'sesd_overlays', group = 'Session D')
sesd_maxmin = input(false, 'Max/Min', inline = 'sesd_overlays', group = 'Session D')
//Timezones
tz_incr = input.int(0, 'UTC (+/-)', group = 'Timezone')
use_exchange = input(false, 'Use Exchange Timezone', group = 'Timezone')
//Ranges Options
bg_transp = input.float(90, 'Range Area Transparency', group = 'Ranges Settings')
show_outline = input(true, 'Range Outline', group = 'Ranges Settings')
show_txt = input(true, 'Range Label', group = 'Ranges Settings')
Weekday HighlighterThis is a simple indicator that highlights specific weekdays on the chart.
You can choose which weekdays to highlight and optionally use different colors for each day. It is useful for visually separating sessions such as Mondays, Fridays, or any custom trading day you want to focus on.
ただ単に曜日を指定してハイライトするインジです。
Volume Weighted Average Price - 6 band by buckstrdrstandard VWAP improved to allow 6 bands as standard
Daily Gap Highlighter (Partial Gaps + Age Filter)Daily Gap Highlighter – 部分的な窓の未埋めエリアを自動描画
このインジケーターは、日足チャートにおける窓(ギャップ)を自動で検出し、
その後の値動きで一部だけ埋まった場合も、埋め残し部分だけを正確に描画するツールです。
🔍 主な特徴
日足ベースで窓を検出
上窓:当日の安値 > 前日の高値
下窓:当日の高値 < 前日の安値
部分的な窓埋めにも対応
例:窓の90%が埋まった → 残り10%だけ窓として残す
完全に埋まった窓は自動的に削除
窓の“鮮度フィルター”を搭載
指定した日数(デフォルト90日)を経過した古い窓は自動で非表示にできます。
トレンド転換ポイントの可視化に最適
未埋めギャップは多くのトレーダーが注目する価格帯であり、
サポート/レジスタンスとして高い機能を持ちます。
📈 活用例
スイングトレードでのターゲット設定
窓埋めの完了・未完了の判定
重要水平ラインとしての分析
長期的な価格メモリーの可視化
日足チャートを使うトレーダーの方にとって、
“本当に意味のある未埋め窓だけ”が残る実用的なインジケーターです。
🇺🇸 English Description (for TradingView Community)
Daily Gap Highlighter – Precise Partial Gap Visualization
This indicator automatically detects daily price gaps and visualizes them on the chart —
but with one powerful upgrade:
It keeps only the unfilled portion of the gap.
🔍 Key Features
Daily-based gap detection
Up Gap: Today’s Low > Previous High
Down Gap: Today’s High < Previous Low
Partial gap filling supported
Example: If 90% of the gap has been filled,
→ Only the remaining 10% is still shown as an active gap.
Fully filled gaps are automatically removed
Gap “age filter” included
Automatically hide gaps older than a chosen number of days (default: 90).
Great for identifying key market levels
Unfilled gaps often act as strong support/resistance zones
and are widely watched by professional traders.
📈 Use Cases
Setting targets for swing trades
Determining whether a gap is filled or partially filled
Highlighting significant horizontal price levels
Visualizing long-term market memory zones
This tool is ideal for traders who want
a clean and accurate view of meaningful unfilled gaps only.
Daily Backtest Pivots Problem with the built-in Pivot Points Standard indicator in backtesting/replay mode:
The default "Pivot Points Standard" indicator is excellent on live charts, but it becomes completely unusable for proper backtesting or bar-replay because it always calculates and displays the current day’s pivot points (P, R1, R2, S1, S2, etc.) using the high/low/close of the still-forming current day — even when you're replaying historical bars.
Example:
When replaying or backtesting September 8 at 08:00 (Asian session), the indicator already shows the final R1, R2, S1, S2 for the entire September 8 daily candle, even though in real trading at that moment you would have no idea where the day will close or what the final daily range will be. This creates massive look-ahead bias and makes any strategy that uses daily pivots impossible to test realistically.
Desired behavior (historical accuracy):
During backtesting or bar replay, the indicator should only plot:
The previous day’s completed pivot levels (which were actually known at the start of the current day)
NO current-day pivot levels at all (or only plot them after the daily candle is closed)
Many custom pivot scripts already do exactly this (they only show the prior day’s levels throughout the current day), which is why people abandon the built-in indicator for backtesting.
ma_PLibrary "ma_P"
This library is made to expand traders moving average arsenal.
sma(src, length)
Parameters:
src (float)
length (simple int)
sma(src, length)
Parameters:
src (float)
length (int)
eit(src)
Parameters:
src (float)
ema(src, length)
Parameters:
src (float)
length (simple int)
ema(src, length)
Parameters:
src (float)
length (int)
ahma(src, length)
Parameters:
src (float)
length (simple int)
ahma(src, length)
Parameters:
src (float)
length (int)
bmf(src, length)
Parameters:
src (float)
length (simple int)
bmf(src, length)
Parameters:
src (float)
length (int)
cma(src, length)
Parameters:
src (float)
length (simple int)
cma(src, length)
Parameters:
src (float)
length (int)
dema(src, length)
Parameters:
src (float)
length (simple int)
dema(src, length)
Parameters:
src (float)
length (int)
dswf(src, length)
Parameters:
src (float)
length (simple int)
dswf(src, length)
Parameters:
src (float)
length (int)
evwma(src, length, volume)
Parameters:
src (float)
length (simple int)
volume (float)
evwma(src, length, volume)
Parameters:
src (float)
length (int)
volume (float)
esd(src, length)
Parameters:
src (float)
length (simple int)
esd(src, length)
Parameters:
src (float)
length (int)
frama(src, length)
Parameters:
src (float)
length (simple int)
frama(src, length)
Parameters:
src (float)
length (int)
flsma(src, len)
Parameters:
src (float)
len (simple int)
flsma(src, len)
Parameters:
src (float)
len (int)
gmma(src, length)
Parameters:
src (float)
length (simple int)
gmma(src, length)
Parameters:
src (float)
length (int)
hcf(src, length)
Parameters:
src (float)
length (simple int)
hcf(src, length)
Parameters:
src (float)
length (int)
hma(src, length)
Parameters:
src (float)
length (simple int)
hma(src, length)
Parameters:
src (float)
length (int)
jma(src, length)
Parameters:
src (float)
length (simple int)
jma(src, length)
Parameters:
src (float)
length (int)
kama(source, length, min_length, max_length)
Parameters:
source (float)
length (int)
min_length (int)
max_length (int)
kijun(src, length)
Parameters:
src (float)
length (simple int)
kijun(src, length)
Parameters:
src (float)
length (int)
lsma(src, length)
Parameters:
src (float)
length (simple int)
lsma(src, length)
Parameters:
src (float)
length (int)
lma(src, length)
Parameters:
src (float)
length (simple int)
lma(src, length)
Parameters:
src (float)
length (int)
mf(src, length)
Parameters:
src (float)
length (simple int)
mf(src, length)
Parameters:
src (float)
length (int)
mm(src, length)
Parameters:
src (float)
length (simple int)
mm(src, length)
Parameters:
src (float)
length (int)
smma(src, length)
Parameters:
src (float)
length (simple int)
smma(src, length)
Parameters:
src (float)
length (int)
ssma(src, length)
Parameters:
src (float)
length (simple int)
ssma(src, length)
Parameters:
src (float)
length (int)
swma(src, length)
Parameters:
src (float)
length (simple int)
swma(src, length)
Parameters:
src (float)
length (int)
tma(src, length)
Parameters:
src (float)
length (simple int)
tma(src, length)
Parameters:
src (float)
length (int)
tema(src, length)
Parameters:
src (float)
length (simple int)
tema(src, length)
Parameters:
src (float)
length (int)
tsf(src, length)
Parameters:
src (float)
length (simple int)
tsf(src, length)
Parameters:
src (float)
length (int)
varma(src, length)
Parameters:
src (float)
length (simple int)
varma(src, length)
Parameters:
src (float)
length (int)
vama(src, length)
Parameters:
src (float)
length (simple int)
vama(src, length)
Parameters:
src (float)
length (int)
vma(src, length)
Parameters:
src (float)
length (simple int)
vma(src, length)
Parameters:
src (float)
length (int)
vbma(src, length)
Parameters:
src (float)
length (simple int)
vbma(src, length)
Parameters:
src (float)
length (int)
vida(src, length)
Parameters:
src (float)
length (simple int)
vida(src, length)
Parameters:
src (float)
length (int)
qma(src, length)
Parameters:
src (float)
length (simple int)
qma(src, length)
Parameters:
src (float)
length (int)
rpma(src, len)
Parameters:
src (float)
len (simple int)
rpma(src, len)
Parameters:
src (float)
len (int)
rma(src, length)
Parameters:
src (float)
length (simple int)
rma(src, length)
Parameters:
src (float)
length (int)
rsrma(src, length)
Parameters:
src (float)
length (simple int)
rsrma(src, length)
Parameters:
src (float)
length (int)
zlema(src, length)
Parameters:
src (float)
length (simple int)
zlema(src, length)
Parameters:
src (float)
length (int)
selector(src, length, selectMA, min_length, max_length)
This function gives trader an instrument to test different kinds of moving averages on their strategy.
Parameters:
src (float)
length (simple int)
selectMA (string)
min_length (int)
max_length (int)
Returns: user selected moving average
selector(src, length, selectMA, min_length, max_length)
Parameters:
src (float)
length (int)
selectMA (string)
min_length (int)
max_length (int)
iQFFTLibrary "iQFFT"
TODO: add library description here
fft(x, y, dir)
Parameters:
x (array)
y (array)
dir (string)
fftPower(x, y)
Parameters:
x (array)
y (array)
fftFreq(N)
Parameters:
N (int)
My script//@version=5
indicator("LTF Multi-Condition BUY Signal (v5 clean)", overlay=true, max_labels_count=100, max_lines_count=100)
// ───────────────── INPUTS ─────────────────
pivot_len = input.int(4, "Pivot sensitivity (structure)", minval=2, maxval=12)
range_len = input.int(20, "Range lookback for breakout", minval=5)
htf_tf = input.timeframe("480", "HTF timeframe (8H+)")
reclaim_window = input.int(5, "Reclaim window (bars)", minval=1)
ema_fast_len = input.int(9, "EMA fast length")
ema_slow_len = input.int(21, "EMA slow length")
rsi_len = input.int(14, "RSI length")
rsi_pivot_len = input.int(4, "RSI pivot sensitivity")
rsi_div_lookback = input.int(30, "RSI divergence max lookback (bars)")
daily_vol_mult = input.float(1.0, "Daily volume vs SMA multiplier", step=0.1)
htf_vol_sma_len = input.int(20, "HTF volume SMA length")
require_reclaim = input.bool(true, "Require HTF reclaim")
use_aggressive_HL = input.bool(false, "Aggressive HL detection")
// ───────────────── BASE INDICATORS ─────────────────
emaFast = ta.ema(close, ema_fast_len)
emaSlow = ta.ema(close, ema_slow_len)
rsiVal = ta.rsi(close, rsi_len)
// ───────────────── DAILY CHECKS (VOLUME & OBV) ─────────────────
// Daily OBV and previous value
daily_obv = request.security(syminfo.tickerid, "D",
ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0))
daily_obv_prev = request.security(syminfo.tickerid, "D",
ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0) )
// Daily volume & SMA
daily_vol = request.security(syminfo.tickerid, "D", volume)
daily_vol_sma = request.security(syminfo.tickerid, "D", ta.sma(volume, 20))
daily_vol_ok = not na(daily_vol) and not na(daily_vol_sma) and daily_vol > daily_vol_sma * daily_vol_mult
daily_obv_ok = not na(daily_obv) and not na(daily_obv_prev) and daily_obv > daily_obv_prev
// ───────────────── HTF SUPPORT / RECLAIM ─────────────────
htf_high = request.security(syminfo.tickerid, htf_tf, high)
htf_low = request.security(syminfo.tickerid, htf_tf, low)
htf_close = request.security(syminfo.tickerid, htf_tf, close)
htf_volume = request.security(syminfo.tickerid, htf_tf, volume)
htf_vol_sma = request.security(syminfo.tickerid, htf_tf, ta.sma(volume, htf_vol_sma_len))
htf_bull_reject = not na(htf_high) and not na(htf_low) and not na(htf_close) and (htf_close - htf_low) > (htf_high - htf_close)
htf_vol_confirm = not na(htf_volume) and not na(htf_vol_sma) and htf_volume > htf_vol_sma
htf_support_level = (htf_bull_reject and htf_vol_confirm) ? htf_low : na
// Reclaim: LTF close back above HTF support within N bars
reclaimed_now = not na(htf_support_level) and close > htf_support_level and ta.barssince(close <= htf_support_level) <= reclaim_window
htf_reclaim_ok = require_reclaim ? reclaimed_now : true
// ───────────────── STRUCTURE: BOS & HL (CoC) ─────────────────
swingHighVal = ta.pivothigh(high, pivot_len, pivot_len)
swingLowVal = ta.pivotlow(low, pivot_len, pivot_len)
swingHighCond = not na(swingHighVal)
swingLowCond = not na(swingLowVal)
lastSwingHigh = ta.valuewhen(swingHighCond, swingHighVal, 0)
prevSwingHigh = ta.valuewhen(swingHighCond, swingHighVal, 1)
lastSwingLow = ta.valuewhen(swingLowCond, swingLowVal, 0)
prevSwingLow = ta.valuewhen(swingLowCond, swingLowVal, 1)
bos_bull = not na(prevSwingHigh) and close > prevSwingHigh
hl_confirm = not na(lastSwingLow) and not na(prevSwingLow) and lastSwingLow > prevSwingLow and ta.barssince(swingLowCond) <= 30
if use_aggressive_HL
hl_confirm := hl_confirm or (low > low and ta.barssince(swingLowCond) <= 12)
// ───────────────── RSI BULLISH DIVERGENCE ─────────────────
rsiLowVal = ta.pivotlow(rsiVal, rsi_pivot_len, rsi_pivot_len)
rsiLowCond = not na(rsiLowVal)
priceAtRsiLowA = ta.valuewhen(rsiLowCond, low , 0)
priceAtRsiLowB = ta.valuewhen(rsiLowCond, low , 1)
rsiLowA = ta.valuewhen(rsiLowCond, rsiVal , 0)
rsiLowB = ta.valuewhen(rsiLowCond, rsiVal , 1)
rsi_div_ok = not na(priceAtRsiLowA) and not na(priceAtRsiLowB) and not na(rsiLowA) and not na(rsiLowB) and
(priceAtRsiLowA < priceAtRsiLowB) and (rsiLowA > rsiLowB) and ta.barssince(rsiLowCond) <= rsi_div_lookback
// ───────────────── RANGE BREAKOUT ─────────────────
range_high = ta.highest(high, range_len)
range_breakout = ta.crossover(close, range_high)
// ───────────────── EMA CROSS / TREND ─────────────────
ema_cross_happened = ta.crossover(emaFast, emaSlow)
ema_trend_ok = emaFast > emaSlow
// ───────────────── FINAL BUY CONDITION ─────────────────
all_price_checks = bos_bull and hl_confirm and rsi_div_ok and range_breakout
all_filter_checks = ema_trend_ok and ema_cross_happened and daily_vol_ok and daily_obv_ok and htf_reclaim_ok
buy_condition = all_price_checks and all_filter_checks
// ───────────────── PLOTS & ALERT ─────────────────
plotshape(
buy_condition,
title = "BUY Signal",
location = location.belowbar,
style = shape.labelup,
text = "BUY",
textcolor = color.white,
color = color.green,
size = size.small)
plot(htf_support_level, title="HTF Support", color=color.new(color.green, 0), linewidth=2, style=plot.style_linebr)
alertcondition(buy_condition, title="LTF BUY Signal", message="LTF BUY Signal on {{ticker}} ({{interval}}) — all conditions met")
Pure Wyckoff V50R [Region Based]Pure Wyckoff V50R — Regional Wyckoff Volume-Price Structure Scanner
This script implements a semi-automatic Wyckoff volume–price analysis based purely on regional behaviour, not on single candles. Instead of trying to label every bar, it analyses the last N candles (default ≥ 50) and their volume distribution to estimate whether the market is in an accumulation, distribution or trend phase.
Main features:
🔍 Region-based structure detection
Scans the last regLen bars to find the trading range, then attempts to locate key Wyckoff points such as
SC (Selling Climax), AR, ST, Spring, UT, LPSY, and draws the SC–AR band when a structure is active.
⚖️ Supply–demand balance
Uses regional bullish vs bearish volume to show whether Demand > Supply, Supply > Demand, or Balanced for the current range.
🧠 Phase & decision panel
For the current bar the panel summarises:
overall structure (bullish / bearish / ranging),
approximate Wyckoff phase (e.g. “A phase: SC→AR rally”, “B phase: top distribution zone”, “Bottom testing zone”),
VSA-style bar reading (no supply, effort vs result, SOW, etc.),
current key signal (Spring / UT / LPSY / ST / Trend),
one-line short-term and long-term trading bias.
📊 Scoreboard
Simple scores for structure, volume and trend to give a quick “bullish / bearish / neutral” overview.
Recommended use:
Designed mainly for higher timeframes (Daily / 4H) where Wyckoff structures are clearer.
Parameters (window length, volume averages, multipliers) should be tuned to the instrument and timeframe.
This is a structure helper, not an automatic signal provider – always combine it with your own discretion and risk management.
Disclaimer: This script is for educational and analytical purposes only and does not constitute financial advice. Use at your own risk and feel free to share feedback or improvements.
CHPY vs Semiconductor Sector Comparison//@version=5
indicator("CHPY vs Semiconductor Sector Comparison", overlay=false, timeframe="W")
// CHPY
chpy = request.security("CHPY", "W", close)
plot((chpy/chpy -1)*100, color=color.new(color.blue,0), title="CHPY")
// SOXX (Semiconductor Index ETF)
soxx = request.security("SOXX", "W", close)
plot((soxx/soxx -1)*100, color=color.new(color.red,0), title="SOXX")
// SMH (Semiconductor ETF)
smh = request.security("SMH", "W", close)
plot((smh/smh -1)*100, color=color.new(color.green,0), title="SMH")
// NVDA
nvda = request.security("NVDA", "W", close)
plot((nvda/nvda -1)*100, color=color.new(color.orange,0), title="NVDA")
// AVGO
avgo = request.security("AVGO", "W", close)
plot((avgo/avgo -1)*100, color=color.new(color.purple,0), title="AVGO")
4H RSI Buy/Sell BotBelow is a clean TradingView Pine Script v5 bot that analyzes the 4-hour timeframe and triggers alerts based on RSI (even though you mentioned RCI—if you actually need RCI, tell me and I’ll rewrite it)




















