Economic Calendar EventsThis indicator provides an overlay of Events on the main chart, where each Event is visually represented by a Label and vertical Line, placed at the specified time interval for each Event.
Events are defined by user data as an input string on the settings widget panel for the indicator. The event data is a string (semicolon delimited) whose grammar is a representation of a collection of Event records, where each Event record is a comma-separated list of fields, which correspond to:
The name of the event.
The symbol or ticker to which the Event applies (or `*` if it should apply to all ticklers).
The timezone and then the year, month, day, hour, and minute of the event, respectively.
Each Event record is separated by the semicolon ";" character.
As an example , assume `evantData` is the string:
"SVB,*,UTC,2023,03,10,00,00;US CPI,*,UTC,2023,04,12,08,30;ETH Shanghai,ETHUSD,UTC,2023,04,12,08,30"
In the above case, there are 4 Events defined, three of which apply to all tickers and one applies only to ETHUSD, as follows:
The first event is named SVB and applies to all tickers at UTC time on March 10, 2023 at 12:00:00.
The second event is named US CPI and applies to all tickers at UTC time on April 12, 2023 at 08:30:00.
The third event is named ETH Shanghai and applies to the ETHUSD ticker at UTC time on April 12, 2023 at 08:30:00.
The fourth event is named FOMC Rates and applies to all tickers at UTC time on May 3, 2023 at 14:00:00.
The following is a BNF for defining event data:
market-events ::= event-record | event-record ";" market-events
event-record ::= event-name "," ticker ”,” event-timezone "," event-time
event-name ::= string
event-time>::= year "," month "," day "," hour "," minute
event-timezone ::= string
ticker ::= "*" | string
string ::= +
year ::= {4}
month ::= {2}
day ::= {2}
hour ::= {2}
minute ::= {2}
Komut dosyalarını "中海油+10年股价涨幅" için ara
Grospector DCA V.3This is system for DCA with strategy.
This has 5 zone Extreme high , high , normal , low , Extreme low. You can dynamic set min - max percent every zone.
Extreme zone is derivative short and long which It change Extreme zone to Normal zone all position will be closed.
Every Zone is splitted 10 channel. and this strategy calculate contribution.
and now can predict price in future.
Idea : Everything has average in its life. For bitcoin use 4 years for halving. I think it will be interesting price.
Default : I set MA is 365*4 days and average it again with 365 days.
Input :
len: This input represents the length of the moving average.
strongLen: This input represents the length of the moving average used to calculate the strong buy and strong sell zone.
shortMulti: This input represents the multiplier * moveing average used to calculate the short zone.
strongSellMulti: This input represents the multiplier used to calculate the strong sell signal.
sellMulti: This input represents the multiplier * moveing average used to calculate the sell zone.
strongBuyMulti: This input represents the multiplier used to calculate the strong sell signal.
longMulti: This input represents the multiplier * moveing average used to calculate the long zone.
*Diff sellMulti and strongBuyMulti which is normal zone.
useDerivative: This input is a boolean flag that determines whether to use the derivative display zone. If set to true, the derivative display zone will be used, otherwise it will be hidden.
zoneSwitch: This input determines where to display the channel signals. A value of 1 will display the signals in all zones, a value of 2 will display the signals in the chart pane, a value of 3 will display the signals in the data window, and a value of 4 will hide the signals.
price: Defines the price source used for the indicator calculations. The user can select from various options, with the default being the closing price.
labelSwitch: Defines whether to display assistive text on the chart. The user can select a boolean value (true/false), with the default being true.
zoneSwitch: Defines which areas of the chart to display assistive zones. The user can select from four options: 1 = all, 2 = chart only, 3 = data only, 4 = none. The default value is 2.
predictFuturePrice: Defines whether to display predicted future prices on the chart. The user can select a boolean value (true/false), with the default being true.
DCA: Defines the dollar amount to use for dollar-cost averaging (DCA) trades. The user can input an integer value, with a default value of 5.
WaitingDCA: Defines the amount of time to wait before executing a DCA trade. The user can input a float value, with a default value of 0.
Invested: Defines the amount of money invested in the asset. The user can input an integer value, with a default value of 0.
strategySwitch: Defines whether to turn on the trading strategy. The user can select a boolean value (true/false), with the default being true.
seperateDayOfMonth: Defines a specific day of the month on which to execute trades. The user can input an integer value from 1-31, with the default being 28.
useReserve: Defines whether to use a reserve amount for trading. The user can select a boolean value (true/false), with the default being true.
useDerivative: Defines whether to use derivative data for the indicator calculations. The user can select a boolean value (true/false), with the default being true.
useHalving: Defines whether to use halving data for the indicator calculations. The user can select a boolean value (true/false), with the default being true.
extendHalfOfHalving: Defines the amount of time to extend the halving date. The user can input an integer value, with the default being 200.
Every Zone : It calculate percent from top to bottom which every zone will be splited 10 step.
To effectively make the DCA plan, I recommend adopting a comprehensive strategy that takes into consideration your mindset as the best indicator of the optimal approach. By leveraging your mindset, the task can be made more manageable and adaptable to any market
Dollar-cost averaging (DCA) is a suitable investment strategy for sound money and growth assets which It is Bitcoin, as it allows for consistent and disciplined investment over time, minimizing the impact of market volatility and potential risks associated with market timing
JZ_Chaikin HTF Volatility BreakoutFirst off, all credit to Harry Potter as this is a minor customization of his indicator.
Basic additions:
-- Added a Higher Timeframe that is set to Daily but can be changed. Timeframe does wait until barstate.isconfirmed so won't repaint.
-- Added HMA smoothing line to both Chart and HTF. Can be used as it's own signal, as confirmation or in combination with faster signal line -- Breakout signal & Range Highlight use both.
-- Added optional coloring of HMA based on whether increasing or decreasing.
-- Added a low volatility option that highlights Range/No Trade zones. Defval is off so needs to be selected from inputs.
Breakout Signals are very simple and both take the HTF signal and HMA. When the faster Volatility line rises from below zero and comes within the range of -10 to 0, AND the HMA signals is increasing (and also below zero) for confirmation, generates a breakout signal of an incoming big move. You can alter the breakout threshold to be greater or less than -10, I just found that works best for filtering out the noise and false signals. Won't catch everything, but pretty reliable when it does.
Tested mostly on BTC so can't vouch for other assets and would likely need modification.
I've JUST taught myself coding from scratch (and to say I'm an amateur is an understatement), so apologies in advance if anything is unclear or could be coded better. Open to any suggestions.
Simple Trendlines📈 Trendlines, made easy.
Simple Trendlines is a carefully made library that provides an easy and accessible way to draw trendlines on the chart.
Containing only 10 properties and 2 methods, the implementation is designed to be understandable through an object-oriented structure and provides developers the opportunity to expand without having to deal with slope calculation while also ensuring that there's no leakage between the trendlines before they're drawn.
Developers only need to provide 5 expressions to get everything up in running. This includes the following but is not limited to
The x-axis
Point A (Y1 Value)
Point B (Y2 Value)
A condition to draw the line
A condition to keep the trendline under continuation
Automatic x-axis calculation is not a built-in feature due to the inconsistency it could bring.
📕 Quick Example
import HoanGhetti/SimpleTrendlines/1 as tl
input_len = input.int(defval = 10)
pivotLow = fixnan(ta.pivotlow(input_len, input_len))
xAxis = ta.valuewhen(ta.change(pivotLow), bar_index, 0) - ta.valuewhen(ta.change(pivotLow), bar_index, 1)
prevPivot = ta.valuewhen(ta.change(pivotLow), pivotLow, 1)
pivotCondition = ta.change(pivotLow) and pivotLow > prevPivot
plData = tl.new(x_axis = xAxis, offset = input_len)
plData.drawLine(pivotCondition, prevPivot, pivotLow)
plData.drawTrendline(close > 0)
plData.lines.trendline.set_style(line.style_dashed)
plData.lines.trendline.set_width(2)
plData.lines.startline.set_width(2)
Excluding the styling at the bottom, that was only 8 lines of code which yields the following result.
⏳ Before continuing
The library does not support block-scoped execution. Conditions must be declared before and integrated as a parameter. This doesn't limit any capabilities and only involves thinking logically about precedence. It was made this way for code readability and to keep things organized.
The offset value inside the TrendlineSettings object can potentially affect performance (although very minimal) if you're using strict mode. When using strict mode, it loops through historical values to then do backend calculations.
🔽 Getting Started 🔽
Creating trendlines without a library isn't a hard task. However, the library features a built-in system called strict mode. We'll dive further into this below.
Creating an Instance
You can create an instance of the library by calling the new() function. Passing an identifier is conventionally mandatory in this case so you can reference properties and methods.
import HoanGhetti/SimpleTrendlines/2 as tl
lineData = tl.new(int x_axis, int offset, bool strictMode, int strictType)
___
int x_axis (Required) The distance between point A and point B provided by the user.
int offset (Optional) The offset from x2 and the current bar_index. Used in situations where conditions execute ahead of where the x2 location is such as pivót events.
bool strictMode (Optional) Strict mode works in the backend of things to ensure that the price hasn't closed below the trendline before the trendline is drawn.
int strictType (Optional) Only accepts 0 and 1, 0 ensures that the price during slope calculation is above the line, and 1 ensures that the price during slope calculation is below the line.
The Initial Line
After instantiating the library, we can go ahead use the identifer we made above and create an instance of our initial line by calling the drawLine() method.
lineData.drawLine(bool condition, float y1, float y2, float src)
___
bool condition (Required) The condition in order to draw a new line.
float y1 (Required) The y-value of point A.
float y2 (Required) The y-value of point B.
float src (Optional) Determines which value strict mode will actively check for leakage before a trendline is drawn.
Typically used if you're not referencing OHLC values for your y-values, or you want to check for another value to exceed the line besides using the close value.
The Trendline
The trendline that gets drawn solely uses the values of the initial line and can be called using the drawTrendline() method. The library enforces a condition as a parameter in order to maintain simplicity.
lineData.drawTrendline(bool condition)
___
bool condition (Required) The condition in order to maintain and continue drawing the trendline.
⚙️ Features
🔹 Automatic Slope Calculation
In the background, the library calculates the next Y2 and X2 values on every tick for the trendline. Preventing the developer from having to do such a process themself.
🔹 Object-Oriented
Each object contains manipulative properties that allow the developer to debug and have the freedom they want.
🔹 Enforced Error Checking
Runtime errors have been put in place to ensure you're doing things correctly.
🔹 Strict Mode & Offset
Strict mode can only be used when the offset value is over 0. It's a feature that's only meant to function under scenarios where a condition executes further than where the X2 is relative to the current bar_index value.
Let's think about pivot systems. As you're aware, pivot events are detected based on historical factors. If a swing low occurred nth bars ago, then the pivot condition will execute at the current bar_index instead of executing nth bars back.
Now because of this, what if you wanted to draw a trendline when the pivot event is executed? The offset value takes care of this just as you would when developing your other scripts, basically how we always do bar_index - n. However, what does this mean for strict mode?
The photo below represents the logic behind the execution.
When looking at this image, imagine this just happened, the event just executed and the trendline is now drawn. Pay attention to all the values inside the surrounding box. As you can see there are some candles that closed below the trendline before the trendline was drawn.
From what I can see 5-6 candles closed below the trendline during slope calculation. The goal of strict mode is to be a provisional system that prevents such occurrences from happening.
Here's a photo with strict mode on.
🔹 Strict Type
A parameter used in the new() function that acts as a representation of what strict mode should calculate for. It accepts only two values, 0 and 1.
0 - Ensures that all candles have closed above the trendline before the trendline is drawn.
1 - Ensures that all candles have closed below the trendline before the trendline is drawn.
In the most recent photo above, I used 0 for strict type, since I was wanting to have a clean trendline and ensure that not a single candlestick closed below.
If you want to reference something else besides the close value during strict mode calculation, you can change it in the drawLine() method.
If it's still difficult to understand, think 0 for pivot lows, and 1 for pivot highs.
📕 Methods and Property Inheritance
The library isn't crazy, but hopefully, it helps.
That is all.👍
Volume+ (Time of Day)This volume indicator measures the volume for each bar at the time of day and displays the average and +1 standard deviation above that average.
The color intensity of the bar is increased when the volume exceeds +1 standard deviation.
See how on the chart that other than the early morning and late day volume, there are clearly key moments in the day at 7am, 10am, 10:30am, and 11am. See how on the second day, there were volume spikes before 10am, 10:30am and then more obviously just before 11am.
Typical Sweeps: Pivot high/low boxes. Grade sweeps, Handles/PipsTool to show typical pip-grade/ handle-grade sweep distance above pivot highs and pivot lows
-In consolidation/ranging periods (i.e. most of the time); Highs/Lows may by swept by fairly consistent distances in typical stop raids.
-Idea is from ICT teaching on typical Pip-grade sweeps in FX (10,20,30pips). Designed to work on FX, Indices, Commodities, Bitcoin.
-Above chart shows S&P; sweeping below and then above by 5 handles.
///inputs///
~choose sweep distance handles ($) or pips: will auto-calculate depending on the asset: FX= pips; Indices/stocks/commodities = handles ($)
--(2,5,10,20,30,50,100, 500, 1000)
~choose pivot lookback: larger number for more significant swing highs/lows
~choose number of historical boxes to display
~toggle on/off Pivot high boxes and Pivot low boxes independently
~extend boxes fully to the right (default is not extend)
~toggle on/off text
~text & box formatting options
Bitcoin, hourly chart; Pivot lookback = 15; $100 sweep boxes:
Eur/Usd; 15m chart; Pivot lookback = 30; 10pip sweep boxes; Boxes extended fully to the right:
Elliott Wave [LuxAlgo]The Elliott Wave indicator allows users to detect Elliott Wave (EW) impulses as well as corrective segments automatically on the chart. These are detected and displayed serially, allowing users to keep track of the evolution of an impulse or corrective wave.
Fibonacci retracements constructed from detected impulse waves are also included.
This script additionally allows users to get alerted on a wide variety of trigger conditions (see the ALERTS section below).
🔶 SETTINGS
🔹 Source
• "high" -> options high, close, maximum of open/close
• "low" -> options low, close, minimum of open/close
🔹 ZigZag
• The source and length are used to check whether a new Pivot Point is found.
Example:
• source = high/low, length = 10:
• There is a new pivot high when:
- previous high is higher than current high
- the highs of 10 bars prior to previous high are all lower
• These pivot points are used to form the ZigZag lines, which in their turn are used for pattern recognition
🔶 USAGE
The basic principles we use to identify Elliott Wave impulses are:
• A movement in the direction of the trend ( Motive/Impulse wave ) is divided in 5 waves (Wave 1 -> 5)
• The Corrective Wave (against the trend) is divided in 3 waves (Wave A -> C)
• The waves can be subdivided in smaller waves
• Wave 2 can’t retrace more than the beginning of Wave 1
• Wave 4 does not overlap with the price territory of Wave 1
Here we see an example:
Let's look at the development:
• 1 bar after point (5) a confirmed 5 Motive Wave pattern is found (1 -> 5; The 5 Waves can also be seen as one large Wave 1 ).
• Next, the script draws a set of Fibonacci lines, which are area's where the Corrective Wave potentially will bounce.
Here we see the fifth wave is getting larger, the previous highest point is updated, and the Wave 5 is larger than Wave 3 :
(At this point, the pattern is invalidated, and it display as dotted)
Further progression in time:
At this point, a confirmed " 3 Corrective Wave pattern " is found (a -> c)
When a new high has developed, a circle is drawn (in the same color of the lines)
However, when the bottom of the drawn box has breached, a red cross will be visualized.
Further progression:
Later on, a bearish confirmed " 5 Motive Wave pattern " is found (1 -> 5):
When a Corrective Wave becomes invalidated, the ABC pattern will display as dashed (not dotted):
🔶 TECHNIQUES
Pine Script™ introduces methods!
• More information can be found here:
• Pine Script™ v5 User Manual 👉 Methods
• Pine Script™ language reference manual 👉 method
🔶 ALERTS
Dynamic alerts are included in the script, you only need to set 1 alert to receive following messages:
• When a new EW Motive Pattern is found (Bullish/Bearish )
• When a new EW Corrective Pattern is found (Bullish/Bearish )
• When an EW Motive Pattern is invalidated (Bullish/Bearish )
• When an EW Corrective Pattern is invalidated (Bullish/Bearish )
• When possible, a start of a new EW Motive Wave is found (Bullish/Bearish )
• Here is information how you can set these alerts()
[Uhokang] Bollinger Band BB EMA SMMA SMA Multy timeframeYou can view indicators from the specified upper timeframe together.
( Bollinger Bands, SMMA, EMA, SMA )
If it is based on a 1-hour bar, you can see indicators for 4-hour bars and 1-day bars at the same time.
=> =>
Minutes
1 => 5 => 30
2 => 10 => 60
3 => 15 => 90
4 => 20 => 120
5 => 30 => 120
6 => 30 => 120
10 => 60 => 240
15 => 60 => 240
30 => 120 => 480
45 => 180 => 450
over Hours
1 => 4 => D
2 => 8 => 2D
3 => 12 => 3D
4 => D => W
D => W => M
W => M => Y
Correlation Matrix + Heatmap - By LeviathanA quick and easy way to visualize the correlation between 10 different symbols over a custom period of time, in the form of a matrix with a heatmap visualization and additional tools such as price increase/decrease %, multi-timeframe function, customizable appearance and more.
The indicator displays correlation coefficients for each pair of 10 assets in a matrix format, where the rows and columns represent the assets being compared between each other. The color of each cell corresponds with the strength of the correlation coefficient, allowing you to quickly identify which assets are strongly correlated, and which are not, and use that information to adjust risk or even get trade ideas. Coupled with the "Price Change" function, the script will help you find trade opportunities based on eg. the long-term correlation strength and short-term price direction differences between two assets. The "Correlation Length" input defines the number of bars used for calculating the correlation, while "Price Change Length" defines the bar to which the current price is compared when calculating price change (eg. the input 20 means that the script will compare the price of the candle close that occurred 20 bars ago and the current price).
Correlation coefficient:
The correlation coefficient is a statistical measure that quantifies the degree of linear relationship between two variables. The correlation coefficient ranges from -1 to 1, with 1 being perfect positive correlation and -1 being perfect negative correlation.
• A correlation coefficient of 1 indicates a perfect positive linear relationship between two variables. This means that when one variable increases, the other variable also increases in a proportional manner.
• A correlation coefficient of 0 indicates no linear relationship between two variables. This means that changes in one variable do not affect the other variable.
• A correlation coefficient of -1 indicates a perfect negative linear relationship between two variables. This means that when one variable increases, the other variable decreases in a proportional manner.
Inspired by @RicardoSantos's script
Flare🔶 METHODS
• Pine Script™ introduces methods ( 1 , 2 )! Much kuddos for the developers, Tradingview, and all who has worked on it!
• This educational script will show the simplified way of writing built-in methods, not to create a new method.
🔹 Simplified way of writing built-in methods:
· Instead of:
newArray = array.new()
array.unshift(newArray, 1)
lin = line.new(na, na, na, na)
line.set_xy1(lin, bar_index , close)
line.set_xy2(lin, bar_index + 10, close)
label newLabel = label.new(bar_index, high)
if barstate.islast
label.delete(newLabel)
· We now can write it like this:
newArray = array.new()
newArray.unshift(1)
lin = line.new(na, na, na, na)
lin.set_xy1(bar_index , close)
lin.set_xy2(bar_index + 10, close)
label newLabel = label.new(bar_index, high)
if barstate.islast
newLabel.delete()
——————————————————————————————————————————————————————————
· When using sometimes brackets are necessary:
label lab = label.new(bar_index, high)
if barstate.islast
label.set_color(lab, color.red)
label.delete(lab )
· ->
label lab = label.new(bar_index, high)
if barstate.islast
lab.set_color(color.red)
(lab ).delete() // lab .delete() doesn't compile at the moment
——————————————————————————————————————————————————————————
🔶 OVERVIEW OF SCRIPT
• The basic principles are:
· Find 1 point ( close ) x bars back from current bar ( settings: 'x close back').
· Create a 'Flare' shaped object from that point to current bar or further (dependable of "Width of Flare").
· Calculate where current close is located versus the Flare lines.
· On that bases, change colour and draw plotshapes.
· Below bar if current close is located in the upper part of the Flare
· Above bar if current close is located in the lower part of the Flare
· Above & Below if located in the middle part of the Flare
-> Above & Below colours has 3 different colours (adjustable), dependable on the position
🔶 EXAMPLES
· Neutral zone:
· Light Bullish zone:
· Bullish zone:
· Very Bullish / Overbought zone:
· Light Bearish zone:
· Bearish zone:
· Very Bearish / Oversold zone:
🔶 TECHNIQUES
🔹 I. Make a User Defined Type (UDT) Flare, with:
· 5x linefill - array of linefill
· int iDir, which captures the direction (current location of close in Flare)
· color cCol, this is a colour variable in relation to the direction.
🔹 II. Different functions will add a new Flare object, and update the values on each bar.
· Explanation of each function can be found in the script.
🔶 EXTRA's
· The input.color() is located in the function set_flare_B(flare obj)
· Best to put the inputs at the beginning of the script, I included this alternative just to show it is possible (but mostly not ideal)
· Background colour (settings: Bgcolor) can be enabled for better visibility of colours
Futures All List Candle Analysis - FALCAIn this command; There is an alphabetical list of USDS-M coins with the USDT PERP extension on the Binance Futures side.
There are 13 lists in total. Each list contains 39 data. Due to data limitation, 13 lists are formed. There are 13 coins in the first 11 of the lists. The 12th list contains 3 coins. The last list (FAVORITE LIST) is CRYPTOCAP:TOTAL, BINANCE:BTCUSDTPERP, BINANCE:BTCDOMUSDTPERP as standard. You must add 10 coins to the final list.
The lists show data for the time period you selected.
Explanation of the (C/H) header: Close /High takes a maximum value of 1. As long as this value is 1, a price increase is observed.
Explanation of the (C/O) header:
Close /Open can be greater than ,1. In this case, a price increase is observed.
Close /Open can be less than 1. In this case, a price decrease is observed.
The value Close /Open can be equal to 1. In this case, price stability is observed.
Explanation of the (C/L) header: Close /Low takes a minimum value of 1. As long as this value is 1, a price decrease is observed.
Coins with a price decrease are shown in red.
Coins with a price increase will turn green.
***NOTE: For this command to work, you must first add 10 favorite coins to the "FAVORITE LIST".
Trend crossierHello there!
I would like to share my script.
This is S/R levels indicator based on custom range for each step used for computing minimum/maximum of the range.
For example - we predefined step with 50 candles as one, after we have got the minimum and maximum of it - we come to the next 50 candles and do the same to it.
Finaly - we have got 20 lines for 10 steps.
After that - we set the ( SMA * mult) to have step between lines and if N of lines in range of step from eachother(if a+step > b and b+step > c ...) we call it a strong level.
It is not my idea(but my code), so I do not claim the uniqueness of this idea (the customer asked me to code it, but I also read about this method in open sources before).
The second thing - vectors of current trend direction on different timeframes.
For this task I took the same ranges, but ema () of each range. After first step it has an array with N values.
The next thing it does is take out "chain" one by one on each iteration. How does it do that? We take new AVG with neighbor values.
If we have 10 length at start - after iteration it becomes 9. So it repeats computing till length is 2.
After we have 2 points left - we can plot the line using indexes.
This way we can see the trend direction on different timeframes.
Feel free to use, change, put into another scripts. You can even never use it!
The right to publish this particular code was issued by the customer.
Have fun!
Global Money Supply USD-AdjustedGlobal Money Supply Aggregates
- US, China, EU, Japan, UK
- Korea, India, Canada, HK, Australia
- Taiwan, Brazil, Swiss, Russia, Mexico
- Thailand, Indonesia, Saudi, Singapore, Vietnam
Unfortunately, TV Pine can only take in 40 tickers, Each country has Money Supply Data adjusted against its FX to USD.
The formula in TV only can contain 10 tickers. So would recommend doing it up yourself on the first big 5 countries,
Anyway US and China constitute close to 50% of the global money supply.
However, one can argue whether money supply data (broad money) is valid nowadays. But I would bring up that this is just for comparison and trend purposes. Yes, M3 was removed from the US Fed data releases in end-2005.
Aggregating all of the above tickers yield me around 120tn of money supply, USD-adjusted.
There's pretty much other countries that should be included but due to the lack of data and small size of the country, it is omitted.
Examples:
- Heavily Sanctioned: Iran (400-500bn) and Iraq (200-300bn)
- No Data/Bad Data: Algeria (100bn), Bangladesh (110bn)
- Fallen Angels: Venezuela (100bn?), Argentina (120bn)
- 400-500bn club: Israel, Turkey, Poland, Sweden, Ireland, UAE, Msia, Chile
- 200-300bn club: Norway, Czech, Philippines, S.Africa, New Zealand, Egypt, Denmark, Qatar
- 100bn club: Colombia, Lebanon, Pakistan, Morocco, Romania, Hungary, Nigeria, Kuwait
- GDP 1bn club: Peru, Kazakhstan, Angola, Sudan, Ukraine, Ecuador
All these could add up to 10-15tn money supply, but with currencies with bad adoption on some. End of the day, we still living in a dollarised world, with the big 5 nations taking up to 80% of the officially published money supply. The unfortunate issue is that the money supply data isn't that forward-looking. A simple linear extrapolation of historical 3-month rolling average for next month estimates can be decent, with possibility of manual meddling to add adjustments on huge macro-events eg QE infinity.
Perhaps, additional tweaking would be inflation-adjusting this. Against SPX, some housing index, crude oil, gold.
howmuch.net
Machine Learning: Lorentzian Classification█ OVERVIEW
A Lorentzian Distance Classifier (LDC) is a Machine Learning classification algorithm capable of categorizing historical data from a multi-dimensional feature space. This indicator demonstrates how Lorentzian Classification can also be used to predict the direction of future price movements when used as the distance metric for a novel implementation of an Approximate Nearest Neighbors (ANN) algorithm.
█ BACKGROUND
In physics, Lorentzian space is perhaps best known for its role in describing the curvature of space-time in Einstein's theory of General Relativity (2). Interestingly, however, this abstract concept from theoretical physics also has tangible real-world applications in trading.
Recently, it was hypothesized that Lorentzian space was also well-suited for analyzing time-series data (4), (5). This hypothesis has been supported by several empirical studies that demonstrate that Lorentzian distance is more robust to outliers and noise than the more commonly used Euclidean distance (1), (3), (6). Furthermore, Lorentzian distance was also shown to outperform dozens of other highly regarded distance metrics, including Manhattan distance, Bhattacharyya similarity, and Cosine similarity (1), (3). Outside of Dynamic Time Warping based approaches, which are unfortunately too computationally intensive for PineScript at this time, the Lorentzian Distance metric consistently scores the highest mean accuracy over a wide variety of time series data sets (1).
Euclidean distance is commonly used as the default distance metric for NN-based search algorithms, but it may not always be the best choice when dealing with financial market data. This is because financial market data can be significantly impacted by proximity to major world events such as FOMC Meetings and Black Swan events. This event-based distortion of market data can be framed as similar to the gravitational warping caused by a massive object on the space-time continuum. For financial markets, the analogous continuum that experiences warping can be referred to as "price-time".
Below is a side-by-side comparison of how neighborhoods of similar historical points appear in three-dimensional Euclidean Space and Lorentzian Space:
This figure demonstrates how Lorentzian space can better accommodate the warping of price-time since the Lorentzian distance function compresses the Euclidean neighborhood in such a way that the new neighborhood distribution in Lorentzian space tends to cluster around each of the major feature axes in addition to the origin itself. This means that, even though some nearest neighbors will be the same regardless of the distance metric used, Lorentzian space will also allow for the consideration of historical points that would otherwise never be considered with a Euclidean distance metric.
Intuitively, the advantage inherent in the Lorentzian distance metric makes sense. For example, it is logical that the price action that occurs in the hours after Chairman Powell finishes delivering a speech would resemble at least some of the previous times when he finished delivering a speech. This may be true regardless of other factors, such as whether or not the market was overbought or oversold at the time or if the macro conditions were more bullish or bearish overall. These historical reference points are extremely valuable for predictive models, yet the Euclidean distance metric would miss these neighbors entirely, often in favor of irrelevant data points from the day before the event. By using Lorentzian distance as a metric, the ML model is instead able to consider the warping of price-time caused by the event and, ultimately, transcend the temporal bias imposed on it by the time series.
For more information on the implementation details of the Approximate Nearest Neighbors (ANN) algorithm used in this indicator, please refer to the detailed comments in the source code.
█ HOW TO USE
Below is an explanatory breakdown of the different parts of this indicator as it appears in the interface:
Below is an explanation of the different settings for this indicator:
General Settings:
Source - This has a default value of "hlc3" and is used to control the input data source.
Neighbors Count - This has a default value of 8, a minimum value of 1, a maximum value of 100, and a step of 1. It is used to control the number of neighbors to consider.
Max Bars Back - This has a default value of 2000.
Feature Count - This has a default value of 5, a minimum value of 2, and a maximum value of 5. It controls the number of features to use for ML predictions.
Color Compression - This has a default value of 1, a minimum value of 1, and a maximum value of 10. It is used to control the compression factor for adjusting the intensity of the color scale.
Show Exits - This has a default value of false. It controls whether to show the exit threshold on the chart.
Use Dynamic Exits - This has a default value of false. It is used to control whether to attempt to let profits ride by dynamically adjusting the exit threshold based on kernel regression.
Feature Engineering Settings:
Note: The Feature Engineering section is for fine-tuning the features used for ML predictions. The default values are optimized for the 4H to 12H timeframes for most charts, but they should also work reasonably well for other timeframes. By default, the model can support features that accept two parameters (Parameter A and Parameter B, respectively). Even though there are only 4 features provided by default, the same feature with different settings counts as two separate features. If the feature only accepts one parameter, then the second parameter will default to EMA-based smoothing with a default value of 1. These features represent the most effective combination I have encountered in my testing, but additional features may be added as additional options in the future.
Feature 1 - This has a default value of "RSI" and options are: "RSI", "WT", "CCI", "ADX".
Feature 2 - This has a default value of "WT" and options are: "RSI", "WT", "CCI", "ADX".
Feature 3 - This has a default value of "CCI" and options are: "RSI", "WT", "CCI", "ADX".
Feature 4 - This has a default value of "ADX" and options are: "RSI", "WT", "CCI", "ADX".
Feature 5 - This has a default value of "RSI" and options are: "RSI", "WT", "CCI", "ADX".
Filters Settings:
Use Volatility Filter - This has a default value of true. It is used to control whether to use the volatility filter.
Use Regime Filter - This has a default value of true. It is used to control whether to use the trend detection filter.
Use ADX Filter - This has a default value of false. It is used to control whether to use the ADX filter.
Regime Threshold - This has a default value of -0.1, a minimum value of -10, a maximum value of 10, and a step of 0.1. It is used to control the Regime Detection filter for detecting Trending/Ranging markets.
ADX Threshold - This has a default value of 20, a minimum value of 0, a maximum value of 100, and a step of 1. It is used to control the threshold for detecting Trending/Ranging markets.
Kernel Regression Settings:
Trade with Kernel - This has a default value of true. It is used to control whether to trade with the kernel.
Show Kernel Estimate - This has a default value of true. It is used to control whether to show the kernel estimate.
Lookback Window - This has a default value of 8 and a minimum value of 3. It is used to control the number of bars used for the estimation. Recommended range: 3-50
Relative Weighting - This has a default value of 8 and a step size of 0.25. It is used to control the relative weighting of time frames. Recommended range: 0.25-25
Start Regression at Bar - This has a default value of 25. It is used to control the bar index on which to start regression. Recommended range: 0-25
Display Settings:
Show Bar Colors - This has a default value of true. It is used to control whether to show the bar colors.
Show Bar Prediction Values - This has a default value of true. It controls whether to show the ML model's evaluation of each bar as an integer.
Use ATR Offset - This has a default value of false. It controls whether to use the ATR offset instead of the bar prediction offset.
Bar Prediction Offset - This has a default value of 0 and a minimum value of 0. It is used to control the offset of the bar predictions as a percentage from the bar high or close.
Backtesting Settings:
Show Backtest Results - This has a default value of true. It is used to control whether to display the win rate of the given configuration.
█ WORKS CITED
(1) R. Giusti and G. E. A. P. A. Batista, "An Empirical Comparison of Dissimilarity Measures for Time Series Classification," 2013 Brazilian Conference on Intelligent Systems, Oct. 2013, DOI: 10.1109/bracis.2013.22.
(2) Y. Kerimbekov, H. Ş. Bilge, and H. H. Uğurlu, "The use of Lorentzian distance metric in classification problems," Pattern Recognition Letters, vol. 84, 170–176, Dec. 2016, DOI: 10.1016/j.patrec.2016.09.006.
(3) A. Bagnall, A. Bostrom, J. Large, and J. Lines, "The Great Time Series Classification Bake Off: An Experimental Evaluation of Recently Proposed Algorithms." ResearchGate, Feb. 04, 2016.
(4) H. Ş. Bilge, Yerzhan Kerimbekov, and Hasan Hüseyin Uğurlu, "A new classification method by using Lorentzian distance metric," ResearchGate, Sep. 02, 2015.
(5) Y. Kerimbekov and H. Şakir Bilge, "Lorentzian Distance Classifier for Multiple Features," Proceedings of the 6th International Conference on Pattern Recognition Applications and Methods, 2017, DOI: 10.5220/0006197004930501.
(6) V. Surya Prasath et al., "Effects of Distance Measure Choice on KNN Classifier Performance - A Review." .
█ ACKNOWLEDGEMENTS
@veryfid - For many invaluable insights, discussions, and advice that helped to shape this project.
@capissimo - For open sourcing his interesting ideas regarding various KNN implementations in PineScript, several of which helped inspire my original undertaking of this project.
@RikkiTavi - For many invaluable physics-related conversations and for his helping me develop a mechanism for visualizing various distance algorithms in 3D using JavaScript
@jlaurel - For invaluable literature recommendations that helped me to understand the underlying subject matter of this project.
@annutara - For help in beta-testing this indicator and for sharing many helpful ideas and insights early on in its development.
@jasontaylor7 - For helping to beta-test this indicator and for many helpful conversations that helped to shape my backtesting workflow
@meddymarkusvanhala - For helping to beta-test this indicator
@dlbnext - For incredibly detailed backtesting testing of this indicator and for sharing numerous ideas on how the user experience could be improved.
RSI Dashboard Monitor [Skiploss]RSI Dashboard Monitor is indicator for scanner Relative Strength Index ( RSI ) for 4 symbols and 10 Timeframe, detached from the main chart.
You can choose to display all 4 symbols or just 1 symbol, also can choose resolution (TF). Still, these 10 timeframes should be enough to use. Default is set to 14 but you can modify it from settings.
How it work??
RSI >= 75 : Fill color maximum overbought
RSI >= 65 : Fill color medium overbought
RSI >= 55 : Fill color minimum overbought
RSI >= 45 : Fill color minimum overbought
RSI >= 35 : Fill color medium overbought
RSI >= 25 : Fill color maximum overbought
** Values level and color style can modify it from settings
RedK K-MACD : a MACD with some more musclesMoving Averages are probably the most commonly used analysis tools, and MACD is possibly the first charting indicator a trader gets to learn about.
MACD Basic concept
----------------------------
Without repeating all the tons of documentation about what MACD does, let's quickly re-visit the MACD concept from a 10-mile altitude (note we're keen on simplifying here rather than being technically accurate - so please forgive the use of any "common lingos")
- MACD goal is to represent the distance between 2 Moving Averages (MAs) - one fast and one slow, relatively - as an unrestricted zero-based oscillator.
- The value of the main MACD line is the distance, or the displacement between the 2 MA's
- usually a signal line is used (which is another MA of that distance value) to enable better visualization of the change (and rate of change, since this is all depicted on a time axis) of that displacement - this represents price momentum (price movement in the recent period versus movements for a relatively longer period).
- the difference between the main MACD line and its signal is then represented as a histogram above and below the zero line. in this case, that histogram is really redundant, since it shows a value that is already represented visually by the main line and its signal line.
How K-MACD is different
---------------------------------
K-MACD takes that simple concept of the classic MACD and expands around it - the idea is to use the same simple approach to representing price momentum while bringing in more insight to price moves in the short, medium and long terms, ability to represent more than 2 MA's and to enable better identification of tradeable patterns (like Volatility Contraction and others) - while still keeping things simple and visually clean.
K-MACD is an indicator that allows us to view how price moves against 3 moving averages: a fast / slow pair, and a "market" Filter or Baseline (very long) that will be used as a flag for Bear/Bull market mode. Many traders and trading literature use the 200 day (40 week) SMA as that key filter
so in total, there are 4 MA lines in K-MACD (excluding the "orange" signal line):
* Price Proxy: Which is a very fast moving average that will represent the price itself - let's use a WMA(3) or something close to that here - there will be a signal line to enable better visualization of this similar to a classic MACD - that's the orange line
* Fast & Slow MA's : Use whatever represents the "medium term" momentum for your trading - Some traders use 20 and 50, others use 10 and 20 .. if on your price chart, you keep using a pair of MA's for this, use the same settings in K-MACD - these will be represented by the 3-color Momentum Bars that fluctuate above and below the baseline
* Filter/Baseline MA: Should be your long (Bullish/Bearish Mode) MA. so 100 or 200 or any other value you consider your market to be bearish below and bullish above. on K-MACD this is actually the blue zero line - everything else is "relative" to it
Review the sample chart which explains various elements and the "price chart" setup that K-MACD represents. With K-MACD you can clean up your chart from those various Moving Averages - or use a different set than the ones you already have K-MACD represent - or other indicators (like ATR channels..etc)
Other "muscles" in the K-MACD
---------------------------------------------
- Relative vs Classic Calculation Mode
A key issue with the classic MACD is that the displacement between the 2 moving averages is represented as "absolute or direct" values - as the price of the underlying increases with time, you can't really use these values to make useful comparison between the past and now (see below example) - also you can't use them to compare 2 different instruments.
- The "Relative" calculation option in K-MACD addresses that issue by relating all "distances" to the Baseline MA as percentage (above or below) - you can see this clear when you look at the above chart the far left versus the far right and compare K-MACD with the classic MACD - the Classic option is still available
- More MA "type" options for all MA lines: choose between SMA, EMA, WMA, and RSS_WMA (which i use a lot in my trading and is my default for the Price Proxy)
- More Alerts: a total or 9 alerts (in 3 groups) are available with K-MACD (Momentum above or below baseline, Price Proxy crossing signal line, and Price Proxy crossing baseline)
- New 52 week High / Low markers: These will show as Green/red circles on the zero line in K-MACD. this will only work for 1D timeframe and above, i'm just using a simple approach and would like to keep it that way.
- i know i added some more features not covered above :) -- if you have questions about any of the settings, feel free to ask below
Closing thoughts
-------------------------
K-MACD is a combination of couple of indicators i published in the past (xMACD and Mo_Bars) - so you can go back and read about them if needed - I then added improvements to accommodate ideas from swing trading literature and common practices that i plan to focus on in future. So K-MACD is really part of my own trading setup.
I assume here that most traders are familiar with what a MACD is - so kept this post short - if you thing we should expand more about the concepts covered here let me know in the comments - i can make some separate posts with examples and more details.
I hope many fellow traders find this work useful - and feel free let me know in comments below if you do.
TechnicalRating█ OVERVIEW
This library is a Pine Script™ programmer’s tool for incorporating TradingView's well-known technical ratings within their scripts. The ratings produced by this library are the same as those from the speedometers in the technical analysis summary and the "Rating" indicator in the Screener , which use the aggregate biases of 26 technical indicators to calculate their results.
█ CONCEPTS
Ensemble analysis
Ensemble analysis uses multiple weaker models to produce a potentially stronger one. A common form of ensemble analysis in technical analysis is the usage of aggregate indicators together in hopes of gaining further market insight and reinforcing trading decisions.
Technical ratings
Technical ratings provide a simplified way to analyze financial markets by combining signals from an ensemble of indicators into a singular value, allowing traders to assess market sentiment more quickly and conveniently than analyzing each constituent separately. By consolidating the signals from multiple indicators into a single rating, traders can more intuitively and easily interpret the "technical health" of the market.
Calculating the rating value
Using a variety of built-in TA functions and functions from our ta library, this script calculates technical ratings for moving averages, oscillators, and their overall result within the `calcRatingAll()` function.
The function uses the script's `calcRatingMA()` function to calculate the moving average technical rating from an ensemble of 15 moving averages and filters:
• Six Simple Moving Averages and six Exponential Moving Averages with periods of 10, 20, 30, 50, 100, and 200
• A Hull Moving Average with a period of 9
• A Volume-Weighted Moving Average with a period of 20
• An Ichimoku Cloud with a conversion line length of 9, base length of 26, and leading span B length of 52
The function uses the script's `calcRating()` function to calculate the oscillator technical rating from an ensemble of 11 oscillators:
• RSI with a period of 14
• Stochastic with a %K period of 14, a smoothing period of 3, and a %D period of 3
• CCI with a period of 20
• ADX with a DI length of 14 and an ADX smoothing period of 14
• Awesome Oscillator
• Momentum with a period of 10
• MACD with fast, slow, and signal periods of 12, 26, and 9
• Stochastic RSI with an RSI period of 14, a %K period of 14, a smoothing period of 3, and a %D period of 3
• Williams %R with a period of 14
• Bull Bear Power with a period of 50
• Ultimate Oscillator with fast, middle, and slow lengths of 7, 14, and 28
Each indicator is assigned a value of +1, 0, or -1, representing a bullish, neutral, or bearish rating. The moving average rating is the mean of all ratings that use the `calcRatingMA()` function, and the oscillator rating is the mean of all ratings that use the `calcRating()` function. The overall rating is the mean of the moving average and oscillator ratings, which ranges between +1 and -1. This overall rating, along with the separate MA and oscillator ratings, can be used to gain insight into the technical strength of the market. For a more detailed breakdown of the signals and conditions used to calculate the indicators' ratings, consult our Help Center explanation.
Determining rating status
The `ratingStatus()` function produces a string representing the status of a series of ratings. The `strongBound` and `weakBound` parameters, with respective default values of 0.5 and 0.1, define the bounds for "strong" and "weak" ratings.
The rating status is determined as follows:
Rating Value Rating Status
< -strongBound Strong Sell
< -weakBound Sell
-weakBound to weakBound Neutral
> weakBound Buy
> strongBound Strong Buy
By customizing the `strongBound` and `weakBound` values, traders can tailor the `ratingStatus()` function to fit their trading style or strategy, leading to a more personalized approach to evaluating ratings.
Look first. Then leap.
█ FUNCTIONS
This library contains the following functions:
calcRatingAll()
Calculates 3 ratings (ratings total, MA ratings, indicator ratings) using the aggregate biases of 26 different technical indicators.
Returns: A 3-element tuple: ( [(float) ratingTotal, (float) ratingOther, (float) ratingMA ].
countRising(plot)
Calculates the number of times the values in the given series increase in value up to a maximum count of 5.
Parameters:
plot : (series float) The series of values to check for rising values.
Returns: (int) The number of times the values in the series increased in value.
ratingStatus(ratingValue, strongBound, weakBound)
Determines the rating status of a given series based on its values and defined bounds.
Parameters:
ratingValue : (series float) The series of values to determine the rating status for.
strongBound : (series float) The upper bound for a "strong" rating.
weakBound : (series float) The upper bound for a "weak" rating.
Returns: (string) The rating status of the given series ("Strong Buy", "Buy", "Neutral", "Sell", or "Strong Sell").
LowHighFinderThis chart display how value change of (low,high,close,open) is considered as a factor for buying or selling. Each element take same weight when consider the final price. The price change over a certain threshold would be the decision point (buy/sell)
Factors considered in this chart
1.Quotes: High,low,close,open,volume. If one of them higher than previous day, then it increase, otherwise decreases.
2. Multipler: If you think one quote is more important than other (High more important than close, you can set multipler higher)
3. EMA smoother: It is using to balance the price effect. Like if price increased dramatically, EMA would notify whether could be a good time to sell. (Because high deviation between MA and price suggest price increase too fast)
4. Length of line: set length of line for you need
5. Percentage change: how much percentage change is considered a significant change? 5%? or 10%? In which case should it count toward the final indicator? Adjust percentage change needed, smaller for minutes chart (less than 10) higher for hours chart (10-20), even higher for day chart
Buy/Sell method:
1. When green dot appears, wait after price start to get close to moving average to find the low point and buy.
2. Reverse for red dot.
Trading ChecklistJapanese below / 日本語説明は下記
One of the key success factors in trading is to keep consistency.
So, how to become consistent? How to avoid FOMO entry?
One of the ways to remain consistent is to prepare for a checklist and check if all criteria are met before you take trades.
That’s why I made this indicator.
How to use it?
You can set up to 10 criteria.
You can type sentences, set up patterns and/or conditions of your indicators etc. and the checklist will be displayed on your chart.
You can change the location of the checklist as well as table and text colors.
If you take a screenshot with this checklist after a trade, it also becomes a trading journal which you can review later on whether your previous trade is as per your rules or you make any mistakes or not.
==========================
トレードにおける成功要因の一つは一貫性を保つことです。
では、どうしたら一貫性をキープすることができるのでしょうか?どうしたらFOMOエントリー(取り残されることへの恐れによる感情的トレード)を避けることができるのでしょうか?
それを実現するためのひとつの方法は、チェックリストを作成し、トレードを実施する前に必要な全ての条件が満たされているかどうかをチェックすることです。
これを支援するためのツールとしてこのインジケーターを作成しました。
使い方
最大10個までのチェック項目を設定することができます。
文章(日本語可)をタイプすることもできますし、待つべきセットアップや、インジケーターが満たすべき条件を記入しても良いでしょう。
作成したチェックリストはチャートに表示されます。
リストの表示位置やフォントなどはパラメーターで変更可能です。
トレード終了後にこのチェックリストと一緒にスクリーンショットを取ることでトレードノートとしても活用することができます。
実施したトレードがルール通りのものなのか、または何らかのミスをしたのかを後日振り返ることにも使えるでしょう。
S&P 500 Quandl Data & RatiosTradingView has a little-known integration that allows you to pull in 3rd party data-sets from Nasdaq Data Link, also known as Quandl. Today, I am open-sourcing for the community an indicator that uses the Quandl integration to pull in historical data and ratios on the S&P500. I originally coded this to study macro P/E ratios during peaks and troughs of boom/bust cycles.
The indicator pulls in each of the following datasets, as defined and provided by Quandl. The user can select which datasets to pull in using the indicator settings:
Dividend Yield : S&P 500 dividend yield (12 month dividend per share)/price. Yields following June 2022 (including the current yield) are estimated based on 12 month dividends through June 2022, as reported by S&P. Sources: Standard & Poor's for current S&P 500 Dividend Yield. Robert Shiller and his book Irrational Exuberance for historic S&P 500 Dividend Yields.
Price Earning Ratio : Price to earnings ratio, based on trailing twelve month as reported earnings. Current PE is estimated from latest reported earnings and current market price. Source: Robert Shiller and his book Irrational Exuberance for historic S&P 500 PE Ratio.
CAPE/Shiller PE Ratio : Shiller PE ratio for the S&P 500. Price earnings ratio is based on average inflation-adjusted earnings from the previous 10 years, known as the Cyclically Adjusted PE Ratio (CAPE Ratio), Shiller PE Ratio, or PE 10 FAQ. Data courtesy of Robert Shiller from his book, Irrational Exuberance.
Earnings Yield : S&P 500 Earnings Yield. Earnings Yield = trailing 12 month earnings divided by index price (or inverse PE) Yields following March, 2022 (including current yield) are estimated based on 12 month earnings through March, 2022 the latest reported by S&P. Source: Standard & Poor's
Price Book Ratio : S&P 500 price to book value ratio. Current price to book ratio is estimated based on current market price and S&P 500 book value as of March, 2022 the latest reported by S&P. Source: Standard & Poor's
Price Sales Ratio : S&P 500 Price to Sales Ratio (P/S or Price to Revenue). Current price to sales ratio is estimated based on current market price and 12 month sales ending March, 2022 the latest reported by S&P. Source: Standard & Poor's
Inflation Adjusted SP500 : Inflation adjusted SP500. Other than the current price, all prices are monthly average closing prices. Sources: Standard & Poor's Robert Shiller and his book Irrational Exuberance for historic S&P 500 prices, and historic CPIs.
Revenue Per Share : Trailing twelve month S&P 500 Sales Per Share (S&P 500 Revenue Per Share) non-inflation adjusted current dollars. Source: Standard & Poor's
Earnings Per Share : S&P 500 Earnings Per Share. 12-month real earnings per share inflation adjusted, constant August, 2022 dollars. Sources: Standard & Poor's for current S&P 500 Earnings. Robert Shiller and his book Irrational Exuberance for historic S&P 500 Earnings.
Disclaimer: This is not financial advice. Open-source scripts I publish in the community are largely meant to spark ideas that can be used as building blocks for part of a more robust trade management strategy. If you would like to implement a version of any script, I would recommend making significant additions/modifications to the strategy & risk management functions. If you don’t know how to program in Pine, then hire a Pine-coder. We can help!
Combined Moving Averages + Squeeze & Volume Spike SignalsThis is a set of 4 combined moving averages. Each moving average is a combination of an EMA, SMA, HMA, RMA, WMA and VWMA with the same length as set in your input settings. All 6 of them are added together and then divided by 6 for an average of all of them. This is based on the theory that most traders use their own preference of moving averages, so combining them all should give us a better idea of where price should actually react since we are using the average of what most traders are using on their charts. It also smooths the moving averages out as well so you get a much easier to read moving average than any of them on their own which should help you hold positions longer and time your entries better.
The default lengths used for this indicator are as follows: 10, 50, 100 and 500. These lengths can be updated in the settings. The 10 and 500 will change colors when the individual moving average is less than or greater than its previous value. Price above or below the moving average does not affect the colors. The 50 and 100 are colored based on whether the 50 is greater/less than the 100.
The two middle length moving averages by default are the 50 and 100. This has been turned into a cloud because it is the area where price typically bounces, since tons of traders use the 50 and 100 moving averages. This should be your long/short zone when price is trending.
Each moving average can be set to use a different source such as close, open, high, low, ohlc4, etc. You can also adjust the length of each moving average. Default settings work well, but feel free to customize them to your liking. You can also change the colors of the lines in the settings.
Beware that changing the lengths of MA #2 and MA #3 will change the signals, squeezes and the cloud.
VOLUME SPIKES
The cloud will change to a brighter color when a volume spike is detected. When a major volume spike is detected, it will turn very bright colored green/red according to the direction of the cloud. This notifies you of volume spikes so you have a better idea of how strong the trend is. If the cloud is a dark green/red then that means that volume is less than or equal to the recent median volume.
SIGNALS
There are also signals that will be given when the current candle is in the cloud, the candle is going in the same direction as the cloud, the MA #2 and MA #3 is going in the same direction and a volume spike is detected. These help you identify good entries when markets are trending. Be cautious of these signals when the trend is sideways and not clearly moving in one direction. The signals can be turned on or off in the settings.
SQUEEZE
Many times when moving averages squeeze together, a big move happens shortly after. Because of this I added a yellow background color when a squeeze is detected. It looks at the median value difference of the MA #2 and MA #3 and if the current value difference is less than the median multiplied by the multiplier in the settings then it will change the background color to notify you. The default value of the multiplier is .6, meaning the squeeze signal will only show if the current value difference of the cloud is less than .6 of the median difference. The multiplier can be adjusted in the settings to suit your preferences. Lower values will only show tighter squeezes.
MARKETS
This indicator can be used on all markets including stocks, crypto, futures and forex.
TIMEFRAMES
This indicator can be used on all timeframes.
PAIRINGS
We recommend pairing this combined moving average with Trend Friend Swing Trade And Scalp Signals for extra confluence. Look for price to bounce in the cloud with good volume and a confirming signal from Trend Friend for highly probable moves.
Slope_TKLibrary "Slope_TK"
This library calculate the slope of a serie between two points
The serie can be ta.ema(close,200) for example
The size is the number of bars between the two points for the slope calculation, for example it can be 10
slope_of_ema200 = slope(t a.eam(close, 200) , 10 )
slope( float serie, int size )
Yield Curve (1-10yr)Yield curve of the 1-10 year US Treasury Bonds, with over 60 years of history.
The Yield Curve is the interest rate on the 10 year bond minus the 1 year bond.
When it inverts (crosses under 0) a recession usually follows 6-12 months later.
It's a great leading indicator to identify risk in the macroeconomic environment.
Yield curves can be constructed on varying durations. Using a 1-year as the short-term bond provides a slightly faster response than the 2-year bond; and the 1-year has more historical data on TradingView.