Reflex Oscillator - Dr. John EhlersHot off the press, I present this NEW "Reflex Oscillator" employing PSv4.0, originally formulated by Dr. John Ehlers for TASC - February 2020 Traders Tips. John Ehlers might describe it's novel characteristics as being a reversal sensitive near zero-lag averaging indicator retaining the CYCLE component. Also, I would add that irregardless of the sampling interval, this indicator has a bound range between +/-2.0 on "1 second" candles all the way up to "1 month" candle durations. This indicator also has a companion indicator entitled "TrendFlex Oscillator". I have published it in tandem with this one in my scripts profile.
One notable difference between this and the original formulation is that I have added an independent control for the Super Smoother. This "tweak" is enabled by applying the override and adjusting it's period. There is a "Post Smooth" input() that "tweaks" the internal Reflex EMA too. Keep in mind that my intention of adding tweaks is solely for experimentation with the original formulation.
I also added adjustable levels for those of you that may wish to employ alertcondition()s to this indicator somehow. Providing a more utilitarian approach, I created this with an easy to use reusable function named reflex(). As always, I have included advanced Pine programming techniques that conform to proper "Pine Etiquette". Being this is one of John Ehlers' first two simultaneously released indicators for 2020, I felt a few more bells and whistles were appropriate as a proper contribution to the Tradingview community.
Features List Includes:
Dark Background - Easily disabled in indicator Settings->Style for "Light" charts or with Pine commenting
AND much, much more... You have the source!
The comments section below is solely just for commenting and other remarks, ideas, compliments, etc... regarding only this indicator, not others. When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members, I may implement more ideas when they present themselves as worthy additions. As always, "Like" it if you simply just like it with a proper thumbs up, and also return to my scripts list occasionally for additional postings. Have a profitable future everyone!
Search in scripts for "Cycle"
Schaff Trend Cycle Strategy for XBTUSD 15m BacktestSchaff Trend Cycle Strategy for XBTUSD 15m Backtest
Zero-Lag Smoothed CycleOld indicator ! But its a simple trick to have a zero-lag smoothing effect, i think i did it because the smoothing was kinda asymmetrical with the detrended line. So even if the result appear quite good take into account that the detrended line isn't always correlated with the price.
Robust Cycle Measurement [Ehlers]The last of Ehlers Instantaneous Frequency Measurement methods.
This is a more robust version of this script.
I wrote it as a function, so you can simply copy and paste it into any script to add an adaptive period setting capability.
Cheers,
DasanC
Cosine, In-Phase & Quadrature IFM [Ehlers]Yet another method for determining the cycle of a market: this time, you have access to the two fastest and most accurate methods
as well as the option to average these methods together.
The controls are pretty straight forward:
Source lets you select the price data to perform calculations on (close, open, etc..)
Max Period is simply the cap for the algorithm when it's checking the validity of Periods.
-> If you notice your plots have a flat top, then increase this value to accept a wider range of Periods.
-> This setting has a min. value of 8 to reduce noise and a max of 100 to ignore waves from higher time frames.
Average? simply averages the two methods of calculation.
-> You may want to do this if you notice the two plots diverging a lot.
-> Cosine IFM tends to favor shorter periods; I-Q IFM tends to favor longer.
Cheers,
- DasanC
Ehlers Cyber Cycle StrategyEhlers Cyber Cycle Strategy by John Ehlers from his book "Cybernetic Analysis for Stocks and Futures".
Ichimoku BoxIntroducing Ichimoku Box Indicator:
Key Features:
Customizable Box Periods: Adjustable box periods with default settings of 9, 26, and 52.
Shifted Span A and Span B Points: Easily adjustable shifts and colors.
Additional Box Option: Capability to add an extra box for more detailed analysis.
High and Low Markers: Identifies the highest and lowest candle within each box with distinct markers.
Candle Countdown Timer: Displays the remaining candles before a box loses its high or low.
Drag-and-Drop Functionality: Move boxes to any position on the chart with a vertical line.
Automatic Box Drawing: When the indicator is first applied, a vertical line appears on the mouse cursor, and clicking on any point automatically draws the boxes.
How It Works:
The indicator allows users to visualize Ichimoku periods as boxes, highlighting key price levels and shifts in market structure. It simplifies the analysis process by providing visual cues and customizable settings for enhanced flexibility.
GBM Prob: nearest unswept H/L (up to 50 bars)This indicator is designed to analyze market structure and price behavior in relation to previous highs and lows. It automatically identifies prior swing highs and lows and tracks whether they have been taken by the current price movement.
The main goal of the indicator is to show which side of the market has already been cleared of liquidity and where untouched liquidity remains. Based on this data, it calculates the percentage of liquidity taken, helping traders assess the directional bias of price.
The indicator can be used as a higher timeframe filter (D1, H4) and as contextual guidance for entries on lower timeframes during the London and New York sessions. It works especially well with ICT / SMC concepts, OTE zones, and liquidity-based analysis.
Suitable for both intraday and swing trading, the indicator helps traders make more informed decisions and avoid trading against already swept liquidity.
Interest Rate ExpectationsThis indicator shows how much rate cuts or hikes are currently priced into SOFR futures. You choose two SOFR contracts and the script converts each contract price into basis points relative to the current effective fed funds rate. This gives you a very clear view of how policy expectations shift over time.
You can switch between using a fixed EFFR value or pulling the live EFFR ticker. Colours for each line and label are fully adjustable. The script also includes an optional grid for the plus or minus 25, 50 and 75 basis point levels so the chart does not zoom out too far.
Labels appear at the end of both lines and display how many basis points of cuts or hikes are priced for each contract. A small reference box is added on the chart to remind you what each quarterly code represents. For example H is March and Z is December.
The background shading highlights changes in the timing of cuts. Green shading means the market is pushing cuts further out in time. Red shading means cuts are being pulled closer. This gives a simple and visual way to track how the curve reprices near term versus long term policy expectations.
This tool is useful for anyone tracking fed path repricing, front end volatility, macro catalysts or cross asset rate sensitivity.
HTCTS - Session & Time LiquidityHTCTS - Session & Time Liquidity
1. ภาพรวมการทำงาน (Overview)
อินดิเคเตอร์ตัวนี้ทำหน้าที่ 4 อย่างหลักพร้อมกัน:
Auto DST (ปรับเวลาตามฤดูอัตโนมัติ): คุณไม่ต้องมานั่งแก้เวลาเมื่อตลาดต่างประเทศเปลี่ยนเวลา (Daylight Saving Time) เพราะโค้ดอ้างอิง Timezone ของตลาดนั้นๆ โดยตรง (เช่น NY ใช้ America/New_York)
Session Bars: แสดงแถบสีเล็กๆ ด้านล่างจอเพื่อบอกว่าตอนนี้อยู่ใน Session ไหน (Asia, London, NY AM, NY PM, Thai) แทนการถมสีพื้นหลังซึ่งอาจจะรกตา
High/Low Levels & Sweeps: เมื่อจบ Session โปรแกรมจะตีเส้น High และ Low ของช่วงเวลานั้นทิ้งไว้ ถ้ากราฟวิ่งไปชนเส้นเหล่านั้น (Breakout/Sweep) เส้นจะเปลี่ยนเป็นเส้นประและขึ้นข้อความว่า "(Swept)"
1. Indicator Overview and Purpose (ICT/SMC Framework)
This custom Pine Script indicator is designed specifically for traders utilizing ICT (Inner Circle Trader) or SMC (Smart Money Concepts) methodologies. Its primary function is to simplify the analysis of Time & Price by automatically defining and tracking key market sessions, their resulting liquidity levels (High/Low), and detecting liquidity sweeps (Stop Hunts).
The indicator is designed to be Zero-Maintenance regarding time zones, as it automatically adjusts for Daylight Saving Time (DST) changes in major financial centers (London, New York).
2. Key Features and Logic
A. Automatic DST Handling (Auto-DST)
The script uses specific, location-based time zones for global markets instead of a fixed GMT/UTC offset.
Asia: Uses Asia/Tokyo.
London: Uses Europe/London (Automatically adjusts for BST).
New York (AM/PM): Uses America/New_York (Automatically adjusts for EST/EDT).
This guarantees that the session times displayed on your chart (regardless of your local time, e.g., Thailand GMT+7) always align with the actual opening and closing moments of the corresponding financial market.
Weekly Separator - JammalWeekly Separator - Jammal
This script draws a clean and minimal weekly separator for better chart structure and visual clarity.
Every time a new trading week begins, the script automatically places a vertical dotted gray line extending across the entire chart.
Features:
Automatic weekly detection
Clean dotted vertical line
Light gray color to avoid clutter
Works on all timeframes
Helps identify weekly structure & price flow
Designed for traders who want a simple, non-intrusive weekly separator.
Enjoy and happy trading!
SPX Breadth – Stocks Above 200-day SMA//@version=6
indicator("SPX Breadth – Stocks Above 200-day SMA",
overlay = false,
max_lines_count = 500,
max_labels_count = 500)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Inputs
group_source = "Source"
breadthSymbol = input.symbol("SPXA200R", "Breadth symbol", group = group_source)
breadthTf = input.timeframe("", "Timeframe (blank = chart)", group = group_source)
group_params = "Parameters"
totalStocks = input.int(500, "Total stocks in index", minval = 1, group = group_params)
smoothingLen = input.int(10, "SMA length", minval = 1, group = group_params)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Breadth series (symbol assumed to be percent 0–100)
string tf = breadthTf == "" ? timeframe.period : breadthTf
float rawPct = request.security(breadthSymbol, tf, close) // 0–100 %
float breadthN = rawPct / 100.0 * totalStocks // convert to count
float breadthSma = ta.sma(breadthN, smoothingLen)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Regime levels (0–20 %, 20–40 %, 40–60 %, 60–80 %, 80–100 %)
float lvl0 = 0.0
float lvl20 = totalStocks * 0.20
float lvl40 = totalStocks * 0.40
float lvl60 = totalStocks * 0.60
float lvl80 = totalStocks * 0.80
float lvl100 = totalStocks * 1.0
p0 = plot(lvl0, "0%", color = color.new(color.black, 100))
p20 = plot(lvl20, "20%", color = color.new(color.red, 0))
p40 = plot(lvl40, "40%", color = color.new(color.orange, 0))
p60 = plot(lvl60, "60%", color = color.new(color.yellow, 0))
p80 = plot(lvl80, "80%", color = color.new(color.green, 0))
p100 = plot(lvl100, "100%", color = color.new(color.green, 100))
// Colored zones
fill(p0, p20, color = color.new(color.maroon, 80)) // very oversold
fill(p20, p40, color = color.new(color.red, 80)) // oversold
fill(p40, p60, color = color.new(color.gold, 80)) // neutral
fill(p60, p80, color = color.new(color.green, 80)) // bullish
fill(p80, p100, color = color.new(color.teal, 80)) // very strong
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Plots
plot(breadthN, "Stocks above 200-day", color = color.orange, linewidth = 2)
plot(breadthSma, "Breadth SMA", color = color.white, linewidth = 2)
// Optional label showing live value
var label infoLabel = na
if barstate.islast
label.delete(infoLabel)
string txt = "Breadth: " +
str.tostring(breadthN, format.mintick) + " / " +
str.tostring(totalStocks) + " (" +
str.tostring(rawPct, format.mintick) + "%)"
infoLabel := label.new(bar_index, breadthN, txt,
style = label.style_label_left,
color = color.new(color.white, 20),
textcolor = color.black)
Z-score RegimeThis indicator compares equity behaviour and credit behaviour by converting both into z-scores. It calculates the z-score of SPX and the z-score of a credit proxy based on the HYG divided by LQD ratio.
SPX z-score shows how far the S&P 500 is from its rolling average.
Credit z-score shows how risk-seeking or risk-averse credit markets are by comparing high-yield bonds to investment-grade bonds.
When both z-scores move together, the market is aligned in either risk-on or risk-off conditions.
When SPX z-score is strong but credit z-score is weak, this may signal equity strength that is not supported by credit markets.
When credit z-score is stronger than SPX z-score, credit markets may be leading risk appetite.
The indicator plots the two z-scores as simple lines for clear regime comparison.
RSI Golden & Dead Cross AlertRSI 14 Golden And Dead Cross Indicator
It will give you an alert when there are rsi golden and dead cross.
It is a intergated signal: Crossing up and Crossing down of RSI.
Daily High/Low/50%Daily High/Low/50% Levels Indicator
This Pine Script v6 indicator displays three horizontal lines from the previous daily candle:
High: The highest price of the last daily candle
Low: The lowest price of the last daily candle
50%: The midpoint between high and low
Key Features:
Lines extend from one daily candle to the next (Monday to Tuesday, Tuesday to Wednesday, etc.)
Fully customizable styling for each line independently:
Color selection
Line style (Solid, Dashed, Dotted)
Line width/thickness
Small labels ("H", "L", "50%") mark the start of each new day
Works on any timeframe (intraday charts show daily levels as reference)
Use Case:
Perfect for intraday traders who want to see the previous day's key levels as support/resistance zones. The 50% level often acts as a pivot point for price action.
Séparateur H4 & DailyH4 & Daily Separator - TradingView Indicator
This Pine Script v6 indicator draws infinite vertical lines to mark H4 and Daily candle separations on your chart.
Features:
H4 Separations: Marks candles starting at 3am, 7am, 11am, 3pm, 7pm, and 11pm
Daily Separations: Marks candles starting at midnight (00:00)
Fully Customizable:
Toggle H4 and/or Daily lines independently
Choose line color, thickness (1-4), and style (Solid, Dotted, Dashed)
Control the number of visible vertical lines (1-500)
Use Case:
Perfect for traders who want to visualize higher timeframe separations while trading on lower timeframes. Helps identify H4 and Daily candle opens without switching charts.
Installation:
Simply copy the code into TradingView's Pine Editor and add it to your chart. All settings are adjustable in the indicator's settings panel.
Sanjay AhirPull Backs , Swings Marking
useful for market structure
useful For Smc Strcture
useful for ICT mapping
Daily Oversold Swing ScreenerThat script is a **Pine Script Indicator** designed to identify potential **swing trade entry points** on a daily timeframe by looking for stocks that are **oversold** but still in a **healthy long-term uptrend**.
It screens for a high-probability reversal setup by combining four specific technical conditions.
Here is a detailed breakdown of the script's purpose and logic:
---
## 📝 Script Description: Daily Oversold Swing Screener
This Pine Script indicator serves as a **momentum and trend confirmation tool** for active traders seeking short-to-intermediate-term long entries. It uses data calculated on the **Daily** timeframe to generate signals, regardless of the chart resolution you are currently viewing.
The indicator is designed to filter out stocks that are in a strong downtrend ("falling knives") and only signal pullbacks within an established uptrend, which significantly increases the probability of a successful swing trade bounce.
### 🔑 Key Conditions for a Signal:
The indicator generates a buy signal when **all four** of the following conditions are met on the Daily timeframe:
#### 1. Oversold Momentum
* **Condition:** `rsiD < rsiOS` (Daily RSI is below the oversold level, typically **30**).
* **Purpose:** Confirms that the selling pressure has been extreme and the stock is temporarily out of favor, setting up a potential bounce.
#### 2. Momentum Turning Up
* **Condition:** `rsiD > rsiPrev` (Current Daily RSI value is greater than the previous day's Daily RSI value).
* **Purpose:** This is the most crucial filter. It confirms that the momentum has **just started to shift upward**, indicating that the low may be in and the stock is turning away from the oversold region.
#### 3. Established Uptrend (No Falling Knives)
* **Condition:** `sma50 > sma200 and closeD > sma50` (50-day SMA is above the 200-day SMA, AND the current daily close is above the 50-day SMA).
* **Purpose:** This is a **long-term trend filter**. It ensures that the current oversold condition is just a **pullback** within a larger, structurally bullish market (50 > 200), and that the price is still holding above the short-term trend line (Close > 50 SMA). This effectively screens out weak stocks in continuous downtrends.
#### 4. Price at Support (Bollinger Bands)
* **Condition:** `closeD <= lowerBB` (Daily Close is less than or equal to the lower Bollinger Band).
* **Purpose:** Provides a secondary measure of extreme price deviation. When the price touches or breaches the lower band, it suggests a significant move away from the mean (basis), often signaling strong statistical support where price is likely to revert.
### 📌 Summary of Signal
The final signal (`signal`) is triggered only when the market is confirmed to be **in a healthy long-term trend (Condition 3)**, the price is at an **extreme support level (Condition 4)**, the momentum is **oversold (Condition 1)**, and most importantly, the **momentum has begun to reverse (Condition 2)**.






















