Xiaolai(Sean)Chen_Credit Creation DegreeM2/M1 money stock value is the reflection of the degree of credit created which was mentioned by Ray Dalio in his 30 min video "How the Market and Economic Machines Work"
Credit degree will finally decrease in the Long-Term Debt circle.
스크립트에서 "美国m2历年数据"에 대해 찾기
Intersection Value FunctionsWinning entry for the first Pinefest contest. The challenge required providing three functions returning the intersection value between two series source1 and source2 in the event of a cross, crossunder, and crossover.
Feel free to use the code however you like.
🔶 CHALLENGE FUNCTIONS
🔹 crossValue()
//@function Finds intersection value of 2 lines/values if any cross occurs - First function of challenge -> crossValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossValue(close, close )
🔹 crossoverValue()
//@function Finds intersection value of 2 lines/values if crossover occurs - Second function of challenge -> crossoverValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossoverValue(close, close )
🔹 crossunderValue()
//@function Finds intersect of 2 lines/values if crossunder occurs - Third function of challenge -> crossunderValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossunderValue(close, close )
🔶 DETAILS
A series of values can be displayed as a series of points, where the point location highlights its value, however, it is more common to connect each point with a line to have a continuous aspect.
A line is a geometrical object connecting two points, each having y and x coordinates. A line has a slope controlling its steepness and an intercept indicating where the line crosses an axis. With these elements, we can describe a line as follows:
slope × x + intercept
A cross between two series of values occurs when one series is greater or lower than the other while its previous value isn't.
We are interested in finding the "intersection value", that is the value where two crossing lines are equal. This problem can be approached via linear interpolation.
A simple and direct approach to finding our intersection value is to find the common scaling factor of the slopes of the lines, that is the multiplicative factor that multiplies both lines slopes such that the resulting points are equal.
Given:
A = Point A1 + m1 × scaling_factor
B = Point B1 + m2 × scaling_factor
where scaling_factor is the common scaling factor, and m1 and m2 the slopes:
m1 = Point A2 - Point A1
m2 = Point B2 - Point B1
In our cases, since the horizontal distance between two points is simply 1, our lines slopes are equal to their vertical distance (rise).
Under the event of a cross, there exists a scaling_factor satisfying A = B , which allows us to directly compute our intersection value. The solution is given by:
scaling_factor = (B1 - A1)/(m1 - m2)
As such our intersection value can be given by the following equivalent calculations:
(1) A1 + m1 × (B1 - A1)/(m1 - m2)
(2) B1 + m2 × (B1 - A1)/(m1 - m2)
(3) A2 - m2 × (A2 - B2)/(m1 - m2)
(4) B2 - m2 × (A2 - B2)/(m1 - m2)
The proposed functions use the third calculation.
This approach is equivalent to expressions using the classical line equation, with:
slope1 × x + intercept1 = slope2 × x + intercept2
By solving for x , the intersection point is obtained by evaluating any of the line equations for the obtained x solution.
🔶 APPLICATIONS
The intersection point of two crossing lines might lead to interesting applications and creations, in this section various information/tools derived from the proposed calculations are presented.
This supplementary material is available within the script.
🔹 Intersections As Support/Resistances
The script allows extending the lines of the intersection value when a cross is detected, these extended lines could have applications as support/resistance lines.
🔹 Using The Scaling Factor
The core of the proposed calculation method is the common scaling factor, which can be used to return useful information, such as the position of the cross relative to the x coordinates of a line.
The above image highlights two moving averages (in green and red), the cross-interval areas are highlighted in blue, and the intersection point is highlighted as a blue line.
The pane below shows a bar plot displaying:
1 - scaling factor = 1 -
Values closer to 1 indicate that the cross location is closer to x2 (the right coordinate of the lines), while values closer to 0 indicate that the cross location is closer to x1 .
🔹 Intersection Matrix
The main proposed functions of this challenge focus on the crossings between two series of values, however, we might be interested in applying this over a collection of series.
We can see in the image above how the lines connecting two points intersect with each other, we can construct a matrix populated with the intersection value of two corresponding lines. If (X, Y) represents the intersection value between lines X and Y we have the following matrix:
| Line A | Line B | Line C | Line D |
-------|--------|--------|--------|--------|
Line A | | (A, B) | (A, C) | (A, D) |
Line B | (B, A) | | (B, C) | (B, D) |
Line C | (C, A) | (C, B) | | (C, D) |
Line D | (D, A) | (D, B) | (D, C) | |
We can see that the upper triangular part of this matrix is redundant, which is why the script does not compute it. This function is provided in the script as intersectionMatrix :
//@function Return the N * N intersection matrix from an array of values
//@param array_series (array) array of values, requires an array supporting historical referencing
//@returns (matrix) Intersection matrix showing intersection values between all array entries
In the script, we create an intersection matrix from an array containing the outputs of simple moving averages with a period in a specific user set range and can highlight if a simple moving average of a certain period crosses with another moving average with a different period, as well as the intersection value.
🔹 Magnification Glass
Crosses on a chart can be quite small and might require zooming in significantly to see a detailed picture of them. Using the obtained scaling factor allows reconstructing crossing events with an higher resolution.
A simple supplementary zoomIn function is provided to this effect:
//@function Display an higher resolution representation of intersecting lines
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@param css1 (color) color of source 1 line
//@param css2 (color) color of source 2 line
//@param intersec_css (color) color of intersection line
//@param area_css (color) color of box area
Users can obtain a higher resolution by modifying the provided "Resolution" setting.
The function returns a higher resolution representation of the most recent crosses between two input series, the intersection value is also provided.
Money Flow Divergence IndicatorOverview
The Money Flow Divergence Indicator is designed to help traders and investors identify key macroeconomic turning points by analyzing the relationship between U.S. M2 money supply growth and the S&P 500 Index (SPX). By comparing these two crucial economic indicators, the script highlights periods where market liquidity is outpacing or lagging behind stock market growth, offering potential buy and sell signals based on macroeconomic trends.
How It Works
1. Data Sources
S&P 500 Index (SPX500USD): Tracks the stock market performance.
U.S. M2 Money Supply (M2SL - Federal Reserve Economic Data): Represents available liquidity in the economy.
2. Growth Rate Calculation
SPX Growth: Percentage change in the S&P 500 index over time.
M2 Growth: Percentage change in M2 money supply over time.
Growth Gap (Delta): The difference between M2 growth and SPX growth, showing whether liquidity is fueling or lagging behind market performance.
3. Visualization
A histogram displays the growth gap over time:
Green Bars: M2 growth exceeds SPX growth (potential bullish signal).
Red Bars: SPX growth exceeds M2 growth (potential bearish signal).
A zero line helps distinguish between positive and negative growth gaps.
How to Use It
✅ Bullish Signal: When green bars appear consistently, indicating that liquidity is outpacing stock market growth. This suggests a favorable environment for buying or holding positions.
❌ Bearish Signal: When red bars appear consistently, meaning stock market growth outpaces liquidity expansion, signaling potential overvaluation or a market correction.
Best Timeframes for Analysis
This indicator works best on monthly timeframes (M) since it is designed for long-term investors and macro traders who focus on broad economic cycles.
Who Should Use This Indicator?
📈 Long-term investors looking for macroeconomic trends.
📊 Swing traders who incorporate liquidity analysis in their strategies.
💰 Portfolio managers assessing market liquidity conditions.
🚀 Use this indicator to stay ahead of market trends and make informed investment decisions based on macroeconomic liquidity shifts! 🚀
US Liquidity-Weighted Business Cycle📈 BTC Liquidity-Weighted Business Cycle
This indicator models the Bitcoin macro cycle by comparing its logarithmic price against a log-transformed liquidity proxy (e.g., US M2 Money Supply). It helps visualize cyclical tops and bottoms by measuring the relative expansion of Bitcoin price versus fiat liquidity.
🧠 How It Works:
Transforms both BTC and M2 using natural logarithms.
Computes a liquidity ratio: log(BTC) – log(M2) (i.e., log(BTC/M2)).
Runs MACD on this ratio to extract business cycle momentum.
Plots:
🔴 Histogram bars showing cyclical growth or contraction.
🟢 Top line to track the relative price-to-liquidity trend.
🔴 Cycle peak markers to flag historical market tops.
⚙️ Inputs:
Adjustable MACD lengths
Toggle for liquidity trend line overlay
🔍 Use Cases:
Identifying macro cycle tops and bottoms
Timing long-term Bitcoin accumulation or de-risking
Confirming global liquidity's influence on BTC price movement
Note: This version currently uses US M2 (FRED:M2SL) as the liquidity base. You can easily expand it with other global M2 sources or adjust the weights.
Stock Value - How Much Stock Should Worth?Stock Value
© danny_peanuts
There are many method of measuring value of stock. However I'm proposing most basic stock valuation based on Book Value, Earnings, Dividends and Money Supply:
SV = (BVPS + EPS + DPS) * (M2/M0)
BVPS = Book Value Per Share (Asset - Liability)
EPS = Earnings Per Share
DPS = Dividends Per Share
M2 = M2 Money Supply (Money Market)
M0 = M0 Money Supply (Base Money)
Fundamental value of a stock should be determine by it's BV which means total asset of a company if were liquidated today and use some of it's asset to pay of the debt. So technically BVPS is the intrinsic value of a stock. However the company is generating an earning which is profit and loss that should be added on top of the fundamental value of company, so thus EPS should be added on top of Book Value Per Share. Aside from earnings, the stock that you purchase give you dividends as your return so DPS also can be included on top of that. So all in all BVPS, EPS and DPS are the primary valuation of the stock. However most of the stock are traded way higher than their fundamental valuation. The main reason of this is the market dynamics which is driven by central banks printing of base money supply M0. The banking credit system then lend out this money to money markets as loan so that peoples can invest and by the company stock. This money supply extension of credit is known as money market M2 which drive the stock inflated price. The ratio between M2 and M0 are the money multiplier effect that drives the stock price higher than it's valuation. So the Stock Value should be the total number of BVPS + EPS + DPS times the M2 money multiplier as shown by this indicator.
If the stock are traded above their SV value, that means it's an overpriced bubble
If the stock are traded below their SV value, that means it's an underpriced burst
Bitcoin Macro Trend Map [Ox_kali]
## Introduction
__________________________________________________________________________________
The “Bitcoin Macro Trend Map” script is designed to provide a comprehensive analysis of Bitcoin’s macroeconomic trends. By leveraging a unique combination of Bitcoin-specific macroeconomic indicators, this script helps traders identify potential market peaks and troughs with greater accuracy. It synthesizes data from multiple sources to offer a probabilistic view of market excesses, whether overbought or oversold conditions.
This script offers significant value for the following reasons:
1. Holistic Market Analysis : It integrates a diverse set of indicators that cover various aspects of the Bitcoin market, from investor sentiment and market liquidity to mining profitability and network health. This multi-faceted approach provides a more complete picture of the market than relying on a single indicator.
2. Customization and Flexibility : Users can customize the script to suit their specific trading strategies and preferences. The script offers configurable parameters for each indicator, allowing traders to adjust settings based on their analysis needs.
3. Visual Clarity : The script plots all indicators on a single chart with clear visual cues. This includes color-coded indicators and background changes based on market conditions, making it easy for traders to quickly interpret complex data.
4. Proven Indicators : The script utilizes well-established indicators like the EMA, NUPL, PUELL Multiple, and Hash Ribbons, which are widely recognized in the trading community for their effectiveness in predicting market movements.
5. A New Comprehensive Indicator : By integrating background color changes based on the aggregate signals of various indicators, this script essentially creates a new, comprehensive indicator tailored specifically for Bitcoin. This visual representation provides an immediate overview of market conditions, enhancing the ability to spot potential market reversals.
Optimal for use on timeframes ranging from 1 day to 1 week , the “Bitcoin Macro Trend Map” provides traders with actionable insights, enhancing their ability to make informed decisions in the highly volatile Bitcoin market. By combining these indicators, the script delivers a robust tool for identifying market extremes and potential reversal points.
## Key Indicators
__________________________________________________________________________________
Macroeconomic Data: The script combines several relevant macroeconomic indicators for Bitcoin, such as the 10-month EMA, M2 money supply, CVDD, Pi Cycle, NUPL, PUELL, MRVR Z-Scores, and Hash Ribbons (Full description bellow).
Open Source Sources: Most of the scripts used are sourced from open-source projects that I have modified to meet the specific needs of this script.
Recommended Timeframes: For optimal performance, it is recommended to use this script on timeframes ranging from 1 day to 1 week.
Objective: The primary goal is to provide a probabilistic solution to identify market excesses, whether overbought or oversold points.
## Originality and Purpose
__________________________________________________________________________________
This script stands out by integrating multiple macroeconomic indicators into a single comprehensive tool. Each indicator is carefully selected and customized to provide insights into different aspects of the Bitcoin market. By combining these indicators, the script offers a holistic view of market conditions, helping traders identify potential tops and bottoms with greater accuracy. This is the first version of the script, and additional macroeconomic indicators will be added in the future based on user feedback and other inputs.
## How It Works
__________________________________________________________________________________
The script works by plotting each macroeconomic indicator on a single chart, allowing users to visualize and interpret the data easily. Here’s a detailed look at how each indicator contributes to the analysis:
EMA 10 Monthly: Uses an exponential moving average over 10 monthly periods to signal bullish and bearish trends. This indicator helps identify long-term trends in the Bitcoin market by smoothing out price fluctuations to reveal the underlying trend direction.Moving Averages w/ 18 day/week/month.
Credit to @ryanman0
M2 Money Supply: Analyzes the evolution of global money supply, indicating market liquidity conditions. This indicator tracks the changes in the total amount of money available in the economy, which can impact Bitcoin’s value as a hedge against inflation or economic instability.
Credit to @dylanleclair
CVDD (Cumulative Value Days Destroyed): An indicator based on the cumulative value of days destroyed, useful for identifying market turning points. This metric helps assess the Bitcoin market’s health by evaluating the age and value of coins that are moved, indicating potential shifts in market sentiment.
Credit to @Da_Prof
Pi Cycle: Uses simple and exponential moving averages to detect potential sell points. This indicator aims to identify cyclical peaks in Bitcoin’s price, providing signals for potential market tops.
Credit to @NoCreditsLeft
NUPL (Net Unrealized Profit/Loss): Measures investors’ unrealized profit or loss to signal extreme market levels. This indicator shows the net profit or loss of Bitcoin holders as a percentage of the market cap, helping to identify periods of significant market optimism or pessimism.
Credit to @Da_Prof
PUELL Multiple: Assesses mining profitability relative to historical averages to indicate buying or selling opportunities. This indicator compares the daily issuance value of Bitcoin to its yearly average, providing insights into when the market is overbought or oversold based on miner behavior.
Credit to @Da_Prof
MRVR Z-Scores: Compares market value to realized value to identify overbought or oversold conditions. This metric helps gauge the overall market sentiment by comparing Bitcoin’s market value to its realized value, identifying potential reversal points.
Credit to @Pinnacle_Investor
Hash Ribbons: Uses hash rate variations to signal buying opportunities based on miner capitulation and recovery. This indicator tracks the health of the Bitcoin network by analyzing hash rate trends, helping to identify periods of miner capitulation and subsequent recoveries as potential buying opportunities.
Credit to @ROBO_Trading
## Indicator Visualization and Interpretation
__________________________________________________________________________________
For each horizontal line representing an indicator, a legend is displayed on the right side of the chart. If the conditions are positive for an indicator, it will turn green, indicating the end of a bearish trend. Conversely, if the conditions are negative, the indicator will turn red, signaling the end of a bullish trend.
The background color of the chart changes based on the average of green or red indicators. This parameter is configurable, allowing adjustment of the threshold at which the background color changes, providing a clear visual indication of overall market conditions.
## Script Parameters
__________________________________________________________________________________
The script includes several configurable parameters to customize the display and behavior of the indicators:
Color Style:
Normal: Default colors.
Modern: Modern color style.
Monochrome: Monochrome style.
User: User-customized colors.
Custom color settings for up trends (Up Trend Color), down trends (Down Trend Color), and NaN (NaN Color)
Background Color Thresholds:
Thresholds: Settings to define the thresholds for background color change.
Low/High Red Threshold: Low and high thresholds for bearish trends.
Low/High Green Threshold: Low and high thresholds for bullish trends.
Indicator Display:
Options to show or hide specific indicators such as EMA 10 Monthly, CVDD, Pi Cycle, M2 Money, NUPL, PUELL, MRVR Z-Scores, and Hash Ribbons.
Specific Indicator Settings:
EMA 10 Monthly: Options to customize the period for the exponential moving average calculation.
M2 Money: Aggregation of global money supply data.
CVDD: Adjustments for value normalization.
Pi Cycle: Settings for simple and exponential moving averages.
NUPL: Thresholds for unrealized profit/loss values.
PUELL: Adjustments for mining profitability multiples.
MRVR Z-Scores: Settings for overbought/oversold values.
Hash Ribbons: Options for hash rate moving averages and capitulation/recovery signals.
## Conclusion
__________________________________________________________________________________
The “Bitcoin Macro Trend Map” by Ox_kali is a tool designed to analyze the Bitcoin market. By combining several macroeconomic indicators, this script helps identify market peaks and troughs. It is recommended to use it on timeframes from 1 day to 1 week for optimal trend analysis. The scripts used are sourced from open-source projects, modified to suit the specific needs of this analysis.
## Notes
__________________________________________________________________________________
This is the first version of the script and it is still in development. More indicators will likely be added in the future. Feedback and comments are welcome to improve this tool.
## Disclaimer:
__________________________________________________________________________________
Please note that the Open Interest liquidation map is not a guarantee of future market performance and should be used in conjunction with proper risk management. Always ensure that you have a thorough understanding of the indicator’s methodology and its limitations before making any investment decisions. Additionally, past performance is not indicative of future results.
loggerLibrary "logger"
◼ Overview
A dual logging library for developers. Tradingview lacks logging capability. This library provides logging while developing your scripts and is to be used by developers when developing and debugging their scripts.
Using this library would potentially slow down you scripts. Hence, use this for debugging only. Once your code is as you would like it to be, remove the logging code.
◼︎ Usage (Console):
Console = A sleek single cell logging with a limit of 4096 characters. When you dont need a large logging capability.
//@version=5
indicator("demo.Console", overlay=true)
plot(na)
import GETpacman/logger/1 as logger
var console = logger.log.new()
console.init() // init() should be called as first line after variable declaration
console.FrameColor:=color.green
console.log('\n')
console.log('\n')
console.log('Hello World')
console.log('\n')
console.log('\n')
console.ShowStatusBar:=true
console.StatusBarAtBottom:=true
console.FrameColor:=color.blue //settings can be changed anytime before show method is called. Even twice. The last call will set the final value
console.ShowHeader:=false //this wont throw error but is not used for console
console.show(position=position.bottom_right) //this should be the last line of your code, after all methods and settings have been dealt with.
◼︎ Usage (Logx):
Logx = Multiple columns logging with a limit of 4096 characters each message. When you need to log large number of messages.
//@version=5
indicator("demo.Logx", overlay=true)
plot(na)
import GETpacman/logger/1 as logger
var logx = logger.log.new()
logx.init() // init() should be called as first line after variable declaration
logx.FrameColor:=color.green
logx.log('\n')
logx.log('\n')
logx.log('Hello World')
logx.log('\n')
logx.log('\n')
logx.ShowStatusBar:=true
logx.StatusBarAtBottom:=true
logx.ShowQ3:=false
logx.ShowQ4:=false
logx.ShowQ5:=false
logx.ShowQ6:=false
logx.FrameColor:=color.olive //settings can be changed anytime before show method is called. Even twice. The last call will set the final value
logx.show(position=position.top_right) //this should be the last line of your code, after all methods and settings have been dealt with.
◼︎ Fields (with default settings)
▶︎ IsConsole = True Log will act as Console if true, otherwise it will act as Logx
▶︎ ShowHeader = True (Log only) Will show a header at top or bottom of logx.
▶︎ HeaderAtTop = True (Log only) Will show the header at the top, or bottom if false, if ShowHeader is true.
▶︎ ShowStatusBar = True Will show a status bar at the bottom
▶︎ StatusBarAtBottom = True Will show the status bar at the bottom, or top if false, if ShowHeader is true.
▶︎ ShowMetaStatus = True Will show the meta info within status bar (Current Bar, characters left in console, Paging On Every Bar, Console dumped data etc)
▶︎ ShowBarIndex = True Logx will show column for Bar Index when the message was logged. Console will add Bar index at the front of logged messages
▶︎ ShowDateTime = True Logx will show column for Date/Time passed with the logged message logged. Console will add Date/Time at the front of logged messages
▶︎ ShowLogLevels = True Logx will show column for Log levels corresponding to error codes. Console will log levels in the status bar
▶︎ ReplaceWithErrorCodes = True (Log only) Logx will show error codes instead of log levels, if ShowLogLevels is switched on
▶︎ RestrictLevelsToKey7 = True Log levels will be restricted to Ley 7 codes - TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL, FATAL
▶︎ ShowQ1 = True (Log only) Show the column for Q1
▶︎ ShowQ2 = True (Log only) Show the column for Q2
▶︎ ShowQ3 = True (Log only) Show the column for Q3
▶︎ ShowQ4 = True (Log only) Show the column for Q4
▶︎ ShowQ5 = True (Log only) Show the column for Q5
▶︎ ShowQ6 = True (Log only) Show the column for Q6
▶︎ ColorText = True Log/Console will color text as per error codes
▶︎ HighlightText = True Log/Console will highlight text (like denoting) as per error codes
▶︎ AutoMerge = True (Log only) Merge the queues towards the right if there is no data in those queues.
▶︎ PageOnEveryBar = True Clear data from previous bars on each new bar, in conjuction with PageHistory setting.
▶︎ MoveLogUp = True Move log in up direction. Setting to false will push logs down.
▶︎ MarkNewBar = True On each change of bar, add a marker to show the bar has changed
▶︎ PrefixLogLevel = True (Console only) Prefix all messages with the log level corresponding to error code.
▶︎ MinWidth = 40 Set the minimum width needed to be seen. Prevents logx/console shrinking below these number of characters.
▶︎ TabSizeQ1 = 0 If set to more than one, the messages on Q1 or Console messages will indent by this size based on error code (Max 4 used)
▶︎ TabSizeQ2 = 0 If set to more than one, the messages on Q2 will indent by this size based on error code (Max 4 used)
▶︎ TabSizeQ3 = 0 If set to more than one, the messages on Q2 will indent by this size based on error code (Max 4 used)
▶︎ TabSizeQ4 = 0 If set to more than one, the messages on Q2 will indent by this size based on error code (Max 4 used)
▶︎ TabSizeQ5 = 0 If set to more than one, the messages on Q2 will indent by this size based on error code (Max 4 used)
▶︎ TabSizeQ6 = 0 If set to more than one, the messages on Q2 will indent by this size based on error code (Max 4 used)
▶︎ PageHistory = 0 Used with PageOnEveryBar. Determines how many historial pages to keep.
▶︎ HeaderQbarIndex = 'Bar#' (Logx only) The header to show for Bar Index
▶︎ HeaderQdateTime = 'Date' (Logx only) The header to show for Date/Time
▶︎ HeaderQerrorCode = 'eCode' (Logx only) The header to show for Error Codes
▶︎ HeaderQlogLevel = 'State' (Logx only) The header to show for Log Level
▶︎ HeaderQ1 = 'h.Q1' (Logx only) The header to show for Q1
▶︎ HeaderQ2 = 'h.Q2' (Logx only) The header to show for Q2
▶︎ HeaderQ3 = 'h.Q3' (Logx only) The header to show for Q3
▶︎ HeaderQ4 = 'h.Q4' (Logx only) The header to show for Q4
▶︎ HeaderQ5 = 'h.Q5' (Logx only) The header to show for Q5
▶︎ HeaderQ6 = 'h.Q6' (Logx only) The header to show for Q6
▶︎ Status = '' Set the status to this text.
▶︎ HeaderColor Set the color for the header
▶︎ HeaderColorBG Set the background color for the header
▶︎ StatusColor Set the color for the status bar
▶︎ StatusColorBG Set the background color for the status bar
▶︎ TextColor Set the color for the text used without error code or code 0.
▶︎ TextColorBG Set the background color for the text used without error code or code 0.
▶︎ FrameColor Set the color for the frame around Logx/Console
▶︎ FrameSize = 1 Set the size of the frame around Logx/Console
▶︎ CellBorderSize = 0 Set the size of the border around cells.
▶︎ CellBorderColor Set the color for the border around cells within Logx/Console
▶︎ SeparatorColor = gray Set the color of separate in between Console/Logx Attachment
◼︎ Methods (summary)
● init ▶︎ Initialise the log
● log ▶︎ Log the messages. Use method show to display the messages
● page ▶︎ Clear messages from previous bar while logging messages on this bar.
● show ▶︎ Shows a table displaying the logged messages
● clear ▶︎ Clears the log of all messages
● resize ▶︎ Resizes the log. If size is for reduction then oldest messages are lost first.
● turnPage ▶︎ When called, all messages marked with previous page, or from start are cleared
● dateTimeFormat ▶︎ Sets the date time format to be used when displaying date/time info.
● resetTextColor ▶︎ Reset Text Color to library default
● resetTextBGcolor ▶︎ Reset Text BG Color to library default
● resetHeaderColor ▶︎ Reset Header Color to library default
● resetHeaderBGcolor ▶︎ Reset Header BG Color to library default
● resetStatusColor ▶︎ Reset Status Color to library default
● resetStatusBGcolor ▶︎ Reset Status BG Color to library default
● setColors ▶︎ Sets the colors to be used for corresponding error codes
● setColorsBG ▶︎ Sets the background colors to be used for corresponding error codes. If not match of error code, then text color used.
● setColorsHC ▶︎ Sets the highlight colors to be used for corresponding error codes.If not match of error code, then text bg color used.
● resetColors ▶︎ Reset the colors to library default (Total 36, not including error code 0)
● resetColorsBG ▶︎ Reset the background colors to library default
● resetColorsHC ▶︎ Reset the highlight colors to library default
● setLevelNames ▶︎ Set the log level names to be used for corresponding error codes. If not match of error code, then empty string used.
● resetLevelNames ▶︎ Reset the log level names to library default. (Total 36) 1=TRACE, 2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=CRITICAL, 7=FATAL
● attach ▶︎ Attaches a console to an existing Logx, allowing to have dual logging system independent of each other
● detach ▶︎ Detaches an already attached console from Logx
method clear(this)
Clears all the queue, including bar_index and time queues, of existing messages
Namespace types: log
Parameters:
this (log)
method resize(this, rows)
Resizes the message queues. If size is decreased then removes the oldest messages
Namespace types: log
Parameters:
this (log)
rows (int) : The new size needed for the queues. Default value is 40.
method dateTimeFormat(this, format)
Re/set the date time format used for displaying date and time. Default resets to dd.MMM.yy HH:mm
Namespace types: log
Parameters:
this (log)
format (string)
method resetTextColor(this)
Resets the text color of the log to library default.
Namespace types: log
Parameters:
this (log)
method resetTextColorBG(this)
Resets the background color of the log to library default.
Namespace types: log
Parameters:
this (log)
method resetHeaderColor(this)
Resets the color used for Headers, to library default.
Namespace types: log
Parameters:
this (log)
method resetHeaderColorBG(this)
Resets the background color used for Headers, to library default.
Namespace types: log
Parameters:
this (log)
method resetStatusColor(this)
Resets the text color of the status row, to library default.
Namespace types: log
Parameters:
this (log)
method resetStatusColorBG(this)
Resets the background color of the status row, to library default.
Namespace types: log
Parameters:
this (log)
method resetFrameColor(this)
Resets the color used for the frame around the log table, to library default.
Namespace types: log
Parameters:
this (log)
method resetColorsHC(this)
Resets the color used for the highlighting when Highlight Text option is used, to library default
Namespace types: log
Parameters:
this (log)
method resetColorsBG(this)
Resets the background color used for setting the background color, when the Color Text option is used, to library default
Namespace types: log
Parameters:
this (log)
method resetColors(this)
Resets the color used for respective error codes, when the Color Text option is used, to library default
Namespace types: log
Parameters:
this (log)
method setColors(this, c)
Sets the colors corresponding to error codes
Index 0 of input array c is color is reserved for future use.
Index 1 of input array c is color for debug code 1.
Index 2 of input array c is color for debug code 2.
There are 2 modes of coloring
1 . Using the Foreground color
2 . Using the Foreground color as background color and a white/black/gray color as foreground color
This is denoting or highlighting. Which effectively puts the foreground color as background color
Namespace types: log
Parameters:
this (log)
c (color ) : Array of colors to be used for corresponding error codes. If the corresponding code is not found, then text color is used
method setColorsHC(this, c)
Sets the highlight colors corresponding to error codes
Index 0 of input array c is color is reserved for future use.
Index 1 of input array c is color for debug code 1.
Index 2 of input array c is color for debug code 2.
There are 2 modes of coloring
1 . Using the Foreground color
2 . Using the Foreground color as background color and a white/black/gray color as foreground color
This is denoting or highlighting. Which effectively puts the foreground color as background color
Namespace types: log
Parameters:
this (log)
c (color ) : Array of highlight colors to be used for corresponding error codes. If the corresponding code is not found, then text color BG is used
method setColorsBG(this, c)
Sets the highlight colors corresponding to debug codes
Index 0 of input array c is color is reserved for future use.
Index 1 of input array c is color for debug code 1.
Index 2 of input array c is color for debug code 2.
There are 2 modes of coloring
1 . Using the Foreground color
2 . Using the Foreground color as background color and a white/black/gray color as foreground color
This is denoting or highlighting. Which effectively puts the foreground color as background color
Namespace types: log
Parameters:
this (log)
c (color ) : Array of background colors to be used for corresponding error codes. If the corresponding code is not found, then text color BG is used
method resetLevelNames(this, prefix, suffix)
Resets the log level names used for corresponding error codes
With prefix/suffix, the default Level name will be like => prefix + Code + suffix
Namespace types: log
Parameters:
this (log)
prefix (string) : Prefix to use when resetting level names
suffix (string) : Suffix to use when resetting level names
method setLevelNames(this, names)
Resets the log level names used for corresponding error codes
Index 0 of input array names is reserved for future use.
Index 1 of input array names is name used for error code 1.
Index 2 of input array names is name used for error code 2.
Namespace types: log
Parameters:
this (log)
names (string ) : Array of log level names be used for corresponding error codes. If the corresponding code is not found, then an empty string is used
method init(this, rows, isConsole)
Sets up data for logging. It consists of 6 separate message queues, and 3 additional queues for bar index, time and log level/error code. Do not directly alter the contents, as library could break.
Namespace types: log
Parameters:
this (log)
rows (int) : Log size, excluding the header/status. Default value is 50.
isConsole (bool) : Whether to init the log as console or logx. True= as console, False = as Logx. Default is true, hence init as console.
method log(this, ec, m1, m2, m3, m4, m5, m6, tv, log)
Logs messages to the queues , including, time/date, bar_index, and error code
Namespace types: log
Parameters:
this (log)
ec (int) : Error/Code to be assigned.
m1 (string) : Message needed to be logged to Q1, or for console.
m2 (string) : Message needed to be logged to Q2. Not used/ignored when in console mode
m3 (string) : Message needed to be logged to Q3. Not used/ignored when in console mode
m4 (string) : Message needed to be logged to Q4. Not used/ignored when in console mode
m5 (string) : Message needed to be logged to Q5. Not used/ignored when in console mode
m6 (string) : Message needed to be logged to Q6. Not used/ignored when in console mode
tv (int) : Time to be used. Default value is time, which logs the start time of bar.
log (bool) : Whether to log the message or not. Default is true.
method page(this, ec, m1, m2, m3, m4, m5, m6, tv, page)
Logs messages to the queues , including, time/date, bar_index, and error code. All messages from previous bars are cleared
Namespace types: log
Parameters:
this (log)
ec (int) : Error/Code to be assigned.
m1 (string) : Message needed to be logged to Q1, or for console.
m2 (string) : Message needed to be logged to Q2. Not used/ignored when in console mode
m3 (string) : Message needed to be logged to Q3. Not used/ignored when in console mode
m4 (string) : Message needed to be logged to Q4. Not used/ignored when in console mode
m5 (string) : Message needed to be logged to Q5. Not used/ignored when in console mode
m6 (string) : Message needed to be logged to Q6. Not used/ignored when in console mode
tv (int) : Time to be used. Default value is time, which logs the start time of bar.
page (bool) : Whether to log the message or not. Default is true.
method turnPage(this, turn)
Set the messages to be on a new page, clearing messages from previous page.
This is not dependent on PageHisotry option, as this method simply just clears all the messages, like turning old pages to a new page.
Namespace types: log
Parameters:
this (log)
turn (bool)
method show(this, position, hhalign, hvalign, hsize, thalign, tvalign, tsize, show, attach)
Display Message Q, Index Q, Time Q, and Log Levels
All options for postion/alignment accept TV values, such as position.bottom_right, text.align_left, size.auto etc.
Namespace types: log
Parameters:
this (log)
position (string) : Position of the table used for displaying the messages. Default is Bottom Right.
hhalign (string) : Horizontal alignment of Header columns
hvalign (string) : Vertical alignment of Header columns
hsize (string) : Size of Header text Options
thalign (string) : Horizontal alignment of all messages
tvalign (string) : Vertical alignment of all messages
tsize (string) : Size of text across the table
show (bool) : Whether to display the logs or not. Default is true.
attach (log) : Console that has been attached via attach method. If na then console will not be shown
method attach(this, attach, position)
Attaches a console to Logx, or moves already attached console around Logx
All options for position/alignment accept TV values, such as position.bottom_right, text.align_left, size.auto etc.
Namespace types: log
Parameters:
this (log)
attach (log) : Console object that has been previously attached.
position (string) : Position of Console in relation to Logx. Can be Top, Right, Bottom, Left. Default is Bottom. If unknown specified then defaults to bottom.
method detach(this, attach)
Detaches the attached console from Logx.
All options for position/alignment accept TV values, such as position.bottom_right, text.align_left, size.auto etc.
Namespace types: log
Parameters:
this (log)
attach (log) : Console object that has been previously attached.
Master Global Liquidity Shifted 75 DaysThe Global Liquidity Index is a Pine Script (version 5) technical indicator designed to measure and visualize global financial liquidity by aggregating data from various central bank balance sheets and money supply metrics. The indicator is plotted as an overlay on the price chart using the left scale, with the entire line shifted left by 75 days.
Key features:
Data Sources: Incorporates balance sheet data from major central banks including the Federal Reserve (FED), European Central Bank (ECB), People's Bank of China (PBC), Bank of Japan (BOJ), and other central banks, along with optional M2 money supply data from various countries.
Components: Includes options to toggle specific liquidity factors such as FED balance sheet, Treasury General Account (TGA), Reverse Repurchase Agreements (RRP), and regional M2 money supplies, all converted to USD.
75-Day Shift: The indicator's output is shifted left by 75 days on the chart, aligning historical liquidity data with earlier price action, with this shift period adjustable via the "Shift Days Left" input.
Calculations:
Computes a total liquidity value by summing enabled central bank and M2 data (adjusted for RRP and TGA as drains)
Scales the total by dividing by 1 trillion (10^12)
Applies a Simple Moving Average (SMA) and Rate of Change (ROC) with user-defined periods
Final output is either the SMA of ROC or SMA alone, depending on ROC length
Visualization: Plots the shifted result as a yellow line with a linewidth of 2.
MacroJP: US Macro Conditions & Forward GuidanceMacroJP is a comprehensive, free-to-use TradingView indicator designed to provide a clear snapshot of the US macroeconomic environment. It consolidates key economic metrics into a single, interactive dashboard, allowing traders and investors to quickly assess current conditions and adjust their portfolio biases accordingly.
How It Works:
• Data Aggregation:
The indicator pulls monthly data from reputable free economic sources—specifically, ISM Manufacturing PMI, US CPI YoY, US M2 Money Supply, and US Treasury yields (10-year and 2-year). This robust dataset forms the backbone of the analysis.
• Composite Calculations:
By calculating a Composite Inflation Indicator (the average of CPI YoY and the yield spread) and evaluating the year-over-year change in M2, MacroJP gauges both the inflationary pressures and liquidity trends in the economy. These composite metrics offer a nuanced view that goes beyond single-indicator analysis.
Regime Classification:
The core strength of MacroJP lies in its quadrant classification system. It categorises the macro environment into four distinct regimes based on the direction of economic growth (derived from PMI) and inflation (from the Composite Inflation Indicator):
• Expansion (Reflation): Indicative of a recovering economy with rising production and moderate inflation—ideal for a bullish equity bias.
• Stagflation Risk: A scenario of weak growth coupled with high inflation, where a defensive posture is recommended.
• Slowdown (Deflationary): Characterised by contracting economic activity and falling prices, suggesting a move towards cash or high-quality bonds.
• Disinflationary Boom: Reflects strong growth with stable or falling inflation—an optimal environment for equities with some bond diversification.
Forward Guidance:
To enhance its predictive capability, MacroJP incorporates leading indicators by shifting key data points. For instance, it uses a forward-shifted M2 YoY value and a one-month shifted CPI proxy to offer insights into near-term trends. This approach helps in anticipating changes, providing a sort of “forward guidance” that can inform strategic asset allocation.
User Education:
The indicator features an intuitive table with on-hover tooltips that explain each metric, its relevance, and recommended investment biases. This educational layer is designed to empower users to not only monitor the economic pulse but also to understand the ‘why’ behind each reading, making it a valuable tool for both novice and experienced investors.
MacroJP brings clarity to complex macroeconomic dynamics, allowing users to make more informed decisions in volatile markets. Its seamless integration of free public data and detailed on-chart annotations makes it an indispensable tool for anyone looking to understand the broader economic context impacting their investments.
— Jaroslav
[blackcat] L1 Abnormal Volume Monitor█ OVERVIEW
The script is an indicator designed to monitor abnormal volume patterns in the market. It calculates and plots moving average volumes, identifies triple volume bars, and detects potential large order entries based on specific conditions.
█ FEATURES
• Input Parameters: The script defines parameters M1, M2, and lbk which control the calculation of moving averages and the lookback period for detecting abnormal volume.
• Calculations: The script calculates two moving averages of volume (MAVOL1 and MAVOL2), a smoothed price level (mm), and identifies conditions for triple volume bars and large order entries.
• Plotting: The script plots volume histograms for up and down bars, moving average volumes, and highlights triple volume bars with and without large order entries.
• Conditional Statements: The script uses conditional statements to determine when to plot certain data points and labels based on the calculated conditions.
█ LOGICAL FRAMEWORK
• xfl(cond, lbk): This function checks if a condition (cond) has been true within a specified lookback period (lbk). It returns true if the condition has been met and false otherwise.
• Parameters: cond (condition to check), lbk (lookback period).
• Return Value: outb (boolean indicating if the condition was met within the lookback period).
• abnormal_vol_monitor(close, open, high, low, volume, M1, M2, lbk): This function calculates moving average volumes, identifies triple volume bars, and detects large order entries.
• Parameters: close, open, high, low, volume (price and volume data), M1, M2 (periods for moving averages), lbk (lookback period).
• Return Value: A tuple containing MAVOL1, MAVOL2, xa (large order entry condition), and tripleVolume (triple volume condition).
█ KEY POINTS AND TECHNIQUES
• Moving Averages: The script uses simple moving averages (sma) and exponential moving averages (ema) to smooth volume data.
• Volume Analysis: The script identifies triple volume bars and large order entries based on specific conditions, such as volume doubling and price increases.
• Lookback Period: The xfl function uses a lookback period to ensure the accuracy of the detected conditions.
• Plotting Techniques: The script uses different plot styles and colors to distinguish between up bars, down bars, moving averages, and abnormal volume patterns.
█ EXTENDED KNOWLEDGE AND APPLICATIONS
• Modifications: The script could be modified to include additional conditions for detecting other types of abnormal volume patterns or to adjust the sensitivity of the detection.
• Extensions: Similar techniques could be applied to other financial instruments or timeframes to identify unusual trading activity.
• Related Concepts: The script utilizes concepts such as moving averages, exponential moving averages, and conditional plotting, which are fundamental in Pine Script and technical analysis.
SHIBO V6.0**SHIBO v6 - Fibonacci Impulse Analysis Indicator**
*By Shahab Sadeghi (@shahabs2004)*
**Overview:**
Welcome to SHIBO v6, a revolutionary Fibonacci Impulse Analysis Indicator designed to harness the power of a unique chart pattern. The script employs a reverse Fibonacci methodology to identify powerful impulses that first reach Fibonacci level 0.382, experience a correction, and then continue toward Fibonacci level 1. This description delves into the intricacies of how the script calculates precise price targets based on this distinctive pattern.
keep in mind that this Indicator is based on this Idea that each Impulse have its own support and Resistant Levels(stop loss and Target)
**Key Features:**
1. **Reverse Fibonacci Calculation:** SHIBO v6 introduces a novel approach to Fibonacci analysis. Instead of the conventional method where price targets are set from Fibonacci 0 to 1, this script calculates the distance price moves towards Fibonacci 1 from 0.382. This innovative technique identifies potential reversal and continuation zones with unparalleled accuracy.
2. **Impulse and Correction Identification:** Users play a pivotal role in recognizing high-probability trading opportunities. The script requires manual selection and marking of powerful impulses, focusing on identifying corrections and anticipating potential reversal zones within these impulses.
3. **Optimized Fibonacci Levels:** Leveraging the reverse Fibonacci approach, the script dynamically computes and draws Fibonacci retracement levels (R1, R2, R3) based on the calculated distance the price has moved towards Fibonacci 1. These levels serve as strategic benchmarks, offering insights into potential price movements and areas of interest.
4. **Dynamic Line Drawings:** SHIBO v6 features dynamic line drawings, including impulse start and end points, Fibonacci levels, and stop-loss levels. These visual elements facilitate a comprehensive understanding of the analysis, assisting users in making well-informed trading decisions.
5. **Informative Table Display:** A dedicated table provides crucial information, including impulse start and end points, Fibonacci levels, and percentage deviations from the current price. This table enhances the user's grasp of the analyzed data, fostering effective decision-making.
6. **Prefix Identification:** Users employing multiple SHIBO indicators on a chart can use the Prefix input to assign a unique identifier to each instance. This streamlines the analysis process, particularly when dealing with multiple instances of the indicator.
**How the Script Calculates Targets:**
1. **Impulse Recognition:** Users manually identify a robust impulse in the price movement, signifying a potential trend change or continuation.
2. **Correction Confirmation:** Anticipate or confirm the start of a correction phase within the selected impulse. Corrections often occur after a strong price movement.
3. **Manual Setting of IS and IE Points:** Set the impulse start (IS) and end (IE) points manually based on the identified impulse and correction.
4. **Fibonacci Level Calculation:** The script dynamically calculates Fibonacci levels (R1, R2, R3) based on the distance the price has moved towards Fibonacci 1 from 0.382. These levels serve as potential targets and areas of interest.
5. **Visual Representation:** The script visually represents the calculated levels through dynamic line drawings, providing a clear picture of potential reversal and continuation zones.
**Advanced Usage (Pro Users):**
- **Customizable Line Drawings:** Explore the commented-out lines in the script for additional functionalities and customization options for line drawings. Pro users can tailor the script to align with unique trading strategies.
**Disclaimer:**
Trading carries inherent risks, and SHIBO v6 introduces a distinctive approach to technical analysis. Exercise caution, conduct thorough analysis, and consider risk management strategies before making trading decisions. Past performance does not guarantee future results.
**Support and Feedback:**
Join the community of traders committed to refining strategies based on reverse Fibonacci impulse analysis. Share your experiences, insights, and suggestions to contribute to the continuous improvement of SHIBO v6.
**how Calculations Goes ?**
Imagine you're analyzing a stock price:
IS (Initial Start Price): Let's say the stock price starts at $100.
IE (Initial End Price): After a significant movement, the price reaches $120.
1. Identify Fibonacci Retracement Levels:
fi1 (0.382): This level suggests a potential retracement of 38.2% of the upward move.
fi2 (0.5000): This level represents a 50% retracement, or halfway back to the starting price.
fi3 (0.6180): This level represents the "Golden Ratio" and another potential support/resistance area.
fi4 (0.7860): This level suggests a retracement of 78.6% and can also be used for stop-loss calculations.
2. Calculate Multiples:
m1: Divide the final price ($120) by the starting price ($100) raised to the power of fi1 (120 / 100^0.382). This gives you a value we'll use later.
m2: Similar calculation, but using fi2 instead of fi1.
m3: Similar calculation, but using fi3 instead of fi1.
3. Calculate Target Prices:
Take Profit (Resistance)
TP1: Raise the value of m1 to the power of 1/(1-fi1). This gives you a potential upside target price based on the 38.2% retracement level.
TP2: Similar calculation, but using m2 and fi2.
TP3: Similar calculation, but using m3 and fi3.
4. Calculate Stop-Loss Levels:
Stop loss(Support)
SL1 or Support: Multiply TP1 by the starting price ($100) raised to the power of fi4. This gives you a potential downside stop-loss level based on the 78.6% retracement from TP1.
SL2: Similar calculation, but using TP2 and fi4.
SL3: Similar calculation, but using TP3 and fi4.
5. Calculate Midpoint Level:
MID: Multiply TP1 by the starting price ($100) raised to the power of fi3. This gives you a potential support/resistance level halfway between TP1 and the starting price.
Remember, these are just potential levels and not guaranteed. It's important to use other technical and fundamental analysis alongside Fibonacci retracements.
Here's the breakdown of the steps and their results:
1. Fibonacci levels define potential support and resistance areas:
The chosen Fibonacci levels (0.382, 0.5, 0.618, and 0.786) are often seen as potential zones where the price might stall or reverse after a strong move.
2. Multiples and target prices:
The multiples (m1, m2, m3) represent price ratios based on different retracement levels.
Target prices (TP1, TP2, TP3) are calculated by raising these multiples to specific exponents. These prices suggest areas where the price might encounter resistance after a retracement (not guaranteed predictions).
3. Stop-loss levels:
Stop-loss levels (SL1, SL2, SL3) are based on the target prices and another Fibonacci level (0.786). They mark price points where a trader might exit a trade to manage risk if the price moves against them.
Essentially, the calculations translate Fibonacci retracement levels into concrete price points for potential entry (targets) and exit (stop-loss) points.
*Happy Trading and Empowered Analysis!*
Debasement Adjusted CAGREquity growth may appear less significant when juxtaposed with the expansion of the money supply. This is because markets tend to adjust prices to reflect changes in money supply almost immediately.
Our indicator offers a unique perspective by adjusting the current ticker price for the M2 money supply and normalizing this data to show the percentage appreciation since the first visible bar on the chart. Users can also select alternative money supply measures, such as the EU-M2, via the indicator's settings.
This approach essentially redefines the price as the "growth of the relative share of the total money supply," providing a novel lens through which to view equity performance.
Additionally, the indicator computes both the Compound Annual Growth Rate (CAGR) and the total growth observed from this adjusted standpoint. These metrics are calculated within the context of the selected time range, adding depth to the analysis.
Although this indicator is compatible with all timeframes, it is primarily designed as a macroeconomic tool. It yields the most meaningful insights when applied to longer-term perspectives, such as weekly or monthly timeframes.
This tool builds upon the foundational work presented in the "Inflation Adjusted Performance Ticker," accessible at Inflation Adjusted Performance Ticker , enhancing its application by normalizing the results and computing CAGR and total growth.
Stock Value EUThere are many method of measuring value of stock. However I'm proposing most basic stock valuation based on Book Value, Earnings , Dividends and Money Supply:
SV = (BVPS + EPS + DPS ) * ( M3 /M1)
BVPS = Book Value Per Share (Asset - Liability)
EPS = Earnings Per Share
DPS = Dividends Per Share
M3 = M3 Money Supply (Money Market)
M1 = M1 Money Supply (Base Money)
Fundamental value of a stock should be determine by it's BV which means total asset of a company if were liquidated today and use some of it's asset to pay of the debt. So technically BVPS is the intrinsic value of a stock. However the company is generating an earning which is profit and loss that should be added on top of the fundamental value of company, so thus EPS should be added on top of Book Value Per Share. Aside from earnings , the stock that you purchase give you dividends as your return so DPS also can be included on top of that. So all in all BVPS, EPS and DPS are the primary valuation of the stock. However most of the stock are traded way higher than their fundamental valuation. The main reason of this is the market dynamics which is driven by central banks printing of base money supply M0. The banking credit system then lend out this money to money markets as loan so that peoples can invest and by the company stock. This money supply extension of credit is known as money market M2 which drive the stock inflated price. The ratio between M2 and M0 are the money multiplier effect that drives the stock price higher than it's valuation. So the Stock Value should be the total number of BVPS + EPS + DPS times the M2 money multiplier as shown by this indicator.
If the stock are traded above their SV value, that means it's an overpriced bubble
If the stock are traded below their SV value, that means it's an underpriced burst
This indicator is only applicable for EU based stock chart, because we use EU money supply to do the money multiplier calculation. For other country stocks take a look our other indicator:
- Stock Value EU - applicable for European stocks
- Stock Value CN - applicable for Chinese stocks
- Valuation Rainbow - applicable for all countries
[Floride] 4 Layers of Bollinger Shadow
This is the indicator I named 4LBS. That means four layers of bollinger shadow.
This is an indicator that I made to see how far past prices could affect the future prices.
And I found some very interesting and beautiful things about it, and I wanted to share them with you, so I publish this indicator.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
Hello, nice to meet you all. my name as a trader is Floride.
First of all, I am not good at English, so there may be many grammatically incorrect sentences below.
I ask for your understanding in advance. Thanks for your understanding.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
What is it?
bollinger Bands usually has one moving average line. And there's two bands that uses same period value of standard deviation as the former MA. And this indicator, by the way, has a 4 shadow bands
that uses twice,three,four,five time the value of the MA's period.
Appearance -
This indicator has four layers, and there are also other layers between them.
You can turn on or off all the shadow layers.
Uses of Indicator and Examples
examples of actual use
1. market strongness diagnosis
-It seems all layers of shadow has some degree resist/support forces.
This indicator has the 4th layer - "L4". (indicated by red lines).
I saw emergence of volatility quite frequently when this last layer breaks through.
When price breaks through this area or line, shade appear on the L4 layer in red. and red cross appear on the that point. This is I called Marlin signal.
If you saw red color shadow in this indicator, then the market may have quite high volatility.
(of course, there's not 100%. Please be careful about this.)
But I've also checked in quite several markets. when this volatility emerges, then also that market seems to started to building quite directional power afterwards.
I mean, after the marlin signal, market tends to have bigger volatility, and tends to go one direction.
again, it's not 100%. but probability is quite high.
But maybe depending on the type of market you need some adjustment.
Recommended values are M2-1.618, M3-2.618
Or M2-1, M3-2. default value is M2-1.618, M3-2.618
and also, if prices breakthrough the channels, or layers, It tends to break through the at once, in first bar. In other words, if price don't break through the first or second candle, it's very likely that the price won't break through channel for the time being.
2. market weakness diagnosis
Usually, without external momentum, the price converges to the average value and does not deviate from the band. And if price fails to break through the most inner first layer-"L1 - the green channel", In that case, the market is usually assumed to be weak, or has low volatility.
- you can set alarms on tuna, marlin signal. and you don't have to watch chart all the time.
3. Signals
I put two signals in this indicator.
One has the name "Tuna," and the second has the name "Marlin."
As you can already tell from the name's feeling, tuna is a weaker signal and marlin is a stronger signal.
Actual example of a signal
1. Tuna signal
- When the tuna signal appears, you can guess that the current market is generally not weak. or has quite good directional force. or medium volatility.
Below is important.
- If a tuna signal appears, there is a possibility that a marlin will appear later.
- In my opinion, it might be wise not to have a position without a tuna signal.
- Almost all of the marlin signal appeared shortly after the tuna signal appeared.
2. Marlin signal
- When marlin signal appears, with a high probability, volatility can increase large.
- In the backtesting of the stock, in some cases, the market moved quite frequently in the direction of the marlin signal.
- The emergence of marlin can be seen as a pretty strong indication of the emergences of direction.
Crypto Macro CockpitCrypto Macro Cockpit — Institutional Liquidity Regime Detection
🔍 Overview
This script introduces a modern macro framework for crypto market regime detection, leveraging newly added stablecoin market data on TradingView. It’s designed to guide traders through the evolving institutional era of crypto — where liquidity, not just price, is king.
🌐 Why This Matters
Historically, traditional proxies like M2 money supply or bond yields were referenced to infer macro liquidity shifts. But with the regulatory green light and institutional embrace of stablecoins, on-chain fiat liquidity is now directly observable.
Stablecoins = The new M2 for crypto.
This script utilizes real-time data from:
📊 CRYPTOCAP:STABLE.C (Total Stablecoin Market Cap)
📊 CRYPTOCAP:STABLE.C.D (Stablecoin Dominance)
to assess dry powder, risk appetite, and macro regime transitions.
📋 How to Read the Crypto Macro Cockpit
This dashboard updates every few bars and is organized into four actionable segments:
1️⃣ Macro Spreads
Metric --> Interpretation
Risk Flow --> Measures capital flow between stablecoins and total crypto market cap. → Green = risk deploying.
ETH vs BTC --> Shift in dominance between ETH and BTC → rotation gauge.
ETHBTC --> Price ratio movement → confirms leadership tilt.
ALTs (TOTAL3ES) --> Momentum in altcoin market, excluding BTC/ETH/stables → key for alt season timing.
2️⃣ Liquidity & Risk Appetite
Metric --> Interpretation
Liquidity --> Directional change in stablecoin cap → more stables = more dry powder.
Risk Appetite --> Inverse of stablecoin dominance → falling dominance = capital rotating into risk.
3️⃣ Stablecoin Context
Metric --> Interpretation
StableCap ROC --> Growth rate of stablecoin market cap → proxy for fiat inflows.
StableDom ROC --> Change in stablecoin dominance → reflects market caution or aggression.
4️⃣ Composite Labels
Label --> Interpretation
Rotation --> Sector tilt (BTC-led vs ETH/Alts)
Regime --> Synthesized macro environment → "Risk-ON", "Caution", "Waiting", or "Risk-OFF"
Background Color --> Optional tint reflecting regime for quick glance validation
All metrics are evaluated with directional arrows (▲/▼/•) and acceleration overlays, using user-defined thresholds scaled by timeframe for precision.
🔔 Built-in Alerts
Predefined, non-repainting alerts include:
Regime transitions
Sector rotations
Confirmed ETH/ALT rotations
Stablecoin market cap spikes
Risk Flow acceleration
You can use these alerts for discretionary trading or automated system triggers.
⚠️ Disclaimer
This script is for educational and informational purposes only. It does not constitute financial advice. Trading cryptocurrencies involves risk, and past performance does not guarantee future results. Always do your own research and manage risk responsibly.
✅ Ready to Use
No configuration needed — just load the script
Works on all timeframes (optimized for 1D)
Thresholds and smoothing are customizable
Table positioning and sizing is user-controlled
If you find this helpful, feel free to ⭐️ favorite or leave feedback. Questions welcome in the comments.
Let’s trade with macro awareness in this new era.
Advanced Fed Decision Forecast Model (AFDFM)The Advanced Fed Decision Forecast Model (AFDFM) represents a novel quantitative framework for predicting Federal Reserve monetary policy decisions through multi-factor fundamental analysis. This model synthesizes established monetary policy rules with real-time economic indicators to generate probabilistic forecasts of Federal Open Market Committee (FOMC) decisions. Building upon seminal work by Taylor (1993) and incorporating recent advances in data-dependent monetary policy analysis, the AFDFM provides institutional-grade decision support for monetary policy analysis.
## 1. Introduction
Central bank communication and policy predictability have become increasingly important in modern monetary economics (Blinder et al., 2008). The Federal Reserve's dual mandate of price stability and maximum employment, coupled with evolving economic conditions, creates complex decision-making environments that traditional models struggle to capture comprehensively (Yellen, 2017).
The AFDFM addresses this challenge by implementing a multi-dimensional approach that combines:
- Classical monetary policy rules (Taylor Rule framework)
- Real-time macroeconomic indicators from FRED database
- Financial market conditions and term structure analysis
- Labor market dynamics and inflation expectations
- Regime-dependent parameter adjustments
This methodology builds upon extensive academic literature while incorporating practical insights from Federal Reserve communications and FOMC meeting minutes.
## 2. Literature Review and Theoretical Foundation
### 2.1 Taylor Rule Framework
The foundational work of Taylor (1993) established the empirical relationship between federal funds rate decisions and economic fundamentals:
rt = r + πt + α(πt - π) + β(yt - y)
Where:
- rt = nominal federal funds rate
- r = equilibrium real interest rate
- πt = inflation rate
- π = inflation target
- yt - y = output gap
- α, β = policy response coefficients
Extensive empirical validation has demonstrated the Taylor Rule's explanatory power across different monetary policy regimes (Clarida et al., 1999; Orphanides, 2003). Recent research by Bernanke (2015) emphasizes the rule's continued relevance while acknowledging the need for dynamic adjustments based on financial conditions.
### 2.2 Data-Dependent Monetary Policy
The evolution toward data-dependent monetary policy, as articulated by Fed Chair Powell (2024), requires sophisticated frameworks that can process multiple economic indicators simultaneously. Clarida (2019) demonstrates that modern monetary policy transcends simple rules, incorporating forward-looking assessments of economic conditions.
### 2.3 Financial Conditions and Monetary Transmission
The Chicago Fed's National Financial Conditions Index (NFCI) research demonstrates the critical role of financial conditions in monetary policy transmission (Brave & Butters, 2011). Goldman Sachs Financial Conditions Index studies similarly show how credit markets, term structure, and volatility measures influence Fed decision-making (Hatzius et al., 2010).
### 2.4 Labor Market Indicators
The dual mandate framework requires sophisticated analysis of labor market conditions beyond simple unemployment rates. Daly et al. (2012) demonstrate the importance of job openings data (JOLTS) and wage growth indicators in Fed communications. Recent research by Aaronson et al. (2019) shows how the Beveridge curve relationship influences FOMC assessments.
## 3. Methodology
### 3.1 Model Architecture
The AFDFM employs a six-component scoring system that aggregates fundamental indicators into a composite Fed decision index:
#### Component 1: Taylor Rule Analysis (Weight: 25%)
Implements real-time Taylor Rule calculation using FRED data:
- Core PCE inflation (Fed's preferred measure)
- Unemployment gap proxy for output gap
- Dynamic neutral rate estimation
- Regime-dependent parameter adjustments
#### Component 2: Employment Conditions (Weight: 20%)
Multi-dimensional labor market assessment:
- Unemployment gap relative to NAIRU estimates
- JOLTS job openings momentum
- Average hourly earnings growth
- Beveridge curve position analysis
#### Component 3: Financial Conditions (Weight: 18%)
Comprehensive financial market evaluation:
- Chicago Fed NFCI real-time data
- Yield curve shape and term structure
- Credit growth and lending conditions
- Market volatility and risk premia
#### Component 4: Inflation Expectations (Weight: 15%)
Forward-looking inflation analysis:
- TIPS breakeven inflation rates (5Y, 10Y)
- Market-based inflation expectations
- Inflation momentum and persistence measures
- Phillips curve relationship dynamics
#### Component 5: Growth Momentum (Weight: 12%)
Real economic activity assessment:
- Real GDP growth trends
- Economic momentum indicators
- Business cycle position analysis
- Sectoral growth distribution
#### Component 6: Liquidity Conditions (Weight: 10%)
Monetary aggregates and credit analysis:
- M2 money supply growth
- Commercial and industrial lending
- Bank lending standards surveys
- Quantitative easing effects assessment
### 3.2 Normalization and Scaling
Each component undergoes robust statistical normalization using rolling z-score methodology:
Zi,t = (Xi,t - μi,t-n) / σi,t-n
Where:
- Xi,t = raw indicator value
- μi,t-n = rolling mean over n periods
- σi,t-n = rolling standard deviation over n periods
- Z-scores bounded at ±3 to prevent outlier distortion
### 3.3 Regime Detection and Adaptation
The model incorporates dynamic regime detection based on:
- Policy volatility measures
- Market stress indicators (VIX-based)
- Fed communication tone analysis
- Crisis sensitivity parameters
Regime classifications:
1. Crisis: Emergency policy measures likely
2. Tightening: Restrictive monetary policy cycle
3. Easing: Accommodative monetary policy cycle
4. Neutral: Stable policy maintenance
### 3.4 Composite Index Construction
The final AFDFM index combines weighted components:
AFDFMt = Σ wi × Zi,t × Rt
Where:
- wi = component weights (research-calibrated)
- Zi,t = normalized component scores
- Rt = regime multiplier (1.0-1.5)
Index scaled to range for intuitive interpretation.
### 3.5 Decision Probability Calculation
Fed decision probabilities derived through empirical mapping:
P(Cut) = max(0, (Tdovish - AFDFMt) / |Tdovish| × 100)
P(Hike) = max(0, (AFDFMt - Thawkish) / Thawkish × 100)
P(Hold) = 100 - |AFDFMt| × 15
Where Thawkish = +2.0 and Tdovish = -2.0 (empirically calibrated thresholds).
## 4. Data Sources and Real-Time Implementation
### 4.1 FRED Database Integration
- Core PCE Price Index (CPILFESL): Monthly, seasonally adjusted
- Unemployment Rate (UNRATE): Monthly, seasonally adjusted
- Real GDP (GDPC1): Quarterly, seasonally adjusted annual rate
- Federal Funds Rate (FEDFUNDS): Monthly average
- Treasury Yields (GS2, GS10): Daily constant maturity
- TIPS Breakeven Rates (T5YIE, T10YIE): Daily market data
### 4.2 High-Frequency Financial Data
- Chicago Fed NFCI: Weekly financial conditions
- JOLTS Job Openings (JTSJOL): Monthly labor market data
- Average Hourly Earnings (AHETPI): Monthly wage data
- M2 Money Supply (M2SL): Monthly monetary aggregates
- Commercial Loans (BUSLOANS): Weekly credit data
### 4.3 Market-Based Indicators
- VIX Index: Real-time volatility measure
- S&P; 500: Market sentiment proxy
- DXY Index: Dollar strength indicator
## 5. Model Validation and Performance
### 5.1 Historical Backtesting (2017-2024)
Comprehensive backtesting across multiple Fed policy cycles demonstrates:
- Signal Accuracy: 78% correct directional predictions
- Timing Precision: 2.3 meetings average lead time
- Crisis Detection: 100% accuracy in identifying emergency measures
- False Signal Rate: 12% (within acceptable research parameters)
### 5.2 Regime-Specific Performance
Tightening Cycles (2017-2018, 2022-2023):
- Hawkish signal accuracy: 82%
- Average prediction lead: 1.8 meetings
- False positive rate: 8%
Easing Cycles (2019, 2020, 2024):
- Dovish signal accuracy: 85%
- Average prediction lead: 2.1 meetings
- Crisis mode detection: 100%
Neutral Periods:
- Hold prediction accuracy: 73%
- Regime stability detection: 89%
### 5.3 Comparative Analysis
AFDFM performance compared to alternative methods:
- Fed Funds Futures: Similar accuracy, lower lead time
- Economic Surveys: Higher accuracy, comparable timing
- Simple Taylor Rule: Lower accuracy, insufficient complexity
- Market-Based Models: Similar performance, higher volatility
## 6. Practical Applications and Use Cases
### 6.1 Institutional Investment Management
- Fixed Income Portfolio Positioning: Duration and curve strategies
- Currency Trading: Dollar-based carry trade optimization
- Risk Management: Interest rate exposure hedging
- Asset Allocation: Regime-based tactical allocation
### 6.2 Corporate Treasury Management
- Debt Issuance Timing: Optimal financing windows
- Interest Rate Hedging: Derivative strategy implementation
- Cash Management: Short-term investment decisions
- Capital Structure Planning: Long-term financing optimization
### 6.3 Academic Research Applications
- Monetary Policy Analysis: Fed behavior studies
- Market Efficiency Research: Information incorporation speed
- Economic Forecasting: Multi-factor model validation
- Policy Impact Assessment: Transmission mechanism analysis
## 7. Model Limitations and Risk Factors
### 7.1 Data Dependency
- Revision Risk: Economic data subject to subsequent revisions
- Availability Lag: Some indicators released with delays
- Quality Variations: Market disruptions affect data reliability
- Structural Breaks: Economic relationship changes over time
### 7.2 Model Assumptions
- Linear Relationships: Complex non-linear dynamics simplified
- Parameter Stability: Component weights may require recalibration
- Regime Classification: Subjective threshold determinations
- Market Efficiency: Assumes rational information processing
### 7.3 Implementation Risks
- Technology Dependence: Real-time data feed requirements
- Complexity Management: Multi-component coordination challenges
- User Interpretation: Requires sophisticated economic understanding
- Regulatory Changes: Fed framework evolution may require updates
## 8. Future Research Directions
### 8.1 Machine Learning Integration
- Neural Network Enhancement: Deep learning pattern recognition
- Natural Language Processing: Fed communication sentiment analysis
- Ensemble Methods: Multiple model combination strategies
- Adaptive Learning: Dynamic parameter optimization
### 8.2 International Expansion
- Multi-Central Bank Models: ECB, BOJ, BOE integration
- Cross-Border Spillovers: International policy coordination
- Currency Impact Analysis: Global monetary policy effects
- Emerging Market Extensions: Developing economy applications
### 8.3 Alternative Data Sources
- Satellite Economic Data: Real-time activity measurement
- Social Media Sentiment: Public opinion incorporation
- Corporate Earnings Calls: Forward-looking indicator extraction
- High-Frequency Transaction Data: Market microstructure analysis
## References
Aaronson, S., Daly, M. C., Wascher, W. L., & Wilcox, D. W. (2019). Okun revisited: Who benefits most from a strong economy? Brookings Papers on Economic Activity, 2019(1), 333-404.
Bernanke, B. S. (2015). The Taylor rule: A benchmark for monetary policy? Brookings Institution Blog. Retrieved from www.brookings.edu
Blinder, A. S., Ehrmann, M., Fratzscher, M., De Haan, J., & Jansen, D. J. (2008). Central bank communication and monetary policy: A survey of theory and evidence. Journal of Economic Literature, 46(4), 910-945.
Brave, S., & Butters, R. A. (2011). Monitoring financial stability: A financial conditions index approach. Economic Perspectives, 35(1), 22-43.
Clarida, R., Galí, J., & Gertler, M. (1999). The science of monetary policy: A new Keynesian perspective. Journal of Economic Literature, 37(4), 1661-1707.
Clarida, R. H. (2019). The Federal Reserve's monetary policy response to COVID-19. Brookings Papers on Economic Activity, 2020(2), 1-52.
Clarida, R. H. (2025). Modern monetary policy rules and Fed decision-making. American Economic Review, 115(2), 445-478.
Daly, M. C., Hobijn, B., Şahin, A., & Valletta, R. G. (2012). A search and matching approach to labor markets: Did the natural rate of unemployment rise? Journal of Economic Perspectives, 26(3), 3-26.
Federal Reserve. (2024). Monetary Policy Report. Washington, DC: Board of Governors of the Federal Reserve System.
Hatzius, J., Hooper, P., Mishkin, F. S., Schoenholtz, K. L., & Watson, M. W. (2010). Financial conditions indexes: A fresh look after the financial crisis. National Bureau of Economic Research Working Paper, No. 16150.
Orphanides, A. (2003). Historical monetary policy analysis and the Taylor rule. Journal of Monetary Economics, 50(5), 983-1022.
Powell, J. H. (2024). Data-dependent monetary policy in practice. Federal Reserve Board Speech. Jackson Hole Economic Symposium, Federal Reserve Bank of Kansas City.
Taylor, J. B. (1993). Discretion versus policy rules in practice. Carnegie-Rochester Conference Series on Public Policy, 39, 195-214.
Yellen, J. L. (2017). The goals of monetary policy and how we pursue them. Federal Reserve Board Speech. University of California, Berkeley.
---
Disclaimer: This model is designed for educational and research purposes only. Past performance does not guarantee future results. The academic research cited provides theoretical foundation but does not constitute investment advice. Federal Reserve policy decisions involve complex considerations beyond the scope of any quantitative model.
Citation: EdgeTools Research Team. (2025). Advanced Fed Decision Forecast Model (AFDFM) - Scientific Documentation. EdgeTools Quantitative Research Series
Global Liquidity Indicator in USDThis indicator aggregates the total central bank balance sheets and M2 money supply for the USA, Canada, China, European Union, Japan, and the UK, converting all values to USD and normalizing them to trillions for easy visualization. It plots three lines: Total Balance Sheet, Total M2, and Combined Total, providing a comprehensive view of global liquidity trends.
Key Features:
Dynamic Coloring: Customize line colors based on direction—green for upward trends, red for downward (or any colors you choose), with independent on/off toggles for each line.
Real-Time Currency Conversion: Uses live forex rates (e.g., USD/CNY, USD/EUR) for accurate USD conversions.
Blockchain Fundamentals: Liquidity & BTC YoYLiquidity & BTC YoY Indicator
Overview:
This indicator calculates the Year-over-Year (YoY) percentage change for two critical metrics: a custom Liquidity Index and Bitcoin's price. The Liquidity Index is derived from a blend of economic and forex data representing the M2 money supply, while the BTC price is obtained from a reliable market source. A dedicated limit(length) function is implemented to handle limited historical data, ensuring that the YoY calculations are available immediately—even when the chart's history is short.
Features Breakdown:
1. Limited Historical Data Workaround
- Functionality: limit(length) The function dynamically adjusts the lookback period when there isn’t enough historical data. This prevents delays in displaying YoY metrics at the beginning of the chart.
2. Liquidity Calculation
- Data Sources: Combines multiple data streams:
USM2, ECONOMICS:CNM2, USDCNY, ECONOMICS:JPM2, USDJPY, ECONOMICS:EUM2, USDEUR
- Formula:
Liquidity Index = USM2 + (CNM2 / USDCNY) + (JPM2 / USDJPY) + (EUM2 / USDEUR)
[b3. Bitcoin Price Calculation
- Data Source: Retrieves Bitcoin's price from BITSTAMP:BTCUSD on the user-selected timeframe for its historical length.
4. Year-over-Year (YoY) Percent Change Calculation
- Methodology:
- The indicator uses a custom function, to autodetect the proper number of bars, based on the selected timeframe.
- It then compares the current value to that from one year ago for both the Liquidity Index and BTC price, calculating the YoY percentage change.
5. Visual Presentation
- Plotting:
- The YoY percentage changes for Liquidity (plotted in blue) and BTC price (plotted in orange) are clearly displayed.
- A horizontal zero line is added for visual alignment, making it easier to compare the two copies of the metric. You add one copy and only display the BTC YoY. Then you add another copy and only display the M2 YoY.
-The zero lines are then used to align the scripts to each other by interposing them. You scale each chart the way you like, then move each copy individually to align both zero lines on top of each other.
This indicator is ideal for analysts and investors looking to monitor macroeconomic liquidity trends alongside Bitcoin's performance, providing immediate insights.
Log Regression OscillatorThe Log Regression Oscillator transforms the logarithmic regression curves into an easy-to-interpret oscillator that displays potential cycle tops/bottoms.
🔶 USAGE
Calculating the logarithmic regression of long-term swings can help show future tops/bottoms. The relationship between previous swing points is calculated and projected further. The calculated levels are directly associated with swing points, which means every swing point will change the calculation. Importantly, all levels will be updated through all bars when a new swing is detected.
The "Log Regression Oscillator" transforms the calculated levels, where the top level is regarded as 100 and the bottom level as 0. The price values are displayed in between and calculated as a ratio between the top and bottom, resulting in a clear view of where the price is situated.
The main picture contains the Logarithmic Regression Alternative on the chart to compare with this published script.
Included are the levels 30 and 70. In the example of Bitcoin, previous cycles showed a similar pattern: the bullish parabolic was halfway when the oscillator passed the 30-level, and the top was very near when passing the 70-level.
🔹 Proactive
A "Proactive" option is included, which ensures immediate calculations of tentative unconfirmed swings.
Instead of waiting 300 bars for confirmation, the "Proactive" mode will display a gray-white dot (not confirmed swing) and add the unconfirmed Swing value to the calculation.
The above example shows that the "Calculated Values" of the potential future top and bottom are adjusted, including the provisional swing.
When the swing is confirmed, the calculations are again adjusted, showing a red dot (confirmed top swing) or a green dot (confirmed bottom swing).
🔹 Dashboard
When less than two swings are available (top/bottom), this will be shown in the dashboard.
The user can lower the "Threshold" value or switch to a lower timeframe.
🔹 Notes
Logarithmic regression is typically used to model situations where growth or decay accelerates rapidly at first and then slows over time, meaning some symbols/tickers will fit better than others.
Since the logarithmic regression depends on swing values, each new value will change the calculation. A well-fitted model could not fit anymore in the future.
Users have to check the validity of swings; for example, if the direction of swings is downwards, then the dataset is not fitted for logarithmic regression.
In the example above, the "Threshold" is lowered. However, the calculated levels are unreliable due to the swings, which do not fit the model well.
Here, the combination of downward bottom swings and price accelerates slower at first and faster recently, resulting in a non-fit for the logarithmic regression model.
Note the price value (white line) is bound to a limit of 150 (upwards) and -150 (down)
In short, logarithmic regression is best used when there are enough tops/bottoms, and all tops are around 100, and all bottoms around 0.
Also, note that this indicator has been developed for a daily (or higher) timeframe chart.
🔶 DETAILS
In mathematics, the dot product or scalar product is an algebraic operation that takes two equal-length sequences of numbers (arrays) and returns a single number, the sum of the products of the corresponding entries of the two sequences of numbers.
The usual way is to loop through both arrays and sum the products.
In this case, the two arrays are transformed into a matrix, wherein in one matrix, a single column is filled with the first array values, and in the second matrix, a single row is filled with the second array values.
After this, the function matrix.mult() returns a new matrix resulting from the product between the matrices m1 and m2.
Then, the matrix.eigenvalues() function transforms this matrix into an array, where the array.sum() function finally returns the sum of the array's elements, which is the dot product.
dot(x, y)=>
if x.size() > 1 and y.size() > 1
m1 = matrix.new()
m2 = matrix.new()
m1.add_col(m1.columns(), y)
m2.add_row(m2.rows (), x)
m1.mult (m2)
.eigenvalues()
.sum()
🔶 SETTINGS
Threshold: Period used for the swing detection, with higher values returning longer-term Swing Levels.
Proactive: Tentative Swings are included with this setting enabled.
Style: Color Settings
Dashboard: Toggle, "Location" and "Text Size"
Crypto Value RainbowThe best way to value Crypto value is comparing Crypto price against the available money supply circulating in the economy. There are 3 different 4 different type of money supply M0/M1/M2/M3 which denotes the level of money printed by central government to the final credit lend out to the economy via fractional banking system. This rainbow valuation measures the relative Crypto price against the M0/M1/M2/M3 from most popular currency that account for more than 75% of money supply in the world.
CV = US MS + EU MS + CN MS + JP MS + UK MS
CV = Crypto Value
MS = Money Supply
This can only be applied to a few crypto currency:
- BTCUSD Bitcoin
- ETHUSD Ehereum
- BNBUSD BNB
- SOLUSD Solana
- XRPUSD XRP
- TONUSD Toncoin
- DOGEUSD Dogecoin
- TRXUSD Tron
- ADAUSD Cardano
- AVAXUSD Avalanche
The rainbow color is the multiplier for the total Crypto Value by 1x,2x,3x,...,10x
Prometheus OscillatorThis oscillator is a tool meant to determine an up or down trend using a measure of volatility and what skews the market has.
Calculation
The first thing to do is normalize the price to have a 0 handle and be a decimal. The reason to do this is to get the 0 line for every asset.
After the source value has been normalized calculate standard deviation and skew.
Standard Deviation
To calculate standard deviation Prometheus uses Pinescript's built-in function.
standard_dev = ta.stdev(src, len, true)
Standard deviation is a decent and quick estimation of historical volatility over a period of time specified by the user.
Skew
Skew is calculated as follows:
mean = ta.sma(src, len)
m3 = math.sum(math.pow(src - mean, 3), len) / len
m2 = math.pow(math.sum(math.pow(src - mean, 2), len) / len, 1.5)
skew = m3 / m2
Skew is a value used to determine how far on one side of a distribution a value is. When the market is aggressively moving higher the skew will be a bigger positive number. When it is moving lower, a negative number. When the values are small, still either positive or negative, is when the market is moving calmly in either direction.
Adding these two values together provides us with our oscillator.
Trade Examples
A simple way to use this tool is to use 0-line crosses as bullish or bearish alerts
Step 1: Cross above 0 line, long alert. The price proceeds to move up.
Step 2: Cross below 0 line, short alert. The Price moves down.
Step 3: Cross above 0 line, long alert. The price chops then the price proceeds to move up.
0 line crosses can work but may not always be reliable.
Step 1: Cross above 0 line, long alert. The price proceeds to move up.
Step 2: Cross below 0 line, short alert. The Price bounces as the downtrend is signaled, but then continues to sell off.
Step 3: Cross above 0 line, long alert. The price chops at the high and then reverses.
Step 4: Cross below 0 line, short alert. proceeds to move down.
Step 5: Cross above 0 line, long alert. The price proceeds to move up.
Not every alert will be perfect, we encourage traders to use tools as well as their own discretion.
Previous highs and lows may be a good tell if the alert will be true.
Step 1: Cross above 0 line, long alert. The price proceeds to move up.
Step 2: Cross below 0 line, short alert. The Price bounces as the downtrend is signaled, false alert.
Step 3: Cross above 0 line, long alert. The price chops at the high and then moves up.
Step 4: Cross below 0 line, short alert. The price chops a lot with a false break to the upside, the oscillator itself does not move fast or high which could have been a sign it was false.
Step 5: Step 3's downtrend continues.
Step 6: Cross above the 0 line. A new up trend emerges.
The indicator has more than one use. Detecting false moves in a greater trend is advantageous to not get faked out.
Step 1: Price moves up, however, the oscillator does not break 0, and the trend remains bearish before a true break of 0 line and moves up.
Step 2: While the oscillator is below the 0 line the price moves up. The oscillator does not change its sign and the downtrend continues until a true break of 0 line and moves up.
Inputs:
Len: Lookback length for how many bars back to go to calculate the oscillator.
No indicator is 100% accurate, use them along with your own discretion.
Macroeconomic Artificial Neural Networks
This script was created by training 20 selected macroeconomic data to construct artificial neural networks on the S&P 500 index.
No technical analysis data were used.
The average error rate is 0.01.
In this respect, there is a strong relationship between the index and macroeconomic data.
Although it affects the whole world,I personally recommend using it under the following conditions: S&P 500 and related ETFs in 1W time-frame (TF = 1W SPX500USD, SP1!, SPY, SPX etc. )
Macroeconomic Parameters
Effective Federal Funds Rate (FEDFUNDS)
Initial Claims (ICSA)
Civilian Unemployment Rate (UNRATE)
10 Year Treasury Constant Maturity Rate (DGS10)
Gross Domestic Product , 1 Decimal (GDP)
Trade Weighted US Dollar Index : Major Currencies (DTWEXM)
Consumer Price Index For All Urban Consumers (CPIAUCSL)
M1 Money Stock (M1)
M2 Money Stock (M2)
2 - Year Treasury Constant Maturity Rate (DGS2)
30 Year Treasury Constant Maturity Rate (DGS30)
Industrial Production Index (INDPRO)
5-Year Treasury Constant Maturity Rate (FRED : DGS5)
Light Weight Vehicle Sales: Autos and Light Trucks (ALTSALES)
Civilian Employment Population Ratio (EMRATIO)
Capacity Utilization (TOTAL INDUSTRY) (TCU)
Average (Mean) Duration Of Unemployment (UEMPMEAN)
Manufacturing Employment Index (MAN_EMPL)
Manufacturers' New Orders (NEWORDER)
ISM Manufacturing Index (MAN : PMI)
Artificial Neural Network (ANN) Training Details :
Learning cycles: 16231
AutoSave cycles: 100
Grid
Input columns: 19
Output columns: 1
Excluded columns: 0
Training example rows: 998
Validating example rows: 0
Querying example rows: 0
Excluded example rows: 0
Duplicated example rows: 0
Network
Input nodes connected: 19
Hidden layer 1 nodes: 2
Hidden layer 2 nodes: 0
Hidden layer 3 nodes: 0
Output nodes: 1
Controls
Learning rate: 0.1000
Momentum: 0.8000 (Optimized)
Target error: 0.0100
Training error: 0.010000
NOTE : Alerts added . The red histogram represents the bear market and the green histogram represents the bull market.
Bars subject to region changes are shown as background colors. (Teal = Bull , Maroon = Bear Market )
I hope it will be useful in your studies and analysis, regards.
Liquidity-Weighted Business Cycle (Satoshi Global Base)🌍 BTC-Affinity Global Liquidity Business Cycle (MACD Model)
This indicator models Bitcoin’s macroeconomic business cycle using a BTC-weighted global liquidity index as its foundation. It adapts a MACD-based framework to visualize expansions and contractions in fiat liquidity across major economies with high Bitcoin affinity.
🔍 What It Does:
🧠 Constructs a Global M2 Liquidity Index from the top 10 most BTC-relevant fiat currencies
(USD, EUR, JPY, GBP, INR, CNY, KRW, BRL, CAD, AUD)
— each weighted by its Bitcoin adoption score and FX-converted into USD.
📊 Applies a MACD (Moving Average Convergence Divergence) signal to the index to detect macro liquidity trends.
🟢 Plots a histogram of business cycle momentum (red = expansion, green = contraction).
🔴 Marks potential cycle peaks, useful for macro trading alignment.
⚖️ BTC Affinity-Weighted Countries:
🇺🇸 United States
🇪🇺 Eurozone
🇯🇵 Japan
🇬🇧 United Kingdom
🇮🇳 India
🇨🇳 China
🇰🇷 South Korea
🇧🇷 Brazil
🇨🇦 Canada
🇦🇺 Australia
Weights are user-adjustable to reflect evolving capital controls, regulation, and real-world BTC adoption trends.
✅ Use Cases:
Confirm macro risk-on vs risk-off regimes for BTC and crypto.
Identify ideal entry and exit zones in macro pair trades (e.g., MSTR vs MSTY).
Monitor how global monetary expansion feeds into BTC valuations.