Sharpe Ratio v4I'm publishing this indicator freely, because I'd like to get it reviewed by other people. This indicator was written whilst reading the book Systematic Trading by Robert Carver. In this book Carver describes trading rules that use a "dynamic" position size based on something like an evolving Sharpe Ratio . There are only a few other Sharpe indicators on TradingView, but they are either undocumented or use closed source code. You can use the following code as you wish for your own projects.
I'd like to let other people see this work, and let me know where they think this script is wrong, so that I can improve it.
Here's a basic rundown of Sharpe Ratio and its calculation.
SR is defined as: (excess) return minus the risk free rate divided by standard deviation of those returns. (This is where we're uncertain. Is the standard deviation of the returns, or just the closes?) But anyway the calculation itself is pretty simple:
SR = (r – b) ÷ s
Where r is the return of the asset over a certain period.
b is the interest rate of the risk-free asset.
s is the standard deviation of the returns over the same period.
For this indicator to "work" correctly, we're assuming the risk-free rate is 0. In fact, I did not include b at all in the indicator because it would make things too complicated, and go beyond the aim of this work.
To calculate the returns over a certain period, I'm using Rate of Change. Then calculating the standard deviation of those returns is pretty easy because we can use the same lookback period we used for ROC for the StDev calculation, thus:
averageReturn = ta.roc(close, lookbackLength)
stdev = ta.stdev(averageReturn, lookbackLength)
sharpe = (averageReturn / stdev)
Please leave a comment below if you believe this is incorrect. The chart shows a normal ROC indicator for comparison. I've also created a "bands" version of this indicator, which I'm planning to also release. The Keltner channel is just for comparing it with the StDev bands.
Центральные осцилляторы
TARVIS Labs - Alts Macro Bottom/Top SignalsSCRIPT DESCRIPTION
PLEASE READ THROUGH THIS CAREFULLY.
This is a script specifically written to help provide indicators from a macro view for ALTS. This script needs to be run on the 1 day. It helps indicate when to accumulate alts, and when its in a bull run when this a bull run top beginning to form with warnings, and a indicator that a top is in. This is described further below.
NOTE - in order to accomodate most alts the script had to be broad enough in its indicators to cover many different scenarios. If you are trading a smaller altcoin I suggest taking a more conservative approach to accumulation.
FAQs:
1. Why is there no accumulation zone showing up before an uptrend?
This could be because the trend has been so strong for this coin that there hasn't been a strong enough signal to accumulate or this could be that the chart doesnt have enough historical data (needs over 2 years) for the indicators to flash green.
2. Why is there no tops shown for a chart Im looking at?
This is either because there isn't enough historical data (needs over 2 years) for the indicators to build or because the altcoin didnt perform as well as the rest of the market. The altcoin has to perform as well as the market over the length of the bull run in order for the signals to show. Typically an altcoin that shows sharp increases and sharp drops shortly after will not have signals show up.
3. The "Potential End of Bull Run Top Indicator" showed up but we weren't near the top yet, why is that?
The alts indicator has to work across many altcoins, and their trends are not all the same. This can lead to the indicator showing but not necessarily being the exact top. The data from the alts macro bottom/top signals should be paired with the "TARVIS Labs bitcoin macro bottom/top signals" indicator for BTC. The reasoning is because if the top is not showing that its in for Bitcoin its likely that the altcoin's top is also not in. You should use the two in tandem to know if the bull run top is very likely in.
ACCUMULATION ZONE INDICATOR - LIGHT GREEN
Description
When we look at the general crypto landscape, the 200d & 300d EMAs are extremely useful. We can use their cross and momentum in order to determine a bottom forming. If the price has fallen over 40% below the 200 day EMA and the 200 day EMA has crossed below the 300d EMA, its a downtrend with a steep fall, which could indicate a good time to accumulate. When we see the 200 day EMA's slope drop drastically (over 5% w/w) it is also a good signal to accumulate.
Strategy for Usage
For alts, the strategy can vary drastically. You need to take into account:
1. the market cap of the altcoin, is it a smaller market cap altcoin or a larger one?
2. historical trend, does it typically trend strongly with a smaller accumulation zone?
Once you've taken these into account you can form a strategy. For example, if the altcoin has had smaller accumulation zones historically you'll want to take advantage of the accumulation zones when they pop up and be more aggressive (say a 30 day accumulation). If the altcoin has historically had longer accumulation zones then you'll want to be more conservative with your strategy and potentially have a 100 day (or even longer) accumulation period. If the altcoin is a smaller market cap alt, you will want to also take that into account. You'll want to likely be more conservative,
STRONG BUY IN ACCUMULATION ZONE INDICATOR - DARK GREEN
Description
We can add to the bottoming signal by looking for strong downtrends inside the bottoming signal. We do this by seeing when the 36 day EMA has a slope decreasing by 2% day/day.
Strategy for Usage
These strong downtrend days can be used to add more to our accumulation strategy. We can add more on these days (ex. double what you were planning to on a typical accumulation day).
LOCAL TOP NEAR BULL RUN TOP INDICATOR - RED
Description
When the 100 week EMA is in a strong uptrend (4% increase w/w) we can look for significant loss of momentum in order to determine if a local top is in near a bull run top. This strategy uses a MACD with 9/36/9 config for the daily chart. We look for the signals momentum loss, when the slope becomes negative.
Strategy for Usage
Ideally the right strategy to use here is to exit the market when this indicator starts. When the indicator ends if the "Potential End of Bull Run Top Indicator" is not showing on the chart you can buy back into the market.
POTENTIAL END OF BULL RUN TOP INDICATOR - DARK RED
Description
When the 100 week EMA is in a strong uptrend (3% increase w/w), and a MACD config of 108/234/9 has a negative signal slope signifying a very large momentum loss, but the 1d 18 EMA is still above the 1d 63 EMA we show this signal.
Strategy for Usage
This is a strong indicator that the top is in, and it potentially being the bull run top. Because alts can vary strongly in their charts, this should be a strong warning but not necessarily a certainty that the bull run is over.
STD-Filtered, N-Pole Gaussian Filter [Loxx]This is a Gaussian Filter with Standard Deviation Filtering that works for orders (poles) higher than the usual 4 poles that was originally available in Ehlers Gaussian Filter formulas. Because of that, it is a sort of generalized Gaussian filter that can calculate arbitrary (order) pole Gaussian Filter and which makes it a sort of a unique indicator. For this implementation, the practical mathematical maximum is 15 poles after which the precision of calculation is useless--the coefficients for levels above 15 poles are so high that the precision loss actually means very little. Despite this maximal precision utility, I've left the upper bound of poles open-ended so you can try poles of order 15 and above yourself. The default is set to 5 poles which is 1 pole greater than the normal maximum of 4 poles.
The purpose of the standard deviation filter is to filter out noise by and by default it will filter 1 standard deviation. Adjust this number and the filter selections (price, both, GMA, none) to reduce the signal noise.
What is Ehlers Gaussian filter?
This filter can be used for smoothing. It rejects high frequencies (fast movements) better than an EMA and has lower lag. published by John F. Ehlers in "Rocket Science For Traders".
A Gaussian filter is one whose transfer response is described by the familiar Gaussian bell-shaped curve. In the case of low-pass filters, only the upper half of the curve describes the filter. The use of gaussian filters is a move toward achieving the dual goal of reducing lag and reducing the lag of high-frequency components relative to the lag of lower-frequency components.
A gaussian filter with...
One Pole: f = alpha*g + (1-alpha)f
Two Poles: f = alpha*2g + 2(1-alpha)f - (1-alpha)2f
Three Poles: f = alpha*3g + 3(1-alpha)f - 3(1-alpha)2f + (1-alpha)3f
Four Poles: f = alpha*4g + 4(1-alpha)f - 6(1-alpha)2f + 4(1-alpha)3f - (1-alpha)4f
and so on...
For an equivalent number of poles the lag of a Gaussian is about half the lag of a Butterworth filters: Lag = N*P / pi^2, where,
N is the number of poles, and
P is the critical period
Special initialization of filter stages ensures proper working in scans with as few bars as possible.
From Ehlers Book: "The first objective of using smoothers is to eliminate or reduce the undesired high-frequency components in the eprice data. Therefore these smoothers are called low-pass filters, and they all work by some form of averaging. Butterworth low-pass filters can do this job, but nothing comes for free. A higher degree of filtering is necessarily accompanied by a larger amount of lag. We have come to see that is a fact of life."
References John F. Ehlers: "Rocket Science For Traders, Digital Signal Processing Applications", Chapter 15: "Infinite Impulse Response Filters"
Included
Loxx's Expanded Source Types
Signals
Alerts
Bar coloring
Related indicators
STD-Filtered, Gaussian Moving Average (GMA)
STD-Filtered, Gaussian-Kernel-Weighted Moving Average
One-Sided Gaussian Filter w/ Channels
Fisher Transform w/ Dynamic Zones
R-sqrd Adapt. Fisher Transform w/ D. Zones & Divs .
Gaussian Filter MACD [Loxx]Gaussian Filter MACD is a MACD that uses an 1-4 Pole Ehlers Gaussian Filter for its calculations. Compare this with Ehlers Fisher Transform.
What is Ehlers Gaussian filter?
This filter can be used for smoothing. It rejects high frequencies (fast movements) better than an EMA and has lower lag. published by John F. Ehlers in "Rocket Science For Traders". First implemented in Wealth-Lab by Dr René Koch.
A Gaussian filter is one whose transfer response is described by the familiar Gaussian bell-shaped curve. In the case of low-pass filters, only the upper half of the curve describes the filter. The use of gaussian filters is a move toward achieving the dual goal of reducing lag and reducing the lag of high-frequency components relative to the lag of lower-frequency components.
A gaussian filter with...
one pole is equivalent to an EMA filter.
two poles is equivalent to EMA ( EMA ())
three poles is equivalent to EMA ( EMA ( EMA ()))
and so on...
For an equivalent number of poles the lag of a Gaussian is about half the lag of a Butterworth filters: Lag = N * P / (2 * ¶2), where,
N is the number of poles, and
P is the critical period
Special initialization of filter stages ensures proper working in scans with as few bars as possible.
From Ehlers Book: "The first objective of using smoothers is to eliminate or reduce the undesired high-frequency components in the eprice data. Therefore these smoothers are called low-pass filters, and they all work by some form of averaging. Butterworth low-pass filtters can do this job, but nothing comes for free. A higher degree of filtering is necessarily accompanied by a larger amount of lag. We have come to see that is a fact of life."
References John F. Ehlers: "Rocket Science For Traders, Digital Signal Processing Applications", Chapter 15: "Infinite Impulse Response Filters"
Included
Loxx's Expanded Source Types
Signals, zero or signal crossing, signal crossing is very noisy
Alerts
Bar coloring
STD-Filtered, Gaussian Moving Average (GMA) [Loxx]STD-Filtered, Gaussian Moving Average (GMA) is a 1-4 pole Ehlers Gaussian Filter with standard deviation filtering. This indicator should perform similar to Ehlers Fisher Transform.
The purpose of the standard deviation filter is to filter out noise by and by default it will filter 1 standard deviation. Adjust this number and the filter selections (price, both, GMA, none) to reduce the signal noise.
What is Ehlers Gaussian filter?
This filter can be used for smoothing. It rejects high frequencies (fast movements) better than an EMA and has lower lag. published by John F. Ehlers in "Rocket Science For Traders". First implemented in Wealth-Lab by Dr René Koch.
A Gaussian filter is one whose transfer response is described by the familiar Gaussian bell-shaped curve. In the case of low-pass filters, only the upper half of the curve describes the filter. The use of gaussian filters is a move toward achieving the dual goal of reducing lag and reducing the lag of high-frequency components relative to the lag of lower-frequency components.
A gaussian filter with...
one pole is equivalent to an EMA filter.
two poles is equivalent to EMA(EMA())
three poles is equivalent to EMA(EMA(EMA()))
and so on...
For an equivalent number of poles the lag of a Gaussian is about half the lag of a Butterworth filters: Lag = N * P / (2 * ¶2), where,
N is the number of poles, and
P is the critical period
Special initialization of filter stages ensures proper working in scans with as few bars as possible.
From Ehlers Book: "The first objective of using smoothers is to eliminate or reduce the undesired high-frequency components in the eprice data. Therefore these smoothers are called low-pass filters, and they all work by some form of averaging. Butterworth low-pass filtters can do this job, but nothing comes for free. A higher degree of filtering is necessarily accompanied by a larger amount of lag. We have come to see that is a fact of life."
References John F. Ehlers: "Rocket Science For Traders, Digital Signal Processing Applications", Chapter 15: "Infinite Impulse Response Filters"
Included
Loxx's Expanded Source Types
Signals
Alerts
Bar coloring
Related indicators
STD-Filtered, Gaussian-Kernel-Weighted Moving Average
One-Sided Gaussian Filter w/ Channels
Fisher Transform w/ Dynamic Zones
R-sqrd Adapt. Fisher Transform w/ D. Zones & Divs.
Wolfpack Divergences [multigrain]█ OVERVIEW
A fast and improved divergence finding algorithm that aims to be better than the built-in TradingView divergence algorithm.
█ CONCEPTS
Wolfpack
Wolfpack is an oscillator made popular by darrellfischer1 all the way back in 2017. Since then the Wolfpack oscillator has been utilized by a number of notable strategy/indicator creators. At some point it was realized that the oscillator was simply the Moving Average Crossover Divergence oscillator with the fast and slow length of 3 and 8, respectively. The true significance and reasoning behind these lengths are unknown, however one may surmise that they are chosen due to their relevance as Fibonacci numbers.
Divergences
Divergence is when the price of an asset is moving in the opposite direction of a technical indicator, such as an oscillator, or is moving contrary to other data. Divergence warns that the current price trend may be weakening, and in some cases may lead to the price changing direction.
█ USAGE
Wolfpack
Similar to many other oscillators, when the Wolfpack oscillator reports a value above the zero-line, this indicates a bullish trend in the price. Subsequently, a value below the zero-line indicate a bearish trend in the price.
Divergences
Divergence in technical analysis may signal a major positive or negative price move. A positive divergence occurs when the price of an asset makes a new low while an indicator, such as money flow, starts to climb. Conversely, a negative divergence is when the price makes a new high but the indicator being analyzed makes a lower high.
Weighted percentile nearest rank oscillatorOriginal script
This is my attempt at making a price oscillator out of gorx1's weighted percentile nearest rank script. I centered everything to the 50th percentile and everything oscillates around that. The upper and lower bounds are 100th and 0th. Normalization normalizes the data to the top and bottom lines. The 'center line' represents the momentum of the 50th percentile in either direction. Good luck and happy hunting.
DCA After Downtrend (by BHD_Trade_Bot)The purpose of the strategy is to identify the end of a short-term downtrend . So that you can easily to DCA certain amount of money for each month.
ENTRY
The buy orders are placed on a monthly basis for assets at the end of a short-term downtrend:
- Each month condition: In 1-hour time frame, each month has 240 candles
- The end of short-term downtrend condition: use MACD for less delay
CLOSE
The sell orders are placed when:
- Is last bar
The strategy use $1000 and trading fee is 0.1% for each order.
Pro tip: The 1-hour time frame for TSLA has the best results on average:
- Total spent: $1000 x 85 = $85,000
- Total profit: $790,556
Nasdaq 100 ScreenerNasdaq 100 screener is comprehensive table displaying the following parameters :
Op = Open Price of the Day.
LaP = Last Price.
O-L = Open Price of the Day - Last Price.
ROC = Rate of Change .
SMA20 = Simple Moving Average 20 period.
S20d = Last Price - SMA 20.
SMA50 = Simple Moving Average 50 period.
S50d = Last Price - SMA 50.
SMA200 = Simple Moving Average 200 period.
S200d = Last Price - SMA 200.
ADX(14) = Average Directional Index.
RSI(14) = Relative Strength Index.
CCI(20) = Commodity Channel Index.
ATR(14) = Average True Range.
MOM(10) = Momentum.
AcDis(K) = Accumulation/Distribution.
CMF(20) = Chaikin Money Flow.
MACD = Moving Average Convergence Divergence.
Sig = MACD signal.
Nasdaq 100 stocks are divided into following alphabetical grouping for input access purpose under “Options” in “Settings” menu.
A to B 21 stocks “Input symbols” are listed under the “Options” in “Input A to B”
C to E 18 stocks “Input symbols” are listed under the head “Options” in “Input C to E”
F to L 19 stocks “Input symbols” are listed under the head “Options” in “Input F to L”
M to P 22 stocks “Input symbols” are listed under the head “Options” in “Input M to P”
R to Z 20 stocks “Input symbols” are listed under the head “Options” in “Input R to Z”
A to Z 100 stocks “Input symbols” are listed under the head “Options” in “Input A to Z”
User after visiting the “Settings” menu simply is required to select the “input symbol” from the stock listed under respective alphabetical Input lists to which the particular stock belongs. The resultant data is tabulated under respective row in Table .At a time User can see 5 different stocks i.e one each in different alphabetical lists in respective alphabetical order rows stated in the Table. User can scroll in each list to access and shift to any other stock in the list. In addition a Master list of all 100 stocks is given under “ Input A to Z “ at the last row of table.
Nasdaq 100 screener is a simple table , which facilitate to view 6 different stocks at a time (inclusive one from Master list of “Input A to Z” with a display of 19 parameters.
TARVIS Labs - Bitcoin Macro Bottom/Top SignalsSCRIPT DESCRIPTION
This is a script specifically written to help provide indicators from a macro view. This script is best run on the 1 day interval on Bitstamp's $BTCUSD chart. It helps indicate when to accumulate bitcoin, and when its in a bull run when there are local tops, strong top warnings, and a signal to exit a bull run. This is described further below.
If you don't have interest in trading on the way to the top I suggest turning off the following indicators in the settings of the indicator:
- Opportunity To Buy Back In Indicator
- Local Top Near Bull Run Top Indicator
ACCUMULATION ZONE INDICATOR - LIGHT GREEN
Description
When we look at the history of Bitcoin every bottom has crossed below the 100 week EMA. Once it does its accompanied by hash ribbon cross with miner capitulation. After that is the prime time to accumulate as theres a clearer signal the bottom is in. Specifically, a signal to look for is the 14 day MACD/signal cross and the 14 day MACD continuing to stay above the signal until the price returns above the 100 week EMA. This is prime accumulation territory.
Strategy for Usage
A good strategy to use when accumulating the bottom is dollar-cost averaging over a 30 day period. The accumulation zone can last longer than 30 days but 30 days is a good range of time to DCA.
STRONG BUY IN ACCUMULATION ZONE INDICATOR - DARK GREEN
Description
We can add to the bottoming signal by looking for post-downtrend reversals inside the bottoming signal. We do this by using a 9/19 daily cross.
Strategy for Usage
These post-downtrend reversals can potentially provide better targeted days for accumulation than the broader bottoming signal and can be used to add more on that day than on an average day for the dollar cost average strategy. Say for example, use 1/3 of funds on these days rather than 1/30th.
OPPORTUNITY TO BUY BACK IN INDICATOR - BLUE
Description
When the 1d 18 EMA > 1d 63 EMA and the 12/52 1d crosses. These together provide good buy opportunities to buy bitcoin.
Strategy for Usage
If you happen to find yourself out of the market from your own TA or a trade, this signal can provide a buy opportunity to reenter the market if you're out of it.
BULL RUN LOCAL TOP INDICATOR - ORANGE
Description
We will similarly use the 100 week EMA to determine trend reversal into a bull run. When we see the 100 week EMA uptrending, we can begin to look for local tops using the 9/19 daily MACD/signal bearish cross along with the 12 EMA having a negative slope, which could be the beginning signal for a local top.
Strategy for Usage
This is a rather light indicator, but can be used in tandem with your own technical analysis to determine if you want to reenter after you exit from its signal.
LOCAL TOP NEAR BULL RUN TOP INDICATOR - RED
Description
When the 100 week EMA is in an uptrend we can look for significant loss of momentum in order to determine if a local top is in near a bull run top. Similar to the Bull Run Local Top Indicator, this strategy uses a MACD/signal cross but instead uses the 30/65 day EMAs.
Strategy for Usage
Ideally the right strategy to use here is to exit the market when this indicator starts. When the indicator ends if the "End of Bull Run Indicator" is not showing on the chart you can buy back into the market.
TOP IS LIKELY IN INDICATOR
Description
When the 100 week EMA is in a very strong uptrend and the 9/19 weekly MACD/signal bearish cross occurs, and the 63 EMA begins to downtrend.
Strategy for Usage
This signal typically accompanies the "Local Top Near Bull Run Top Indicator" therefore if you're following the strategy you would likely already be out of the market, but if you're not and this signal fires its a strong signal the top is in and we're likely going to start seeing a strong retrace. This is typically right before we see the "End of Bull Run Indicator". There is only one occurrence where it wasn't followed by a large drop & the "End of Bull Run Indicator" and that was in the 2017 bull run where there were many strong retracements post local top. The likelihood we see that again is low, but if it were to happen you can buy back into the market when the "Top is Likely In Indicator" and the "Local Top Near Bull Run Top Indicator" are not firing.
TOP IS LIKELY IN INDICATOR
Description
When the 100 week EMA is in a strong uptrend and the 9/19 weekly MACD/signal bearish cross occurs, and the 63 EMA begins to downtrend.
Strategy for Usage
This signal typically accompanies the "Local Top Near Bull Run Top Indicator" therefore if you're following the strategy you would likely already be out of the market, but if you're not and this signal fires its a strong signal the top is in and we're likely going to start seeing a strong retrace. This is typically right before we see the "End of Bull Run Indicator". There is only one occurrence where it wasn't followed by a large drop & the "End of Bull Run Indicator" and that was in the 2017 bull run where there were many strong retracements post local top. The likelihood we see that again is low, but if it were to happen you can buy back into the market when the "Top is Likely In Indicator" and the "Local Top Near Bull Run Top Indicator" are not firing.
END OF BULL RUN INDICATOR
Description
When the 100 week EMA is in an uptrend and the 1d 18 EMA crosses the 1d 63 EMA.
Strategy for Usage
When the 100 week EMA is a strong uptrend and the 18/63 cross occurs the top is very likely in. It has occurred in every bull run top leading to the bear market.
OMA-Filtered Kase Permission Stochastic [Loxx]OMA-Filtered Kase Permission Stochastic is a special implementation of Kase Permission Stochastic by Kase StatWare.
What is Kase StatWare?
Kase StatWare has been around since 1992 and is a technical analysis trading indicator package developed by the acclaimed market technician and former energy trader Cynthia A. Kase. StatWare’s self-optimizing indicators help professional and individual traders to form a precise and systematic approach to discretionary trading and trade risk management.
Kase StatWare creates subscription-based technical analysis tools mainly for Stocks and Futures trading which can be subscribed to at a monthly cost.
What is Kase Permission Stochastic?
The Kase Permission Stochastic is a momentum indicator that examines a synthetic longer bar length, that by default, is three (5x by default for this implementation here) times higher than the bar length it is plotted against.
Included
Alerts
Signals
Bar coloring
MACD ModifiedIn an attempt to improve the MACD for trading, I have added an alternative way to calculate the MACD Line and Overbought/Oversold (OB/OS) lines to filter signals.
The alternate calculation I named "Modified" and put the option to select it under "MACD Calculation" in the input menu. Traditionally the MACD is calculated as fastEMA - slowEMA, for "Modified" I changed the calculation to ((fastEMA - slowEMA) / slowEMA * 100). The goal of this change is to view the difference in MA as a percent of the slow. The hope is that this will compensate for securities that have had major gains or losses in their history.
For the OB/OS lines, I coded in three different ways to calculate them. Users can select which method they prefer in the input menu. The first is through pivot points. The script records the pivot points into an array and takes the average of the array. There are two arrays, one for the OB line and one for the OS line. I also added filters so it will only record pivots above/below a specific value. The crosses on the indicator are for debugging purposes only. They mark the pivots that were recorded into the arrays. The crosses are offset by the pivot strength and do not provide timely indications. All inputs are adjustable for the pivots in the "Pivots" section of the input menu. The second method for the OB/OS lines I added is Bollinger Bands. The user can choose to put it around the Signal or MACD line. The final method added is simply using the previous high/low pivot of the MACD line.
Market momentum catcherIs a tool used to catch market momentum. If the color is green it means the bulls are in momentum or the prices will continue to increase, if the color is red it means the bears are in momentum or the prices will continue to decrease and gray color means the market is consolidating.
This tool is made from moving averages and RSI.
You can place a buy order when the color is green, you can place a sell order when the color is red and if the color is gray do not trade.
T3 Velocity Candles [Loxx]T3 Velocity Candles is a candle coloring overlay that calculates its gradient coloring using T3 velocity.
What is the T3 moving average?
Better Moving Averages Tim Tillson
November 1, 1998
Tim Tillson is a software project manager at Hewlett-Packard, with degrees in Mathematics and Computer Science. He has privately traded options and equities for 15 years.
Introduction
"Digital filtering includes the process of smoothing, predicting, differentiating, integrating, separation of signals, and removal of noise from a signal. Thus many people who do such things are actually using digital filters without realizing that they are; being unacquainted with the theory, they neither understand what they have done nor the possibilities of what they might have done."
This quote from R. W. Hamming applies to the vast majority of indicators in technical analysis . Moving averages, be they simple, weighted, or exponential, are lowpass filters; low frequency components in the signal pass through with little attenuation, while high frequencies are severely reduced.
"Oscillator" type indicators (such as MACD , Momentum, Relative Strength Index ) are another type of digital filter called a differentiator.
Tushar Chande has observed that many popular oscillators are highly correlated, which is sensible because they are trying to measure the rate of change of the underlying time series, i.e., are trying to be the first and second derivatives we all learned about in Calculus.
We use moving averages (lowpass filters) in technical analysis to remove the random noise from a time series, to discern the underlying trend or to determine prices at which we will take action. A perfect moving average would have two attributes:
It would be smooth, not sensitive to random noise in the underlying time series. Another way of saying this is that its derivative would not spuriously alternate between positive and negative values.
It would not lag behind the time series it is computed from. Lag, of course, produces late buy or sell signals that kill profits.
The only way one can compute a perfect moving average is to have knowledge of the future, and if we had that, we would buy one lottery ticket a week rather than trade!
Having said this, we can still improve on the conventional simple, weighted, or exponential moving averages. Here's how:
Two Interesting Moving Averages
We will examine two benchmark moving averages based on Linear Regression analysis.
In both cases, a Linear Regression line of length n is fitted to price data.
I call the first moving average ILRS, which stands for Integral of Linear Regression Slope. One simply integrates the slope of a linear regression line as it is successively fitted in a moving window of length n across the data, with the constant of integration being a simple moving average of the first n points. Put another way, the derivative of ILRS is the linear regression slope. Note that ILRS is not the same as a SMA ( simple moving average ) of length n, which is actually the midpoint of the linear regression line as it moves across the data.
We can measure the lag of moving averages with respect to a linear trend by computing how they behave when the input is a line with unit slope. Both SMA (n) and ILRS(n) have lag of n/2, but ILRS is much smoother than SMA .
Our second benchmark moving average is well known, called EPMA or End Point Moving Average. It is the endpoint of the linear regression line of length n as it is fitted across the data. EPMA hugs the data more closely than a simple or exponential moving average of the same length. The price we pay for this is that it is much noisier (less smooth) than ILRS, and it also has the annoying property that it overshoots the data when linear trends are present.
However, EPMA has a lag of 0 with respect to linear input! This makes sense because a linear regression line will fit linear input perfectly, and the endpoint of the LR line will be on the input line.
These two moving averages frame the tradeoffs that we are facing. On one extreme we have ILRS, which is very smooth and has considerable phase lag. EPMA has 0 phase lag, but is too noisy and overshoots. We would like to construct a better moving average which is as smooth as ILRS, but runs closer to where EPMA lies, without the overshoot.
A easy way to attempt this is to split the difference, i.e. use (ILRS(n)+EPMA(n))/2. This will give us a moving average (call it IE /2) which runs in between the two, has phase lag of n/4 but still inherits considerable noise from EPMA. IE /2 is inspirational, however. Can we build something that is comparable, but smoother? Figure 1 shows ILRS, EPMA, and IE /2.
Filter Techniques
Any thoughtful student of filter theory (or resolute experimenter) will have noticed that you can improve the smoothness of a filter by running it through itself multiple times, at the cost of increasing phase lag.
There is a complementary technique (called twicing by J.W. Tukey) which can be used to improve phase lag. If L stands for the operation of running data through a low pass filter, then twicing can be described by:
L' = L(time series) + L(time series - L(time series))
That is, we add a moving average of the difference between the input and the moving average to the moving average. This is algebraically equivalent to:
2L-L(L)
This is the Double Exponential Moving Average or DEMA , popularized by Patrick Mulloy in TASAC (January/February 1994).
In our taxonomy, DEMA has some phase lag (although it exponentially approaches 0) and is somewhat noisy, comparable to IE /2 indicator.
We will use these two techniques to construct our better moving average, after we explore the first one a little more closely.
Fixing Overshoot
An n-day EMA has smoothing constant alpha=2/(n+1) and a lag of (n-1)/2.
Thus EMA (3) has lag 1, and EMA (11) has lag 5. Figure 2 shows that, if I am willing to incur 5 days of lag, I get a smoother moving average if I run EMA (3) through itself 5 times than if I just take EMA (11) once.
This suggests that if EPMA and DEMA have 0 or low lag, why not run fast versions (eg DEMA (3)) through themselves many times to achieve a smooth result? The problem is that multiple runs though these filters increase their tendency to overshoot the data, giving an unusable result. This is because the amplitude response of DEMA and EPMA is greater than 1 at certain frequencies, giving a gain of much greater than 1 at these frequencies when run though themselves multiple times. Figure 3 shows DEMA (7) and EPMA(7) run through themselves 3 times. DEMA^3 has serious overshoot, and EPMA^3 is terrible.
The solution to the overshoot problem is to recall what we are doing with twicing:
DEMA (n) = EMA (n) + EMA (time series - EMA (n))
The second term is adding, in effect, a smooth version of the derivative to the EMA to achieve DEMA . The derivative term determines how hot the moving average's response to linear trends will be. We need to simply turn down the volume to achieve our basic building block:
EMA (n) + EMA (time series - EMA (n))*.7;
This is algebraically the same as:
EMA (n)*1.7-EMA( EMA (n))*.7;
I have chosen .7 as my volume factor, but the general formula (which I call "Generalized Dema") is:
GD (n,v) = EMA (n)*(1+v)-EMA( EMA (n))*v,
Where v ranges between 0 and 1. When v=0, GD is just an EMA , and when v=1, GD is DEMA . In between, GD is a cooler DEMA . By using a value for v less than 1 (I like .7), we cure the multiple DEMA overshoot problem, at the cost of accepting some additional phase delay. Now we can run GD through itself multiple times to define a new, smoother moving average T3 that does not overshoot the data:
T3(n) = GD ( GD ( GD (n)))
In filter theory parlance, T3 is a six-pole non-linear Kalman filter. Kalman filters are ones which use the error (in this case (time series - EMA (n)) to correct themselves. In Technical Analysis , these are called Adaptive Moving Averages; they track the time series more aggressively when it is making large moves.
Zero-line Volatility Quality Index (VQI) [Loxx]Originally volatility quality was invented by Thomas Stridsman, and he uses it in combination of two averages.
This version:
This doesn't use averages for trend estimation, but instead uses the slope of the Volatility quality. In order to lessen the number of signals (which can be enormous if the VQ is not filtered), some versions similar to this are using pips filters. This version is using % ATR (Average True Range) instead. The reason for that is that :
Using fixed pips value as a filter will work on one symbol and will not work on another
Changing time frames will render the filter worthless since the ranges of higher time frames are much greater than those at lower time frames, and, when you set your filter on one time frame and then try it on another, it is almost certain that it will have to be adjusted again
Additionally, this version is made to oscillate around zero line (which makes the potential levels, which are even in the original Stridsman's version doubtful, unnecessary)
Usage:
You can use the color change as signals when using this indicator
T3 PPO [Loxx]T3 PPO is a percentage price oscillator indicator using T3 moving average. This indicator is used to spot reversals. Dark red is upward price exhaustion, dark green is downward price exhaustion.
What is Percentage Price Oscillator (PPO)?
The percentage price oscillator (PPO) is a technical momentum indicator that shows the relationship between two moving averages in percentage terms. The moving averages are a 26-period and 12-period exponential moving average (EMA).
The PPO is used to compare asset performance and volatility, spot divergence that could lead to price reversals, generate trade signals, and help confirm trend direction.
What is the T3 moving average?
Better Moving Averages Tim Tillson
November 1, 1998
Tim Tillson is a software project manager at Hewlett-Packard, with degrees in Mathematics and Computer Science. He has privately traded options and equities for 15 years.
Introduction
"Digital filtering includes the process of smoothing, predicting, differentiating, integrating, separation of signals, and removal of noise from a signal. Thus many people who do such things are actually using digital filters without realizing that they are; being unacquainted with the theory, they neither understand what they have done nor the possibilities of what they might have done."
This quote from R. W. Hamming applies to the vast majority of indicators in technical analysis . Moving averages, be they simple, weighted, or exponential, are lowpass filters; low frequency components in the signal pass through with little attenuation, while high frequencies are severely reduced.
"Oscillator" type indicators (such as MACD , Momentum, Relative Strength Index ) are another type of digital filter called a differentiator.
Tushar Chande has observed that many popular oscillators are highly correlated, which is sensible because they are trying to measure the rate of change of the underlying time series, i.e., are trying to be the first and second derivatives we all learned about in Calculus.
We use moving averages (lowpass filters) in technical analysis to remove the random noise from a time series, to discern the underlying trend or to determine prices at which we will take action. A perfect moving average would have two attributes:
It would be smooth, not sensitive to random noise in the underlying time series. Another way of saying this is that its derivative would not spuriously alternate between positive and negative values.
It would not lag behind the time series it is computed from. Lag, of course, produces late buy or sell signals that kill profits.
The only way one can compute a perfect moving average is to have knowledge of the future, and if we had that, we would buy one lottery ticket a week rather than trade!
Having said this, we can still improve on the conventional simple, weighted, or exponential moving averages. Here's how:
Two Interesting Moving Averages
We will examine two benchmark moving averages based on Linear Regression analysis.
In both cases, a Linear Regression line of length n is fitted to price data.
I call the first moving average ILRS, which stands for Integral of Linear Regression Slope. One simply integrates the slope of a linear regression line as it is successively fitted in a moving window of length n across the data, with the constant of integration being a simple moving average of the first n points. Put another way, the derivative of ILRS is the linear regression slope. Note that ILRS is not the same as a SMA ( simple moving average ) of length n, which is actually the midpoint of the linear regression line as it moves across the data.
We can measure the lag of moving averages with respect to a linear trend by computing how they behave when the input is a line with unit slope. Both SMA (n) and ILRS(n) have lag of n/2, but ILRS is much smoother than SMA .
Our second benchmark moving average is well known, called EPMA or End Point Moving Average. It is the endpoint of the linear regression line of length n as it is fitted across the data. EPMA hugs the data more closely than a simple or exponential moving average of the same length. The price we pay for this is that it is much noisier (less smooth) than ILRS, and it also has the annoying property that it overshoots the data when linear trends are present.
However, EPMA has a lag of 0 with respect to linear input! This makes sense because a linear regression line will fit linear input perfectly, and the endpoint of the LR line will be on the input line.
These two moving averages frame the tradeoffs that we are facing. On one extreme we have ILRS, which is very smooth and has considerable phase lag. EPMA has 0 phase lag, but is too noisy and overshoots. We would like to construct a better moving average which is as smooth as ILRS, but runs closer to where EPMA lies, without the overshoot.
A easy way to attempt this is to split the difference, i.e. use (ILRS(n)+EPMA(n))/2. This will give us a moving average (call it IE /2) which runs in between the two, has phase lag of n/4 but still inherits considerable noise from EPMA. IE /2 is inspirational, however. Can we build something that is comparable, but smoother? Figure 1 shows ILRS, EPMA, and IE /2.
Filter Techniques
Any thoughtful student of filter theory (or resolute experimenter) will have noticed that you can improve the smoothness of a filter by running it through itself multiple times, at the cost of increasing phase lag.
There is a complementary technique (called twicing by J.W. Tukey) which can be used to improve phase lag. If L stands for the operation of running data through a low pass filter, then twicing can be described by:
L' = L(time series) + L(time series - L(time series))
That is, we add a moving average of the difference between the input and the moving average to the moving average. This is algebraically equivalent to:
2L-L(L)
This is the Double Exponential Moving Average or DEMA , popularized by Patrick Mulloy in TASAC (January/February 1994).
In our taxonomy, DEMA has some phase lag (although it exponentially approaches 0) and is somewhat noisy, comparable to IE /2 indicator.
We will use these two techniques to construct our better moving average, after we explore the first one a little more closely.
Fixing Overshoot
An n-day EMA has smoothing constant alpha=2/(n+1) and a lag of (n-1)/2.
Thus EMA (3) has lag 1, and EMA (11) has lag 5. Figure 2 shows that, if I am willing to incur 5 days of lag, I get a smoother moving average if I run EMA (3) through itself 5 times than if I just take EMA (11) once.
This suggests that if EPMA and DEMA have 0 or low lag, why not run fast versions (eg DEMA (3)) through themselves many times to achieve a smooth result? The problem is that multiple runs though these filters increase their tendency to overshoot the data, giving an unusable result. This is because the amplitude response of DEMA and EPMA is greater than 1 at certain frequencies, giving a gain of much greater than 1 at these frequencies when run though themselves multiple times. Figure 3 shows DEMA (7) and EPMA(7) run through themselves 3 times. DEMA^3 has serious overshoot, and EPMA^3 is terrible.
The solution to the overshoot problem is to recall what we are doing with twicing:
DEMA (n) = EMA (n) + EMA (time series - EMA (n))
The second term is adding, in effect, a smooth version of the derivative to the EMA to achieve DEMA . The derivative term determines how hot the moving average's response to linear trends will be. We need to simply turn down the volume to achieve our basic building block:
EMA (n) + EMA (time series - EMA (n))*.7;
This is algebraically the same as:
EMA (n)*1.7-EMA( EMA (n))*.7;
I have chosen .7 as my volume factor, but the general formula (which I call "Generalized Dema") is:
GD (n,v) = EMA (n)*(1+v)-EMA( EMA (n))*v,
Where v ranges between 0 and 1. When v=0, GD is just an EMA , and when v=1, GD is DEMA . In between, GD is a cooler DEMA . By using a value for v less than 1 (I like .7), we cure the multiple DEMA overshoot problem, at the cost of accepting some additional phase delay. Now we can run GD through itself multiple times to define a new, smoother moving average T3 that does not overshoot the data:
T3(n) = GD ( GD ( GD (n)))
In filter theory parlance, T3 is a six-pole non-linear Kalman filter. Kalman filters are ones which use the error (in this case (time series - EMA (n)) to correct themselves. In Technical Analysis , these are called Adaptive Moving Averages; they track the time series more aggressively when it is making large moves.
HPI for crypto [ptt]The Herrick Payoff Index is designed to show the amount of money flowing into or out of a futures contract.
This indicator uses open interest (from Binance PERP like this BTCUSDTPERP_OI) from during its calculations, therefore, the pairs being analyzed must contain open interest data on Binance.
The indicator only works with USDT pairs! Like RVNUSDT, BTCUSDT... does not work with USD pairs!
The indicator works in two mode.
Index mode - when the values moving 0-100
In this case, if the value below 10, it shows the money is flowing out of the futures contract and near the local bottom. If the value above 90, it shows the money is flowing into the futures contract and near the local top.
(The two trigger can be modified, the default is low:10 and high:90)
Oscillator mode - when the values moving around the origo (0)
In this case, if the value above 0 (green), it shows the money is flowing into the futures contract, this is bullish
If the value below 0 (red), it shows the money is flowing out of the futures contract, this is bearish
Autocorrelative Power Oscillator (APO) [SpiritualHealer117]This indicator is very strong in identifying short-term trends, and was made for trading stocks and commodities. When it is green, it indicates an uptrend, and red indicates a downtrend. The transparency of the columns illustrates the strength of the trend, with transparent columns indicating weakness, while solid columns indicate strength.
Basic Explanation of the Indicator
This indicator calculates an asset's Pearson's R coefficient when compared with several different lags of the stock's price. After that, the oscillator checks whether the indicator is in the green or red compared to those correlations, and takes the sum of the correlative periods to predict which direction the market should go based on the relationship of the current price with its past correlations.
MACD DivergencesUpdate of MACD indicator which shows the most recent, and developing, price action divergences with the histogram.
Price Convergence DivergenceSimple Price convergence divergence. Current close minus past or in other words lagging price.
Range Strat - MACD/RSIThis strategy uses a trend based indicator (MACD) for entry/exit signals with a momentum oscillator (RSI) to act as confirmation. Although relying on a trend based indicator this has been created for range bound crypto markets, which have been in a period of chop since June 2022.
Long/Short signals are generated from MACD with the RSI oscillator thresholds suppressing entries at price extremes. This is not a mean reversion RSI strategy! As the indicators are contrary to each other you will need to be generous with the RSI settings in order for signals to trigger.
Strategy is designed for use on the 4h timeframe, it may work well on higher timeframes, but lower time frames will lead to false signals. Use fixed percentage of equity for order size to capture the compounding effect. As a reversal strategy bear in mind that should market trend strongly in either direction stops will be required.
The RSI thresholds can be tailored to provide higher frequency or safer signals. Similarly tweaking MACD settings will provide earlier/more frequent or safer signals. As this is intended to enter near range high / low you should check the visual cues to ensure a ping-pong effect is observed, so that peaks and troughs are captured. Once an observable range is established the strategy works well across a range of crypto markets,
The script is open source, so feel free to amend as you wish. Using a different momentum oscillator may provide better results. I have prior coding experience, but first time using PineScript was last night, so it's not very tidy. I will update this with some additional customisation and TP/SL in the near future.
Usage: Range bound markets
Markets: Cryptocurrency Alts/BTC/ETH
Timeframe: 4h
Take Profit On Trend v2 (by BHD_Trade_Bot)The purpose of strategy is to detect long-term uptrend and short-term downtrend so that you can easy to take profit.
The strategy also using BHD unit to detect how big you win and lose, so that you can use this strategy for all coins without worry about it have different percentage of price change.
ENTRY
The buy order is placed on assets that have long-term uptrend and short-term downtrend:
- Long-term uptrend condition: ema200 is going up
- Short-term downtrend condition: 2 last candles are down price (use candlestick for less delay)
CLOSE
The sell order is placed when take profit or stop loss:
- Take profit: price increase 2 BHD unit
- Stop loss: price decrease 3 BHD unit
The strategy use $1000 for initial capital and trading fee is 0.1% for each order.
Pro tip: The 1-hour time frame for ETH/USDT has the best results on average.
Divergence MACD Sign/Alert [MsF]MACD divergence sign & alert notification.
With this router, you can choose which further indicators you want to see divergence in MACD.
In addition, in order to improve visibility, the sub-window is designed to display only the selected index and diversity.
Lookback Bars: When detecting divergence, you can set how many bars to look back in the past.
--------------
MACDダイバージェンスのサイン&アラートインジケータです。
このインジケータでは、MACDの中でさらにどの指標のダイバージェンスを見るか選択できます。"MACD"、"Signal"、"ヒストグラム"の3つから選べます。
なお、サブウィンドウには可視性向上のため、選択した指標とダイバージェンスのみを表示する仕様としています。
■設定について
Lookback Bars:ダイバージェンス検出する場合に、何個のバーを過去にさかのぼるか設定できます。