指標

指標

ChartHawk - Key Levels + 8EMA Bias [Free]Premarket and prior-day levels, drawn clean, with a daily 8EMA bias tag.
Every session opens with the same four lines that matter: the premarket high and low, and yesterday's high and low. This plots all four automatically and keeps them on your chart, so you are not redrawing levels every morning.
How to read it:
- Green marks a high (PMH / PDH). Red marks a low (PML / PDL).
- Dotted lines are premarket. Solid lines are prior day.
Colour tells you which side of the range you are looking at; line style tells you which session it came from.
The tag in the corner reads LONG or SHORT off the daily 8EMA - a quick top-down read on whether the name is trending with you or against you before you take an intraday setup.
Premarket levels are pulled from the extended session, so they populate whether or not you have extended hours turned on for your chart. Prior-day levels use confirmed daily data and do not repaint.
Alerts - five built in, all confirmed-close only, so a wick through a level cannot trigger them:
- Closed above premarket high
- Closed below premarket low
- Closed above prior-day high
- Closed below prior-day low
- Daily 8EMA bias flipped
Settings: session window, timezone, EMA length, tag size, colours, and price labels are all editable.
Educational tool only. Not financial advice, no signals, no trade recommendations.
Built by a trader who runs these live. Full multi-ticker screener and entry taggers at charthawkhq.com 指標

