3SMA + Ichimoku 2leadlineThis indicator simultaneously displays two lines, which are the leading spans of the Ichimoku Kinko Hyo, and three simple moving averages.
To make it easier to distinguish between the simple moving average line and the line of the Ichimoku Kinko Hyo, the simple moving average line is set to level 2 thickness by default.
Also, the color of Reading Span 1 in the Ichimoku Kinko Hyo has been changed from green to lime to improve color visibility.
I (author of this indicator) use this indicator especially as a simple perspective on the cryptocurrency BTC / USD(USDT).
If this indicator is a problem, moderators don't know about tradingview beginners.
" Visibility " should be a high-priority item not only for indicators but also for graph requirements.
Visibility is one of the most important factors for investors who have to make instant decisions in one minute and one second.
The purpose of this indicator is to display two leading spans that are easily noticed in the Ichimoku cloud and three simple moving averages whose set values can be changed.
This is because chart analysis often uses a combination of a simple moving average of three periods and two lead spans of the Ichimoku cloud.
Also, in chart analysis, green is often displayed with the same thickness on both the moving average line and the Ichimoku cloud.
Therefore, if the moving average line and the Ichimoku cloud often use the same green color, the visibility will drop. Therefore, the green color of Ichimoku cloud was changed to lime color by default.
Tradingview beginners often refer only to the two lines of the leading span of Ichimoku Cloud. Therefore, we decided not to draw lines that are difficult to use.
Many Tradingview beginners don't know that you can change the thickness of the indicator .
Therefore, this indicator shows by DEFAULT the three commonly used simple moving averages that are thickened by one step at the same time.
Also, since the same green color is often used for the Ichimoku cloud and the moving average line, the green color of the preceding span of the Ichimoku cloud is changed to lime color by default.
The originality of this indicator is that it enhances " visibility " so that novice tradingview users will not be confused on the chart screen.
The lines other than the preceding span of the Ichimoku cloud are not displayed, and the moving average line is level 2 thick so that the user can easily see it.
This indicator not only combines a simple moving average and Ichimoku cloud, but also improves "visibility" by not incorporating lines that are difficult to see from the beginning and making it only the minimum display, making it easy for beginners to understand. The purpose is to do.
If any of the other TradingView indicators already meet the following, acknowledge that this indicator is not original.
・Display 3 simple moving averages at the same time
・For visibility, the thickness of the simple moving average line is set to level 2 from the beginning.
・A setting that does not dare to draw lines other than the lead span of Ichimoku cloud.
・Make the moving average line and the Ichimoku cloud line different colors and thicknesses from the beginning.
스크립트에서 "tradingview+筹码结构"에 대해 찾기
RSI-VWAP Indicator %█ OVERALL
Simple and effective script that, as you already know, uses vwap as source of the rsi, and with good results as long as the market has no long-term downtrend.
RsiVwap = rsi (vwap (close), Length)
The default settings are for BTC in a 30 minute time frame. For other pairs and time frames you just have to play with the settings.
█ FEATURES
• The option to start trading from a certain date has been added.
• To make the profit more progressive, a percentage of your equity is used for entries and a percentage of your position is used for closings.
• The option to trade in Spot mode has been added, since, for the TradingView backtest, the money is infinite and if you do not limit it somehow,
it would offer you much better profits than the live trading.
QuantityOnLong = Spot ? (EquityPercent / 100) * ((strategy.equity / close) - strategy.position_size) : (EquityPercent / 100) * (strategy.equity / close)
• The option to stop the system when the drawdown exceeds the fixed limit has been added.
Drawdown, as you already know, is a very important measure of risk in trading systems.
The maximum drawdown will tell us what the maximum loss of a trading system has been during a period. This maximum loss is determined by:
strategy.risk.max_drawdown(Risk, strategy.percent_of_equity)
• Leverage plotted on labels added.
█ ALERTS
To enjoy the benefits of automatic trading, TradingView alerts can be used as direct buy-sell orders on spot, or long-close orders with leverage.
Currently there are Chrome extensions that act as a bridge between TradingView and your Exchange or Broker.
This is an example of syntax for this type of extensions. Copy and paste a message like this into the alert window:
{{strategy.order.action}} @ {{strategy.order.price}} | e = {{exchange}} a = account s = {{ticker}} b = {{strategy.order.action}} {{strategy.order.alert_message}}
█ NOTE
Certain Risks of Live Algorithmic Trading You Should Know:
• Backtesting cannot assure actual results.
• The relevant market might fail or behave unexpectedly.
• Your broker may experience failures in its infrastructure, fail to execute your orders in a correct or timely fashion or reject your orders.
• The system you use for generating trading orders, communicating those orders to your broker, and receiving queries and trading results from your broker may fail.
• Time lag at various point in live trading might cause unexpected behavior.
• The systems of third parties in addition to those of the provider from which we obtain various services, your broker, and the applicable securities market may fail or malfunction.
█ THANKS
Thanks to TradingView, its Pine code, its community and especially those Pine wizards who post their ideas that helps us to learn.
If the world is heading toward a equitable new world economic order, let's get rich first ...
Happy trading!
Ultimate Strategy TemplateHello Traders
As most of you know, I'm a member of the PineCoders community and I sometimes take freelance pine coding jobs for TradingView users.
Off the top of my head, users often want to:
- convert an indicator into a strategy, so as to get the backtesting statistics from TradingView
- add alerts to their indicator/strategy
- develop a generic strategy template which can be plugged into (almost) any indicator
My gift for the community today is my Ultimate Strategy Template
Step 1: Create your connector
Adapt your indicator with only 2 lines of code and then connect it to this strategy template.
For doing so:
1) Find in your indicator where are the conditions printing the long/buy and short/sell signals.
2) Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator wether it's a MACD, ZigZag, Pivots, higher-highs, lower-lows or whatever indicator with clear buy and sell conditions
//@version=4
study(title='Moving Average Cross', shorttitle='Moving Average Cross', overlay=true, precision=6, max_labels_count=500, max_lines_count=500)
type_ma1 = input(title="MA1 type", defval="SMA", options= )
length_ma1 = input(10, title = " MA1 length", type=input.integer)
type_ma2 = input(title="MA2 type", defval="SMA", options= )
length_ma2 = input(100, title = " MA2 length", type=input.integer)
// MA
f_ma(smoothing, src, length) =>
iff(smoothing == "RMA", rma(src, length),
iff(smoothing == "SMA", sma(src, length),
iff(smoothing == "EMA", ema(src, length), src)))
MA1 = f_ma(type_ma1, close, length_ma1)
MA2 = f_ma(type_ma2, close, length_ma2)
// buy and sell conditions
buy = crossover(MA1, MA2)
sell = crossunder(MA1, MA2)
plot(MA1, color=color_ma1, title="Plot MA1", linewidth=3)
plot(MA2, color=color_ma2, title="Plot MA2", linewidth=3)
plotshape(buy, title='LONG SIGNAL', style=shape.circle, location=location.belowbar, color=color_ma1, size=size.normal)
plotshape(sell, title='SHORT SIGNAL', style=shape.circle, location=location.abovebar, color=color_ma2, size=size.normal)
/////////////////////////// SIGNAL FOR STRATEGY /////////////////////////
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Basically, I identified my buy, sell conditions in the code and added this at the bottom of my indicator code
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Important Notes
🔥 The Strategy Template expects the value to be exactly 1 for the bullish signal , and -1 for the bearish signal
Now you can connect your indicator to the Strategy Template using the method below or that one
Step 2: Connect the connector
1) Add your updated indicator to a TradingView chart
2) Add the Strategy Template as well to the SAME chart
3) Open the Strategy Template settings and in the Data Source field select your 🔌Connector🔌 (which comes from your indicator)
From then, you should start seeing the signals and plenty of other stuff on your chart
🔥 Note that whenever you'll update your indicator values, the strategy statistics and visual on your chart will update in real-time
Settings
- Color Candles : Color the candles based on the trade state (bullish, bearish, neutral)
- Close positions at market at the end of each session : useful for everything but cryptocurrencies
- Session time ranges : Take the signals from a starting time to an ending time
- Close Direction : Choose to close only the longs, shorts, or both
- Date Filter : Take the signals from a starting date to an ending date
- Set the maximum losing streak length with an input
- Set the maximum winning streak length with an input
- Set the maximum consecutive days with a loss
- Set the maximum drawdown (in % of strategy equity)
- Set the maximum intraday loss in percentage
- Limit the number of trades per day
- Limit the number of trades per week
- Stop-loss: None or Percentage or Trailing Stop Percentage or ATR
- Take-Profit: None or Percentage or ATR
- Risk-Reward based on ATR multiple for the Stop-Loss and Take-Profit
This script is open-source so feel free to use it, and optimize it as you want
Alerts
Maybe you didn't know it but alerts are available on strategy scripts.
I added them in this template - that's cool because:
- if you don't know how to code, now you can connect your indicator and get alerts
- you have now a cool template showing you how to create alerts for strategy scripts
Source: www.tradingview.com
I hope you'll like it, use it, optimize it and most importantly....make some optimizations to your indicators thanks to this Strategy template
Special Thanks
Special thanks to @JosKodify as I borrowed a few risk management snippets from his website: kodify.net
Additional features
I thought of plenty of extra filters that I'll add later on this week on this strategy template
Best
Dave
[blackcat] L2 Ehlers Squelch IndicatorLevel: 2
Background
John F. Ehlers introuced the squelch indicator in Sep, 2000.
Function
This the squelch indicator code is identical to the Hilbert period code , with the addition of the squelch threshold and the display being implemented as a paintbar -- that is, a bar on the chart being colored, depending on the squelch threshold value.
The Pine v4 code for displaying the squelch control as a paintbar for John Ehlers's article, "Squelch Those Whipsaws," can be reproduced in Tradingview by breaking the steps into separate functions. For example, functions can be written to calculate the "InPhase" and "Quadrature" variables, which can then be used in the calculation of the "Phase," "DeltaPhase," and "InstPeriod."
Although paintbars are not a feature of Tradingview, a similar effect can be displayed in a chart by writing a function to determine whether the period is less than 20. This function can then be displayed in main chart to highlight whether the price is in a trend mode or a cycle mode. The squelch period should also prove useful as an input for neural network predictions.
Key Signal
Plot1--> Highlight Period smaller than Squelch Threshold
Plot2--> Highlight Period smaller than Squelch Threshold
Pros and Cons
100% John F. Ehlers definition translation, even variable names are the same. This help readers who would like to use pine to read his book.
Remarks
The 65th script for Blackcat1402 John F. Ehlers Week publication.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Daily GAP StatsI did not write the script from scratch but rather started editing code of an existing one. The original code came from a script called GAP DETECTOR by @Asch-
First up: I am a trader, not a programmer and therefore my code most likely is inefficient. If someone with more expertise would like to help and optimize it - feel free to get in touch, I am always happy to learn some new tricks. :)
This script does 2 things:
- It shows daily gaps stats based on user inputs
- It shows color coded labels on gap days with additional information in tooltips ( important: make sure to read 'known issues/limitations' at the end )
User Inputs
==========
Although the input dialog is pretty straight forward, I do a quick rundown:
- Length: max lookback time
- Gap Direction: self explanatory
- Show All Gaps | Cont Only | Reversal Only | Off:
This refers to the way labels are displayed on gap days (again: make sure to read known issues/limitations!)
- Show All Gaps: does what it says
- Cont Only: only shows gaps where price continued in the gap direction. If you filter for gap ups and chose 'Cont only' you will only see labels on gap days where price closed above the open (and vice versa if you scan for gap downs).
- Reversal Only: you will only see labels for closes below the open on gap up days (and the opposite on gap down days)
- Off: self explanatory
- Gap Measure in ATR/PCT: self explanatory, ATR is calculated over a 10d period
- Gap Size (Abs Values): no negative values allowed here. If you filter for gap downs and enter 3 it means it will show gaps where the stock fell more than 3 ATR/PCT on the open.
- RVOL Factor: along with significant gaps should come significant volume. RVOL = volume of the gap day / 20d average volume
- Viewing Options: Placing the stats label in the window is a bit tricky (see knonw issues/limitations) and I was not sure which way I liked better. See for yourself what works best for you.
Known Isusses/Limitations:
=======================
- Positioning of the stats table:
As to my knowledge, Tradingview only allows label positioning relative to price and not relative to the chart window. I tried to always display the gap stats table in the upper right corner, using 52wk high as y-coordinate. This works ok most of the time, but is not pretty. If anybody has some fancy way to tag the label in a fixed position, please get in touch.
- Max number of labels per script:
TradingView has a limitation that allows a maxium of ~50 labels per script. If there are more labels, TradingView will automatically cut the oldest ones, without any notification. I have found this behaviour to be rather inconsistent - sometimes it'll dump labels even if there are a lot fewer than 50. Hopefully TradingView will drop this limitation at one point in the future.
Important: The inconsistent display of the gap day labels has NO INFLUENCE on the calculations in the gap stats table - the count and the calculations are complete and correct!
Historic VPoCs and pseudo VPVRThis study tries to recreate session based historic VPoCs
and VPVR Volume Profile
as they are used by
TradingLatino TradingView user.
It's aimed at BTCUSDT pair and 4h timeframe.
HOW IT WORKS
HOW IT WORKS - VPVR Profile Block
It gathers volume from the last chosen Bars
in order to draw the vpvr profile block
Volume that intersects with current level range
being studied is added to its value.
Additionally the current level price is modified
so that it matches the level price where most
of the volume has concentrated
So you get a pretty accurate price for drawn volume
while at the same time the levels are not stuck
to arbitrary level prices.
HOW IT WORKS - VPoC
It calculates a Volume Profile for the
given historic session but then
it only outputs that Volume Profile VPoC.
SETTINGS
Show VPVR Volume Profile {True}.
Show Historic VPoC lines {True}.
Show Historic VPoC labels {True}.
Extend Historic VPoC lines {True}: If this option is turned off the VPoC lines are only shown during the session duration.
Show tick difference from current price {False}: BETA. Feedback is needed because I'm not sure how it should work this setting.
VPVR Number of bars {100}: Define the Visible Range in number of bars so that its Volume Profile can be shown.
VPVR Profile width (in bars) {15}: VPVR Profile can be make larger or smaller in width thanks to this option.
VPVR Profile offset (in bars) {15}: VPVR Profile can be shown more to the left or to the right if the defaults do not suit you.
Historic Session Volume Profile timeframe {1D}: Historic VPoC use 1 day as their timeframe reference by default.
Number of decimal digits {2}: How many decimal digits are shown in label prices.
Number of previous sessions to print VPoC {5}: How many previous sessions VPoCs are to be printed. The maximum for this setting is 20.
Historic VPoC lines width (in pixels) {2}.
Historic VPoC labels size {small}.
History VPoC line offset (in bars) {5}: How far to the right VPoCs lines are to be extended. Note: This setting does not apply when 'Extend Historic VPoC lines' is set to 'False'.
WARNING
Please be aware that VPoC from the first previous session might not be accurate due to Pine Script limitations.
VPVR USAGE
This is not a VPVR like the official TradingView indicator.
This is a pseudo VPVR and that means it needs some manual input from you.
But, don't worry it's quite easy to do and if you always use the same number
of bars to calculate your VPVR then you might even just set it up once.
In order to show the VPVR (or Volume Profile on the Visible Range):
Rescale your chart so that you see all the bars for your Visible Range.
Click on the ruler tool.
Click on the last bar (far to the right) shown on the screen
Drag the ruler to first bar (far to the left) shown on the screen
Check what the ruler says
E.g. it says: 101 bars
Open this study settings
Modify: 'VPVR Number of bars ' setting
So that its value matches your measured number of bars (101)
Press OK to confirm and wait for the indicator to refresh.
STRATEGY USAGE
If your strategy uses VPoC
to define your resistances
or supports
you can check the VPoCs shown here.
FEEDBACK
I have only used this identifier in BTCUSDT 4h timeframe.
I'm interested to know what needs to be tweaked
in other securities and timeframes.
PINE STUDY TRICK
This study let's you choose the number of decimals the label will use.
CREDITS
I have reused and adapted some code from
'Poor man's volume profile' study
which it's from TradingView IldarAkhmetgaleev user.
I also wanted to thank him for helping me understanding his study.
I have reused some code from
'MTF Selection Framework - PineCoders FAQ' study
which it's from TradingView PineCoders user.
AX__Support/Resistance 000 y 00 There are many assets in the markets that are very sensitive to round levels, especially double or triple zero, so that these levels function as clear levels of support or resistance, sometimes very strong. And that we can take advantage of along with other things, to operate with a greater probability of success.
The script or indicator mainly for all currencies of the FOREX and XAUUSD gold market generates reference lines that at certain times of the market function of resistance or support by performing an automatic line without the need to draw them in tradingview although in tradinview they also generate the same lines only This script has a more prominent visual mode that makes it much better than the generic TV
generates lines every 100 pips FOREX including gold
generates extra lines of 10 pips without losing resolution (optional)
1 to 4 line thickness
4 colors black blue white and gray
I hope this tool helps you in your daily trading if you have any suggestion correction write me in comments or imbox by tradingview messages look for me by the name of AX010
====================================================================
Existen muchos activos en los mercados que son muy sensibles a los niveles redondos, sobre todo a los doble o triple cero, de forma que dichos niveles funcionan como claros niveles de soportes o resistencias, en ocasiones muy fuertes. Y eso lo podemos aprovechar junto con otras cosas, para poder operar con una mayor probabilidad de éxito.
el script o indicador principalmente para todas las divisas del mercado de FOREX y XAUUSD oro genera lineas de referencia que en determinado momento del mercado funciona de resistencia o soporte realizando un linea automatica sin necesidad de trazarlos en tradingview aunque en tradinview tambien generan las mismas lineas solo q este script tiene un modo visual mas resaltante que lo hace mucho mejor que lo generico de TV
genera lineas cada 100 pips FOREX incluido el oro
genera lineas extra de 10 pips sin perder resolucion (opcional)
grueso de linea de 1 a 4
4 colores negro azul blanco y gris
espero que es esta herramienta les ayude en su trading diario si tienen alguna sugerencia correccion escribanme en comentarios o imbox por mensajes de tradingview buscame por el nombre de AX010
saludos
Crypto Prices InfoPanel V2Hello traders
Following the introduction of ByBit to TradingView ByBit on TradingView
I decided to upgrade my previous Bitcoin InfoPanel Bitcoin-Prices-InfoPanel/
Now it's more dynamic (thumbs up) but only work with Bitcoin, Ethereum and Litecoin . If you select any other asset than those 3, the script won't work
This is due to a technical limitation on TradingView because I can't do more than 40 security calls per script
If you don't know what the security function is, here's a reminder : Security documentation . If you don't know what is TradingView... I cannot do anything for you...
Now you can use this panel to have a very cool arbitrage view directly from TradingView and use the info to gamble between brokers (not financial advice)
See you all tomorrow for a huge update regarding the Strategy Builder. I'll show you how to connect it to a Backtest system
____________________________________________________________
Feel free to hit the thumbs up as it shows me that I'm not doing this for nothing and will motivate to deliver more quality content in the future.
- I'm an officially approved PineEditor/LUA/MT4 approved mentor on codementor. You can request a coaching with me if you want and I'll teach you how to build kick-ass indicators and strategies
Jump on a 1 to 1 coaching with me
- You can also hire for a custom dev of your indicator/strategy/bot/chrome extension/python
FX Meter ScriptA while ago, we wrote* about the usefulness of using a currency strength meter and how you can build one from scratch.
See here: www.globalprime.com.au
Now we've taken this little project to the next level by visually spotting, via color signals in a dashboard and alerts, when a potential new trend might be developing in a currency pair.
*It's critical that you first read that article before you jump into reading this one or else you could get easily lost.
The script gives a trigger every time two currencies show diverging flows via opposing moving average slopes.
The signals originate from a first chart where currency indexes can be found, calculated through a formula, in various thin lines. Then a moving average to each currency index is applied so that it can smooth out the lines (what I call Micro moving averages – thicker lines -) and is usually a 4-5 period MA, with the key input to pay attention being the slope. One can perform their own tests on what works best for their particular trading style. The smaller the period in the moving average, the more responsive to changes in biases but the downside is that you will get a greater number of false moves. In the windows below the 1st chart, the stochRSI is calculated for each currency index (these values originate from the currency index and not from the applied MA). By default, a 25-period is applied to both RSI and Stoch length.
A 2nd chart that looks at the same logic is also accounted for to build this script, but instead of checking the micro trend, it applies a 25MA to the currency index, so it looks at what I call the slope of the macro trend. In this case, by default, a 125-period is applied to both RSI and Stoch length.
We had in mind to transition from just eye-balling and monitoring these charts manually to build a script via Tradingview that makes calculations real time (whenever the change in the moving average slope first occurs, and not when the bar/line closes), so that one can decide whether or not its a signal worth trading as part of a new trend emerging. Note, this is not so much a signal-triggering indicator but rather a tool to constantly be on the lookout monitoring what currencies might start to develop trends.
The actual script consists of a dashboard with different colored rectangles being triggered depending on the quality of the signal.
We will be happy to discuss it further with anyone who is interested in exploiting all the benefits that it can offer.
The way you add the script into your Tradingview chart is by first copy everything in the txt file. Then go to Pine editor (bottom middle-left) in your tradingview chart, delete everything there, then Paste the script. Then click Add to Chart (top right of the pine editor).
Note, you should add via the Anchored Text function the following list of pairs below, in this alphabetic order, on the right-hand side of the chart, as demonstrated above:
AUDCAD
AUDJPY
AUDNZD
AUDUSD
CADJPY
EURAUD
EURJPY
EURCAD
EURNZD
EURGBP
EURUSD
GBPAUD
GBPCAD
GBPJPY
GBPNZD
GBPUSD
NZDCAD
NZDJPY
NZDUSD
USDCAD
USDJPY
There are only 2 rules for the script to trigger a signal (see below). However, as I will elaborate further down, there are up to 6 different colors we can grade a signal
RULE 1 -> 2 moving averages, which are a calculation applied to a currency index as shown in the micro trend above, exhibit slopes in the opposite direction.
RULE 2 -> The Stoch RSI cannot be in overbought conditions if the slope of the moving average points higher or in oversold if the slope points lower.
Note 1: Even if the chart is a 60m timeframe by default (can be changed to any timeframe(, one gets the signal the moment the change of slope is identified, which means the indicator monitors changes in price tick by tick, and not on a candle close, otherwise one would get the trigger too late.
As an example of the highest-graded signal triggering (in green), a few hours ago we were given the visual cue that GBPCAD was experiencing a change of behavior. If we crosscheck the time the green-colored trigger was given with the actual GBPCAD chart, this is what we can observe. The pair is 30p higher since the trigger.
HOW TO SETUP ALERTS
One can easily setup a notification window each time the above rules are met, for example, if the EUR MA slope changes to bullish, and the AUD MA slope changes to bearish, and none of the 2 currency index values corresponding to these 2 moving averages (EUR and AUD) show a stoch RSI in overbought (above 80) in the case of the EUR, or oversold (below 20) in the case of the AUD, then the notification pop up would show a customized line: Long EURAUD
Note 1: Recording the slope of the macro moving average, which is usually a 25period MA applied to the currency index, is not included as part of the rules to trigger a signal, but it is taken into account to grade the quality of each signal.
Note 2: I recommend each signal to be triggered once or if you prefer, simply monitor the chart visually on the change of colors via the dashboard. The calculation resets and can appear again the moment that the slope changes to the opposite direction, so it’s a very dynamic indicator that will alert you the second a pair of currencies starts trending.
Note 3: When the signal is triggered, the indicator draws a colored rectangle. Each signal notification should be colored based on the following logic below.
LOGIC TO QUALIFY SIGNALS
-> Any long micro position with Macro MA in full agreement (ie/ Long EURAUD, Macro EUR up, Macro AUD down) is highlighted with green color
-> Any long micro position with macro moving averages in partial agreement (for example Long EURAUD, Macro EUR up AUD up) is highlighted with blue color
-> Any long micro position with macro moving averages in full disagreement (for example Long EURAUD, Macro EUR down AUD up) is highlighted with magenta color
-> Any short micro position with macro moving averages in full agreement (for example Short EURAUD, Macro EUR down AUD up) is highlighted with red color
-> Any short micro position with macro moving averages in partial agreement (for example Short EURAUD, Macro EUR up AUD up) is highlighted with orange color
-> Any short micro position with macro moving averages in full disagreement (for example Short EURAUD, Macro EUR up AUD down) is highlighted with purple color
PARAMETERS IN THE SCRIPT SETTINGS
Overbought/oversold: One can modify the stoch RSI level from which the indicator considers the value to be in overbought or oversold conditions. As a rule of thumb, consider 20/30 for oversold and 70/80 for oversold.
Slopes micro/macro MAs: One can edit the slope of the micro MA period (rule of thumb 4-5) and the macro MA (by default 25).
Value StochRSI: The default inputs are K 3, D 3, RSI Length 25, Stoch Length 25 for the micro and 125 period for the macro.
Change colors: One can edit the assigned colors in the signals dashboard.
Timeframe applied: The indicator has the flexibility to be applied to any timeframe, not just the 60m by default. Simply change the timeframe temporality.
CURRENCY INDEXES FORMULAS
It is the responsibility of the user to keep the values of the indexes updated. Find a recent sample below, as per values in early April. What this means is that at least once a week, in order to not let the values outdated, you should update the script with the latest valuations in the denominator.
NZD INDEX -> FX_IDC:NZDAUD/0.96+FX:NZDJPY/75.81+FX:NZDUSD/0.68+FX_IDC:NZDEUR/0.6+FX_IDC:NZDGBP/0.52+FX:NZDCHF/0.69+FX:NZDCAD/0.9
EUR INDEX -> FX:EURUSD/1.13+FX:EURJPY/125.5+FX:EURGBP/0.87+FX:EURCHF/1.135+FX:EURCAD/1.49+FX:EURNZD/1.655+FX:EURAUD/1.59
JPY INDEX -> 1/(FX:USDJPY/110.5+FX:EURJPY/125.5+FX:AUDJPY/79+FX:NZDJPY/75.5+FX:GBPJPY/144.5+FX:CHFJPY/110.5+FX:CADJPY/84)
USD INDEX -> FX_IDC:USDEUR/0.88+FX:USDJPY/110.5+FX_IDC:USDGBP/0.77+FX:USDCHF+FX:USDCAD/1.315+FX_IDC:USDNZD/1.46+FX_IDC:USDAUD/1.4
CAD INDEX-> FX_IDC:CADAUD/1.07+FX_IDC:CADNZD/1.11+FX:CADJPY/84.27+FX_IDC:CADUSD/0.76+FX_IDC:CADEUR/0.67+FX:CADCHF/0.76+FX_IDC:CADGBP/0.58
GBP INDEX -> FX:GBPAUD/1.83+FX:GBPNZD/1.91+FX:GBPJPY/144.5+FX_IDC:GBPEUR/1.15+FX:GBPCHF/1.31+FX:GBPUSD/1.31+FX:GBPCAD/1.71
Remember, I have provided a manual on how to build a currency strength meter. That’s what you will need to do first if you want to obtain the actual currency indexes other than just the indicator, which is just the visual cue to get you alerted when the slopes turn.
Once you’ve created your indexes via tradingview, you then apply a moving average to each index. Then apply the stochrsi 25 period to each index. For the macro trend, I make the same calculations, but the period of the MA is 25 instead of 4, while the stoch rsi is 125 periods vs 25 periods.
FINAL NOTE
This is a tool that should be interpreted as visual assistance, via the dashboard, to get that first cue when opposing micro slopes via the FX meter occur. However, you still need to check the technical context of the pair (levels marked, proj reached, etc.) but that first cue is a major time saver to constantly spot what's trending in FX. The permutations u can play with, as part of this script, are significant. You can tweak the timeframes you use, the periods of the moving averages, etc. I find the micro and macro trend combos when either a green or red signals is triggered the most reliable, with positions to be exploited via 15m and hourly under the right technical context.
Open Interest:CME e-o-d vs CFTC e-o-wCFTC only publishes total OI on fridays, related to last Tuesday.
But what happened since last Tuesday?
CME Vol & Open Interest data is recorded&exported daily by quandl.com to tradingview
via the che CHRIS/CME datasets
www.quandl.com
Eg. Nat Gas next outstanding cntract n. 20, field n. 7(OI)
@quandl.com:
www.quandl.com
is exported @tradingview:
www.tradingview.com
Every outstanding contract's OI & vol is exported (black column), but not the total (yellow line):
tiny.cc
This script sums up all the existing outstanding contract's OI for the future (the black column), so one can have an idea of the total OI for the day (Yellow line).
As numer of outstanding contracts varies from future to future,Eg:
E-mini (ES) has 4 contracts, Gold(GC) 16 cntrcts, NatGas(NG) has 43, WTI(CL) has 38 etc
the scrips tries to guess how many exist for it and sums them up, to have the total OI for tha day
Number ofoutstanding contracts exported by quandl.com to tradingview is taken from
s3.amazonaws.com
There are 2 params you can enter on the script:
* override the ticket symbol on the chart ,if script cannot guessit or you need a different one
* enter the "preliminary" OI that is published by CME early the next day, butb not yet exported by quandl to tradingview
This script is Open so anyone can copy and modifyit for its use.
Please post comments and ideas if you find it useful
I try to keep a log of my work here:
Zindarra Multi Alerts Advanced (8 Symbols, 8 Levels) by RRBZindarra Multi Alerts Advanced by RRB by RagingRocketBull 2018
Version 1.0
This indicator lets you configure multiple alert levels for several assets. Zindarra Multi Alerts Advanced supports 8 symbols with 8 custom alert levels.
You can have an M:M relationship betweeen symbols and levels, for example:
- 4 symbols each boxed by 2 alerts above/below the price
- 3 symbols with 1 alert each
- 2 symbols, 1st with 2 alerts, 2nd - with 6 alerts
- 1 symbol with 8 alerts etc
There are several versions: Simple, Pro, Advanced and Ultimate. This is the Advanced version. The Differences are listed below.
- Simple: 10 Alert Levels, 1 plot mode, alert type: cross, no colors/triggered alerts
- Pro: 9 Alert Levels, 2 plot modes: plot/price line, alert type: cross, +change/swap colors, +hide/disable triggered alerts, 2 penetration modes (close, high/low), trigger on confirmed close
- Advanced: 8 Symbols/Tickers, 8 Alert Levels, +alert types: cross up/cross down, no color change. Display sources as lines/candles, normalize, scale/shift independently
- Ultimate: 5 Symbols/Tickers, 8 Alert Levels, +alert types: volume/price %/abs change, volume/ema/time cross
Features:
- 8 custom symbols, symbols:levels = M:M
- 8 custom alert levels with labels. For each alert there must be a corresponding non-empty symbol (can be a duplicate)
- alert types: cross/cross up/cross down
- normalize symbols (and alert levels) to 100% to compare,
- scale and shift each symbol (and alert levels) to position on a chart independently
- 1 alert levels plot mode: plot
- 2 symbol types: line/candles
- colorize symbol candles
- high/low or close level penetration modes
- show/hide levels/labels
- keep or auto disable triggered alerts
- trigger alerts only after a confirmed close
You will see all symbols on a single chart at the same time with their corresponding alert levels. From this chart you can manage all alerts configured for multiple assets.
Although TradingView has 2 percentage scale modes (Percent, Indexed to 100), somehow they still fail to be usefull when comparing multiple assets.
This indicator lets you normalize all symbols to 100% making a direct single scale comparison between assets with vastly different price levels possible.
All alert levels will be normalized as well.
TradingView does not let you move the plots attached to left scale. When scaled they all remain stuck in the center and can't be moved vertically or relative to each other.
This indicator lets you position all symbols independently using individual scale and shift settings. For example, you can:
- split your screen in 3 horiz areas and have a symbol in each of them without overlapping or
- have several partially overlapping assets with different scale each or
- have all assets fully overlapping and normalized to the same 100% scale
You have to manually create an alert in Manage Alerts Panel and configure it to use with this indicator.
Free accounts are limited to only 1 alert slot and this indicator will take it (any existing alerts must be disabled/stopped).
Once the alert is configured, the indicator can be removed from chart to free a slot for another indicator, but you won't see the alert levels.
Usage:
1. attach indicator to a chart
2. define alert levels in UI settings
3. in TradingView's Manage Alerts panel on the right:
- for free accounts: disable/stop all existing alerts, you are limited to 1 alert slot only. Otherwise you won't be able to save.
- create a new Alert:
- select 'Multi Alerts' indicator name in the Condition dropdown box, leave Level 1 and Multi Alerts Cross as default options
- select 'Once Per Bar' or 'Once Per Minute' instead of 'Only Once' to trigger the alert multiple times
5. click Save. Your 9 alerts are enabled now.
Change Settings:
1. change levels/settings in UI. Any changes will also reset already triggered levels visibility.
2. in Manage Alerts panel:
- open/edit the alert you created
- select new instance of 'Multi Alerts' indicator name in the Condition dropdown box (appears at the bottom)
- check the Condition dropdown again - a single instance should remain selected.
3. click Save. Your alert settings are updated.
Notes on using alerts:
- attaching this indicator to a chart and configuring alert levels will not automatically enable the alerts - you have to manually create/configure a new alert in the Alerts Panel
- removing this indicator from chart will not disable the alerts, you have to manually disable the alert you created in the Alerts Panel
- your alert in the Alerts Panel uses another instance (copy) of indicator/settings. Any changes won't affect the alert. You have to manually update the alert every time you change any settings in the indicator.
- recompiling and attaching your own version of indicator will require creating a new Alert (delete the old one).
- alerts are designed to work in realtime. In replay mode you will see triggered alert levels hiding/changing colors but there will be no system alert messages. It's best to test the indicator in realtime on M1 (1 min) chart
- you will only see 1 system alert per bar/60 sec when multiple alert levels are crossed with a single bar or across several symbols at the same time. However all of these levels will hide in the indicator as expected.
- you can only see the alert levels when the indicator is attached to chart, they are not shown by the system alert.
- For source=high/low a directional level penetration is used automatically (crossunder/low and crossover/high). For source=close a standard bidirectional cross is used unless another alert type is specified.
- normalization breaks/distorts alert levels and symbol price - this is normal and is expected. To view the real price of alert levels uncheck normalize - the first 8 outputs are alert levels. Unnormalized levels are straight lines.
- you will see alerts from all symbols in the system alert message box of the current symbol - a bit confusing, but there's no workaround, you can't have a customized alert message for each symbol/level
- many tickers as arguments can stretch/break TradingView's Create New Alert dialog but it's still possible to push all required buttons and Save.
- duplicate symbols will be displayed by default. You can manually hide duplicates using show/hide flags.
- empty tickers (and corresponding alerts) are essentially disabled
1. uses plot*, cross*, barssince, highest, security, alertcondition
The Always Winning Holy Grail Strategy - Not (by ChartArt)How to win all the time if 1+1 = 2
The most upvoted strategies on Tradingview are those which seemingly work 100%, but they actually don't at all because they are repainting and would not work in live trading reality. They are using the multi-time-frame strategy testing bug and thereby trade during the backtest on close prices before the bar has closed in reality.
Top list of these cheating repainting strategies:
1569 upvotes ANN Strategy
877 upvotes Vdub FX SniperVX3 Strategy
481 upvotes Get Trend Strategy
I guess there are much more strategies among the top upvoted strategies on Tradingview which cheat with a multi-time-frame close price, but three examples are enough. The ANN Strategy uses the daily close price as multi-time-frame and cheats with that. The Vdub FX SniperVX3 Strategy uses the half-day (720 minute) close price to cheat and the Get Trend Strategy uses the 160 minute bar close for repaint cheating (at least here the author of this strategy explains that his strategy is only demo and would not work, which might be the reason why it has 1000 less upvotes than the ANN Strategy. I already wrote months ago a comment underneat these strategies to explain this issue but it hasn't stopped these strategies from getting more and more upvotes and staying in the top list.
I thought this way of cheating is lame, so I invented a new way to cheat my way to seemingly reach 100% profitable trades all the time by going long if 1+1 is equal to 2. Welcome to super wide stop losses. Simply use a extreme unrealistic large stop loss and take profit after a realistic amount of pips and according to Tradingview's current backtest module you win 100% all the time. Yay! :)
My recommendation for the Tradingview team is to add a function to let the user define a stop out and margin call level and maybe set a realistic setting as default, like 100%.
Please don't trade with this strategy!
Acc/Dist. Cloud with Fractal Deviation Bands by @XeL_ArjonaACCUMULATION / DISTRIBUTION CLOUD with MORPHIC DEVIATION BANDS
Ver. 2.0.beta.23:08:2015
by Ricardo M. Arjona @XeL_Arjona
DISCLAIMER
The Following indicator/code IS NOT intended to be a formal investment advice or recommendation by the author, nor should be construed as such. Users will be fully responsible by their use regarding their own trading vehicles/assets.
The embedded code and ideas within this work are FREELY AND PUBLICLY available on the Web for NON LUCRATIVE ACTIVITIES and must remain as is.
Pine Script code MOD's and adaptations by @XeL_Arjona with special mention in regard of:
Buy (Bull) and Sell (Bear) "Power Balance Algorithm by Vadim Gimelfarb published at Stocks & Commodities V. 21:10 (68-72).
Custom Weighting Coefficient for Exponential Moving Average (nEMA) adaptation work by @XeL_Arjona with contribution help from @RicardoSantos at TradingView @pinescript chat room.
Morphic Numbers (PHI & Plastic) Pine Script adaptation from it's algebraic generation formulas by @XeL_Arjona
Fractal Deviation Bands idea by @XeL_Arjona
CHANGE LOG:
ACCUMULATION / DISTRIBUTION CLOUD: I decided to change it's name from the Buy to Sell Pressure. The code is essentially the same as older versions and they are the center core (VORTEX?) of all derived New stuff which are:
MORPHIC NUMBERS: The "Golden Ratio" expressed by the result of the constant "PHI" and the newer and same in characteristics "Plastic Number" expressed as "PN". For more information about this regard take a look at: HERE!
CUSTOM(K) EXPONENTIAL MOVING AVERAGE: Some code has cleaned from last version to include as custom function the nEMA , which use an additional input (K) to customise the way the "exponentially" is weighted from the custom array. For the purpose of this indicator, I implement a volatility algorithm using the Average True Range of last 9 periods multiplied by the morphic number used in the fractal study. (Golden Ratio as default) The result is very similar in response to classic EMA but tend to accelerate or decelerate much more responsive with wider bars presented in trending average.
FRACTAL DEVIATION BANDS: The main idea is based on the so useful Standard Deviation process to create Bands in favor of a multiplier (As John Bollinger used in it's own bands) from a custom array, in which for this case is the "Volume Pressure Moving Average" as the main Vortex for the "Fractallitly", so then apply as many "Child bands" using the older one as the new calculation array using the same morphic constant as multiplier (Like Fibonacci but with other approach rather than %ratios). Results are AWSOME! Market tend to accelerate or decelerate their Trend in favor of a Fractal approach. This bands try to catch them, so please experiment and feedback me your own observations.
EXTERNAL TICKER FOR VOLUME DATA: I Added a way to input volume data for this kind of study from external tickers. This is just a quicky-hack given that currently TradingView is not adding Volume to their Indexes so; maybe this is temporary by now. It seems that this part of the code is conflicting with intraday timeframes, so You are advised.
This CODE is versioned as BETA FOR TESTING PROPOSES. By now TradingView Admins are changing lot's of things internally, so maybe this could conflict with correct rendering of this study with special tickers or timeframes. I will try to code by itself just the core parts of this study in order to use them at discretion in other areas. ALL NEW IDEAS OR MODIFICATIONS to these indicator(s) are Welcome in favor to deploy a better and more accurate readings. I will be very glad to be notified at Twitter or TradingView accounts at: @XeL_Arjona
US recessionsDisplays US recessions from 1900 - 2014 listed here: www.nber.org
Unix timestamp generated using this service: unixtimestamp.50x.eu For beginn/end of recession always taken the 15th day of the particular calendar month.
Tradingview has a bug by using unix timestamp: I had to add "000.0" to each generated timestamp to display the date in the tradingview correctly. Once the bug will get corrected, this cript will no more work!
The bug is described here: getsatisfaction.com
Unfortunately tradingview does not allow to display any (forecasted) recession into the future and or with later dates then 1900! This is disappointing.
NOTE: I can not code at all. PLEASE modify this script as much as you like. Particular would be helpful, if:
- there is only one background colour to edit
- there are tickboxes, where you can deselect the particular recession with titles of such recessions
- perhaps electively be able to display the title of the particular recession directly on its background within the chart
BK AK-Zenith💥 Introducing BK AK-ZENITH — Adaptive Rhythm RSI for Peak/Valley Warfare 💥
This is not another generic RSI. This is ZENITH: it measures where momentum is on the scale, then tells you when it’s hitting extremes, when it’s turning, and when price is lying through its teeth with divergence.
At its core, ZENITH does one thing ruthlessly well:
it matches the oscillator’s period to the market’s current rhythm—adaptive when the market is fast, adaptive when the market is slow—so your signals stop being “late because the settings were wrong.”
🎖 Full Credit — Respect the Origin (AlgoAlpha)
The core RSI architecture in this form belongs to AlgoAlpha—one of the best introducers and coders on TradingView. They originated this adaptive/Rhythm-RSI framework and the way it’s presented and engineered.
BK AK-ZENITH is my enhancement layer on top of AlgoAlpha’s foundation.
I kept the spine intact, and I added tactical systems: clearer Peak/Valley warfare logic, pivot governance (anti-spam), divergence strike markers, momentum flip confirmation, and a war-room readout—so it trades like a weapon, not a toy.
Respect where it started: AlgoAlpha built the engine. I tuned it for battlefield use.
🧠 What Exactly is BK AK-ZENITH?
BK AK-ZENITH is an Adaptive Period RSI (or fixed if you choose), designed to read momentum like a range of intent rather than a single overbought/oversold gimmick.
Core Systems Inside ZENITH
✅ Adaptive Period RSI (Rhythm Engine)
Automatically adjusts its internal RSI length to match current market cadence.
(Optional fixed length mode if you want static.)
✅ Optional HMA Smoothing
Cleaner shape without turning it into a laggy moving average.
✅ Peak / Valley Zones (default 80/20)
Hard boundaries that define “true extremes” so you stop treating every wiggle like a signal.
✅ Pivot-Based BUY/SELL Triangles + Cooldown
Signals are governed by pivots and a cooldown so it doesn’t machine-gun trash.
✅ Momentum Flip Diamonds (◇)
Shows when the oscillator’s slope flips—clean confirmation for “engine change.”
✅ Divergence Lightning (⚡)
Exposes when price is performing confidence while momentum is quietly breaking.
✅ War-Room Table / Meter
Bias, zone, reading, and adaptive period printed so you don’t “interpret”—you execute.
✅ Alerts Suite
Pivots, divergences, zone entries—so the chart calls you, not your emotions.
🎯 How to use it (execution rules)
1) Zones = permission
Valley (≤ Valley level): demand territory. Stalk reversal structure; stop chasing breakdown candles.
Peak (≥ Peak level): supply territory. Harvest, tighten, stop adding risk at the top.
2) Pivot triangles = the shot clock
Your ▲/▼ signals are pivot-confirmed with a cooldown. That’s intentional.
This is designed to force patience and prevent overtrading.
3) Divergence = truth serum
When price makes the “confident” high/high or low/low but ZENITH disagrees, you’re seeing internal change before the crowd does.
Treat divergence as warning + timing context, not a gambling button.
4) Meter/Table = discipline
If you can’t summarize the state in one glance, you’ll overtrade. ZENITH prints the state so your brain stops inventing stories.
🔧 Settings that actually matter
Adaptive Period ON (default): the whole point of ZENITH
Peak/Valley levels: how strict extremes must be
Pivot strength + Cooldown: your anti-spam governor
Divergence pivot length: controls how “major” divergence must be
The “AK” in the name is an acknowledgment of my mentor A.K. His standards—patience, precision, clarity, emotional control—are why this tool is built with governors instead of hype.
And above all: all praise to Gd—the true source of wisdom, restraint, and right timing.
👑 King Solomon Lens — ZENITH Discernment
Solomon asked Gd for something most people never ask for: not wealth, not victory—discernment. The ability to separate what looks true from what is true.
That is exactly what momentum work is supposed to do.
1) Honest weights, honest measures.
In Solomon’s world, crooked scales were an abomination because they disguised reality. In trading, the crooked scale is your own excitement: you see one green candle and call it strength. ZENITH forces an honest measure—0 to 100—so you deal in degree, not drama. A Peak is not “bullish.” A Peak is “momentum priced in.” A Valley is not “bearish.” A Valley is “selling pressure reaching exhaustion.”
2) Wisdom adapts to seasons.
Solomon’s order wasn’t chaos—there was a time to build, a time to harvest, a time to wait. Markets have seasons too: trend seasons, chop seasons, compression seasons, expansion seasons. Fixed-length RSI pretends every season is the same. ZENITH does not. It listens for rhythm and adjusts its internal timing so your read stays relevant to today’s market tempo—not last month’s.
3) The sword test: revealing what’s hidden.
Solomon’s most famous judgment wasn’t about theatrics—it was about revealing the truth beneath appearances. Divergence is that same test in markets: price can perform strength while the engine quietly weakens, or perform weakness while momentum secretly repairs. The ⚡ is not a prophecy. It’s a revelation: “what you see on price is not the full story.”
That’s ZENITH discipline: measure → discern → execute.
And may Gd bless your judgment to act only when the measure is clean.
⚔️ Final
BK AK-ZENITH is a momentum fire-control system: adaptive rhythm + extreme zones + pivot timing + divergence truth.
Use it to stop feeling trades and start weighing them. Praise to Gd always. 🙏
BTC - VDD Multiple (Approx)Overview & Philosophy
⚠️ Note: This indicator is optimized for the Daily (1D) Timeframe. Please switch your chart to 1D for accurate signal reading.
The BTC – VDD Multiple (Approx) is an advanced oscillator designed to identify market overheating and cycle tops by analyzing the velocity of value moving through the market.
In traditional On-Chain Analysis, Value Days Destroyed (VDD) is a premier metric for spotting macro tops. It multiplies the coin age (how long a coin was held) by the price at which it was moved. When old coins (HODLer money) move at high prices, VDD spikes, signaling massive profit-taking.
The Problem: Real "Coin Days Destroyed" (CDD) data is typically locked behind institutional paywalls or unavailable on standard TradingView plans.
The Solution: This script calculates a Deterministic Proxy. By analyzing the relationship between Exchange Volume, Price, and a Dormancy Constant, we can approximate the structure of the VDD Multiple without needing a premium data feed.
Methodology
The VDD Multiple works by comparing short-term market velocity against a long-term baseline.
1. The Proxy Calculation
Since we cannot directly access the age of coins on TradingView, we model the economic weight of the move:
Proxy Value = Exchange Volume * Price * Dormancy Factor
This creates a synthetic representation of "Value Throughput."
2. The Multiple
We compare the immediate heat of the market against the yearly trend:
• Short-Term MA (2 Days): Captures flash spikes and sudden liquidity exit events.
• Long-Term MA (365 Days): Represents the baseline "hum" of network activity.
VDD Multiple = Short Term MA / Long Term MA
How to Read the Chart
The indicator plots the Multiple as a line and uses background highlighting to signal extreme regimes.
🔴 The Red Zone (Overheated > 2.9)
Meaning: Current value transfer is ~3x higher than the yearly average.
Interpretation: Historically, sharp spikes into the Red Zone correlate with Local or Cycle Tops. This indicates that massive volume is changing hands at high prices—typically a sign of "Smart Money" distributing into "Dumb Money" FOMO.
Note: In strong bull runs, price can push higher even after a VDD spike, but the risk/reward ratio is extremely poor here.
🟢 The Green Zone (Undervalued < 0.75)
Meaning: Market activity is quiet and below the yearly baseline.
Interpretation: These are periods of apathy or accumulation. Historically, extended time spent in the Green Zone (the "flatline") has offered the best asymmetric buying opportunities.
🟠 The Orange Line (Neutral)
Meaning: The market is in transition or equilibrium.
Strategy & Context
This indicator is best used as a Macro Cycle Tool, not a day-trading signal.
• Exit Strategy: Look for "Clusters" of Red Spikes. A single spike often marks a local correction, but a cluster of intense spikes while price makes new highs (Divergence) is a strong Cycle Top warning.
• Entry Strategy: Historically the best entries occur when the indicator flattens out in the Green Zone for weeks or months. This suggests sellers are exhausted and the market has reached a floor.
Credits
This script is an approximation of the original VDD Multiple concept. Full credit for the underlying on-chain theory goes to the pioneers of this metric:
• Concept: The original Value Days Destroyed metric was popularized by Hans Hauge and Glassnode.
• The Multiple: The specific application of a Short/Long MA Multiple on VDD is widely attributed to analysts like TXMC and Bitbo.
This script adapts these concepts for the free TradingView environment using exchange volume proxies.
Settings
• Data Source: Defaults to BINANCE:BTCUSDT to capture high-volume liquidity.
• Short MA: Default is 2 Days to capture rapid velocity spikes.
• Long MA: Default is 365 Days to track the annual trend.
Disclaimer
This tool is an approximation based on exchange volume, not raw blockchain data. While exchange volume and on-chain volume are highly correlated during cycle extremes, they are not identical. This script is for educational and research purposes only. Past performance does not guarantee future results.
Tags
bitcoin, btc, onchain, vdd, cdd, valuation, cycle, top, bottom, Rob Maths
Simple Candle Strategy# Candle Pattern Strategy - Pine Script V6
## Overview
A TradingView trading strategy script (Pine Script V6) that identifies candlestick patterns over a configurable lookback period and generates trading signals based on pattern recognition rules.
## Strategy Logic
The strategy analyzes the most recent N candlesticks (default: 5) and classifies their patterns into three categories, then generates buy/sell signals based on specific pattern combinations.
### Candlestick Pattern Classification
Each candlestick is classified as one of three types:
| Pattern | Definition | Formula |
|---------|-----------|---------|
| **Close at High** | Close price near the highest price of the candle | `(high - close) / (high - low) ≤ (1 - threshold)` |
| **Close at Low** | Close price near the lowest price of the candle | `(close - low) / (high - low) ≤ (1 - threshold)` |
| **Doji** | Opening and closing prices very close; long upper/lower wicks | `abs(close - open) / (high - low) ≤ threshold` |
### Trading Rules
| Condition | Action | Signal |
|-----------|--------|--------|
| Number of Doji candles ≥ 3 | **SKIP** - Market is too chaotic | No trade |
| "Close at High" count ≥ 2 + Last candle closes at high | **LONG** - Bullish confirmation | Buy Signal |
| "Close at Low" count ≥ 2 + Last candle closes at low | **SHORT** - Bearish confirmation | Sell Signal |
## Configuration Parameters
All parameters are adjustable in TradingView's "Settings/Inputs" tab:
| Parameter | Default | Range | Description |
|-----------|---------|-------|-------------|
| **K-line Lookback Period** | 5 | 3-20 | Number of candlesticks to analyze |
| **Doji Threshold** | 0.1 | 0.0-1.0 | Body size / Total range ratio for doji identification |
| **Doji Count Limit** | 3 | 1-10 | Number of dojis that triggers skip signal |
| **Close at High Proximity** | 0.9 | 0.5-1.0 | Required proximity to highest price (0.9 = 90%) |
| **Close at Low Proximity** | 0.9 | 0.5-1.0 | Required proximity to lowest price (0.9 = 90%) |
### Parameter Tuning Guide
#### Proximity Thresholds (Close at High/Low)
- **0.95 or higher**: Stricter - only very strong candles qualify
- **0.90 (default)**: Balanced - good for most market conditions
- **0.80 or lower**: Looser - catches more patterns, higher false signals
#### Doji Threshold
- **0.05-0.10**: Strict doji identification
- **0.10-0.15**: Standard doji detection
- **0.15+**: Includes near-doji patterns
#### Lookback Period
- **3-5 bars**: Fast, sensitive to recent patterns
- **5-10 bars**: Balanced approach
- **10-20 bars**: Slower, filters out noise
## Visual Indicators
### Chart Markers
- **Green Up Arrow** ▲: Long entry signal triggered
- **Red Down Arrow** ▼: Short entry signal triggered
- **Gray X**: Skip signal (too many dojis detected)
### Statistics Table
Located at top-right corner, displays real-time pattern counts:
- **Close at High**: Count of candles closing near the high
- **Close at Low**: Count of candles closing near the low
- **Doji**: Count of doji/near-doji patterns
### Signal Labels
- Green label: "✓ Long condition met" - below entry bar
- Red label: "✓ Short condition met" - above entry bar
- Gray label: "⊠ Too many dojis, skip" - trade skipped
## Risk Management
### Exit Strategy
The strategy includes built-in exit rules based on ATR (Average True Range):
- **Stop Loss**: ATR × 2
- **Take Profit**: ATR × 3
Example: If ATR is $10, stop loss is at -$20 and take profit is at +$30
### Position Sizing
Default: 100% of equity per trade (adjustable in strategy properties)
**Recommendation**: Reduce to 10-25% of equity for safer capital allocation
## How to Use
### 1. Copy the Script
1. Open TradingView
2. Go to Pine Script Editor
3. Create a new indicator
4. Copy the entire `candle_pattern_strategy.pine` content
5. Click "Add to Chart"
### 2. Apply to Chart
- Select your preferred timeframe (1m, 5m, 15m, 1h, 4h, 1d)
- Choose a trading symbol (stocks, forex, crypto, etc.)
- The strategy will generate signals on all historical bars and in real-time
### 3. Configure Parameters
1. Right-click the strategy on chart → "Settings"
2. Adjust parameters in the "Inputs" tab
3. Strategy will recalculate automatically
4. Backtest results appear in the Strategy Tester panel
### 4. Backtesting
1. Click "Strategy Tester" (bottom panel)
2. Set date range for historical testing
3. Review performance metrics:
- Win rate
- Profit factor
- Drawdown
- Total returns
## Key Features
✅ **Execution Model Compliant** - Follows official Pine Script V6 standards
✅ **Global Scope** - All historical references in global scope for consistency
✅ **Adjustable Sensitivity** - Fine-tune all pattern detection thresholds
✅ **Real-time Updates** - Works on both historical and real-time bars
✅ **Visual Feedback** - Clear signals with labels and statistics table
✅ **Risk Management** - Built-in ATR-based stop loss and take profit
✅ **No Repainting** - Signals remain consistent after bar closes
## Important Notes
### Before Trading Live
1. **Backtest thoroughly**: Test on at least 6-12 months of historical data
2. **Paper trading first**: Practice with simulated trades
3. **Optimize parameters**: Find the best settings for your trading instrument
4. **Manage risk**: Never risk more than 1-2% per trade
5. **Monitor performance**: Review trades regularly and adjust as needed
### Market Conditions
The strategy works best in:
- Trending markets with clear directional bias
- Range-bound markets with defined support/resistance
- Markets with moderate volatility
The strategy may underperform in:
- Highly choppy/noisy markets (many false signals)
- Markets with gaps or overnight gaps
- Low liquidity periods
### Limitations
- Works on chart timeframes only (not intrabar analysis)
- Requires at least 5 bars of history (configurable)
- Fixed exit rules may not suit all trading styles
- No trend filtering (will trade both directions)
## Technical Details
### Historical Buffer Management
The strategy declares maximum bars back to ensure enough historical data:
```pine
max_bars_back(close, 20)
max_bars_back(open, 20)
max_bars_back(high, 20)
max_bars_back(low, 20)
```
This prevents runtime errors when accessing historical candlestick data.
### Pattern Detection Algorithm
```
For each bar in lookback period:
1. Calculate (high - close) / (high - low) → close_to_high_ratio
2. If close_to_high_ratio ≤ (1 - threshold) → count as "Close at High"
3. Calculate (close - low) / (high - low) → close_to_low_ratio
4. If close_to_low_ratio ≤ (1 - threshold) → count as "Close at Low"
5. Calculate abs(close - open) / (high - low) → body_ratio
6. If body_ratio ≤ doji_threshold → count as "Doji"
Signal Generation:
7. If doji_count ≥ cross_count_limit → SKIP_SIGNAL
8. If close_at_high_count ≥ 2 AND last_close_at_high → LONG_SIGNAL
9. If close_at_low_count ≥ 2 AND last_close_at_low → SHORT_SIGNAL
```
## Example Scenarios
### Scenario 1: Bullish Signal
```
Last 5 bars pattern:
Bar 1: Closes at high (95%) ✓
Bar 2: Closes at high (92%) ✓
Bar 3: Closes at mid (50%)
Bar 4: Closes at low (10%)
Bar 5: Closes at high (96%) ✓ (last bar)
Result:
- Close at high count: 3 (≥ 2) ✓
- Last closes at high: ✓
- Doji count: 0 (< 3) ✓
→ LONG SIGNAL ✓
```
### Scenario 2: Skip Signal
```
Last 5 bars pattern:
Bar 1: Doji pattern ✓
Bar 2: Doji pattern ✓
Bar 3: Closes at mid
Bar 4: Doji pattern ✓
Bar 5: Closes at high
Result:
- Doji count: 3 (≥ 3)
→ SKIP SIGNAL - Market too chaotic
```
## Performance Optimization
### Tips for Better Results
1. **Use Higher Timeframes**: 15m or higher reduces false signals
2. **Combine with Indicators**: Add volume or trend filters
3. **Seasonal Adjustment**: Different parameters for different seasons
4. **Instrument Selection**: Test on liquid, high-volume instruments
5. **Regular Rebalancing**: Adjust parameters quarterly based on performance
## Troubleshooting
### No Signals Generated
- Check if lookback period is too large
- Verify proximity thresholds aren't too strict (try 0.85 instead of 0.95)
- Ensure doji limit allows for trading (try 4-5 instead of 3)
### Too Many False Signals
- Increase proximity thresholds to 0.95+
- Reduce lookback period to 3-4 bars
- Increase doji limit to 3-4
- Test on higher timeframes
### Strategy Tester Shows Losses
- Review individual trades to identify patterns
- Adjust stop loss and take profit ratios
- Change lookback period and thresholds
- Test on different market conditions
## References
- (www.tradingview.com)
- (www.tradingview.com)
- (www.investopedia.com)
- (www.investopedia.com)
## Disclaimer
**This strategy is provided for educational and research purposes only.**
- Not financial advice
- Past performance does not guarantee future results
- Always conduct thorough backtesting before live trading
- Trading involves significant risk of loss
- Use proper risk management and position sizing
## License
Created: December 15, 2025
Version: 1.0
---
**For updates and modifications, refer to the accompanying documentation files.**
Day Trading MA Crossover IndicatorDay Trading MA Crossover Indicator Overview The Day Trading MA Crossover Indicator is a simple yet effective tool designed for day traders to identify potential buy and sell opportunities based on moving average crossovers. It plots two customizable moving averages on your chart and generates clear visual signals when they cross, helping you spot trend reversals or continuations in fast-paced markets.This indicator is ideal for intraday trading on lower timeframes (e.g., 5-min, 15-min charts) but can be adapted for swing trading or higher timeframes. It's built with flexibility in mind, allowing you to tweak the MA lengths and types to suit your strategy.Key FeaturesMoving Average Crossovers: Generates "BUY" signals when the fast MA crosses above the slow MA (potential bullish entry) and "SELL" signals when it crosses below (potential bearish entry or exit).
Visual Signals: Green "BUY" labels below bars for long entries and red "SELL" labels above bars for short entries or exits. Optional subtle background coloring highlights signals for quick spotting.
Customizable Parameters:Fast MA Length (default: 9): Period for the shorter moving average.
Slow MA Length (default: 21): Period for the longer moving average.
MA Type (default: EMA): Choose between SMA (Simple), EMA (Exponential), or WMA (Weighted) for different smoothing behaviors.
Overlay Mode: Plots directly on your price chart without cluttering separate panes.
Lightweight and Efficient: Minimal computation for real-time performance on TradingView.
How It WorksMoving Averages Calculation: The indicator computes two MAs based on your selected type and lengths using closing prices.
Signal Detection: A buy signal triggers on an upward crossover (fast MA > slow MA), indicating potential momentum shift to the upside. A sell signal triggers on a downward crossunder (fast MA < slow MA), signaling possible downside momentum.
Visual Aids: Signals appear as labeled shapes with optional background tints to emphasize key bars.
Usage TipsFor Day Trading: Apply on volatile instruments like forex pairs, stocks, or crypto. Combine with support/resistance levels or other indicators (e.g., RSI for overbought/oversold confirmation) to filter false signals in ranging markets.
Backtesting: Test on historical data to optimize MA lengths for your asset—shorter periods for aggressive trading, longer for smoother trends.
Risk Management: Always use stop-losses and position sizing. Signals are not foolproof and work best in trending conditions.
Customization: Adjust inputs via the indicator settings panel after adding it to your chart.
Example SetupOn a 5-min EUR/USD chart: Use EMA (9/21) for quick crossovers. Look for buy signals above key support with increasing volume.
Avoid choppy markets where frequent false crossovers ("whipsaws") can occur.
This indicator is provided for educational and informational purposes only. It is not financial advice, and past performance does not guarantee future results. Trading involves risk; consult a professional advisor before using any strategy. If you have feedback or suggestions for improvements, feel free to comment!
Daily Levels ImporterUser Guide: Daily Levels Importer
What This Indicator Does
This tool allows you to instantly draw multiple support and resistance lines on your TradingView chart by pasting a list of data. It avoids the need to manually draw lines one by one. It also features a dashboard to identify the ticker and filters to toggle specific line colors on or off.
1. The Data Format
The indicator reads text in a specific 3-column format (Comma Separated).
Format: \, \, \
* Ticker: The symbol name (used for the dashboard display).
* Price: The price level where the line will be drawn.
* Color Code:
r = Red
g = Green
y = Yellow
Example:
ES, 4150.25, r
ES, 4200.00, g
ES, 4175.50, y
2. How to Use It
3. Copy Your Data: Select your list of levels (from Excel, a text file, or a website) and copy them to your clipboard.
4. Open Settings: On your TradingView chart, hover over the indicator name and click the Settings (Gear Icon).
5. Paste Data:
* Find the "Paste Data Here" text box in the Inputs tab.
* Delete any existing text.
* Paste your new list.
6. Save: Click OK. The lines will instantly render on your chart.
7. Controls & Filters
You can customize the view without deleting data by using the checkboxes in the Settings menu:
* Line Filters:
* Show Red Levels: Uncheck to hide all red lines.
* Show Green Levels: Uncheck to hide all green lines.
* Show Yellow Levels: Uncheck to hide all yellow lines.
* Dashboard Location:
* Use the dropdowns to move the Ticker ID box to any corner of the screen (e.g., Top Right, Bottom Left) or change its size.
8. Troubleshooting
Lines aren't showing up?
* Ensure the prices match the asset you are viewing (e.g., don't paste SPX prices on an AAPL chart).
* Check if you accidentally unchecked the "Show " box in the settings.
"No Data" in Dashboard?
* The script reads the ticker name from the first row of your pasted data. Ensure the first row is not blank.
Is there a limit?
* Yes. TradingView allows approximately 4,000 characters in the text box. This is roughly 250 lines of price levels. If you need more, add a second instance of the indicator to the chart.
Momentum Gamma StraddleExact definition of what that script does
1) Purpose
The script is a decision aid for intraday expiry-day ATM straddle trades. It detects intraday structure breakouts and signals candidate long straddle entries for Nifty or Sensex using price structure, volume, RSI momentum, and a user-supplied combined ATM premium value (CE + PE). It draws support/resistance, shows an info box, and raises alerts.
2) Inputs the user can change
Trading time window: startHour, startMin, endHour, endMin.
Structure lookback: res_lookback (how many candles to use to compute resistance/support).
Minimum candle body as fraction of candle range: min_body_pct.
Volume multiplier threshold: vol_mult (breakout candle volume must exceed vol_mult * sma5).
RSI length and thresholds: rsi_len, rsi_bull_thresh, rsi_bear_thresh.
Combined premium source: choose Manual or Symbol. If Manual, set manual_combined. If Symbol, provide a TradingView symbol that returns CE+PE combined ATM premium.
Combined premium acceptable band: min_combined_ok and max_combined_ok.
Profit target percent and SL percent (target_pct and sl_pct).
Misc pattern heuristics: min_res_hits (min tests of resistance inside lookback), low_slope_min (used to detect rising lows).
Micro-confirmation toggle, micro timeframe, nonrepaint option, show_entry_label toggle (in the later fixed versions some of these were added, but the earlier fixed script had basic combined_symbol options and a lookahead fallback).
3) Data calculated on each bar
Safety check hasEnough: true when bar_index >= res_lookback.
resistance: the highest high over res_lookback bars.
support: the lowest low over res_lookback bars.
res_hits: count of bars within lookback whose high is within a tolerance of resistance. Tolerance is 10 percent of the range between resistance and support.
low_slope: simple slope of lows over res_lookback bars.
body_pct: the candle body as a fraction of its high-low range. strong_body true when body_pct >= min_body_pct.
bull_breakout: true if hasEnough and current close > resistance and strong_body and res_hits >= min_res_hits.
bear_breakout: true if hasEnough and current close < support and strong_body and res_hits >= min_res_hits.
vol_sma5 and vol_ok: vol_ok true when current volume > vol_mult * vol_sma5.
rsi and rsi checks: rsi_bull_ok true if rsi >= rsi_bull_thresh; rsi_bear_ok true if rsi <= rsi_bear_thresh.
combined_premium: either the manual_combined input or the value read from combined_symbol via request.security. The script attempted a fallback to manual when the symbol was not valid.
combined_ok: true if combined_premium lies between min_combined_ok and max_combined_ok.
final signals: bull_signal when in_time_window and bull_breakout and vol_ok and rsi_bull_ok and combined_ok. bear_signal similar for bearish breakout.
4) Visual output and alerts
Plots resistance and support lines on the chart.
Plots a label shape "STRADDLE BUY" below the bar for bull_signal and above the bar for bear_signal.
Creates an info label (on last bar) that shows TimeOK, VolOK and vol ratio, RSI, Combined premium and whether it is OK, ResHits and LowSlope.
Sets two alertcondition events: "Bull Straddle BUY" and "Bear Straddle BUY" with a short candidate message. The alerts fire when the corresponding signal is true.
5) Execution assumptions you must follow manually
The script does not place any orders or compute option strike-level prices or greeks. It only flags candidate entry bars.
When combined_source is Manual you must type CE+PE yourself. The indicator will only accept the manual number and treat it as the combined premium.
When combined_source is Symbol the script uses request.security to read that symbol. For historical bars the indicator may repaint depending on lookahead settings. The earlier fixed script attempted to use request.security inside a conditional which leads to runtime or compile errors. You experienced that exact error.
6) Known implementation caveats and bugs you encountered
Pine typing issue with low_slope. The earlier version set low_slope = na without explicit type. That triggers the Pine error: "Value with NA type cannot be assigned to a variable that was defined without type keyword". This required changing to float low_slope = na.
The earlier version attempted to call request.security() inside an if block or conditional. Pine prohibits request.security in conditional blocks unless allowed patterns are followed. That produced the error you saw: "Cannot use request.* call within loops or conditional structures" or similar. The correct pattern is to call request.security at top-level and decide later which value to use.
If combined_symbol is invalid or not available on your TradingView subscription, request.security can return na and the script must fall back to manual value. The earlier fixed script attempted fallback but compiled errors prevented reliable behavior.
The earlier script did not include micro-confirmation or advanced nonrepaint controls. Those were added in later versions. Because of that, the earlier script may have given signals that appear to repaint on historical bars or may have thrown errors when using combined_symbol.
7) Decision logic summary (exact)
Only operate if current chart time is inside user set time window.
Only consider trade candidates when enough history exists for res_lookback.
Identify a resistance level as the highest high in the lookback. Count how many times that resistance was tested. Ensure the breakout candle has a strong body and volume spike. Ensure RSI is aligned with breakout direction.
Require combined ATM premium to be inside a user preferred band. If combined_symbol is used the script tries to read that value and use it; otherwise it uses manual_combined input.
If all the above conditions are true on a confirmed bar, the script plots a STRADDLE BUY label and triggers an alertcondition.
8) What the script does not do
It does not calculate CE and PE prices by strike. It only consumes or accepts combined premium number.
It does not compute greeks, IV, or OI. OI and IV checks must be done manually.
It does not manage positions. No SL management or automatic exits are executed by the script.
It does not simulate fills or account for bid/ask spreads or slippage.
It cannot detect off-exchange block trades or read exchange-level auction states beyond raw volume bars.
It may repaint historical labels if the combined_symbol was read with lookahead_on or the script used request.security in a way that repainted. The corrected final version uses nonrepaint options.
9) Manual checks you must always perform even when the script signals BUY
Confirm the live combined ATM premium and the bid/ask for CE and PE.
Check ATM IV and recent IV movement for a potential IV crush risk.
Check option OI distribution and recent OI changes for strike pinning or large player exposure.
Confirm CE and PE liquidity and depth. Wide spreads make fills unrealistic.
Confirm there is no scheduled news or auction within the next few minutes.
Confirm margin and position sizing fits your risk plan.
10) Quick testing checklist you can run now
Add the script to a 5-minute chart with combined_source = Manual.
Enter manual_combined equal to the real CE+PE at the moment you test.
Set startHour and endHour so the in_time_window is true for current time.
Look for STRADDLE BUY label on confirmed bars. Inspect the info box to see why it did or did not signal.
If you set combined_source = Symbol, verify the symbol exists and that TradingView returns values for it. If you previously saw the request.security error, that was caused by placing the request inside a conditional. The correct behavior is to call request.security unconditionally at top-level like in the final fixed version.
Kinetic EMA & Volume with State EngineKinetic EMA & Volume with State Engine (EMVOL)
1. Introduction & Concept
The EMVOL indicator converts a dense family of EMA signals and volume flows into a compact “state engine”. Instead of looking at individual EMA lines or simple crossovers, the script treats each EMA as part of a kinetic vector field and classifies the market into interpretable states:
- Trend direction and strength (from a grid of prime‑period EMAs).
- Volume regime (expansion, contraction, climax, dry‑up).
- Order‑flow bias via delta (buy versus sell volume).
- A combined scenario label that summarises how these three layers interact.
The goal is educational: to help traders see that moving averages and volume become more meaningful when observed as a structure, not as isolated lines. EMVOL is therefore designed as a real‑time teaching tool, not as an automatic signal generator.
2. Volume Settings
Group: “Volume Settings”
A. Calculation Method
- Geometry (Source File) – Default mode.
Buy and sell volume are estimated from each candle’s geometry: the close is compared to the high/low range and the bar’s total volume is split proportionally between buyers and sellers. This approximation works on any TradingView plan and does not require lower‑timeframe data.
- Intrabar (Precise) – Reconstructs buy/sell volume using a lower timeframe via requestUpAndDownVolume(). The script asks TradingView for historical intrabar data (e.g., 15‑second bars) and builds buy/sell volume and delta from that stream. This mode can produce a more accurate view of order flow, but coverage is limited by your account’s history limits and the symbol’s available lower‑timeframe data.
B. Intrabar Resolution (If Precise)
- Intrabar Resolution (If Precise) – Selected only when the calculation method is “Intrabar (Precise)”. It defines which lower timeframe (for example 15S, 30S, 1m) is used to compute up/down volume. Smaller intrabar timeframes may give smoother and more granular deltas, but require more historical depth from the platform.
When “Intrabar (Precise)” is active, the dashboard’s extended section shows the resolution and the number of bars for which precise volume has been successfully retrieved, in the format:
- Mode: Intrabar (15S) – where N is the count of bars with valid high‑resolution volume data.
In Geometry mode this counter simply reflects the processed bars in the current session.
3. Kinetic Vector Settings
Group: “Kinetic Vector”
A. Vector Window
- Vector Window – Controls the temporal smoothing applied to the aggregated vectors (trend, volume, delta, etc.). Internally, each bar’s vector value is averaged with a simple moving window of this length.
- Shorter windows make the state engine more reactive and sensitive to local swings.
- Longer windows make the states more stable and better suited to higher‑timeframe structure.
B. Max Prime Period
- Max Prime Period – Sets the largest prime number used in the EMA grid. The engine builds a family of EMAs on prime lengths (2, 3, 5, 7, …) up to this limit and converts their slopes into angles.
- A higher limit increases the number of long‑horizon EMAs in the grid and makes the vectors sensitive to broader structure.
- A lower limit focuses the analysis on short- and medium‑term behaviour.
C. Price Source
- Price Source – The price series from which the kinetic EMA grid is built (e.g., Close, HLC3, OHLC4). Changing the source modifies the context that the state engine is reading but does not change the core logic.
4. State Engine Settings
Group: “State Engine Settings”
These inputs define how the continuous vectors are translated into discrete states.
A. Trend Thresholds
- Strong Trend Threshold – Value above which the trend vector is treated as “extreme bullish” and below which it is “extreme bearish”.
- Weak Trend Threshold – Inner boundary between neutral and directional conditions.
Roughly:
- |trend| < weak → Neutral trend state.
- weak < |trend| ≤ strong → Bullish/Bearish.
- |trend| > strong → Extreme Bullish/Extreme Bearish.
B. Volume Thresholds
- Volume Climax Threshold – Upper bound at which volume is considered “climax” (unusually expanded participation).
- Volume Expansion Threshold – Boundary for normal expansion versus contraction.
Conceptually:
- Volume above “expansion” indicates increasing activity.
- Volume near or above “climax” marks extreme participation.
- Negative values below the symmetric thresholds map to contraction and extreme dry‑up (liquidity vacuum) states.
C. Delta Thresholds
- Strong Delta Threshold – Cut‑off for extreme buying or selling dominance in delta.
- Weak Delta Threshold – Threshold for mild buy/sell bias versus neutral order flow.
Combined with the sign of the delta vector, these thresholds classify order flow as:
- Extreme Buy, Buy‑Dominant, Neutral, Sell‑Dominant, Extreme Sell.
D. State Hysteresis Bars
- State Hysteresis Bars – Minimum number of bars for which a new state must persist before the engine commits to the change. This prevents the dashboard from flickering during fast spikes and emphasises persistent market behaviour.
- Smaller values switch states quickly; larger values demand more confirmation.
5. Visual Interface
Group: “Visual Interface”
A. Ribbon Base Color
- Ribbon Base Color – Base hue for the multi‑layer EMA ribbon drawn around price. The script plots a dense grid of hidden EMAs and fills the gaps between them to form a semi‑transparent band. Narrow, overlapping bands hint at compression; wider separation hints at dispersion across EMA horizons.
B. Show Dashboard
- Show Dashboard – Toggles the on‑chart table which summarises the current state engine output. Disable this if you only want to keep the EMA ribbon and volume‑based structure on the price chart.
C. Color Theme
- Color Theme – Switch between a dark and light style for the dashboard background and text colours so that the table matches your chart theme.
D. Table Position
- Table Position – Places the dashboard at any corner or edge of the chart (Top / Middle / Bottom × Left / Centre / Right).
E. Table Size
- Table Size – Changes the dashboard’s text size (Tiny, Small, Normal, Large). Use a larger size on high‑resolution screens or when streaming.
F. Show Extended Info
- Show Extended Info – Adds diagnostic rows under the main state summary:
- Mode / Primes / Vector – Shows the current calculation mode (Geometry / Intrabar), the selected intrabar resolution and coverage in bars ( ), how many prime periods are active, and the vector window.
- Values – Displays the current aggregated vectors:
- P: price vector
- V: volume vector
- B: buy‑volume vector
- S: sell‑volume vector
- D: delta vector
Values are bounded between ‑1 and +1.
- Volume Stats – Prints the last bar’s raw buy volume, sell volume and delta as formatted numbers.
- Footer – A final row with the symbol and current time: #SYMBOL | HH:MM.
These extended rows are meant for inspecting how the engine is behaving under the hood while you scroll the chart and compare different assets or timeframes.
6. Language Settings
Group: “Language Settings”
- Select Language – Switches the entire dashboard between English and Turkish.
The underlying calculations and scenario logic are identical; only the labels, titles and comments in the table are translated.
7. Dashboard Structure & Reading Guide
The table summarises the current situation in a few rows:
1. System Header – Shows the script name and the active calculation method (“Geometry” or “Intrabar”).
2. Scenario Title – High‑level description of the current combined scenario (e.g., “Trending Buy Confirmed”, “Sideways Balanced”, “Bull Trap”, “Blow‑Off Top”). The background colour is derived from the scenario family (trending, compression, exhaustion, anomaly, etc.).
3. Bias / Trend Line – States the dominant trend bias derived from the trend vector (Extreme Bullish, Bullish, Neutral, Bearish, Extreme Bearish).
4. Signal / Consideration Line – A short sentence giving qualitative guidance about the current state (for example: continuation risk, exhaustion risk, trap‑like behaviour, or compression). This is deliberately phrased as a consideration, not as a direct trading signal.
5. Trend / Volume / Delta Rows – Three separate rows explain, in plain language, how the trend, volume regime and delta are classified at this bar.
6. Extended Info (optional) – Mode / primes / vector settings, current vector values, and last‑bar volume statistics, as described above.
Together, these rows are meant to be read as a narrative of what price, volume and order‑flow are doing, not as mechanical instructions.
8. State Taxonomy
The state engine organizes market behaviour in three stages.
8.1 Trend States (from the Price Vector)
- Extreme Bullish Trend – The prime‑grid price vector is strongly upward; most EMAs are aligned to the upside.
- Bullish Trend – Upward bias is present, but less extreme.
- Neutral Trend – EMAs are mixed or flat; price is effectively sideways relative to the grid.
- Bearish Trend – Downward bias, with the EMA grid sloping down.
- Extreme Bearish Trend – Strong downside alignment across the grid.
8.2 Volume Regime States (from the Volume Vector)
- Volume Climax (Buy‑Side) – Strong positive volume vector; participation is unusually high in the current direction.
- Volume Expansion – Activity above normal but below the climax threshold.
- Neutral Volume – No major expansion or contraction versus recent history.
- Volume Contraction – Activity is drying up compared with the past.
- Extreme Dry‑Up / Liquidity Vacuum – Very low participation; the market is thin and prone to slippage.
8.3 Delta Behaviour States (from the Delta Vector)
- Extreme Buy Delta – Buying pressure dominates strongly.
- Buy‑Dominant Delta – Buy volume exceeds sell volume, but not at an extreme.
- Neutral Delta – Buy and sell flows are roughly balanced.
- Sell‑Dominant Delta – Selling pressure dominates.
- Extreme Sell Delta – Aggressive, one‑sided selling.
8.4 Combined Scenario State s
EMVOL uses the three base states above to generate a single scenario label. These scenarios are designed to be read as context, not as entry or exit signals.
Trending Scenarios
1. Trending Buy Confirmed
- Bullish or extreme bullish trend, supported by expanding or climax volume and buy‑side delta.
- Educational idea: a healthy uptrend where both participation and order flow agree with the direction.
2. Trending Buy – Weak Volume
- Bullish trend, but volume is neutral, contracting or in dry‑up while delta is still buy‑side.
- Educational idea: price is advancing, yet participation is thinning; trend continuation becomes more fragile.
3. Trending Sell Confirmed
- Bearish or extreme bearish trend, with expanding or climax volume and sell‑side delta.
- Educational idea: strong downtrend with both volume and order‑flow confirmation.
4. Trending Sell – Weak Volume
- Bearish trend, but volume is neutral, contracting or very low while delta remains sell‑side.
- Educational idea: downside continues but with limited participation; vulnerable to short‑covering.
Sideways / Range Scenarios
5. Sideways Balanced
- Neutral trend, neutral delta, neutral volume.
- Classic range environment; low directional edge, suitable for observation and context rather than trend trading.
6. Sideways with Buy Pressure
- Neutral trend, but buy‑side delta is dominant or extreme.
- Range with latent accumulation: price may still appear sideways, but buyers are quietly more active.
7. Sideways with Sell Pressure
- Neutral trend with dominant or extreme sell‑side delta.
- Distribution‑like environment where price chops while sellers are gradually more aggressive.
Exhaustion & Volume Extremes
8. Exhaustion – Buy Risk
- Extreme bullish trend, volume climax and strong buy‑side delta.
- Educational idea: very strong up‑move where both participation and delta are already stretched; risk of exhaustion or blow‑off.
9. Exhaustion – Sell Risk
- Extreme bearish trend, volume dry‑up and strong sell‑side delta.
- Suggests one‑sided selling into increasingly thin liquidity.
10. Volume Climax (Buy)
- Neutral trend, neutral delta, but volume at climax levels.
- Often associated with a “big event” bar where participation spikes without a clear directional commitment.
11. Volume Climax (Sell / Dry‑Up)
- Neutral trend and neutral delta, while the volume vector indicates an extreme dry‑up.
- Highlights a stand‑still episode: very limited interest from both sides, increasing the sensitivity to future impulses.
Divergences
12. Divergence – Bullish Context
- Bullish or extreme bullish trend, but delta has faded back to neutral.
- Price trend continues while order‑flow conviction softens; can precede pauses or complex corrections.
13. Divergence – Bearish Context
- Bearish or extreme bearish trend with a neutral delta.
- Downtrend persists, but selling pressure no longer dominates as clearly.
Consolidation & Compression
14. Consolidation
- Default state when no specific pattern dominates and the market is broadly balanced.
- Educational use: treat this as a “no strong edge” label; focus on structure rather than direction.
15. Breakout Imminent
- Neutral trend with contracting volume.
- Compression phase where energy is building up; often precedes transitions into trending or shock scenarios.
Traps & Hidden Divergences
16. Bull Trap
- Bullish trend, with neutral or contracting volume and sell‑side delta.
- Price appears strong, but order‑flow shifts against it; often seen near fake breakouts or failing rallies.
17. Bear Trap
- Bearish trend, neutral or contracting volume, but buy‑side delta.
- Downtrend “looks” intact, while buyers become more aggressive underneath the surface.
18. Hidden Bullish Divergence
- Bullish trend, contracting volume, but strong buy‑side delta.
- Educational idea: price dips or slows while aggressive buyers step in, often inside an ongoing uptrend.
19. Hidden Bearish Divergence
- Bearish trend, volume expansion and strong sell‑side delta.
- Reinforced downside pressure even if price is temporarily retracing.
Reversal & Transition Patterns
20. Reversal to Bearish
- Neutral trend, volume climax and strong sell‑side delta.
- Suggests that heavy selling appears at the top of a move, turning a previously neutral or rising context into potential downside.
21. Reversal to Bullish
- Neutral trend, extreme volume dry‑up and strong buy‑side delta.
- Often associated with selling exhaustion where buyers start to take control.
22. Indecision Spike
- Neutral trend with extreme volume (climax or dry‑up) but neutral delta.
- Crowd participation changes sharply while order‑flow remains undecided; treat as an informational spike rather than a direction.
Extended Compression & Acceleration
23. Coiling Phase
- Neutral trend, contracting volume, and delta that is neutral or only mildly one‑sided.
- Extended compression where price, volume and delta all contract into a tightly coiled range, often preceding a strong move.
24. Bullish Acceleration
- Bullish trend with volume expansion and strong buy‑side delta.
- Uptrend not only continues but gains kinetic strength; educationally, this illustrates how trend, volume and delta align in the strongest phases of a move.
25. Bearish Acceleration
- Bearish trend with volume expansion and strong sell‑side delta.
- Mirror image of Bullish Acceleration on the downside.
Trend Exhaustion & Climax Reversal
26. Bull Exhaustion
- Bullish or extreme bullish trend, with contraction or dry‑up in volume and buy‑side or neutral delta.
- The move has already travelled far; participation fades while price is still elevated.
27. Bear Exhaustion
- Bearish or extreme bearish trend, with volume climax or contraction and sell‑side or neutral delta.
- Down‑move may be approaching a point where additional selling pressure has diminishing impact.
28. Blow‑Off Top
- Extreme bullish trend, volume climax and extreme buy delta all at once.
- Classic blow‑off behaviour: price, volume and order‑flow are simultaneously stretched in the same direction.
29. Selling Climax Reversal
- Extreme bearish trend with extreme volume dry‑up and extreme sell‑side delta.
- Marks a very aggressive capitulation phase that can precede major rebounds.
Advanced VSA / Anomaly Scenarios
30. Absorption
- Typically neutral trend with expanding or climax volume and extreme delta (either buy or sell).
- Educational focus: large participants are aggressively absorbing liquidity from the opposite side, while price remains relatively contained.
31. Distribution
- Scenario where volume remains elevated while directional conviction weakens and the trend slows.
- Represents potential “selling into strength” or “buying into weakness”, depending on the active side.
32. Liquidity Vacuum
- Combination of thin liquidity (extreme dry‑up) with a directional trend or strong delta.
- Highlights environments where even small orders can move price disproportionately.
33. Anomaly / Shock Event
- Triggered when the vector z‑scores detect rare combinations of price, volume and delta behaviour that deviate from their own historical distribution.
- Intended as a warning label for unusual events rather than a specific tradeable pattern.
9. Educational Usage Notes
- EMVOL does not produce mechanical “buy” or “sell” commands. Instead, it classes each bar into an interpretable state so that traders can study how trends, volume and order‑flow interact over time.
- A common exercise is to overlay your usual EMA crossovers, support/resistance or price patterns and observe which EMVOL scenarios appear around entries, exits, traps and climaxes.
- Because the vectors are normalized (bounded between ‑1 and +1) and then discretized, the same conceptual states can be compared across different symbols and timeframes.
10. Disclaimer & Educational Purpose
This indicator is provided strictly as an educational and analytical tool. Its purpose is to help visualise how price, volume and order‑flow interact; it is not designed to function as a stand‑alone trading system.
Please note:
1. No Automated Strategy – The script does not implement a complete trading strategy. Scenario labels and dashboard messages are descriptive and should not be followed as unconditional entry or exit signals.
2. No Financial Advice – All information produced by this indicator is general market analysis. It must not be interpreted as investment, financial or trading advice, or as a recommendation to buy or sell any instrument.
3. Risk Warning – Trading and investing involve substantial risk, including the risk of loss. Always perform your own analysis, use appropriate position sizing and risk management, and consult a qualified professional if needed. You are solely responsible for any decisions made using this tool.
4. Data Precision & Platform Limits – The “Intrabar (Precise)” mode depends on the availability of high‑resolution historical data at the chosen intrabar timeframe. If your TradingView plan or the symbol’s history does not provide sufficient depth, this mode may only partially cover the visible chart. In such cases, consider switching to “Geometry (Source File)” for a fully populated view.
Gyspy Bot Trade Engine - V1.2B - Alerts - 12-7-25 - SignalLynxGypsy Bot Trade Engine (MK6 V1.2B) - Alerts & Visualization
Brought to you by Signal Lynx | Automation for the Night-Shift Nation 🌙
1. Executive Summary & Architecture
Gypsy Bot (MK6 V1.2B) is not merely a strategy; it is a massive, modular Trade Engine built specifically for the TradingView Pine Script V6 environment. While most tools rely on a single dominant indicator to generate signals, Gypsy Bot functions as a sophisticated Consensus Algorithm.
Note: This is the Indicator / Alerts version of the engine. It is designed for visual analysis and generating live alert signals for automation. If you wish to see Backtest data (Equity Curves, Drawdown, Profit Factors), please use the Strategy version of this script.
The engine calculates data from up to 12 distinct Technical Analysis Modules simultaneously on every bar closing. It aggregates these signals into a "Vote Count" and only fires a signal plot when a user-defined threshold of concurring signals is met. This "Voting System" acts as a noise filter, requiring multiple independent mathematical models—ranging from volume flow and momentum to cyclical harmonics and trend strength—to agree on market direction.
Beyond entries, Gypsy Bot features a proprietary Risk Management suite called the Dump Protection Team (DPT). This logic layer operates independently of the entry modules, specifically scanning for "Moon" (Parabolic) or "Nuke" (Crash) volatility events to signal forced exits, preserving capital during Black Swan events.
2. ⚠️ The Philosophy of "Curve Fitting" (Must Read)
One must be careful when applying Gypsy Bot to new pairs or charts.
To be fully transparent: Gypsy Bot is, by definition, a very advanced curve-fitting engine. Because it grants the user granular control over 12 modules, dozens of thresholds, and specific voting requirements, it is extremely easy to "over-fit" the data. You can easily toggle switches until the charts look perfect in hindsight, only to have the signals fail in live markets because they were tuned to historical noise rather than market structure.
To use this engine successfully:
Visual Verification: Do not just look for "green arrows." Look for signals that occur at logical market structure points.
Stability: Ensure signals are not flickering. This script uses closed-candle logic for key decisions to ensure that once a signal plots, it remains painted.
Regular Maintenance is Mandatory: Markets shift regimes (e.g., from Bull Trend to Crab Range). Gypsy Bot settings should be reviewed and adjusted at regular intervals to ensure the voting logic remains aligned with current market volatility.
Timeframe Recommendations:
Gypsy Bot is optimized for High Time Frame (HTF) trend following. It generally produces the most reliable results on charts ranging from 1-Hour to 12-Hours, with the 4-Hour timeframe historically serving as the "sweet spot" for most major cryptocurrency assets.
3. The Voting Mechanism: How Entries Are Generated
The heart of the Gypsy Bot engine is the ActivateOrders input (found in the "Order Signal Modifier" settings).
The engine constantly monitors the output of all enabled Modules.
Long Votes: GoLongCount
Short Votes: GoShortCount
If you have 10 Modules enabled, and you set ActivateOrders to 7:
The engine will ONLY plot a Buy Signal if 7 or more modules return a valid "Buy" signal on the same closed candle.
If only 6 modules agree, the signal is rejected.
4. Technical Deep Dive: The 12 Modules
Gypsy Bot allows you to toggle the following modules On/Off individually to suit the asset you are trading.
Module 1: Modified Slope Angle (MSA)
Logic: Calculates the geometric angle of a moving average relative to the timeline.
Function: Filters out "lazy" trends. A trend is only considered valid if the slope exceeds a specific steepness threshold.
Module 2: Correlation Trend Indicator (CTI)
Logic: Measures how closely the current price action correlates to a straight line (a perfect trend).
Function: Ensures that we are moving up with high statistical correlation, reducing fake-outs.
Module 3: Ehlers Roofing Filter
Logic: A spectral filter combining High-Pass (trend removal) and Super Smoother (noise removal).
Function: Isolates the "Roof" of price action to catch cyclical turning points before standard moving averages.
Module 4: Forecast Oscillator
Logic: Uses Linear Regression forecasting to predict where price "should" be relative to where it is.
Function: Signals when the regression trend flips. Offers "Aggressive" and "Conservative" calculation modes.
Module 5: Chandelier ATR Stop
Logic: A volatility-based trend follower that hangs a "leash" (ATR multiple) from extremes.
Function: Used as an entry filter. If price is above the Chandelier line, the trend is Bullish.
Module 6: Crypto Market Breadth (CMB)
Logic: Pulls data from multiple major tickers (BTC, ETH, and Perpetual Contracts).
Function: Calculates "Market Health." If Bitcoin is rising but the rest of the market is dumping, this module can veto a trade.
Module 7: Directional Index Convergence (DIC)
Logic: Analyzes the convergence/divergence between Fast and Slow Directional Movement indices.
Function: Identifies when trend strength is expanding.
Module 8: Market Thrust Indicator (MTI)
Logic: A volume-weighted breadth indicator using Advance/Decline and Volume data.
Function: One of the most powerful modules. Confirms that price movement is supported by actual volume flow. Recommended setting: "SSMA" (Super Smoother).
Module 9: Simple Ichimoku Cloud
Logic: Traditional Japanese trend analysis.
Function: Checks for a "Kumo Breakout." Price must be fully above/below the Cloud to confirm entry.
Module 10: Simple Harmonic Oscillator
Logic: Analyzes harmonic wave properties to detect cyclical tops and bottoms.
Function: Serves as a counter-trend or early-reversal detector.
Module 11: HSRS Compression / Super AO
Logic: Detects volatility compression (HSRS) or Momentum/Trend confluence (Super AO).
Function: Great for catching explosive moves resulting from consolidation.
Module 12: Fisher Transform (MTF)
Logic: Converts price data into a Gaussian normal distribution.
Function: Identifies extreme price deviations. Uses Multi-Timeframe (MTF) logic to ensure you aren't trading against the major trend.
5. Global Inhibitors (The Veto Power)
Even if 12 out of 12 modules vote "Buy," Gypsy Bot performs a final safety check using Global Inhibitors.
Bitcoin Halving Logic: Prevents trading during chaotic weeks surrounding Halving events (dates projected through 2040).
Miner Capitulation: Uses Hash Rate Ribbons to identify bearish regimes when miners are shutting down.
ADX Filter: Prevents trading in "Flat/Choppy" markets (Low ADX).
CryptoCap Trend: Checks the total Crypto Market Cap chart for broad market alignment.
6. Risk Management & The Dump Protection Team (DPT)
Even in this Indicator version, the RM logic runs to generate Exit Signals.
Dump Protection Team (DPT): Detects "Nuke" (Crash) or "Moon" (Pump) volatility signatures. If triggered, it plots an immediate Exit Signal (Yellow Plot).
Advanced Adaptive Trailing Stop (AATS): Dynamically tightens stops in low volatility ("Dungeon") and loosens them in high volatility ("Penthouse").
Staged Take Profits: Plots TP1, TP2, and TP3 events on the chart for visual confirmation or partial exit alerts.
7. Recommended Setup Guide
When applying Gypsy Bot to a new chart, follow this sequence:
Set Timeframe: 4 Hours (4H).
Tune DPT: Adjust "Dump/Moon Protection" inputs first. These filter out bad signals during high volatility.
Tune Module 8 (MTI): Experiment with the MA Type (SSMA is recommended).
Select Modules: Enable/Disable modules based on the asset's personality (Trending vs. Ranging).
Voting Threshold: Adjust ActivateOrders to filter out noise.
Alert Setup: Once visually satisfied, use the "Any Alert Function Call" option when creating an alert in TradingView to capture all Buy/Sell/Close events generated by the engine.
8. Technical Specs
Engine Version: Pine Script V6
Repainting: This indicator uses Closed Candle data for all Risk Management and Entry decisions. This ensures that signals do not vanish after the candle closes.
Visuals:
Blue Plot: Buy/Sell Signal.
Yellow Plot: Risk Management (RM) / DPT Close Signal.
Green/Lime/Olive Plots: Take Profit hits.
Disclaimer:
This script is a complex algorithmic tool for market analysis. Past performance is not indicative of future results. Cryptocurrency trading involves substantial risk of loss. Use this tool to assist your own decision-making, not to replace it.
9. About Signal Lynx
Automation for the Night-Shift Nation 🌙
Signal Lynx focuses on helping traders and developers bridge the gap between indicator logic and real-world automation. The same RM engine you see here powers multiple internal systems and templates, including other public scripts like the Super-AO Strategy with Advanced Risk Management.
We provide this code open source under the Mozilla Public License 2.0 (MPL-2.0) to:
Demonstrate how Adaptive Logic and structured Risk Management can outperform static, one-layer indicators
Give Pine Script users a battle-tested RM backbone they can reuse, remix, and extend
If you are looking to automate your TradingView strategies, route signals to exchanges, or simply want safer, smarter strategy structures, please keep Signal Lynx in your search.
License: Mozilla Public License 2.0 (Open Source).
If you make beneficial modifications, please consider releasing them back to the community so everyone can benefit.
Credit Spread RegimeThe Credit Market as Economic Barometer
Credit spreads are among the most reliable leading indicators of economic stress. When corporations borrow money by issuing bonds, investors demand a premium above the risk-free Treasury rate to compensate for the possibility of default. This premium, known as the credit spread, fluctuates based on perceptions of economic health, corporate profitability, and systemic risk.
The relationship between credit spreads and economic activity has been studied extensively. Two papers form the foundation of this indicator. Pierre Collin-Dufresne, Robert Goldstein, and Spencer Martin published their influential 2001 paper in the Journal of Finance, documenting that credit spread changes are driven by factors beyond firm-specific credit quality. They found that a substantial portion of spread variation is explained by market-wide factors, suggesting credit spreads contain information about aggregate economic conditions.
Simon Gilchrist and Egon Zakrajsek extended this research in their 2012 American Economic Review paper, introducing the concept of the Excess Bond Premium. They demonstrated that the component of credit spreads not explained by default risk alone is a powerful predictor of future economic activity. Elevated excess spreads precede recessions with remarkable consistency.
What Credit Spreads Reveal
Credit spreads measure the difference in yield between corporate bonds and Treasury securities of similar maturity. High yield bonds, also called junk bonds, carry ratings below investment grade and offer higher yields to compensate for greater default risk. Investment grade bonds have lower yields because the probability of default is smaller.
The spread between high yield and investment grade bonds is particularly informative. When this spread widens, investors are demanding significantly more compensation for taking on credit risk. This typically indicates deteriorating economic expectations, tighter financial conditions, or increasing risk aversion. When the spread narrows, investors are comfortable accepting lower premiums, signaling confidence in corporate health.
The Gilchrist-Zakrajsek research showed that credit spreads contain two distinct components. The first is the expected default component, which reflects the probability-weighted cost of potential defaults based on corporate fundamentals. The second is the excess bond premium, which captures additional compensation demanded beyond expected defaults. This excess premium rises when investor risk appetite declines and financial conditions tighten.
The Implementation Approach
This indicator uses actual option-adjusted spread data from the Federal Reserve Economic Database (FRED), available directly in TradingView. The ICE BofA indices represent the industry standard for measuring corporate bond spreads.
The primary data sources are FRED:BAMLH0A0HYM2, the ICE BofA US High Yield Index Option-Adjusted Spread, and FRED:BAMLC0A0CM, the ICE BofA US Corporate Index Option-Adjusted Spread for investment grade bonds. These indices measure the spread of corporate bonds over Treasury securities of similar duration, expressed in basis points.
Option-adjusted spreads account for embedded options in corporate bonds, providing a cleaner measure of credit risk than simple yield spreads. The methodology developed by ICE BofA is widely used by institutional investors and central banks for monitoring credit conditions.
The indicator offers two modes. The HY-IG excess spread mode calculates the difference between high yield and investment grade spreads, isolating the pure compensation for below-investment-grade credit risk. This measure is less affected by broad interest rate movements. The HY-only mode tracks the absolute high yield spread, capturing both credit risk and the overall level of risk premiums in the market.
Interpreting the Regimes
Credit conditions are classified into four regimes based on Z-scores calculated from the spread proxy.
The Stress regime occurs when spreads reach extreme levels, typically above a Z-score of 2.0. At this point, credit markets are pricing in significant default risk and economic deterioration. Historically, stress regimes have coincided with recessions, financial crises, and major market dislocations. The 2008 financial crisis, the 2011 European debt crisis, the 2016 commodity collapse, and the 2020 pandemic all triggered credit stress regimes.
The Elevated regime, between Z-scores of 1.0 and 2.0, indicates above-normal risk premiums. Credit conditions are tightening. This often occurs in the build-up to stress events or during periods of uncertainty. Risk management should be heightened, and exposure to credit-sensitive assets may be reduced.
The Normal regime covers Z-scores between -1.0 and 1.0. This represents typical credit conditions where spreads fluctuate around historical averages. Standard investment approaches are appropriate.
The Low regime occurs when spreads are compressed below a Z-score of -1.0. Investors are accepting below-average compensation for credit risk. This can indicate complacency, strong economic confidence, or excessive risk-taking. While often associated with favorable conditions, extremely tight spreads sometimes precede sudden reversals.
Credit Cycle Dynamics
Beyond static regime classification, the indicator tracks the direction and acceleration of spread movements. This reveals where credit markets stand in the credit cycle.
The Deteriorating phase occurs when spreads are elevated and continuing to widen. Credit conditions are actively worsening. This phase often precedes or coincides with economic downturns.
The Recovering phase occurs when spreads are elevated but beginning to narrow. The worst may be over. Credit conditions are improving from stressed levels. This phase often accompanies the early stages of economic recovery.
The Tightening phase occurs when spreads are low and continuing to compress. Credit conditions are very favorable and improving further. This typically occurs during strong economic expansions but may signal building complacency.
The Loosening phase occurs when spreads are low but beginning to widen from compressed levels. The extremely favorable conditions may be normalizing. This can be an early warning of changing sentiment.
Relationship to Economic Activity
The predictive power of credit spreads for economic activity is well-documented. Gilchrist and Zakrajsek found that the excess bond premium predicts GDP growth, industrial production, and unemployment rates over horizons of one to four quarters.
When credit spreads spike, the cost of corporate borrowing increases. Companies may delay or cancel investment projects. Reduced investment leads to slower growth and eventually higher unemployment. The transmission mechanism runs from financial conditions to real economic activity.
Conversely, tight credit spreads lower borrowing costs and encourage investment. Easy credit conditions support economic expansion. However, excessively tight spreads may encourage over-leveraging, planting seeds for future stress.
Practical Application
For equity investors, credit spreads provide context for market risk. Equities and credit often move together because both reflect corporate health. Rising credit spreads typically accompany falling stock prices. Extremely wide spreads historically have coincided with equity market bottoms, though timing the reversal remains challenging.
For fixed income investors, spread regimes guide sector allocation decisions. During stress regimes, flight to quality favors Treasuries over corporates. During low regimes, spread compression may offer limited additional return for credit risk, suggesting caution on high yield.
For macro traders, credit spreads complement other indicators of financial conditions. Credit stress often leads equity volatility, providing an early warning signal. Cross-asset strategies may use credit regime as a filter for position sizing.
Limitations and Considerations
FRED data updates with a lag, typically one business day for the ICE BofA indices. For intraday trading decisions, more current proxies may be necessary. The data is most reliable on daily timeframes.
Credit spreads can remain at extreme levels for extended periods. Mean reversion signals indicate elevated probability of normalization but do not guarantee timing. The 2008 crisis saw spreads remain elevated for many months before normalizing.
The indicator is calibrated for US credit markets. Application to other regions would require different data sources such as European or Asian credit indices. The relationship between spreads and subsequent economic activity may vary across market cycles and structural regimes.
References
Collin-Dufresne, P., Goldstein, R.S., and Martin, J.S. (2001). The Determinants of Credit Spread Changes. Journal of Finance, 56(6), 2177-2207.
Gilchrist, S., and Zakrajsek, E. (2012). Credit Spreads and Business Cycle Fluctuations. American Economic Review, 102(4), 1692-1720.
Krishnamurthy, A., and Muir, T. (2017). How Credit Cycles across a Financial Crisis. Working Paper, Stanford University.






















