Octopus Nest Strategy Hello Fellas,
Hereby, I come up with a popular strategy from YouTube called Octopus Nest Strategy. It is a no repaint, lower timeframe scalping strategy utilizing PSAR, EMA and TTM Squeeze.
The strategy considers these market factors:
PSAR -> Trend
EMA -> Trend
TTM Squeeze -> Momentum and Volatility by incorporating Bollinger Bands and Keltner Channels
Note: As you can see there is a potential improvement by incorporating volume.
What's Different Compared To The Original Strategy?
I added an option which allows users to use the Adaptive PSAR of @loxx, which will hopefully improve results sometimes.
Signals
Enter Long -> source above EMA 100, source crosses above PSAR and TTM Squeeze crosses above 0
Enter Short -> source below EMA 100, source crosses below PSAR and TTM Squeeze crosses below 0
Exit Long and Exit Short are triggered from the risk management. Thus, it will just exit on SL or TP.
Risk Management
"High Low Stop Loss" and "Automatic High Low Take Profit" are used here.
High Low Stop Loss: Utilizes the last high for short and the last low for long to calculate the stop loss level. The last high or low gets multiplied by the user-defined multiplicator and if no recent high or low was found it uses the backup multiplier.
Automatic High Low Take Profit: Utilizes the current stop loss level of "High Low Stop Loss" and gets calculated by the user-defined risk ratio.
Now, follows the bunch of knowledge for the more inexperienced readers.
PSAR: Parabolic Stop And Reverse; Developed by J. Welles Wilders and a classic trend reversal indicator.
The indicator works most effectively in trending markets where large price moves allow traders to capture significant gains. When a security’s price is range-bound, the indicator will constantly be reversing, resulting in multiple low-profit or losing trades.
TTM Squeeze: TTM Squeeze is a volatility and momentum indicator introduced by John Carter of Trade the Markets (now Simpler Trading), which capitalizes on the tendency for price to break out strongly after consolidating in a tight trading range.
The volatility component of the TTM Squeeze indicator measures price compression using Bollinger Bands and Keltner Channels. If the Bollinger Bands are completely enclosed within the Keltner Channels, that indicates a period of very low volatility. This state is known as the squeeze. When the Bollinger Bands expand and move back outside of the Keltner Channel, the squeeze is said to have “fired”: volatility increases and prices are likely to break out of that tight trading range in one direction or the other. The on/off state of the squeeze is shown with small dots on the zero line of the indicator: red dots indicate the squeeze is on, and green dots indicate the squeeze is off.
EMA: Exponential Moving Average; Like a simple moving average, but with exponential weighting of the input data.
Don't forget to check out the settings and keep it up.
Best regards,
simwai
---
Credits to:
@loxx
@Bjorgum
@Greeny
Pesquisar nos scripts por "摩根纳斯达克100基金风险大吗"
Visible bars count on chart + highest/lowest bars, max/min AOThe indicator displays the number of visible bars on the screen (in the upper right corner), including the prices of the highest and lowest bars, the maximum or minimum value of the Awesome Oscillator (similar to MACD 5-34-5) for identify the 3-wave Elliott peak in the interval of 100 to 140 bars according to the Profitunity strategy of Bill Williams. The values change dynamically when scrolling or changing the scale of the graph.
In the indicator settings, you can hide labels, lines and change any parameters for the AO indicator - method (SMA, Smoothed SMA, EMA and others), length, source (open, high, low, close, hl2 and others).
‼️ The values are updated within 2-3 seconds after changing the number of visible bars on the screen.
***
Индикатор отображает количество видимых баров на экране (в правом верхнем углу), в том числе цены самого высокого и самого низкого баров, максимальное или минимальное значение Awesome Oscillator (аналогично MACD 5-34-5), чтобы определить пик 3-волны Эллиота в интервале от 100 до 140 баров по стратегии Profitunity Билла Вильямса. Значения меняются динамически при скроллинге или изменении масштаба графика.
В настройках индикатора вы можете скрыть метки, линии и изменить любые параметры для индикатора AO – метод (SMA, Smoothed SMA, EMA и другие), длину, источник (open, high, low, close, hl2 и другие).
‼️ Значения обновляются в течении 2-3 секунд после изменения количества видимых баров на экране.
Supertrend & CCI Strategy ScalpThis strategy is based on 2 Super Trend Indicators along with CCI .
The longer factor length gives you the current trend and the deviation in the short factor length gives us the opportunity to enter in the trade .
CCI indicator is used to determine the overbought and oversold levels.
Setup :
Long : When atrLength1 > close and atrLength2 < close and CCI < -100 we look for long trades as the longer factor length will be bullish .
Short : When atrLength1 < close and atrLength2 > close and CCI > 100 we look for short trades as the longer factor length will be bearish .
Please tune the settings according to your use .
Trade what you see not what you feel .
Please consult with your financial advisor before you deploy any real money for trading .
Blockunity Level Presets (BLP)A simple tool for setting performance targets.
Level Presets (BLP) is a simple tool for setting upside and downside levels relative to the current price of any asset. In this way, you can track which price the asset needs to move towards in order to achieve a defined performance.
How to Use
This indicator is very easy to use, you can set up to 5 upward and downward targets in the parameters.
Elements
The main elements of this tool are upward (default green) and downward (default red) levels.
Settings
Several parameters can be defined in the indicator configuration.
In addition to configuring which performance value to set the level at, you can choose not to display it if you don't need it. For example, here we display only two levels:
You can also choose not to display the labels:
Also concerning labels, you can choose not to display them in currency format, but in numerical format only (for example, if you're viewing a non-USD pair, such as ETHBTC):
Finally, you can modify design elements such as colors, level widths and text size:
How it Works
Here's how upside (_u) and downside (_d) levels are calculated:
source = close
level_1_u = source + (source * (level_1 / 100))
level_1_d = math.max(source - (source * (level_1 / 100)), 0)
Ohlson O-Score IndicatorThe Ohlson O-Score is a financial metric developed by Olof Ohlson to predict the probability of a company experiencing financial distress. It is widely used by investors and analysts as a key tool for financial analysis.
Inputs:
Period: Select the financial period for analysis, either "FY" (Fiscal Year) or "FQ" (Fiscal Quarter).
Country: Specify the country for Gross Net Product data. This helps in tailoring the analysis to specific economic conditions.
Gross Net Product : Define the number of years back for the index to be set at 100. This parameter provides a historical context for the analysis.
Table Display : Customize the display of various tables to suit your preference and analytical needs.
Key Features:
Predictive Power : The Ohlson O-Score is renowned for its predictive power in assessing the financial health of a company. It incorporates multiple financial ratios and indicators to provide a comprehensive view.
Financial Distress Prediction : Use the O-Score to gauge the likelihood of a company facing financial distress in the future. It's a valuable tool for risk assessment.
Country-Specific Analysis : Tailor the analysis to the economic conditions of a specific country, ensuring a more accurate evaluation of financial health.
Historical Context : Set the Gross Net Product index at a specific historical point, allowing for a deeper understanding of how a company's financial health has evolved over time.
How to Use:
Select Period : Choose either Fiscal Year or Fiscal Quarter based on your preference.
Specify Country : Input the country for country-specific Gross Net Product data.
Set Historical Context : Determine the number of years back for the index to be set at 100, providing historical context to your analysis.
Custom Table Display : Personalize the display of various tables to focus on the metrics that matter most to you.
Calculation and component description
Here is the description of O-score components as found in orginal Ohlson publication :
1. SIZE = log(total assets/GNP price-level index). The index assumes a base value of 100 for 1968. Total assets are as reported in dollars. The index year is as of the year prior to the year of the balance sheet date. The procedure assures a real-time implementation of the model. The log transform has an important implication. Suppose two firms, A and B, have a balance sheet date in the same year, then the sign of PA - Pe is independent of the price-level index. (This will not follow unless the log transform is applied.) The latter is, of course, a desirable property.
2. TLTA = Total liabilities divided by total assets.
3. WCTA = Working capital divided by total assets.
4. CLCA = Current liabilities divided by current assets.
5. OENEG = One if total liabilities exceeds total assets, zero otherwise.
6. NITA = Net income divided by total assets.
7. FUTL = Funds provided by operations divided by total liabilities
8. INTWO = One if net income was negative for the last two years, zero otherwise.
9. CHIN = (NI, - NI,-1)/(| NIL + (NI-|), where NI, is net income for the most recent period. The denominator acts as a level indicator. The variable is thus intended to measure change in net income. (The measure appears to be due to McKibben ).
Interpretation
The foundational model for the O-Score evolved from an extensive study encompassing over 2000 companies, a notable leap from its predecessor, the Altman Z-Score, which examined a mere 66 companies. In direct comparison, the O-Score demonstrates significantly heightened accuracy in predicting bankruptcy within a 2-year horizon.
While the original Z-Score boasted an estimated accuracy of over 70%, later iterations reached impressive levels of 90%. Remarkably, the O-Score surpasses even these high benchmarks in accuracy.
It's essential to acknowledge that no mathematical model achieves 100% accuracy. While the O-Score excels in forecasting bankruptcy or solvency, its precision can be influenced by factors both internal and external to the formula.
For the O-Score, any results exceeding 0.5 indicate a heightened likelihood of the firm defaulting within two years. The O-Score stands as a robust tool in financial analysis, offering nuanced insights into a company's financial stability with a remarkable degree of accuracy.
Volume Oscillators Focus IndicatorVolume Oscillators Focus Indicator
Short name VolumeFocus
This indicator seeks to show episodes of high and low volumes analyzing these by calculating three lines and create colorings on the basis of where these lines go relative to each other.
The first line is a percent based on the current volume level, for which a 3 period sma is taken.
It is calculated by using the lowest volume in the lookback as zero, the highest as 100 percent
This line is called “current volume level”
The second line is a percent, based on the median volume of the last five periods. This line is called “new normal volume”
The third line is a percent, based on the median volume of the lookback period. This is called “old normal volume”
For the second and third line the lowest “new normal volume” in the lookback is used as zero while the 100 percent level is the same as in the calculation of the first line.
The reasoning for the colors is as follows:
When both current en new normal level are below old normal, the volume is to be considered ‘low’. When volume is low, the background color is gray and the fill color between the old normal and current lines is navy.
When both current and new normal level are above old normal, the volume is to be considered ‘significantly expanded’. When this happens the fill color between current and old normal is orange.
When volume is not low it is considered normal or high and the background color is green.
The lookback is set to 50, it advise to keep it that way.
Use of the indicator.
Volume results from focus of the market on the instrument. When the price seems correct, some buy it, some sell it but most don’t care. Then the volume is low, the background is gray. The navy fill color indicates ‘how low’.
When the price seems off, many will care and start trading. Then volume is high, background is green. When the trading is really heating up the orange fill color appears, showing that the market has high focus on this instrument, perhaps move in a trend.
Of course we don’t know in which way the market tries to ‘correct’ the price, for that purpose I use this indicator together with REVE Cohorts which provide useful markers to explain what the excess volume means.
Eykpunter
Blockunity Drawdown Visualizer (BDV)Monitor the drawdown (value of the drop between the highest and lowest points) of assets and act accordingly to reduce your risk.
Introducing BDV, the incredibly intuitive metric that visualizes asset drawdowns in the most visually appealing manner. With its color gradient display, BDV allows you to instantly grasp the state of retracement from the asset’s highest price level. But that’s not all – you have the option to display the oscillator’s colorization directly on your chart, enhancing your analysis even further.
The Idea
The goal is to provide the community with the best and most complete tool for visualizing the Drawdown of any asset.
How to Use
Very simple to use, the indicator takes the form of an oscillator, with colors ranging from red to green depending on the Drawdown level. A table summarizes several key data points.
Elements
On the oscillator, you'll find a line with a color gradient showing the asset's Drawdown. The flatter line represents the Max Drawdown (the lowest value reached).
In addition, the table summarizes several data:
The asset's All Time High (ATH).
Current Drawdown.
The Max Drawdown that has been reached.
Settings
First of all, you can activate a "Bar Color" in the settings (You must also uncheck "Borders" and "Wick" in your Chart Settings):
You can display Fibonacci levels on the oscillator. You'll see that levels can be relevant to drawdown. The color of the levels is also configurable.
In the calculation parameters, you can first choose between taking the High of the candles or the Close. By default this is Close, but if you change the parameter to High, the indication next to ATH in the table will change, and you'll see that the values in the table will be affected.
The second calculation parameter (Start Date) lets you modify the effective start date of the ATH, which will affect the drawdown level. Here's an example:
How it Works
First, we calculate the ATH:
var bdv_top = bdv_source
bdv_top := na(bdv_top ) ? bdv_source : math.max(bdv_source, bdv_top )
Then the drawdown is calculated as follows:
bdv = ((bdv_source / bdv_top) * 100) - 100
Then the max drawdown :
bdv_max = bdv
bdv_max := na(bdv_max ) ? bdv : math.min(bdv, bdv_max )
ottlibLibrary "ottlib"
█ OVERVIEW
This library contains functions for the calculation of the OTT (Optimized Trend Tracker) and its variants, originally created by Anıl Özekşi (Anil_Ozeksi). Special thanks to him for the concept and to Kıvanç Özbilgiç (KivancOzbilgic) and dg_factor (dg_factor) for adapting them to Pine Script.
█ WHAT IS "OTT"
The OTT (Optimized Trend Tracker) is a highly customizable and very effective trend-following indicator that relies on moving averages and a trailing stop at its core. Moving averages help reduce noise by smoothing out sudden price movements in the markets, while trailing stops assist in detecting trend reversals with precision. Initially developed as a noise-free trailing stop, the current variants of OTT range from rapid trend reversal detection to long-term trend confirmation, thanks to its extensive customizability.
It's well-known variants are:
OTT (Optimized Trend Tracker).
TOTT (Twin OTT).
OTT Channels.
RISOTTO (RSI OTT).
SOTT (Stochastic OTT).
HOTT & LOTT (Highest & Lowest OTT)
ROTT (Relative OTT)
FT (Original name is Fırsatçı Trend in Turkish which translates to Opportunist Trend)
█ LIBRARY FEATURES
This library has been prepared in accordance with the style, coding, and annotation standards of Pine Script version 5. As a result, explanations and examples will appear when users hover over functions or enter function parameters in the editor.
█ USAGE
Usage of this library is very simple. Just import it to your script with the code below and use its functions.
import ismailcarlik/ottlib/1 as ottlib
█ FUNCTIONS
• f_vidya(source, length, cmoLength)
Short Definition: Chande's Variable Index Dynamic Average (VIDYA).
Details: This function computes Chande's Variable Index Dynamic Average (VIDYA), which serves as the original moving average for OTT. The 'length' parameter determines the number of bars used to calculate the average of the given source. Lower values result in less smoothing of prices, while higher values lead to greater smoothing. While primarily used internally in this library, it has been made available for users who wish to utilize it as a moving average or use in custom OTT implementations.
Parameters:
source (float) : (series float) Series of values to process.
length (simple int) : (simple int) Number of bars to lookback.
cmoLength (simple int) : (simple int) Number of bars to lookback for calculating CMO. Default value is `9`.
Returns: (float) Calculated average of `source` for `length` bars back.
Example:
vidyaValue = ottlib.f_vidya(source = close, length = 20)
plot(vidyaValue, color = color.blue)
• f_mostTrail(source, multiplier)
Short Definition: Calculates trailing stop value.
Details: This function calculates the trailing stop value for a given source and the percentage. The 'multiplier' parameter defines the percentage of the trailing stop. Lower values are beneficial for catching short-term reversals, while higher values aid in identifying long-term trends. Although only used once internally in this library, it has been made available for users who wish to utilize it as a traditional trailing stop or use in custom OTT implementations.
Parameters:
source (float) : (series int/float) Series of values to process.
multiplier (simple float) : (simple float) Percent of trailing stop.
Returns: (float) Calculated value of trailing stop.
Example:
emaValue = ta.ema(source = close, length = 14)
mostValue = ottlib.f_mostTrail(source = emaValue, multiplier = 2.0)
plot(mostValue, color = emaValue >= mostValue ? color.green : color.red)
• f_ottTrail(source, multiplier)
Short Definition: Calculates OTT-specific trailing stop value.
Details: This function calculates the trailing stop value for a given source in the manner used in OTT. Unlike a traditional trailing stop, this function modifies the traditional trailing stop value from two bars prior by adjusting it further with half the specified percentage. The 'multiplier' parameter defines the percentage of the trailing stop. Lower values are beneficial for catching short-term reversals, while higher values aid in identifying long-term trends. Although primarily used internally in this library, it has been made available for users who wish to utilize it as a trailing stop or use in custom OTT implementations.
Parameters:
source (float) : (series int/float) Series of values to process.
multiplier (simple float) : (simple float) Percent of trailing stop.
Returns: (float) Calculated value of OTT-specific trailing stop.
Example:
vidyaValue = ottlib.f_vidya(source = close, length = 20)
ottValue = ottlib.f_ottTrail(source = vidyaValue, multiplier = 1.5)
plot(ottValue, color = vidyaValue >= ottValue ? color.green : color.red)
• ott(source, length, multiplier)
Short Definition: Calculates OTT (Optimized Trend Tracker).
Details: The OTT consists of two lines. The first, known as the "Support Line", is the VIDYA of the given source. The second, called the "OTT Line", is the trailing stop based on the Support Line. The market is considered to be in an uptrend when the Support Line is above the OTT Line, and in a downtrend when it is below.
Parameters:
source (float) : (series float) Series of values to process. Default value is `close`.
length (simple int) : (simple int) Number of bars to lookback. Default value is `2`.
multiplier (simple float) : (simple float) Percent of trailing stop. Default value is `1.4`.
Returns: ( [ float, float ]) Tuple of `supportLine` and `ottLine`.
Example:
= ottlib.ott(source = close, length = 2, multiplier = 1.4)
longCondition = ta.crossover(supportLine, ottLine)
shortCondition = ta.crossunder(supportLine, ottLine)
• tott(source, length, multiplier, bandsMultiplier)
Short Definition: Calculates TOTT (Twin OTT).
Details: TOTT consists of three lines: the "Support Line," which is the VIDYA of the given source; the "Upper Line," a trailing stop of the Support Line adjusted with an added multiplier; and the "Lower Line," another trailing stop of the Support Line, adjusted with a reduced multiplier. The market is considered in an uptrend if the Support Line is above the Upper Line and in a downtrend if it is below the Lower Line.
Parameters:
source (float) : (series float) Series of values to process. Default value is `close`.
length (simple int) : (simple int) Number of bars to lookback. Default value is `40`.
multiplier (simple float) : (simple float) Percent of trailing stop. Default value is `0.6`.
bandsMultiplier (simple float) : Multiplier for bands. Default value is `0.0006`.
Returns: ( [ float, float, float ]) Tuple of `supportLine`, `upperLine` and `lowerLine`.
Example:
= ottlib.tott(source = close, length = 40, multiplier = 0.6, bandsMultiplier = 0.0006)
longCondition = ta.crossover(supportLine, upperLine)
shortCondition = ta.crossunder(supportLine, lowerLine)
• ott_channel(source, length, multiplier, ulMultiplier, llMultiplier)
Short Definition: Calculates OTT Channels.
Details: OTT Channels comprise nine lines. The central line, known as the "Mid Line," is the OTT of the given source's VIDYA. The remaining lines are positioned above and below the Mid Line, shifted by specified multipliers.
Parameters:
source (float) : (series float) Series of values to process. Default value is `close`
length (simple int) : (simple int) Number of bars to lookback. Default value is `2`
multiplier (simple float) : (simple float) Percent of trailing stop. Default value is `1.4`
ulMultiplier (simple float) : (simple float) Multiplier for upper line. Default value is `0.01`
llMultiplier (simple float) : (simple float) Multiplier for lower line. Default value is `0.01`
Returns: ( [ float, float, float, float, float, float, float, float, float ]) Tuple of `ul4`, `ul3`, `ul2`, `ul1`, `midLine`, `ll1`, `ll2`, `ll3`, `ll4`.
Example:
= ottlib.ott_channel(source = close, length = 2, multiplier = 1.4, ulMultiplier = 0.01, llMultiplier = 0.01)
• risotto(source, length, rsiLength, multiplier)
Short Definition: Calculates RISOTTO (RSI OTT).
Details: RISOTTO comprised of two lines: the "Support Line," which is the VIDYA of the given source's RSI value, calculated based on the length parameter, and the "RISOTTO Line," a trailing stop of the Support Line. The market is considered in an uptrend when the Support Line is above the RISOTTO Line, and in a downtrend if it is below.
Parameters:
source (float) : (series float) Series of values to process. Default value is `close`.
length (simple int) : (simple int) Number of bars to lookback. Default value is `50`.
rsiLength (simple int) : (simple int) Number of bars used for RSI calculation. Default value is `100`.
multiplier (simple float) : (simple float) Percent of trailing stop. Default value is `0.2`.
Returns: ( [ float, float ]) Tuple of `supportLine` and `risottoLine`.
Example:
= ottlib.risotto(source = close, length = 50, rsiLength = 100, multiplier = 0.2)
longCondition = ta.crossover(supportLine, risottoLine)
shortCondition = ta.crossunder(supportLine, risottoLine)
• sott(source, kLength, dLength, multiplier)
Short Definition: Calculates SOTT (Stochastic OTT).
Details: SOTT is comprised of two lines: the "Support Line," which is the VIDYA of the given source's Stochastic value, based on the %K and %D lengths, and the "SOTT Line," serving as the trailing stop of the Support Line. The market is considered in an uptrend when the Support Line is above the SOTT Line, and in a downtrend when it is below.
Parameters:
source (float) : (series float) Series of values to process. Default value is `close`.
kLength (simple int) : (simple int) Stochastic %K length. Default value is `500`.
dLength (simple int) : (simple int) Stochastic %D length. Default value is `200`.
multiplier (simple float) : (simple float) Percent of trailing stop. Default value is `0.5`.
Returns: ( [ float, float ]) Tuple of `supportLine` and `sottLine`.
Example:
= ottlib.sott(source = close, kLength = 500, dLength = 200, multiplier = 0.5)
longCondition = ta.crossover(supportLine, sottLine)
shortCondition = ta.crossunder(supportLine, sottLine)
• hottlott(length, multiplier)
Short Definition: Calculates HOTT & LOTT (Highest & Lowest OTT).
Details: HOTT & LOTT are composed of two lines: the "HOTT Line", which is the OTT of the highest price's VIDYA, and the "LOTT Line", the OTT of the lowest price's VIDYA. A high price surpassing the HOTT Line can be considered a long signal, while a low price dropping below the LOTT Line may indicate a short signal.
Parameters:
length (simple int) : (simple int) Number of bars to lookback. Default value is `20`.
multiplier (simple float) : (simple float) Percent of trailing stop. Default value is `0.6`.
Returns: ( [ float, float ]) Tuple of `hottLine` and `lottLine`.
Example:
= ottlib.hottlott(length = 20, multiplier = 0.6)
longCondition = ta.crossover(high, hottLine)
shortCondition = ta.crossunder(low, lottLine)
• rott(source, length, multiplier)
Short Definition: Calculates ROTT (Relative OTT).
Details: ROTT comprises two lines: the "Support Line", which is the VIDYA of the given source, and the "ROTT Line", the OTT of the Support Line's VIDYA. The market is considered in an uptrend if the Support Line is above the ROTT Line, and in a downtrend if it is below. ROTT is similar to OTT, but the key difference is that the ROTT Line is derived from the VIDYA of two bars of Support Line, not directly from it.
Parameters:
source (float) : (series float) Series of values to process. Default value is `close`.
length (simple int) : (simple int) Number of bars to lookback. Default value is `200`.
multiplier (simple float) : (simple float) Percent of trailing stop. Default value is `0.1`.
Returns: ( [ float, float ]) Tuple of `supportLine` and `rottLine`.
Example:
= ottlib.rott(source = close, length = 200, multiplier = 0.1)
isUpTrend = supportLine > rottLine
isDownTrend = supportLine < rottLine
• ft(source, length, majorMultiplier, minorMultiplier)
Short Definition: Calculates Fırsatçı Trend (Opportunist Trend).
Details: FT is comprised of two lines: the "Support Line", which is the VIDYA of the given source, and the "FT Line", a trailing stop of the Support Line calculated using both minor and major trend values. The market is considered in an uptrend when the Support Line is above the FT Line, and in a downtrend when it is below.
Parameters:
source (float) : (series float) Series of values to process. Default value is `close`.
length (simple int) : (simple int) Number of bars to lookback. Default value is `30`.
majorMultiplier (simple float) : (simple float) Percent of major trend. Default value is `3.6`.
minorMultiplier (simple float) : (simple float) Percent of minor trend. Default value is `1.8`.
Returns: ( [ float, float ]) Tuple of `supportLine` and `ftLine`.
Example:
= ottlib.ft(source = close, length = 30, majorMultiplier = 3.6, minorMultiplier = 1.8)
longCondition = ta.crossover(supportLine, ftLine)
shortCondition = ta.crossunder(supportLine, ftLine)
█ CUSTOM OTT CREATION
Users can create custom OTT implementations using f_ottTrail function in this library. The example code which uses EMA of 7 period as moving average and calculates OTT based of it is below.
Source Code:
//@version=5
indicator("Custom OTT", shorttitle = "COTT", overlay = true)
import ismailcarlik/ottlib/1 as ottlib
src = input.source(close, title = "Source")
length = input.int(7, title = "Length", minval = 1)
multiplier = input.float(2.0, title = "Multiplier", minval = 0.1)
support = ta.ema(source = src, length = length)
ott = ottlib.f_ottTrail(source = support, multiplier = multiplier)
pSupport = plot(support, title = "Moving Average Line (Support)", color = color.blue)
pOtt = plot(ott, title = "Custom OTT Line", color = color.orange)
fillColor = support >= ott ? color.new(color.green, 60) : color.new(color.red, 60)
fill(pSupport, pOtt, color = fillColor, title = "Direction")
Result:
█ DISCLAIMER
Trading is risky and most of the day traders lose money eventually. This library and its functions are only for educational purposes and should not be construed as financial advice. Past performances does not guarantee future results.
Leveraged Share Decay Tracker [SS]Releasing this utility tool for leveraged share traders and investors.
It is very difficult to track the amount of decay and efficiency that is associated with leveraged shares and since not all leveraged shares are created equally, I developed this tool to help investors/traders ascertain:
1. The general risk, in $$, per share associated with investing in a particular leveraged ETF
2. The ability of a leveraged share to match what it purports to do (i.e. if it is a 3X Bull share, is it actually returning consistently 3X the underlying or is there a large variance?)
3. The general decay at various timepoints expressed in $$$
How to use:
You need to be opened on the chart of the underlying. In the example above, the chart is on DIA, the leveraged share being tracked is UDOW (3X bull share of the DOW).
Once you are on the chart of the underlying, you then put in the leveraged share of interest. The indicator will perform two major assessments:
1. An analysis of the standard error between the underlying and the leveraged share. This is accomplished through linear regression, but instead of creating a linreg equation, it simply uses the results to ascertain the degree of error associated at various time points (the time points are 10, 20, 30, 40, 50, 100, 252).
2. An analysis of the variance of returns. The indicator requires you to put in the leverage amount. So if the leverage amount is 3% (i.e. SPXL or UPRO is 3 X SPY), be sure that you are putting that factor in the settings. It will then modify the underlying to match the leverage amount, and perform an assessment of variance over 10, 20, 30, 40, 50, 100, 252 days to ensure stability. This will verify whether the leveraged ETF is actually consistently performing how it purports to perform.
Here are some examples, and some tales of caution so you can see, for yourself, how not all leveraged shares are created equal.
SPY and SPXL:
SPY and UPRO:
XBI and LABU (3 x bull share):
XBI and LABD (3 x bear share):
SOX and SOXL:
AAPL and AAPU:
It is VERY pivotal you remember to check and adjust the Leveraged % factor.
For example, AAPU is leveraged 1.5%. You can see above it tracks this well. However, if you accidently leave it at 3%, you will get an erroneous result:
You can also see how some can fail to track the quoted leveraged amount, but still produce relatively lower risk decay.
And, as a final example, let's take a look at the worst leveraged share of life, BOIL:
Trainwreck that one. Stay far away from it!
The chart:
The chart will show you the drift (money value over time) and the variance (% variance between the expected and actual returns) over time. From here, you can ascertain the general length you feel comfortable holding a leveraged share. In general, for most stable shares, <= 50 trading days tends to be the sweet spot, but always check the chart.
There are also options to plot the variances and the drifts so you can see them visually.
And that is the indicator! Kind of boring, but there are absolutely 0 resources out there for doing this job, so hopefully you see the use for it!
Safe trades everyone!
Stock WatchOverview
Watch list are very common in trading, but most of them simply provide the means of tracking a list of symbols and their current price. Then, you click through the list and perform some additional analysis individually from a chart setup. What this indicator is designed to do is provide a watch list that employs a high/low price range analysis in a table view across multiple time ranges for a much faster analysis of the symbols you are watching.
Discussion
The concept of this Stock Watch indicator is best understood when you think in terms of a 52 Week Range indication on many financial web sites. Taken a given symbol, what is the high and the low over a 52 week range and then determine where current price is within that range from a percentage perspective between 0% and 100%.
With this concept in mind, let's see how this Stock Watch indicator is meant to benefit.
There are four different H/L ranges relative to the chart's setting and a Scope property. Let's use a three month (3M) chart as our example and set the indicator's Scope = 4. A 3M chart provides three months of data in a single candle, now when we set the Scope = 4 we are stating that 1X is going to look over four candles for the high/low range.
The Scope property is used to determine how many candles it is to scan to determine the high/low range for the corresponding 1X, 3X, 5X and 10X periods. This is how different time ranges are put into perspective. Using a 3M chart with Scope = 4 would represent the following time windows:
- 1X = 3M * 4 is a 12 Months or 1 Year High/Low Range
- 3X = 3M * 4 * 3 is a 36 Months or 3 Years High/Low Range
- 5X = 3M * 4 * 5 is a 60 Months or 5 Years High/Low Range
- 10X = 3M * 4 * 10 is a 120 Months or 10 Years High/Low Range.
With these calculations, the indicator then determines where current price is within each of these High/Low ranges from a percentage perspective between 0% and 100%.
Once the 0% to 100% value is calculated, it then will shade the value according to a color gradient from red to green (or any other two colors you set the indictor to). This color shading really helps to interpret current price quickly.
The greater power to this range and color shading comes when you are able to see where price is according to price history across the multiple time windows. In this example, there is quick analysis across 1 Year, 3 Year, 5 Year and 10 Year windows.
Now let's further improve this quick analysis over 15 different stocks for which the indicator allows you to watch up to at any one time.
For value traders this is huge, because we're always looking for the bargains and we wait for price to be in the value range. Using this indicator helps to instantly see if price has entered a value range before we decide to do further analysis with other charting and fundamental tools.
The Code
The heart of all this is really very simple as you can see in the following code snippet. We're simply looking for the highest high and lowest low across the different scopes and calculating the percentage of the range where current price is for each symbol being watched.
scope = baseScope
watch1X = math.round(((watchClose - ta.lowest(watchLow, scope)) / (ta.highest(watchHigh, scope) - ta.lowest(watchLow, scope))) * 100, 0)
table.cell(tblWatch, columnId, 2, str.format("{0, number, #}%", watch1X), text_size = size.small, text_color = colorText, bgcolor = getBackColor(watch1X))
//3X Lookback
scope := baseScope * 3
watch3X = math.round(((watchClose - ta.lowest(watchLow, scope)) / (ta.highest(watchHigh, scope) - ta.lowest(watchLow, scope))) * 100, 0)
table.cell(tblWatch, columnId, 3, str.format("{0, number, #}%", watch3X), text_size = size.small, text_color = colorText, bgcolor = getBackColor(watch3X))
Conclusion
The example I've laid out here are for large time windows, because I'm a long term investor. However, keep in mind that this can work on any chart setting, you just need to remember that your chart's time period and scope work together to determine what 1X, 3X, 5X and 10X represent.
Let me try and give you one last scenario on this. Consider your chart is set for a 60 minute chart, meaning each candle represents 60 minutes of time and you set the Stock Watch indicator to a scope = 4. These settings would now represent the following and you would be watching up to 15 different stocks across these windows at one time.
1X = 60 minutes * 4 is 240 minutes or 4 hours of time.
3X = 60 minutes * 4 * 3 = 720 minutes or 12 hours of time.
5X = 60 minutes * 4 * 5 = 1200 minutes or 20 hours of time.
10X = 60 minutes * 4 * 10 = 2400 minutes or 40 hours of time.
I hope you find value in my contribution to the cause of trading, and if you have any comments or critiques, I would love to here from you in the comments.
Christmas Toolkit [LuxAlgo]It's that time of the year... and what would be more appropriate than displaying Christmas-themed elements on your chart?
The Christmas Toolkit displays a tree containing elements affected by various technical indicators. If you're lucky, you just might also find a precious reindeer trotting toward the tree, how fancy!
🔶 USAGE
Each of the 7 X-mas balls is associated with a specific condition.
Each ball has a color indicating:
lime: very bullish
green: bullish
blue: holding the same position or sideline
red: bearish
darkRed: very bearish
From top to bottom:
🔹 RSI (length 14)
rsi < 20 - lime (+2 points)
rsi < 30 - green (+1 point)
rsi > 80 - darkRed (-2 points)
rsi > 70 - red (-1 point)
else - blue
🔹 Stoch (length 14)
stoch < 20 - lime (+2 points)
stoch < 30 - green (+1 point)
stoch > 80 - darkRed (-2 points)
stoch > 70 - red (-1 point)
else - blue
🔹 close vs. ema (length 20)
close > ema 20 - green (+1 point)
else - red (-1 point)
🔹 ema (length 20)
ema 20 rises - green (+1 point)
else - red (-1 point)
🔹 ema (length 50)
ema 50 rises - green (+1 point)
else - red (-1 point)
🔹 ema (length 100)
ema 100 rises - green (+1 point)
else - red (-1 point)
🔹 ema (length 200)
ema 200 rises - green (+1 point)
else - red (-1 point)
The above information can also be found on the right side of the tree.
You'll see the conditions associated with the specific X-mas ball and the meaning of color changes. This can also be visualized by hovering over the labels.
All values are added together, this result is used to color the star at the top of the tree, with a specific color indicating:
lime: very bullish (> 6 points)
green: bullish (6 points)
blue: holding the same position or sideline
red: bearish (-6 points)
darkRed: very bearish (< -6 points)
Switches to green/lime or red/dark red can be seen by the fallen stars at the bottom.
The Last Switch indicates the latest green/lime or red/dark red color (not blue)
🔶 ANIMATION
Randomly moving snowflakes are added to give it a wintry character.
There are also randomly moving stars in the tree.
Garland rotations, style, and color can be adjusted, together with the width and offset of the tree, put your tree anywhere on your chart!
Disabling the "static tree" setting will make the needles 'move'.
Have you happened to see the precious reindeer on the right? This proud reindeer moves towards the most recent candle. Who knows what this reindeer might be bringing to the tree?
🔶 SETTINGS
Width: Width of tree.
Offset: Offset of the tree.
Garland rotations: Amount of rotations, a high number gives other styles.
Color/Style: sets the color & style of garland stars.
Needles: sets the needle color.
Static Tree: Allows the tree needles to 'move' with each tick.
Reindeer Speed: Controls how fast the deer moves toward the most recent bar.
🔶 MESSAGE FROM THE LUXALGO TEAM
It has been an honor to contribute to the TradingView community and we are always so happy to see your supportive messages on our scripts.
We have posted a total of 78 script publications this year, which is no small feat & was only possible thanks to our team of Wizard developers @alexgrover + @dgtrd + @fikira , the development team behind Pine Script, and of course to the support of our legendary community.
Happy Holidays to you all, and we'll see ya next year! ☃️
Custom RSI with RMA SmoothingCustom RSI with RMA Smoothing is smoothing the classic Relative Strength Index to enhance the effectiveness of using the RSI for trend-following through noise reduction.
Principle:
1. RSI is smoothed by the Rolling Moving Average (RMA) and averaged Gains & Losses instead of the classic RSI calculation.
2. A RMA is plotted over the RSI where the crossovers can be entry and exit points.
How is RSI smoothed by the RMA:
1. Outside the common price sources a few new options like hhhlc or hlcc can be chosen where the emphasis is more on the high or the close of the chosen period.
2. Calculation of Price Change: After selecting the price source, the indicator calculates the price change by subtracting the previous period's price from the current price.
3. RMA Smoothing of Price Change: The key step in smoothing the RSI is the application of the Running Moving Average (RMA) to the price change. The length of this RMA is set by the user and determines the extent of smoothing. RMA is a type of moving average that gives more weight to recent data points, making it more responsive to new information while still smoothing out short-term fluctuations.
4. Determining Gains and Losses: The smoothed price change is then used to calculate the gains and losses for each period. Gains are considered when the smoothed price change is positive, and losses when it is negative.
5. Averaging Gains and Losses: These gains and losses are further smoothed by calculating their respective RMAs over the user-defined RSI length. This step is crucial as it dampens the impact of short-term price spikes and drops, giving a more stable and reliable measure of price momentum.
6. RSI Calculation: The standard RSI formula (100 - ) is then applied to these smoothed values. This results in the initial RSI value, which is already more stable than a typical RSI due to the previous smoothing steps.
7. Final RMA Smoothing of RSI: In a final layer of refinement, the RSI itself is smoothed using another RMA, over a length specified by the user. This additional smoothing further reduces the impact of short-term volatility and sharp price movements, providing a more coherent and interpretable RSI line.
TSI Market Timer + Volatility MeterThis is the TSI Market Timer. It is years in the making and it is comprised of four indicators in one. The stock (or source) is run through an indicator called the True Strength Indicator with settings(5,15) , then the TSI is run on both the Index(SPY) by default and what I call a Trigger line which is basically the TSI applied to the DXY (US Dollar Index).
Midline Volatility Indicator:
Lastly, we have a volatility indicator on the midline. The colors of the midline indicate levels of volatility. For the lowest volatility in the last 100 days, the dot turns dark blue. For the lowest volatility in 30 days, the dot turns aqua. For regular volatility, it remains orange. And last, for higher volatility of the last 100 days, it turns red. These are more or less arbitrary but they do come in handy.
Settings for Green/Red Shading:
Next on the indicator are the settings. You can toggle a color change between the stock/source and the index(spy). If the stock/source is greater than the index, it will color the area in between a green and if it is below the index, it will be red.
There is also a toggle for the stock/source and the trigger/DXY. This will also show green when the stock is above the trigger and red if it is below the trigger.
By turning on both of these, you get light green and dark green areas as well as red and darker red areas. The lighter green represent when the stock is above both the index and the trigger and conversely for the red areas.
Settings for vertical line crossings:
When the stock crosses the trigger/dxy line, it shows a green vertical line signal. When the stock crosses below the trigger/dxy, a red vertical line is shown.
You can turn these off by toggling them in the settings.
Stacked Condition:
Lastly, we have a "stacked condition" which shows up as a white triangle at the bottom when the condition of the stock being above the index and the trigger below the zero line.
New Highs:
If you see the stock line turn lime green, this indicates a new high was reached for the last 255 days/periods. This is like a new 52 week high signal.
Note:
This indicator is made mostly for the stock market. It may work ok during the week for crypto but using the trigger/dxy and index lines on the weekends doesn't work too well as they will be flat.
Also note that this indicator is not a recommendation to buy or sell any stock/instrument. It is only a study of market conditions. Any analysis should be followed up with volume analysis or other confirming indicators.
[KVA] Extremes ProfilerExtremes Profiler is a specialized indicator crafted for traders focusing on the relationship between price extremes and moving averages. This tool offers a comprehensive perspective on price dynamics by quantifying and visualizing significant distances of current prices from various moving averages. It effectively highlights the top extremes in market movements, providing key insights into price extremities relative to these averages. The indicator's ability to analyze and display these distances makes it a valuable tool for understanding market trends and potential turning points. Traders can leverage the Extremes Profiler to gain a deeper understanding of how prices behave in relation to commonly watched moving averages, thus aiding in making informed trading decisions
Key Features :
Extensive MA Analysis : Tracks the price distance from multiple moving averages including EMA, SMA, WMA, RMA, and HMA.
Top 50 (100) Distance Metrics : Highlights the 50 (100)greatest (highest or lowest) distances from each selected MA, pinpointing significant market deviations.
Customizable Periods : Offers flexibility with adjustable periods to align with diverse trading strategies.
Comprehensive View : Switch between timeframes for a well-rounded understanding of short-term fluctuations and long-term market trends.
Cross-Asset Comparison : Utilize the indicator to compare different assets, gaining insights into the relative dynamics and volatility of various markets. By analyzing multiple assets, traders can discern broader market trends and better understand asset-specific behaviors.
Customizable Display : Users can adjust the periods and number of results to suit their analytical needs.
savitzkyGolay, KAMA, HPOverview
This trading indicator integrates three distinct analytical tools: the Savitzky-Golay Filter, Kaufman Adaptive Moving Average (KAMA), and Hodrick-Prescott (HP) Filter. It is designed to provide a comprehensive analysis of market trends and potential trading signals.
Components
Hodrick-Prescott (HP) Filter
Purpose: Smooths out the price data to identify the underlying trend.
Parameters: Lambda: Controls the smoothness. Range: 50 to 1600.
Impact of Parameters:
Increasing Lambda: This makes the trend line more responsive to short-term market fluctuations, suitable for short-term analysis. A higher Lambda value decreases the degree of smoothing, making the trend line follow recent market movements more closely.
Decreasing Lambda: A lower Lambda value makes the trend line smoother and less responsive to short-term market fluctuations, ideal for longer-term trend analysis. Decreasing Lambda increases the degree of smoothing, thereby filtering out minor market movements and focusing more on the long-term trend.
Kaufman Adaptive Moving Average (KAMA):
Purpose: An adaptive moving average that adjusts to price volatility.
Parameters: Length, Fast Length, Slow Length: Define the sensitivity and adaptiveness of KAMA.
Impact of Parameters:
Adjusting Length affects the base period for efficiency ratio, altering the overall sensitivity.
Fast Length and Slow Length control the speed of KAMA’s adaptation. A smaller Fast Length makes KAMA more sensitive to price changes, while a larger Slow Length makes it less sensitive.
Savitzky-Golay Filter:
Purpose: Smooths the price data using polynomial regression.
Parameters: Window Size: Determines the size of the moving window (7, 9, 11, 15, 21).
Impact of Parameters:
A larger Window Size results in a smoother curve, which is more effective for identifying long-term trends but can delay reaction to recent market changes.
A smaller Window Size makes the curve more responsive to short-term price movements, suitable for short-term trading strategies.
General Impact of Parameters
Adjusting these parameters can significantly alter the signals generated by the indicator. Users should fine-tune these settings based on their trading style, the characteristics of the traded asset, and market conditions to optimize the indicator's performance.
Signal Logic
Buy Signal: The trend from the HP filter is below both the KAMA and the Savitzky-Golay SMA, and none of these indicators are flat.
Sell Signal: The trend from the HP filter is above both the KAMA and the Savitzky-Golay SMA, and none of these indicators are flat.
Usage
Due to the combination of smoothing algorithms and adaptability, this indicator is highly effective at identifying emerging trends for both initiating long and short positions.
IMPORTANT : Although the code and user settings incorporate measures to limit false signals due to lateral (sideways) movement, they do not completely eliminate such occurrences. Users are strongly advised to avoid signals that emerge during simultaneous lateral movements of all three indicators.
Despite the indicator's success in historical data analysis using its signals alone, it is highly recommended to use this code in combination with other indicators, patterns, and zones. This is particularly important for determining exit points from positions, which can significantly enhance trading results.
Limitations and Recommendations
The indicator has shown excellent performance on the weekly time frame (TF) with the following settings:
Savitzky-Golay (SG): 11
Hodrick-Prescott (HP): 100
Kaufman Adaptive Moving Average (KAMA): 20, 2, 30
For the monthly TF, the recommended settings are:
SG: 15
HP: 100
KAMA: 30, 2, 35
Note: The monthly TF is quite variable. With these settings, there may be fewer signals, but they tend to be more relevant for long-term investors. Based on a sample of 40 different stocks from various countries and sectors, most exhibited an average trade return in the thousands of percent.
It's important to note that while these settings have been successful in past performance, market conditions vary and past performance is not indicative of future results. Users are encouraged to experiment with these settings and adjust them according to their individual needs and market analysis.
As this is my first developed trading indicator, I am very open to and appreciative of any suggestions or comments. Your feedback is invaluable in helping me refine and improve this tool. Please feel free to share your experiences, insights, or any recommendations you may have.
Klinger Oscillator AdvancedThe Klinger Oscillator is not fully implemented in Tradeview. While the description at de.tradingview.com is complete, the implementation is limited to the pure current volume movement. This results in no difference compared to the On Balance Volume indicator.
However, Klinger's goal was to incorporate the trend as volume force in its strength and duration into the calculation. The expression ((V x x T x 100)) for volume force only makes sense as an absolute value, which should probably be expressed as ((V x abs(2 x ((dm/cm) - 1)) x T x 100)). Additionally, there is a need to handle the theoretical possibility of cm == 0.
Since, in general, significantly more trading volume occurs at the closing price than during the day, an additional parameter for weighting the closing price is implemented. In intraday charts, considering the closing price, in my opinion, does not make sense.
The TradeView implementation is displayed on the chart for comparison. Particularly in the analysis of divergence, significant deviations become apparent.