GENESIS//@version=5
indicator("SMAs + Confirmação 2ª Vela + ALERTA", overlay=true)
// Médias
len1 = input.int(8, title="SMA Rápida")
len2 = input.int(21, title="SMA Lenta")
sma1 = ta.sma(close, len1)
sma2 = ta.sma(close, len2)
// Plot
plot(sma1, color=color.green, linewidth=2)
plot(sma2, color=color.blue, linewidth=2)
// Cruzamentos
crossUp = ta.crossover(sma1, sma2)
crossDown = ta.crossunder(sma1, sma2)
// Contadores
var int countUp = 0
var int countDown = 0
if (crossUp)
countUp := 1
else if (countUp > 0)
countUp += 1
if (crossDown)
countDown := 1
else if (countDown > 0)
countDown += 1
// Reset
if (crossDown)
countUp := 0
if (crossUp)
countDown := 0
// Sinais na 2ª vela
buySignal = countUp == 2
sellSignal = countDown == 2
// Plot sinais
plotshape(buySignal, title="COMPRA", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="VENDA", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// ALERTAS 🚨
alertcondition(buySignal, title="ALERTA COMPRA", message="📈 COMPRA confirmada após 2ª vela!")
alertcondition(sellSignal, title="ALERTA VENDA", message="📉 VENDA confirmada após 2ª vela!") 指標

指標

指標

指標

指標

CQ_(I)_Multi-Chart Widget Phases + Pivots + Fibonacci V2================================================================================
CQ_(I)_MULTI-CHART WIDGET PHASES + PIVOTS + FIBONACCI V2
USER MANUAL
================================================================================
ATTRIBUTION
--------------------------------------------------------------------------------
This script reuses the public "Multi-Chart Widget" mini-chart rendering engine
originally published by LuxAlgo (symbol/timeframe fetching, mini candle/line/
area/volume-candle drawing, and panel layout). That portion is licensed under
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
(CC BY-NC-SA 4.0): creativecommons.org
The Zigzag / Fibonacci Retracement / Trend Pivots overlay, the arrowhead
markers, the average-leg statistics, and all related settings were added on
top of that base and are original to this script.
Because the underlying LuxAlgo code is CC BY-NC-SA 4.0, this script (and any
derivative of it) must remain non-commercial, must credit LuxAlgo, and must be
shared under the same license if redistributed.
--------------------------------------------------------------------------------
1. WHAT THIS SCRIPT DOES
--------------------------------------------------------------------------------
This is an overlay indicator that draws up to THREE independent "mini charts"
floating to the right of the main chart, each one pulling its own symbol and
timeframe through request.security(). On top of each mini chart, the script
optionally overlays:
- A Zigzag showing the last confirmed swing leg(s)
- A Fibonacci retracement drawn from the most recent zigzag leg
- Trend Pivot markers (Higher High / Lower High / Higher Low / Lower Low)
with arrowheads and/or text labels
- A compact info panel per mini chart (symbol, price, timeframe, RSI,
Volatility, R-Squared)
- Average bullish/bearish leg-size statistics
Each mini chart, and each overlay feature on it, is independently
configurable, and each mini chart can track a completely different
symbol/timeframe than the main chart and than the other two mini charts.
--------------------------------------------------------------------------------
2. MINI CHART(S) GENERIC SETTINGS
--------------------------------------------------------------------------------
Mini Charts Separator
Draws a vertical divider line (and horizontal dividers, when more than
one mini chart is shown) separating the mini-chart area from the main
chart and separating stacked mini charts from each other.
Number Of Bars
How many bars each mini chart renders. Range 1-73 (TradingView line/box
object limits cap how wide these can practically get). This is also the
window used to decide which Trend Pivots are still "recent enough" to
display (see section 6).
Horizontal Offset
How far to the right of the current bar the mini charts begin. Range
10-360. Increase this if the mini charts overlap your latest price
action.
--------------------------------------------------------------------------------
3. TOP / MIDDLE / BOTTOM MINI CHART SETTINGS
--------------------------------------------------------------------------------
Each of the three mini charts (Top, Middle, Bottom) has an identical set of
options:
Mini Chart Top/Middle/Bottom (on/off)
Enables or disables that mini chart entirely.
Symbol
The instrument to display. Leave blank to use the main chart's symbol.
Timeframe
Chart, 5 Minutes, 15 Minutes, 1 Hour, 4 Hours, 1 Day, 1 Week, 1 Month.
If you pick a timeframe lower than your chart's own timeframe, the
script automatically falls back to the chart's timeframe (you cannot
request a resolution finer than what your chart is currently on).
Chart Type
Candles, Volume candles, Line, Area, Columns, High-low, Heikin Ashi.
"Volume candles" scales candle body width by relative volume.
Chart Size
A relative vertical size multiplier (1-5) used when stacking multiple
mini charts in the available vertical space.
Technical Indicator
Moving Average or None. When set to Moving Average, the moving average
configured in section 4 is plotted on that specific mini chart.
--------------------------------------------------------------------------------
4. MOVING AVERAGE SETTINGS
--------------------------------------------------------------------------------
Applies to any mini chart with its "Technical Indicator" set to Moving
Average.
Type SMA, EMA, HMA, RMA, WMA, or VWMA
Source Price source used for the calculation
Length Lookback length
Color Line color of the moving average overlay
--------------------------------------------------------------------------------
5. MINI CHART(S) PANEL SETTINGS
--------------------------------------------------------------------------------
Mini Chart(s) Panel (on/off)
Master switch for the small text panel drawn to the right of each mini
chart (symbol, last price, timeframe, chart type).
Relative Strength Index (on/off), Source, Length
Adds an RSI reading to the panel text, classified as Overbought /
Bullish / Neutral / Bearish / Oversold.
Volatility (on/off), Length
Adds a volatility reading to the panel text (ratio of the EMA of price
change to the EMA of absolute price change).
R-Squared (on/off), Length
Adds an R² reading (correlation strength between price and time) to the
panel text.
--------------------------------------------------------------------------------
6. ZIGZAG / FIBONACCI / TREND PIVOTS (PER MINI CHART, OWN TIMEFRAME)
--------------------------------------------------------------------------------
Everything in this group is calculated independently, per mini chart, using
that mini chart's own symbol and timeframe.
Enable Phases Overlay
Master switch for the entire zigzag/Fibonacci/trend-pivot overlay. Turn
this off to run the widget as a plain LuxAlgo-style mini-chart display
with no extra markup.
--- Zigzag ---
Zigzag Last Leg (on/off)
Detects swing highs/lows using a highest/lowest-bars pivot method and
draws the last N confirmed legs as connecting lines. The most recent
(still-forming) leg is drawn dashed and with a thicker line width; older
legs are drawn as thin solid lines. Small circle markers cap the
endpoints of the most recent leg.
Zigzag Period
Lookback length used to detect swing highs and lows. Smaller = more
sensitive/frequent swings; larger = fewer, larger swings.
Legs To Show
How many of the most recent confirmed legs to draw (1-8).
Leg Line Width
Line width of the most recent (dashed) leg.
Up / Down colors
Color used for legs ending in a swing high vs. a swing low.
--- Fibonacci Retracement ---
Fibonacci Retracement (on/off)
Draws a Fibonacci retracement grid anchored to the start and end price
of the single most recent confirmed zigzag leg.
25% / 40% / 50% / 60% / 75% / 90%
Individually toggle which intermediate retracement levels are drawn.
The 0% and 100% levels (the leg's own start/end prices) are always
drawn and use a thicker line.
Fib Label Size
Tiny, Small, or Normal text size for the level labels.
Fib Label Layout
Two Lines (default) shows each label as "level%" stacked above "price".
Single Line shows them side by side as "level% price" instead.
Bullish Read / Bearish Read colors
These two colors are used for the Fibonacci grid, but note the color
logic is intentionally inverted from the leg's own color: if the most
recent leg itself is drawn in the "Up" color (a teal-style color by
default), the Fibonacci grid is drawn in the Bullish Read color
(an orange-style color by default), and vice versa. This is a deliberate
contrast choice so the Fibonacci grid never visually blends into the
zigzag leg it's measuring.
--- Trend Pivots (HH/LH/HL/LL) ---
Trend Pivots (on/off)
Detects and labels the most recent Higher High (HH), Lower High (LH),
Higher Low (HL), and Lower Low (LL) pivots using ta.pivothigh /
ta.pivotlow.
Trend Pivot Period
Lookback/lookahead length used for pivot confirmation. Note that a
pivot only confirms this many bars after it actually occurred, so very
recent pivots may not appear until enough bars have printed.
Show Arrowheads (on/off)
Draws a small triangular arrowhead marker pinned exactly on each pivot's
bar/price: a down-pointing arrowhead on highs (HH/LH) and an up-pointing
arrowhead on lows (HL/LL). Independent of whether text labels are shown.
Label Content
Controls what text (if any) is shown alongside the arrowhead at each
pivot:
Labels -> "HH" / "LH" / "HL" / "LL" text
Tendency Arrows -> a single directional arrow (up-right for HH/HL,
down-right for LH/LL) used as a quick bullish/
bearish tendency cue
Both -> the text label and the tendency arrow together
None -> no text label at all (arrowheads only, if
enabled)
HH / LH / HL / LL colors
Independent color for each of the four pivot types, applied to both the
arrowhead and the text label for that pivot type.
Only the single most recent pivot of each type (HH, LH, HL, LL) is ever
shown, and only if it falls within the mini chart's own visible bar window
(see "Number Of Bars" in section 2) -- older pivots that have scrolled out
of that window are automatically hidden rather than pinned to the edge.
--- Averages ---
Show Avg Leg % in Panel (on/off)
Adds a compact "Avg ▲: x.xx% ▼: x.xx%" line above each mini chart's
panel, showing the rolling average size (in percent) of recent bullish
vs. bearish zigzag legs.
Averaging Length
How many recent bullish legs / bearish legs (tracked separately) are
averaged for the stat above.
--------------------------------------------------------------------------------
7. HOW TO READ THE OVERLAY
--------------------------------------------------------------------------------
- The dashed, thicker zigzag line is always the CURRENT / most recent leg.
Thin solid lines behind it are earlier, already-confirmed legs.
- The Fibonacci grid is always measured from that same most-recent leg only
(0% = the leg's starting price, 100% = the leg's ending price).
- Trend Pivot arrowheads/labels mark swing extremes independently of the
zigzag -- they use their own period setting and their own pivot-detection
logic (ta.pivothigh/ta.pivotlow), so they will not always line up exactly
with the zigzag's own swing points.
- All drawing only happens once per bar close, on the last confirmed bar
(barstate.islast), to keep the script light -- nothing is redrawn
intra-bar on every tick.
--------------------------------------------------------------------------------
8. LIMITATIONS & TROUBLESHOOTING
--------------------------------------------------------------------------------
"There isn't enough data available" warning
Appears when your chart doesn't yet have enough bars loaded to satisfy
Number Of Bars plus the internal warm-up length needed for the Moving
Average / Zigzag / Trend Pivot calculations. Scroll back to load more
history, or reduce Number Of Bars.
Market status warning
If the main chart's own symbol has an inactive/closed market and its
exchange doesn't match all enabled mini-chart symbols, the widget shows
an explanatory label instead of the mini charts. Use an active primary
symbol, or make sure mini-chart symbols share its exchange and type.
Object limits
The script is declared with max_lines_count = 500 and
max_labels_count = 200. With all three mini charts enabled, a high
Number Of Bars, multiple zigzag legs, all six Fibonacci sub-levels, and
all four trend pivots with both arrowheads and text labels turned on,
you are pushing close to those ceilings across three mini charts at
once. If elements start disappearing unexpectedly, reduce Number Of
Bars, Legs To Show, or disable some Fibonacci sub-levels.
Higher-timeframe context
Each mini chart's zigzag/Fibonacci/trend-pivot calculations run on that
mini chart's own timeframe via request.security(), not on the main
chart's timeframe, so swing structure shown on the mini charts can look
different from swing structure on your main chart even for the same
symbol.
================================================================================
指標

Backtest and Beyond? CT CPCV Research Lab v1.2 [Pine v6]CT CPCV Research Lab v1.2
One profitable backtest does not prove you've found a profitable trading strategy.
It proves only one thing: Your strategy worked once...on one version of history.
The real question is: Would it still work if history had unfolded differently?
Professional quantitative researchers have been asking that question for decades.
This framework brings that same question—and one possible way of answering it—to individual traders.
What this description covers
By the time you finish reading this description, you'll understand:
• Why a profitable backtest can be dangerously misleading
• Why professional quantitative researchers demand stronger evidence before trusting a strategy.
• Why Combinatorial Purged Cross-Validation (CPCV) has become one of the most respected validation techniques in quantitative finance.
• What this framework does.
• What it doesn't do.
• Why those differences matter.
So, if that sounds interesting...keep reading.
******
What Is CT CPCV Research Lab?
CT CPCV Research Lab is an open-source quantitative research framework built for TradingView.
It allows complete trading strategies, not just individual indicators, to be evaluated using Combinatorial Purged Cross-Validation (CPCV) under consistent research conditions.
Rather than asking: "Which strategy produced the highest historical return?"
it asks: "Which strategy demonstrated the greatest robustness across many independent historical tests?"
The goal isn't to predict the future. The goal is to help you place more appropriate confidence in what the past may, or may not, be telling you.
If you've ever developed a trading strategy, you've probably followed a familiar process.
• Build some trading rules.
• Run a historical backtest.
• See a profitable equity curve.
• Assume you've found a trading edge.
Unfortunately, that's exactly how thousands of strategies fool their creators every day.
A traditional backtest answers only one question: "What would have happened if I had traded this one sequence of historical events?"
That's a useful question. It just isn't the only question that matters. The uncomfortable truth is that one backtest proves far less than most traders believe.
Built to Teach, Not Just Calculate
Most TradingView scripts give you signals. Some give you statistics. Very few explain why those signals or statistics matter.
CT CPCV Research Lab was designed differently.
Throughout the framework you'll find:
• Plain-English explanations of the underlying research methodology.
• Educational comments describing the purpose of each major section.
• Input tooltips explaining not only what each setting does, but why you might want to change it.
• Built-in guidance that helps interpret CPCV results instead of simply displaying numbers.
Whether you're completely new to quantitative research or already familiar with CPCV, the goal is the same:
Every major part of this framework should either perform the research...or teach the research.
If understanding the research process is just as important to you as obtaining the results, this framework was built with that philosophy in mind.
Why great backtests often fail
Markets only give us one history. One sequence of bull markets, one sequence of bear markets, one sequence of crashes, recoveries, trends and sideways markets. When a strategy performs well on that single history, we don't automatically know why.
Did it discover a genuine market behaviour?
Or...
Did it simply get lucky?
Was it accidentally tailored to one particular period of history?
This is one of the biggest problems in quantitative finance. It is known as overfitting, and it is one of the main reasons strategies that look exceptional in historical testing often disappoint in live trading. The better a strategy becomes at explaining the past, the greater the risk that it has simply memorized the past rather than discovered something that persists into the future.
"I'll just use Out-of-Sample testing."
Good. That's already a major improvement. Out-of-Sample (OOS) testing separates historical data into two sections. One section is used to develop the strategy and the other section is hidden until the strategy is complete. Only then is the strategy evaluated on data it has never seen before.
This helps answer an important question: "Does my strategy still work on genuinely unseen data?"
That's far more honest than testing on everything, but it still has one important weakness.
You only get one Out-of-Sample test, one unseen historical period...and one result.
"I'll use Walk-Forward Analysis."
Even better. Walk-Forward Analysis repeats the process. The strategy is trained on earlier data, tested on the next unseen period, then the window moves forward and the process repeats.
Professional quantitative researchers have used Walk-Forward Analysis for many years because it is a significant improvement over a single backtest. But even Walk-Forward follows one continuous timeline.
History always unfolds in the same order, “Beginning...Middle...End.”
It creates many tests…but they're all built from the same historical journey. Walk-Forward Analysis remains one of the most respected validation techniques used by professional researchers today. CPCV should not be viewed as replacing Walk-Forward, but as answering a different and often more demanding research question.
Enter Combinatorial Purged Cross-Validation (CPCV)
Professional quantitative researchers wanted something even more demanding. Instead of relying on one backtest...or one Out-of-Sample period...or one Walk-Forward schedule...,they wanted to repeatedly evaluate a strategy across many different combinations of historical data. One of the best-known methods for doing this is called:
Combinatorial Purged Cross-Validation (CPCV)
Combinatorial Purged Cross-Validation was introduced by Marcos López de Prado in Advances in Financial Machine Learning (2018), where it was developed for validating machine-learning models in finance. This framework adapts its core principles, combinatorial train/test splits, purging, embargoing, and reconstructed out-of-sample paths, to the practical constraints of Pine Script.
Although the name sounds intimidating, the idea is surprisingly simple. Imagine interviewing someone for an important job. Would you hire them because they answered one interview question correctly?
Of course not. You'd ask many questions, test different skills, look for consistency.
Trading strategies deserve exactly the same treatment. A traditional backtest gives a strategy one interview. CPCV gives it dozens of different interviews.
If the strategy performs consistently across many independent historical tests instead of one lucky backtest, it earns greater confidence. Not certainty. Nothing in financial markets offers certainty.
Just stronger evidence.
What does "Combinatorial Purged Cross-Validation" actually mean?
The name sounds complicated, but each word simply describes part of the process.
Combinatorial: Instead of creating one train/test split, CPCV creates many different combinations of training and testing periods. This allows the strategy to be evaluated across many historical scenarios rather than relying on one convenient sequence.
Purged: Financial observations that occur close together often contain overlapping information.
Imagine two students sitting the same exam. If one student quietly glances at the other's answers before writing their own, the exam is no longer fair.
Purging removes nearby training observations that could accidentally leak information into the test period.
Cross-Validation: Rather than asking "Did this strategy work once?", Cross-Validation repeatedly asks
"Does this strategy continue working when tested on different unseen historical data?"
The goal isn't to find one impressive result. The goal is to see whether good performance remains consistent.
Why this framework exists
For many years, advanced quantitative validation techniques were used primarily by institutional researchers, hedge funds and quantitative investment firms. Retail traders rarely had access to these ideas, not because they were secret, but because they were often buried in academic research or implemented in specialist software.
This framework was built to present those same research principles in plain English so individual traders can understand them, question them, and apply them for themselves. Good research shouldn't depend on where you work. It should depend on how carefully you test your ideas.
A note about the Pine implementation
This implementation is designed to bring the core principles of institutional Combinatorial Purged Cross-Validation (CPCV) research into Pine Script while respecting the practical execution limits of the TradingView environment.
Professional quantitative research platforms often have access to dedicated computing resources with relatively few practical limits on memory, processing time, data sources or dataset size.
TradingView's Pine Script is designed for interactive chart analysis and therefore operates within execution-time, memory and resource limits so scripts remain responsive for all users. To make CPCV practical within those limits, this implementation makes several engineering choices, including limiting the number of chronological groups, reference strategies and stored observations. These are implementation constraints, not changes to the underlying CPCV methodology.
A note on purging and embargo in this implementation. These techniques exist to prevent information from a training observation's forward-looking label leaking into a nearby test period. The built-in candidate strategies use one-bar returns, so their natural leakage window is very short and the purge/embargo settings have limited effect on them. Their value grows substantially if you replace a candidate with a strategy that uses multi-bar holding periods or forward-horizon labels, where boundary leakage is a real risk. They are included so the framework remains methodologically complete and correct for the strategies you may add, not only the ones shipped by default.
The objective has always been to preserve the essential research principles of CPCV while delivering an educational framework that runs efficiently inside TradingView. If you're learning quantitative strategy validation, understanding why CPCV works is far more valuable than simply increasing the number of groups from 8 to 20. Sound methodology will improve your research far more than simply making the computation larger.
How to Read the Tables
This framework displays its results in four tables rather than on the price chart, because CPCV evaluates research quality, not price action. Here's what each table shows and how to act on it.
Split Diagnostics
Each row is one training/test experiment. The engine holds out two chronological groups as unseen test data, selects the best candidate using the training data only, then measures how that choice performed on the held-out test data.
Read the columns left to right: which groups were held out, which candidate was selected, its score on training data, its score on test data, its test return, and its worst drawdown during the test period.
The single most important thing to look for is a candidate that scored well in training but poorly in testing. That gap is the fingerprint of overfitting. A strategy that looks brilliant in training and then collapses out-of-sample has told you something valuable, it just wasn't what you were hoping to hear.
Do not judge the framework by the best split. One good row is not evidence. Consistency across many rows is.
Path Diagnostics
Each row is one fully reconstructed out-of-sample history, assembled from test segments that the strategy never trained on. Instead of one backtest, you are looking at several independent reconstructions of history.
Four things deserve your attention, and the Results Guide lists them in order:
The median path tells you the typical outcome, not the luckiest one. The worst path tells you how bad an unlucky reconstruction looked, this is your pessimistic case, and a strategy that stays tolerable even here is showing real resilience. The positive-path rate tells you how many reconstructions finished profitable; a strategy profitable on one path and negative on the rest has not earned confidence. And return versus drawdown reminds you that a good return purchased with a brutal drawdown is not the same as a good return earned smoothly.
If the paths all look nearly identical, that usually means one candidate dominated selection across every split. That is normal and informative, it simply means CPCV is validating that one strategy.
Research Integrity
This panel does not measure whether your strategy is profitable. It measures how much confidence you should place in the research configuration itself, whether the sample was large enough, the coverage valid, the paths consistent, the worst case survivable, and the typical drawdown manageable.
Treat it as a credibility check on the test, not a prediction of the result. A high score means the validation has few obvious weaknesses. A low score means any attractive-looking performance should be treated with extra caution, because the setup itself may not support strong conclusions. The panel's own final row says it plainly: research confidence, not expected profit.
Results Guide
A permanent on-chart cheat sheet summarizing the reading order above and explaining the color coding, green when the median and worst case are both positive, yellow when the median holds up but the worst case is fragile, red when the median or most paths failed. If you remember nothing else, the guide is there to remind you: focus on the median and the worst case, not the single best split.
Configuring the Candidates
The most common first experience with this framework is to enable all ten candidates, run it on a favorite chart, and find every split selecting the same strategy and every path failing. That is not a malfunction and understanding why explains how to configure the framework properly.
CPCV can only reveal something interesting when the selection is contested, i.e., when different candidates genuinely compete to be chosen, and different ones win in different periods. If every candidate you enable behaves the same way, the framework isn't choosing between ideas. It's choosing the least-bad member of one idea.
Diversify the families, not just the parameters
Five EMA crossovers at different lengths are not five different strategies. They are one strategy at five speeds, and they are highly correlated…they mostly agree, so selection barely changes and the reconstructed paths become near-identical copies.
The candidates ship in two behavioral families:
Trend-following (the EMA crossovers, MACD, Donchian, Supertrend) profits when moves persist. Mean-reversion (RSI, Bollinger) profits when price snaps back toward an average.
These families tend to be opposites: when one struggles, the other often works, because trending and ranging are opposite market conditions. A balanced set, a few trend models alongside both reversion models, lets different candidates win in different periods, which is exactly what makes the paths diverge.
Test where regimes actually change
The framework can only display path dispersion if the data contains different conditions for different candidates to win in. A market in one long, clean trend will let a single slow trend-follower dominate every split, producing results that are consistent but undifferentiated. A market stuck in pure chop will punish every trend model at once, which is how an all-red board appears. The most revealing samples contain both trending and ranging periods, so widen the date range until it spans at least one full cycle of each, and consider instruments that move through both rather than sitting in a single prolonged trend.
Change the metric to change the winner
The selector ranks candidates using one training metric, and different metrics crown different winners. Sharpe rewards smoothness, Calmar rewards drawdown avoidance, Sortino favors directional trend-following, Omega favors skewed reversion payoffs. Running the same enabled set under different Optimization Metrics is a fast way to see selection shift, and watching which candidate wins under which metric is itself a lesson in how sensitive strategy selection really is.
What a good configuration looks like
Success here is not a green board. It is a contested one. In Split Diagnostics you want the MODEL column to show several different names rather than one name repeated down every row. In Path Diagnostics you want P1, P2, P3 and the rest to be visibly different numbers rather than clones, a genuine median sitting between a positive best case and a negative worst case. That spread is the CPCV signal. A board where one model wins everything is almost as uninformative as one where everything fails; both mean the selection was never truly contested.
One honest warning. Do not hunt through instruments and metrics until you find a green result and then treat that as proof. That is simply overfitting one level higher, cherry-picking the demonstration instead of the strategy. The purpose of a contested run is to watch the method work, red parts included. A result that mixes success and failure across its paths is not a disappointing outcome. It is the framework telling the truth.
Using Your Own Strategies
The ten built-in candidates are examples, not the point. The framework is designed so you can delete any of them and drop in your own logic, that is its intended use, not a hack.
To replace a candidate, keep to three rules:
First, produce a persistent desired-position series with exactly three possible values: +1 for long, 0 for flat, −1 for short. The framework evaluates this series, not your entry/exit orders, so your logic must hold a position until it decides to change it, rather than firing a one-bar signal.
Second, stay causal. Use only information available up to the current bar. Do not use future data, negative historical offsets, or lookahead on. The framework already lags exposure by one bar when simulating returns, so your job is simply to avoid look-ahead in the signal itself.
Third, wrap your output through the direction filter (f_direction) exactly as the existing candidates do, so the Long Only / Short Only / Long & Short control keeps working.
That's it. Anything that respects it, a moving-average system, an oscillator, a breakout rule, or something entirely your own, will be validated under the same CPCV conditions as the built-in examples. If your strategy uses multi-bar holding periods or forward-looking labels, this is also where purging and embargo begin to do real work, so set those values to match your strategy's actual horizon.
An important limitation
If you've read this far and concluded that CPCV is the ultimate solution... then this description has failed.
CPCV is one of the most rigorous historical validation techniques available, but it is not a crystal ball.
No historical validation method can predict the future.
Markets evolve
One of the biggest misconceptions in technical analysis is that indicators suddenly "stop working."
Most of the time, they don't. The mathematics haven't changed. A 50/200 EMA crossover calculates exactly the same way today as it did ten years ago.
RSI hasn't changed.
MACD hasn't changed.
Bollinger Bands haven't changed.
…the market changed.
Financial markets constantly move through different environments. Sometimes they trend strongly.
sometimes they move sideways for months, other times volatility explodes…and then it disappears. Periodically, liquidity is abundant…and inexplicably, it evaporates.
These and other changing environments are commonly called market regimes. Within every regime there are often shorter-lived shifts or states in market behavior that further influence strategy performance. The same trading strategy can perform exceptionally well in one regime and struggle in another, even if the strategy itself never changes. That's one of the most important lessons in quantitative research.
No technical indicator can know which market regime it is operating within. It simply continues performing the same calculation while the market itself changes around it.
What this framework can, and cannot, tell you
This framework is designed to answer one question: "How robust did this strategy appear across many independent historical tests?"
It is not designed to answer another: "Will this strategy continue working as markets evolve?" That requires continued observation, adaptation and research.
Do not be surprised if the same candidate is selected on every split. When one strategy scores highest across all training folds, CPCV effectively becomes a validation of that single strategy, and if it then fails out-of-sample on every path, that is not a malfunction. It is the framework doing its job: telling you the best-looking in-sample choice did not survive honest testing.
Good quantitative research is not about finding certainty. It is about reducing the chances that we fool ourselves before risking real capital.
One important clarification about what is being validated. This framework does not cross-validate each candidate strategy in isolation. It cross-validates a selection procedure: on every training split it picks the best-scoring candidate, then judges that choice on unseen test data. This matters because strategy selection is one of the most common places overfitting hides. A candidate that consistently looks best in training but fails in testing is exactly what CPCV is designed to expose.
The philosophy behind this project
Good quantitative research doesn't ask: "How can I prove this strategy works?"
It asks: "How hard can I try to prove that it doesn't?"
Every independent test that a strategy survives earns it a little more credibility. Not because it made more money, but because it had more opportunities to fail, and didn't.
That's the philosophy behind CT CPCV Research Lab.
A personal perspective
In my experience, market structure, liquidity, positioning, capital flows, and changing market regimes often explain market behavior more consistently than any individual technical indicator alone. This is where my own work has focused for many years — and, increasingly, on the fragility that builds inside a market before it shows up in price.
That does not mean technical analysis has no value. Millions of traders around the world continue to make decisions using technical analysis every day. Whether those decisions rest on enduring market truths or widely shared behavioral patterns is a separate question. Either way, when millions of participants respond to similar signals, those behaviors become part of the market itself.
For that reason alone, understanding how technical strategies behave — and how rigorously they should be tested — remains a worthwhile pursuit. If you're one of those traders, my hope is that this framework helps you evaluate technical strategies more honestly than a single backtest ever could.
Whether your strategy uses moving averages, RSI, MACD, Bollinger Bands, Donchian channels, or something entirely your own, it deserves to be tested honestly. And if this framework leaves you curious about why the same strategy thrives in one regime and dies in another — about the structural conditions that shift beneath price before price ever moves — then it has done something a backtest never could. That question is where my own work goes next.
If this project encourages even a few traders to question impressive-looking backtests, demand stronger evidence, and approach strategy development with greater intellectual honesty, then it has achieved exactly what it was created to do.
Good research doesn't eliminate uncertainty. It simply reduces the chances that we mistake luck for skill. If this framework helps even a handful of traders make that distinction, then it has served its purpose.
Disclaimer
CT CPCV Research Lab is provided for educational, informational, and analytical purposes only.
Nothing within this script, its outputs, tables, scores, grades, metrics, documentation, or associated materials constitutes financial advice, investment advice, trading advice, legal advice, or a recommendation to buy, sell, hold, or otherwise transact in any financial instrument.
Trading and investing involve substantial risk. Past performance is not indicative of future results, and no historical validation method, including Combinatorial Purged Cross-Validation, can predict future performance. Markets are inherently uncertain, and losses may occur.
Users are solely responsible for all trading and investment decisions made using information derived from this script. The developer makes no representations or warranties regarding accuracy, completeness, profitability, suitability, reliability, or fitness for any particular purpose.
CT CPCV Research Lab is a research and validation tool. It does not generate trade signals, is not an automated trading system, and must not be relied upon as the sole basis for any trading or investment decision. A high Research Integrity score reflects the credibility of a research configuration, not the likelihood of future profit.
By accessing or using this script, the user acknowledges and accepts all risks associated with its use and agrees that the developer shall not be liable for any direct, indirect, incidental, consequential, or special losses or damages arising from the use of the script or any information it provides.
指標

指標

指標

Liquidity Thermodynamics Engine V9 LiteLiquidity Thermodynamics Engine V9 Lite is a macro-liquidity oscillator designed to highlight liquidity impulse, acceleration, compression, divergence, and follow-through conditions. It is a lite core version of a more heavy research model that explores liquid thermodynamic phase models as the physics corresponds to capital flows.
The indicator combines major liquidity inputs into a normalized composite, then tracks when liquidity impulse strengthens, compresses, diverges from price, or aligns with acceleration. The Lite version focuses on a clean chart experience while preserving an optional Flow Map for users who want to inspect the underlying liquidity drivers.
Primary signals include:
- Composite and signal line
- Positive and negative impulse histogram
- Bright positive impulse bars
- Acceleration markers
- Compression diamonds
- Bullish and bearish divergence markers
- Bright green follow-through triangle
- Optional energy exhaustion flag
- Optional Flow Map
This tool is intended for macro context and research. It is not financial advice and should not be used as a standalone trading system.
User Guide
Liquidity Thermodynamics Engine V9 Lite, or LTE Lite, is a macro-liquidity momentum oscillator designed to help users visualize when liquidity conditions are compressing, accelerating, diverging from price, or beginning to follow through.
The indicator is not designed to predict every short-term move. It is best used as a higher-timeframe liquidity context tool, especially on slower charts such as the 6D, weekly, or multi-day Bitcoin chart. Its strongest signals tend to come when liquidity impulse and acceleration align near important macro turning zones.
This guide explains what each signal means, how to read the chart, and how to use the tool responsibly.
1. What LTE Lite Measures
LTE Lite combines several macro liquidity series into a normalized oscillator:
- Federal Reserve total assets
- Treasury General Account
- Overnight reverse repo
- Reserve balances
- Optional inverse DXY overlay
The core model converts liquidity conditions into a composite line, then measures the speed and force of changes in that composite. The result is a compact view of liquidity pressure, impulse, acceleration, compression, divergence, and exhaustion.
In simple terms:
- The white line shows the liquidity composite.
- The yellow line smooths that composite into a signal line.
- The histogram shows liquidity impulse.
- Markers highlight important changes in pressure, momentum, divergence, and exhaustion.
2. The Core Lines
White Line — Composite Line
The white line is the main liquidity composite. It represents the current normalized liquidity condition.
When the white line rises, liquidity conditions are generally improving. When it falls, liquidity conditions are generally deteriorating.
The white line is more reactive than the yellow signal line.
Yellow Line — Signal Line
The yellow line is a smoothed version of the composite.
It helps users distinguish noise from directional liquidity movement. When the white line rises above the yellow line, liquidity momentum is improving. When the white line falls below the yellow line, liquidity momentum is weakening.
The signal line is not a trade trigger by itself. It is context.
3. Impulse Histogram
The histogram measures the rate of change in the liquidity composite.
Green Histogram Bars
Green bars show positive liquidity impulse.
This means liquidity pressure is improving relative to the prior bars.
Red Histogram Bars
Red bars show negative liquidity impulse.
This means liquidity pressure is deteriorating.
Bright Green Histogram Bars
Bright green bars mark stronger positive impulse.
By default, LTE Lite highlights positive impulse bars when they reach or exceed the Key Positive Impulse Level. In the current stock configuration, this level is set to `0.10`.
These bars are important because they often mark a stronger liquidity push rather than a minor improvement.
Important: a bright green histogram bar is not automatically a buy signal. Its value increases when it aligns with acceleration, compression release, improving structure, or price confirmation.
4. Acceleration Markers
Acceleration markers show when the impulse itself is accelerating.
Yellow `+`
A yellow plus sign marks positive acceleration.
This means liquidity impulse is not just positive; it is improving quickly enough to clear the acceleration threshold.
Positive acceleration can appear before a larger histogram impulse bar, or the impulse bar can appear first. LTE Lite watches for either order.
Yellow `-`
A yellow minus sign marks negative acceleration.
This means liquidity impulse is weakening quickly.
Negative acceleration can warn that a prior liquidity push is losing force.
5. Bright Green Triangle Signal
The bright green triangle is one of the most important Lite signals.
It fires when:
- A bright positive impulse bar occurs, and
- A positive acceleration signal occurs, and
- The two events happen within the configured window.
The default window is `7` bars.
On a 6D chart, 7 bars is roughly 42 calendar days. This gives the signal room to capture cases where acceleration leads impulse and cases where impulse leads acceleration.
Why This Signal Matters
This signal is designed to identify liquidity follow-through.
The idea is:
- A large positive histogram bar shows meaningful liquidity impulse.
- A `+` acceleration marker shows liquidity momentum is expanding.
- When both appear close together, the market may be entering a more supportive liquidity window.
This does not guarantee immediate upside. It means liquidity conditions have improved enough to deserve attention.
How to Use It
Best practice:
1. Watch for the green triangle on higher timeframes.
2. Check whether price is basing, breaking structure, or reclaiming key levels.
3. Confirm that the composite is stabilizing or rising.
4. Avoid treating the triangle as a standalone entry signal.
The green triangle is a context signal, not a mechanical trading command.
6. Compression Signal
Compression is shown as a small gray diamond around the zero line.
Compression appears when:
- Liquidity impulse is small, and
- Composite movement is also muted, and
- This quiet condition persists for the configured number of bars.
Compression means liquidity energy is coiling.
It does not tell direction by itself. It simply says the system is quiet enough that a larger move may be building.
How to Use Compression
Compression is most useful when followed by:
- Positive acceleration
- Bright green impulse
- A green triangle signal
- Composite reclaiming or curling upward
Compression followed by negative acceleration can instead warn of downside continuation.
7. Divergence Signals
Divergence compares price structure against liquidity structure.
Bullish Divergence
A bullish divergence marker appears when price makes a lower pivot low while the liquidity composite makes a higher pivot low.
This can suggest that price is weakening less efficiently because liquidity conditions are improving underneath the surface.
Bearish Divergence
A bearish divergence marker appears when price makes a higher pivot high while the liquidity composite makes a lower pivot high.
This can suggest that price is rising while liquidity support is weakening.
Divergence Mode
The default mode is:
`Price vs Liquidity + Impulse`
This is stricter than simple price-versus-liquidity divergence because it also checks impulse direction. The goal is to reduce noisy divergence signals.
Divergence is best used as a warning or confirmation tool, not as a standalone entry or exit.
8. Energy Exhaustion Flag
The Energy Exhaustion Flag is an optional marker.
It is designed to identify moments when internal liquidity energy has dropped sharply or clustered into a weak state.
By default in the current V9 Lite stock settings, this marker is turned off.
When enabled, it can help identify late-stage exhaustion after strong liquidity movement. It should be used carefully because exhaustion can persist before price responds.
9. Flow Map
The Flow Map is an optional visual layer.
It breaks liquidity movement into individual components:
- Fed flow
- Treasury flow
- RRP flow
- Reserve flow
The Flow Map helps users see which component is contributing most to liquidity movement.
Flow Map Modes
`Stacked Bars` shows all selected flow components.
`Dominant Bars` shows only the strongest component on each bar.
`Stacked + Dominant Marker` shows the flow bars and adds a marker to the dominant component.
How to Use the Flow Map
Use the Flow Map when you want to inspect what is driving the oscillator.
For example:
- Reserve flow may dominate during banking-system liquidity shifts.
- TGA changes may dominate around Treasury cash rebuilding or drawdowns.
- RRP shifts may dominate when reverse repo usage changes materially.
- Fed balance sheet changes may dominate during major policy/liquidity events.
For clean chart reading, leave Flow Map off. Turn it on when doing deeper diagnostics.
10. Suggested Timeframes
LTE Lite is designed primarily for higher-timeframe liquidity analysis.
Recommended starting points:
- Bitcoin 6D
- Bitcoin weekly
- Major index weekly
- Multi-day charts for macro context
Lower timeframes may produce more noise because macro liquidity data updates slowly relative to intraday price action.
The 6D chart can be especially useful because it balances signal sensitivity with macro smoothness.
11. Practical Reading Workflow
Use this sequence:
Step 1 — Identify the Liquidity Regime
Look at the white and yellow lines.
Is the composite rising, falling, basing, or rolling over?
Step 2 — Check Impulse
Look at the histogram.
Are bars green or red? Are green bars brightening? Is negative impulse fading?
Step 3 — Watch Acceleration
Look for `+` or `-` markers.
A `+` means liquidity momentum is accelerating. A `-` means it is decelerating.
Step 4 — Look for Follow-Through
The green triangle is the key combined signal.
It means strong positive impulse and positive acceleration have occurred within the configured window.
Step 5 — Confirm With Price
Do not use the indicator alone.
Look for price confirmation such as:
- Break of market structure
- Reclaim of key moving averages
- Higher lows
- Range breakout
- Failed breakdown
- Support reclaim
Step 6 — Manage Risk
Liquidity support can improve before price moves. It can also improve while price continues consolidating.
Use invalidation levels, position sizing, and a clear plan.
12. Signal Priority
Not all signals carry equal weight.
Highest priority:
1. Bright green triangle after or near positive acceleration
2. Bright green impulse bars appearing after compression
3. Bullish divergence near a major low
4. Composite rising above the signal line
Medium priority:
1. Positive acceleration without bright impulse
2. Compression alone
3. Flow Map showing improving dominant flow
Lower priority:
1. Small green histogram bars
2. Isolated divergence without impulse confirmation
3. A single marker against strong price downtrend
13. Common Mistakes
Mistake 1 — Treating Every Green Bar as Bullish Enough
Small green bars only show mild improvement. The brighter bars matter more.
Mistake 2 — Ignoring Timeframe
Signals on a 6D or weekly chart are not short-term scalping signals. They describe larger liquidity conditions.
Mistake 3 — Ignoring Price Confirmation
Liquidity can lead price, but price still needs to confirm.
Mistake 4 — Assuming the Triangle Means Immediate Upside
The triangle identifies a supportive liquidity window. It does not guarantee immediate price expansion.
Mistake 5 — Overloading the Chart
Keep Flow Map off unless you are diagnosing components. The cleanest read usually comes from the composite, signal line, histogram, acceleration markers, compression, divergence, and green triangle.
14. Default Settings Philosophy
The stock settings are tuned for a clean macro read.
The defaults prioritize:
- Higher-timeframe stability
- Fewer false signals
- Visibility of major impulse events
- Clean chart presentation
- Optional component diagnostics through Flow Map
If users modify settings, they should do so slowly and test across multiple cycles.
Risk Disclaimer
This indicator is for educational and research purposes only.
It does not provide financial advice, investment advice, or trading recommendations. Markets involve risk, and no indicator can guarantee future performance. Users should combine this tool with independent analysis, risk management, and their own decision-making process.
Past signal behavior does not guarantee future results. 指標

指標

指標

指標

ATR Chandelier StopTrade Control Adaptive ATR Chandelier Stop
The Trade Control Adaptive ATR Chandelier Stop is a volatility based trailing stop designed for swing and position traders who want a more objective way to manage exits and protect gains.
Instead of applying the same fixed percentage stop to every stock, the indicator uses Average True Range, or ATR, to account for how much each symbol typically moves. More volatile stocks receive wider stop levels, while lower volatility stocks receive tighter stop levels.
How it works
For long positions, the trailing stop is calculated as:
Highest high over the selected lookback period minus ATR multiplied by the selected multiplier
With the default settings, the calculation is:
22 bar highest high minus 3 times the 14 bar ATR
This creates a stop that hangs below the stock’s recent high, which is why it is called a Chandelier stop.
As the stock makes new highs, the stop can move higher. During normal pullbacks, the stop generally does not move lower while the bullish trend remains intact.
When price closes below the trailing stop, the indicator changes to a bearish state and begins plotting the corresponding stop above price.
Default settings
ATR Length: 14
Price Lookback: 22
ATR Multiplier: 3.0
Automatic Volatility Adjustment: Off by default
These settings are intended as a balanced starting point for swing and position traders using the daily chart and holding trades for several weeks to several months.
Adaptive volatility option
The optional adaptive setting adjusts the ATR multiplier based on ATR as a percentage of the stock price.
When enabled, the indicator gives highly volatile stocks additional room and may tighten the stop for lower volatility stocks. The standard 3 ATR setting remains the default for traders who prefer a simpler and more consistent approach.
Best uses
The indicator is designed for:
• Swing trading
• Position trading
• Trend following
• Managing profitable trades
• Reducing emotional exit decisions
• Monitoring individual stocks or watchlists
It is generally most useful on the daily timeframe.
Alert condition
The script includes an alert condition for a confirmed daily close below the trailing stop.
Recommended TradingView alert settings:
Condition: Daily Close Below ATR Stop
Interval: 1D
Trigger: Once per bar close
The alert is designed to trigger when the trend first changes from bullish to bearish. It does not repeatedly alert every day while price remains below the stop.
Important considerations
The Trade Control Adaptive ATR Chandelier Stop is a trade management tool, not a complete trading strategy.
Traders should also consider technical support and resistance, entry price, position size, maximum acceptable loss, earnings risk, gap risk, and overall market conditions.
A stock can gap below the plotted stop, particularly around earnings or major news. The indicator does not guarantee execution at the displayed price. 指標

指標

指標

指標

SVKO CFD Stocks & NQ-ES Real VolumeSVKO CFD Stocks & NQ-ES Real Volume replaces broker CFD volume with native stock volume or a configurable activity proxy for Nasdaq 100 and S&P 500 CFDs. It can also use the selected external volume to calculate an optional Real VWAP on the CFD price.
█ OVERVIEW
For a stock CFD, the indicator can use the corresponding exchange-listed share volume. For an index CFD, it can combine Micro E-mini futures, E-mini futures, and a major tracking ETF with user-defined positive weights.
The NQ and ES result is a transparent activity proxy. It does not claim to reconstruct an official consolidated index-volume measurement.
█ HOW IT WORKS
The indicator selects the Volume formulas entry whose left side matches the current standard chart ticker. Each term on the right can be a complete TradingView ticker, a configured abbreviation, or a positively weighted symbol.
TRADENATION:NVDA.EX = NASDAQ:NVDA
The default Nasdaq 100 example, `MNQ + 10*NQ + 60*QQQ`, follows the author's practical normalisation by typical relative leverage and exposure. QQQ receives the largest coefficient because it typically has the least leverage, while MNQ and NQ provide greater leveraged exposure. NQ receives a coefficient of 10 because one NQ contract is exactly ten times the size of one MNQ contract. The coefficient of 60 for QQQ is the author's adjustable example for bringing its activity with less leverage onto a comparable scale. The S&P 500 example uses the same reasoning with MES, ES, and SPY. These weights express the author's proxy logic and can be changed. They are not a conversion defined by an exchange.
Each unique active source is requested once per chart update. Repeated sources are combined before requests. Missing sources can contribute zero after they have produced valid data, while remaining sources continue to contribute.
External volume is displayed as standard up and down columns in a dedicated pane. The optional Real VWAP uses this calculated "real" volume, including all active formula weights, to weight the current CFD's price. It can follow either a main-session or full-session anchor.
█ MAPPING AND FALLBACK
An explicit volume formula always has priority. This supports precise stock mappings, deliberately selected sources, and weighted index proxies.
When no formula matches, supported broker charts can use SVKO CFD Symbol Mapper as a one-symbol fallback. Connect 1st code to Map: 1st code and 2nd code to Map: 2nd code from the same Mapper instance.
█ HOW TO USE
• Add the indicator to a standard time-based chart.
• Check whether Volume formulas already contains the chart symbol or one of its abbreviations.
• Add or edit a formula when a specific source or weighted proxy is required.
• Add SVKO CFD Symbol Mapper and connect both code inputs when the general stock-CFD fallback is required.
• Use TradingView's Style tab to configure the volume columns and Real VWAP.
• Choose the session anchor used by Real VWAP.
█ LIMITATIONS
A stock source represents the reported volume of the selected TradingView symbol. A multi-source NQ or ES formula is a user-defined weighted proxy, not an exchange-defined consolidated volume value.
Feed availability, delays, subscription permissions, sessions, and bar alignment can differ between sources. Missing data can make the result incomplete. Current volume and Real VWAP can change until an open realtime bar closes. No future data is used.
Session-anchored VWAP contains less intraday detail on daily and higher timeframes. Unsupported charts and unresolved Mapper results draw nothing and make no fallback volume request.
█ ALERTS
This indicator does not define alert conditions.
█ CREDITS AND LICENCE
Original work by SVKO. Published open source under the Mozilla Public License 2.0. 指標

SVKO CFD NQ-ES LevelsSVKO CFD NQ-ES Levels translates the mapped underlying market's daily percentage change into practical price levels on Nasdaq 100 and S&P 500 CFD charts. It makes the mapped move visible directly on the CFD chart without manual conversion.
█ OVERVIEW
The main level is 0%. It represents the chart price implied when the mapped symbol's standard daily Change % is zero. Configurable levels above and below that anchor show where the CFD price sits in percentage terms.
The optional current-price label remains live and shows the chart price's percentage distance from the stored 0% basis.
█ HOW IT WORKS
TradingView does not expose a watchlist Change % column to Pine. The indicator reproduces that value from the mapped symbol's current and previous daily closes, removes it from the current CFD price, and stores the resulting 0% basis.
The first valid basis is held for the active mapping. It changes only when the session mapping changes, the indicator reloads, or its inputs change. This keeps the displayed levels fixed during each mapping period while the current-price label continues to move.
█ MAPPING AND SESSIONS
The indicator owns separate mapping lists for the configured weekday main session and for all other times. This allows an ETF reference during the main session and a futures reference outside it.
Each mapping uses one complete TradingView source and target ticker pair per line. This indicator does not require SVKO CFD Symbol Mapper because its reference symbol changes with the session.
█ HOW TO USE
• Add the indicator to a supported Nasdaq 100 or S&P 500 CFD chart.
• Confirm that the chart symbol appears on the left side of both mapping lists.
• Adjust the main session when your workflow uses different New York session hours.
• Choose the percentage step and the number of levels above and below 0%.
• Position and style the levels and current-price label beside the latest candle.
█ POSITION AND DISPLAY
Distance and line-length settings use one-minute bar equivalents. On higher chart timeframes, the indicator reduces the chart-bar count to preserve approximately the same elapsed-time spacing.
The zero, upper, and lower levels have independent styles. The current-price label can sit immediately after the latest candle, use additional padding, or align with the level endpoints.
█ ALERTS
This indicator does not define alert conditions.
█ LIMITATIONS
The reproduced percentage uses the mapped symbol's standard TradingView daily data and is not a direct watchlist read. Futures daily closes can inherit settlement behaviour from TradingView's ticker settings.
The 0% basis is a live snapshot. Reloading at another time can produce a different basis, and historical bars cannot reproduce the exact time of an earlier live snapshot. No future data is used.
Feed timing, spreads, currencies, sessions, instrument specifications, and data permissions can make the CFD and mapped symbol diverge. If the active mapping or daily data is unavailable, the indicator draws nothing.
█ CREDITS AND LICENCE
Original work by SVKO. Published open source under the Mozilla Public License 2.0. 指標

SVKO InfoSVKO Info displays key market information for a chart symbol and its mapped native counterpart in one compact table. It lets users follow an underlying TradingView listing from a broker CFD chart without leaving the chart.
█ OVERVIEW
The table can show company and symbol identity, multi-period performance, extended-hours movement, a configurable history high, daily ATR, earnings, analyst target, and P/E data.
Each optional feature controls its related data request. Native TradingView charts can display their own metrics without a mapping. A broker chart remains silent when no native counterpart can be resolved.
On supported broker charts, the optional mapped price marker places the mapped symbol's latest available extended-session price beside the CFD candles for direct comparison.
█ SYMBOL RESOLUTION
SVKO Info first checks its own Mappings input. Local mappings have priority and work without a companion indicator.
When the local list has no match, the indicator can use SVKO CFD Symbol Mapper as a fallback. Connect 1st code to Map: 1st code and 2nd code to Map: 2nd code from the same Mapper instance.
Broker charts use the resolved native symbol for calculations. Native TradingView charts use their own standard ticker and can show an available inverse-mapped CFD counterpart.
█ HOW TO USE
• Add SVKO Info to the chart.
• Add complete source and target ticker pairs to Mappings for symbols that need a local mapping.
• Add SVKO CFD Symbol Mapper when the shared fallback table is required, then connect both code inputs to the same Mapper instance.
• Enable only the table rows and mapped-price drawing that you need.
• Adjust the history window before requesting long performance periods.
• Use the table and mapped-price styling controls to fit the chart layout.
█ PERFORMANCE AND MARKET DATA
Performance uses regular-session daily prices and supports rolling periods, calendar-based periods, and custom start dates. Periods outside the selected history window are omitted.
Extended-hours data compares the active premarket or postmarket price with the most recent regular-session close. Daily ATR always uses daily data, regardless of the chart timeframe.
Earnings, analyst targets, valuation data, company metadata, and mapped quotes depend on TradingView coverage and the user's data permissions.
█ ALERTS
Days to Earnings is a hidden numeric plot for manually configured Crossing alerts. The script does not create an alert by itself.
█ LIMITATIONS
Performance excludes dividends, currency conversion, position sizing, fees, and extended-hours movement. Live values refresh only when the chart receives an update, and current-bar values can change before the bar closes.
The extended-hours row and mapped price marker are current-display tools, not historical signals or backtest series. A mapped quote cannot refresh independently when the chart symbol stops producing updates.
Unavailable data appears as N/A where applicable. If a broker symbol cannot be resolved through either mapping method, the indicator draws nothing and skips its mapped data requests.
█ CREDITS AND LICENCE
Original work by SVKO. Published open source under the Mozilla Public License 2.0. 指標
