ROC PercentileRate Of Change Percentile calculates the current ROC (user defined length) as a percentile rank.
We use 2 separate arrays, one for all positive ROC values and one for all negative values within a defined lookback period. Then the current ROC value is compared to those arrays to find it's percentile ranking.
For example, a ranking of 75 means the ROC is in the 75th percentile of all POSITIVE ROC values over the lookback period.
A ranking of -80 is in the 80th percentile of all NEGATIVE ROC values over the lookback period.
Most ROC scripts use raw ROC values (or smoothed or otherwise altered), or have stochastic formula applied to them, I've not seen one that displays ROC as percentile ranking of previous positive/negative values.
What is the advantage?
Raw ROC data only gives half the picture. What we want to do is compare the ROC to previous ROC values, to give a sense of scale. Raw ROC values don't give you that context and you can only compare visually, usually limited to the number of bars you can see on your screen.
Using a percentile ranking gives us the context of current Rate of Change relative to the previous Rate of Change over a large lookback period, and not just visually but mathematically.
Why not using a long stochastic ROC? The problem with stochastics in general is that an outlier data point can ruin the data for the rest of the lookback period.
For example, imagine a huge outlier 8% ROC. The 2nd largest ROC is 4% and the 3rd largest is 2%, with all other values below this.
In this example, a stochastic ROC would display the 8% outlier as 100, the 4% as 50, the 2% as 25 and all other data would be squeezed down between 0-25.
Additionally, a value of 60 may have vastly different meaning depending on whether the lookback period contains a large outlier or not.
With a percentile ranking, that 8% outlier would still have a value of 100. But the 4% and 2% would be 99 and 98 respectively (this assumes 100 data points in the series, in reality values will usually be decimals).
This effectively flattens the curve and gives a more consistent and dependable experience, allowing you to more accurately assess the relative importance of the current ROC.
The line of circles is set at the 50 and -50 values for quick comparison.
Values > 50 represent ROC greater than 50% of previous positive ROC values.
Values < -50 represent ROC greater than 50% of previous negative ROC values.
Cari dalam skrip untuk "想象图:箱线图+折线组合,横轴为国家,纵轴为响应指数(0-100),箱线显示均值±标准差,叠加红色虚线标注各国确诊高峰时间点"
RSI & CCi SIGNAlUsing the RSA cross-indicator at points 70 and 30
Using the CCI cross indicator at points 100 and -100
Simultaneous use of RSA or CCI signal or both
Exit at 0.5% profit
High-Low IndexHello All,
High-Low Index is a breadth indicator based on Record High Percent (RHP). RHP is based on new 52-week highs and new 52-week lows. RHP => 100 * (new highs) / (new highs + new lows). High-Low Index is a 10-day Simple Moving Average of the RHP, which makes it a smoothed version of RHP. You can find many articles about High-Low Index on the net.
High-Low Index above 50 indicates that there are more new highs than new lows, and considered as Bullish.
High-Low Index below 50 indicates that there are more new lows than new highs, and considered as Bearish.
High-Low Index = 0 indicates there is no new highs (0% new highs).
High-Low Index = 100 indicates that there is at least 1 new high and no new lows.
and High-Low Index = 50 indicates that new highs and new lows is equal.
by default 40 cryptos are used in the script and shows High-Low Index for these cryptos. but you can change them as you wish. for example you can set all of them as stocks and see High-Low Index for these stocks.
You can set " Time frame " and the " Length " using the options. For example; if you set " Time frame " = 1 Week and the " Length " = 52 then it finds High-Low Index for 52weeks .
or another example; if you set " Time frame " = 1 Day and the " Length " = 22 the High-Low Indexn it finds High-Low Index for 22days.
You can enable/disable Record High Percent or Simple Moving Average of High-Low Index. Some traders use High-Low Index with its SMA, for example; High-Low Index generates a buy signal when it crosses above its moving average, and a sell signal when it crosses below its moving average.
Optionally you can see the securities in a table on the left bottom, you can change table size by usşng the options.
In the Table, for each security/cell;
=> if background is green then it has New High
=> if background is red then it has New Low
=> if background is gray then no New High, no New Low
=> if background is back then Data is not available for the security
As you can see in the screenshot below, the securities were changed and stocks are used instead of cryptos, so it calculates & shows High-Low Index for these stocks.
you can also find explanation in this screenshot:
Enjoy!
Elevated Leverage index System - ELiSELEVATED LEVERAGE index SYSTEM (ELiS) tries to solve the problem of adjusting meaningful leverage in futures and margin trading.
The biggest problem for traders is adjusting the leverage level manually.
Concerning about the volatilities it's very hard to set a meaningful leverage level.
ELiS includes 4 different volatility component which are:
1- nATR: Normalized Average True Range which is actually ATR/price to stabilize ATR's value differences when price changes are high on long term periods.
2- Standard Deviation
3- Kairi based nATR
4- Bollinger %B
which are scaled from 0 to 100 and takes different averages with different combinations & ratios and combines them as an index.
This index calculates an average volatility to set the true leverage level when trading futures especially in Crypto and FX markets.
There are 5 risk levels of "GEARS" like on automobiles to set the max leverage for risk management.
Gear 1 - CONSERVATIVE: max leverage level can be 20 for swing traders and beginners
Gear 2 - STANDARD: max leverage level can be 25 (default) for day traders
Gear 3 - AVERAGE: max leverage level can be 33 for day traders
Gear 4 - RISKY: max leverage level can be 50 for scalpers
Gear 5 - AGRESSIVE: max leverage level can be 100 for advanced scalpers
default length for ATR, Standard Deviation and %B are all 50
Simply:
When markets aren't volatile: ELiS indicateshigher leverage values to maximize profits.
When markets are volatile enough: ELiS indicates lower values to reduce risk level.
hope you all enjoy ELiS on profitable trades.
Baekdoo compressed multi EMA box and its crossover indicatorHi forks,
I'm trader Baekdoosan who trading Equity from South Korea. This Baekdoo compressed multi EMA box and its crossover indicator tells us good trading time for swing trading.
Here is the idea. As you can see formula, I put ema of 5 days to 100 days.
and draw box when all disparity of the EMAs are less than 5%
I put those value in input variable as 105 (100 means same as max/min disparity ratio, 105 means max is 5% greater than min). This can be used 110 (10% of box) based on your needs.
Once box are drew, I put indicator when it crossover the box with 5 times larger than 60 days' highest volume. Then I put triangle indicator. This will be good trading point for short-mid term trading. you can check historical chart to evaluate this.
Hope this will help your trading on equity as well as crypto. I didn't try it on futures . Best of luck all of you. Gazua~!
Moving Average DeviationsInputs:
MA Length = select the length period of the moving average
Timeframe = select the timeframe you want the indicator to operate on
Moving Average Type = select the type of moving average you want to use- most common ones are listed
Lookback = The histogram comparison period. A longer lookback will give fewer signals.
"Compare this reading to the past of readings"
Threshold = The percent change in reading required compared to the lookback period to paint a bar dark red or dark green. A smaller threshold gives fewer readings.
"Compare this reading and only look for the top of moves"
This moving average creates a histogram plot of the percent deviation from a specified moving average. Above paints faint green, and below paints faint red.
Dark red/green are painted in the direction of the move when the move is above the Threshold % when compared to the past Lookback length.
This script is optimally used to countertrend. It paints a good place to buy the dip or sell the rip given extensions-- different variant of overbought/oversold.
In this example, I used the 100 SMA, 100 period lookback, and a threshold of 7% .
VCC Impulse 101Title = VCC Impulse 101
Version = v1.2.0
Author = Vic Cebedo
A cryptocurrency Buy and Sell signal indicator.
BUY SIGNAL (green background) is triggered if Buy Score (black line) reaches (4) Points.
1 Point is added to Buy Score if:
- The Closing Price is above all Moving Averages (7, 21, 50, 100, and 200), and
- If the 200MA is above the other Moving Averages (7, 21, 50, 100).
1 Point is added to Buy Score if:
- MACD is greater than MACD Signal, and
- MACD is greater than zero, and
- MACD Signal is greater than zero, and
- MACD is greater than previous value.
1 Point is added to Buy Score if:
- SMI is greater than zero, and
- SMI is greater than previous value.
1 Point is added to Buy Score if:
- RSI is greater than 50.
The SELL SIGNAL (red background) is triggered if EITHER Ethereum Sell Score (purple line) OR Bitcoin Sell Score (red line), reaches (-3) Points.
2 Points is deducted from the Ethereum Sell Score if:
- The number of Ethereum Short positions is greater than the Longs.
1 Point is deducted from the Ethereum Sell Score if:
- The Ethereum RSI is greater than 75.
2 Points is deducted from the Bitcoin Sell Score if:
- The number of Bitcoin Short positions is greater than the Longs.
1 Point is deducted from the Bitcoin Sell Score if:
- The Bitcoin RSI is greater than 75.
IIPThis indicator includes followings functions,
1. Close and SMA
Show 8 SMA (default: 3, 5, 7, 9, 20, 100, 300: each can be adjustable.)
2. Background color in Perfect Order (5, 20 ,60)
Perfect Order: Red
Reverse Perfect Order: Blue
3. Golden Cross and Dead Cross between SMA 5 and SMA 20
Golden Cross(GC):▲ with Green
Dead Cross(DC):▼ with Red
4. Show labels on 5 days, 20 days, 60 days and 100 days before today
5. Put dotted vertical line on first day in every month.
BBC M2 Pi Ratio IndicatorPi Cycle moving averages expressed as a ratio to visually show the distance and timing of next all time high. Ratio is multiplied by 100,000 to move it into visual range. I recommend drawing a horizontal line at 100,000 for reference too.
Tendency EMA + RSI [Alorse]A very simple and highly effective strategy LONG & SHORT that combines only 2 indicators:
RSI
3 Moving Average Exponential (EMA)
LONG Entry conditions are:
EMA 20 cross over EMA 10
EMA 10 is above EMA 100
LONG Exit conditions are:
RSI greater than 70
Or when X number of candles have passed and the trade is in profit. (Check Settings)
SHORT Entry conditions are:
EMA 20 cross under EMA 10
EMA 10 is below EMA 100
SHORT Exit conditions are:
RSI is less than 30
Or when X number of candles have passed and the trade is in profit. (Check Settings)
MTF Bullish/Bearish IndicatorThe script plots a bullish/bearish indicator by evaluating a variety of moving averages for a security across multiple timeframes. It's derived from built in Technical Analysis indicator published by TradingView. The result of evaluation is plotted on the chart in green light/red light format in a configurable location.
evaluated moving averages include
- SMA 10, 20, 30, 50, 100, 200
- EMA 10, 20, 30, 50, 100, 200
- Hull MA 9
- VWMA 20
- Ichimoku Cloud
moving averages are evaluated at chart timeframes and 5 min, 15 min, 30 min, 120 min, 240 min, and daily by default but can be customized.
Percentile Rank [racer8]The Percentile is a mathematical tool developed in the field of statistics. It determines how a value compares to a set of values.
There are many applications for this like ...
... determining your rank in your college math class
... your rank in terms of height, weight, economic status, etc.
... determining the 3-month percentile of the current stock price (which is what this indicator performs)
This indicator calculates the percentile rank for the current stock price for n periods.
For example, if the stock's current price is above 80% of the previous stock's prices over a 100-period span, then it has a percentile rank of 80.
For traders, this is extremely valuable information because it tells you if the current stock price is overbought or oversold.
If the stock's price is in the 95th percentile, then it is highly likely that it is OVERBOUGHT, and that it will revert back to the mean price.
Helplful TIP: I recommend that you set the indicator to look back over at LEAST 100 periods for accuracy!
Thanks for reading! 👍
LinearRegressionLibraryLibrary "LinearRegressionLibrary" contains functions for fitting a regression line to the time series by means of different models, as well as functions for estimating the accuracy of the fit.
Linear regression algorithms:
RepeatedMedian(y, n, lastBar) applies repeated median regression (robust linear regression algorithm) to the input time series within the selected interval.
Parameters:
y :: float series, source time series (e.g. close)
n :: integer, the length of the selected time interval
lastBar :: integer, index of the last bar of the selected time interval (defines the position of the interval)
Output:
mSlope :: float, slope of the regression line
mInter :: float, intercept of the regression line
TheilSen(y, n, lastBar) applies the Theil-Sen estimator (robust linear regression algorithm) to the input time series within the selected interval.
Parameters:
y :: float series, source time series
n :: integer, the length of the selected time interval
lastBar :: integer, index of the last bar of the selected time interval (defines the position of the interval)
Output:
tsSlope :: float, slope of the regression line
tsInter :: float, intercept of the regression line
OrdinaryLeastSquares(y, n, lastBar) applies the ordinary least squares regression (non-robust) to the input time series within the selected interval.
Parameters:
y :: float series, source time series
n :: integer, the length of the selected time interval
lastBar :: integer, index of the last bar of the selected time interval (defines the position of the interval)
Output:
olsSlope :: float, slope of the regression line
olsInter :: float, intercept of the regression line
Model performance metrics:
metricRMSE(y, n, lastBar, slope, intercept) returns the Root-Mean-Square Error (RMSE) of the regression. The better the model, the lower the RMSE.
Parameters:
y :: float series, source time series (e.g. close)
n :: integer, the length of the selected time interval
lastBar :: integer, index of the last bar of the selected time interval (defines the position of the interval)
slope :: float, slope of the evaluated linear regression line
intercept :: float, intercept of the evaluated linear regression line
Output:
rmse :: float, RMSE value
metricMAE(y, n, lastBar, slope, intercept) returns the Mean Absolute Error (MAE) of the regression. MAE is is similar to RMSE but is less sensitive to outliers. The better the model, the lower the MAE.
Parameters:
y :: float series, source time series
n :: integer, the length of the selected time interval
lastBar :: integer, index of the last bar of the selected time interval (defines the position of the interval)
slope :: float, slope of the evaluated linear regression line
intercept :: float, intercept of the evaluated linear regression line
Output:
mae :: float, MAE value
metricR2(y, n, lastBar, slope, intercept) returns the coefficient of determination (R squared) of the regression. The better the linear regression fits the data (compared to the sample mean), the closer the value of the R squared is to 1.
Parameters:
y :: float series, source time series
n :: integer, the length of the selected time interval
lastBar :: integer, index of the last bar of the selected time interval (defines the position of the interval)
slope :: float, slope of the evaluated linear regression line
intercept :: float, intercept of the evaluated linear regression line
Output:
Rsq :: float, R-sqared score
Usage example:
//@version=5
indicator('ExampleLinReg', overlay=true)
// import the library
import tbiktag/LinearRegressionLibrary/1 as linreg
// define the studied interval: last 100 bars
int Npoints = 100
int lastBar = bar_index
int firstBar = bar_index - Npoints
// apply repeated median regression to the closing price time series within the specified interval
{square bracket}slope, intercept{square bracket} = linreg.RepeatedMedian(close, Npoints, lastBar)
// calculate the root-mean-square error of the obtained linear fit
rmse = linreg.metricRMSE(close, Npoints, lastBar, slope, intercept)
// plot the line and print the RMSE value
float y1 = intercept
float y2 = intercept + slope * (Npoints - 1)
if barstate.islast
{indent} line.new(firstBar,y1, lastBar,y2)
{indent} label.new(lastBar,y2,text='RMSE = '+str.format("{0,number,#.#}", rmse))
Quick-Glance RSIThis script will draw a live, updating-RSI on the main chart. As the price updates, the RSI line will self-adjust between the highest high an the lowest low for the RSI period.
Settings/Customizations:
RSI Length : Calculate RSI and draw RSI Line for specified period
Overbought Level : Draw maroon box from OB level to highest high.
Oversold Level : Draw green box from lowest low to OS level.
Scale Offset : Fine-tune location of 0-100 scale.
Show Scale : Draw 0-100 levels to the right of the RSI line.
Show RSI Line : Draw a line from the start of the RSI period to the current price.
Show OB/OS Boxes : Enable or disable background for overbought and oversold areas.
Realtime : Draw all data in real time.
RSI on overlay chart is same as current RSI on bottom chart
RSI without scale, boxes, or RSI Line
“Repainting” Note : The current RSI level is calculated in real time as each price changes, so yes this does “repaint” on the current bar. This is by design and will not change the effectiveness of the script. However, if you are using this script to generate signals, uncheck “Realtime” and/or use “once per bar close” for alerts.
SMADIF4 IndicatorIt shows a percentage difference between close and 4-SMA, 20, 50, 100 and 200. As it turns greener, the stock is more expensive, and vice versa, it turns redder when it becomes cheaper relative to the SMA. It will print the green backgraound as long as the bar closes above the 200 SMA and red as long as the bar closes below the 200 SMA. It uses by default 1.3 sigma to discriminate non-representative values and 100 bars in the past.
DCA Bot Long/Short Thanks to @TheTradingParrot for the inspiration and knowledge shared.
Thanks to @ericlin0122 for the original DCA Bot Emulator which is the backbone of this strategy.
The script simulates DCA strategy with parameters used in 3commas DCA bots for futures trading. Experiment with parameters
to find your trading setup.
Beware how large your total leveraged position is and how far can market go before you get liquidated!
Do that with the help of futures liquidation calculators you can find online!
I`ve added:
1) an internal average price and profit calculating, instead of TV`s native one, which is subject to severe slippage.
2) I`ve built a graphic interface, so levels are clearly visible and back-test analyzing made easier.
3) now both Long & Short direction of the strategy exist.
4) trailing TP which was featured in the initial script has been removed because TV`s execution model makes
it impossible to know how the real world trailing would have unfolded.
5) the table is self explanatory, and it is there to help you discover what happened and where.
6) vertical colored lines appear when the new maximum deviation from the original price has
been reached
All the trading happens with total account capital, and all order sizes inputs are expressed in percent.
Known issues:
When deviation is small, and the same candle triggers safety AND the close order, the initial orders are closed, but a
new one opens on the next candle. This is "resolved" by closing the unwanted trade forcefully on the next candle, affecting
profit calculating minimally and guaranteeing that what should be closed has been closed.
The code could be improved through use of arrays, making the table flexible so the number of rows should be dynamic depending
on the number of SOs.
!!!!! IMPORTANT!!!!!
This strategy script is made to receive a signal from an exterior study script, which should plot +100 for long or -100 for short
entry (that is by default - values can be changed in the strategy settings menu). That plot should be found in "Enter Trigger" input
dropdown menu at the bottom of strategy settings menu. Removing the "and trigger == long/short_trigger" condition from strategy entry
conditions makes the strategy open trades ASAP.
Cheers!
Trend System Oscillator Averages RatingThis is a trend system made with multiple oscillator averages designed especially for trending markets such as stocks or crypto.
It can be used with any timeframe.
Its made of multiple moving oscillators such as
RSI
Stochastic
ADX
CCI
AO
MACD
MOM
STOCH RSI
WPR
BP
UO
Avg of all oscillators
It has also a rating, making an avg from all of the oscillators , going from -100 (all ma's are telling to go short ) to 100 ( all ma are telling to go long).
If you have any questions let me know !
Trend System Multiple Moving Averages RatingThis is a trend system made with multiple moving averages designed especially for trending markets such as stocks or crypto.
It can be used with any timeframe.
Its made of multiple moving averages such as
Simple
Weighted
Volume Weighted
Exponential
Double EMA
Arnaud Legoux
Hull MA
Smoothed
Least Squares
Kaufman Adaptive
Triple EMA
Zero Lag
Fractal Adaptive
Variable Index Dynamic Average
Jurik Moving Average
Tillson
Triangular
Avg of all moving averages
It has also a rating, making an avg from all of the moving averages , going from -100 (all ma's are telling to go short ) to 100 ( all ma are telling to go long).
If you have any questions let me know !
Cross Average PriceSimple script that allows you to view crossings and averages 14/50/100/200 in a simple and intuitive way.
With this script you can keep an eye on trends visually.
Green Point = 14 crosses 50
Yellow Point = 14 crosses 100
Red Point = 14 crosses 200
[VJ] Viper VWAP IntradayHello Traders, this is a simple intraday strategy involving the ever reliable VWAP and a chop index to add twist to the traditional style . You can modify the values on the stock and see what are your best picks. Comment below if you found something with good returns
Strategy: VWAP based strategy but uses an additional powerful indicator Chop index to help us stay out of false trades.
Indicators used :
VWAP identifies the true average price of a stock by factoring the volume of transactions at a specific price point and not based on the closing price. VWAP can add more value than your standard 10, 50, or 200 moving average indicators because VWAP reacts to price movements based on the volume during a given period.
The Choppiness Index is designed to determine whether the market is choppy or trading sideways, or not choppy and trading within a trend in either direction. Using a scale from 1 - 100, the market is considered to be choppy as values near 100 (over 61.80) and trending when values are lower than 38.20)
Buying/Selling typically happens at VWAP Breakouts which is then validated with extreme CI to ascertain the entries
Aggressive trade stop can be employed by using the % for long and shorts in the strategy.
Usage & Best setting :
Choose a good volatile stock and a time frame - 10m.
CI Index : 14
Trend Factor - anything below 38.2 is considered in trend, you can experiment from 50
There is stop loss and take profit that can be used to optimise your trade
The template also includes daily square off based on your time.
Multiband Oscillator - Zigzag versionJust variation of Multi Band oscillator present here: Multi-Band-Channel-Oversold-Overbought-Oscillator
Changes are:
Instead of regular moving average, here I am using Zigzag Moving average. This is calculated in similar to as explained in: Zigzag-Cloud
Instead of ATR, using AZR (Average Zigzag Range) - Average-Zigzag-Range-AZR
Rest of the logic remains same.
Number of bands used 100 - which means, calculate 100 Bollinger bands with Std Dev Multiplier starting from 0.1 and with step 0.1 for the next one.
Which divides price ranges into 200 equal parts. Calculate what is the current range and plot them.
Overbought - Oversold levels are dynamics. They are dependent on the max and min state price has reached in last 80 days. Offset and factor can be used to adjust overbought oversold levels.
[VJ]War Machine PAT IntraThis is a simple intraday strategy for working on Stocks . You can modify the values on the stock and see what are your best picks. Comment below if you found something with good returns
Strategy:
Indicators used :
The Choppiness Index is designed to determine whether the market is choppy or trading sideways, or not choppy and trading within a trend in either direction. Using a scale from 1 - 100, the market is considered to be choppy as values near 100 (over 61.80) and trending when values are lower than 38.20)
The Money Flow Index (MFI) is a momentum indicator that measures the flow of money into and out of a security over a specified period of time. It is related to the Relative Strength Index (RSI) but incorporates volume, whereas the RSI only considers price. The MFI is calculated by accumulating positive and negative Money Flow values (see Money Flow), then creating a Money Ratio. The Money Ratio is then normalized into the MFI oscillator form.
Using the combination of CI (trend factor as constant) and varying MFI, we can buy/sell when conditions are met
Buying with MFI
1. MFI drops below 20 and enters inside oversold zone.
2. MFI bounces back above 20.
3. MFI pulls back but remains above 20.
4. A MFI break out above its previous high is a good buy signal.
Selling with MFI
1. MFI rises above 80 and enters inside overbought zone.
2. MFI drops back below 80.
3. MFI rises slightly but remains below 80.
4. MFI drops lower than its previous low is a signal to short sell or profit booking
Usage & Best setting :
Choose a good volatile stock and a time frame - 5m.
Trending factor : 50
Overbought & Oversold - can be varied as per user
There is stop loss and take profit that can be used to optimise your trade
The template also includes daily square off based on your time.
BUFFET INDICATORDISCRIPTION
The stock market cap to GDP ratio has become known as the Buffett Indicator in recent years, as Warren Buffett commented that he believes it is “probably the best single measure of where valuations stand at any given moment.”
CALCULATION
100*VALUE OF ALL STOCKS IN COUNTRY/GDP OF COUNTRY
100*wilshire5000/gdp