Spectral Gating (SG)The Spectral Gating (SG) Indicator is a technical analysis tool inspired by music production techniques. It aims to help traders reduce noise in their charts by focusing on the significant frequency components of the data, providing a clearer view of market trends.
By incorporating complex number operations and Fast Fourier Transform (FFT) algorithms, the SG Indicator efficiently processes market data. The indicator transforms input data into the frequency domain and applies a threshold to the power spectrum, filtering out noise and retaining only the frequency components that exceed the threshold.
Key aspects of the Spectral Gating Indicator include:
Adjustable Window Size: Customize the window size (ranging from 2 to 6) to control the amount of data considered during the analysis, giving you the flexibility to adapt the indicator to your trading strategy.
Complex Number Arithmetic: The indicator uses complex number addition, subtraction, and multiplication, as well as radius calculations for accurate data processing.
Iterative FFT and IFFT: The SG Indicator features iterative FFT and Inverse Fast Fourier Transform (IFFT) algorithms for rapid data analysis. The FFT algorithm converts input data into the frequency domain, while the IFFT algorithm restores the filtered data back to the time domain.
Spectral Gating: At the heart of the indicator, the spectral gating function applies a threshold to the power spectrum, suppressing frequency components below the threshold. This process helps to enhance the clarity of the data by reducing noise and focusing on the more significant frequency components.
Visualization: The indicator plots the filtered data on the chart with a simple blue line, providing a clean and easily interpretable representation of the results.
Although the Spectral Gating Indicator may not be a one-size-fits-all solution for all trading scenarios, it serves as a valuable tool for traders looking to reduce noise and concentrate on relevant market trends. By incorporating this indicator into your analysis toolkit, you can potentially make more informed trading decisions.
Cari dalam skrip untuk "如何用wind搜索股票的发行价和份数"
Markdown: The Pine Editor's Hidden Gem💬 Markdown, a markup language
Markdown is a portable, lightweight markup language that can be used for everything whether you're building a website, documentation, or even presentations.
Platforms like Discord, Reddit, and GitHub support Markdown and is the widely go-to option for text formatting due to its simplicity. Pine Script is a language that also utilizes Markdown, specifically in the Pine Editor where it can really be used to some extent.
Since the release of libraries, user-defined types, and methods, Pine Script is entering an age where developers will be highly dependent on libraries due to the capabilities Pine has inherited recently. It would be no surprise if a few people got together and took their time to thoroughly develop an entire project/library centered around improving Pine Script's built-in functions and providing developers with easier ways of achieving things than they thought they could.
As you're all aware, hovering over functions (and more) in the editor pops up a prompt that specifies the parameters, types, and what the function returns. Pine Script uses Markdown for that, so I figured we could go ahead and push that feature to its limits and see what we can do.
Today we'll go over how we can utilize Markdown in Pine Script, and how you can make your library's built-in functions stand out more than they did previously.
For more information, visit www.markdownguide.org
📕 General Notes
Markdown syntax only works on functions and methods.
Using arrays as parameters as of 2/21/2023 breaks the Markdown system.
The prompt window holds a max of 166 characters on one line before overflowing.
There is no limit on how long the prompt window can be.
🔽 Getting Started 🔽
▶️ Headings
If you have experience in HTML, Markdown, or even Microsoft Word then you already have a grasp of how headings work and look.
To simplify it, headings make the given text either massive or tiny depending on how many number symbols are provided.
When defining headings, you must have a space between the number (#) symbol, and the text. This is typical syntax throughout the language.
Pine Script uses bold text by applying (**) for their titles on their built-ins (e.g. @returns) but you could also use heading level 4 (####) and have it look the same.
▶️ Paragraphs & Line Breaks
You may want to provide extensive details and examples relating to one function, in this case, you could create line breaks. Creating line breaks skips to the next line so you can keep things organized as a result.
To achieve a valid line break and create a new paragraph, you must end the line with two or more spaces.
If you want to have an empty line in between, apply a backslash (\).
Backslashes (\) are generally not recommended for every line break. In this case, I only recommend using them for empty lines.
▶️ Text Formatting
Markdown provides text formatting such as bold, italics, and strikethrough.
For bolding text, you can apply open and close (**) or (__).
For italicizing text, you can apply open and close (*) or (_).
For bolding and italicizing text, you can apply open and close (***) or (___).
For s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶, you need to apply open and close (~~).
This was mentioned in the Headers section, but Pine Script's main titles (e.g. @returns or @syntax) use bold (**) by default.
▶️ Blockquotes
Blockquotes in Pine Script can be visualized as a built-in indentation system.
They are declared using greater than (>) and everything will be auto-aligned and indented until closed.
By convention you generally want to include the greater than (>) on every line that's included in the block quote. Even when not needed.
If you would like to indent even more (nested blockquotes), you can apply multiple greater than symbols (>). For example, (>>)
Blockquotes can be closed by ending the next line with only one greater than (>) symbol, or by using a horizontal rule.
▶️ Horizontal Rules
Horizontal rules in Pine Script are what you see at the very top of the prompt in built-ins.
When hovering, you can see the top of the prompt provides a line, and we can actually reproduce these lines.
These are extremely useful for separating information into their own parts and are accessed by applying 3 underscores (___), or 3 asterisks (***).
Horizontal rules were mentioned above, when we were discussing block quotes. These can also be used to close blockquotes as well.
Horizontal rules require a minimum of 3 underscores (___) or 3 asterisks (***).
▶️ Lists
Lists give us a way to structure data in a somewhat neat way. There are multiple ways to start a list, such as
1. First Item (number followed by a period)
- First Item (dash)
+ First Item (plus sign)
* First Item (asterisk)
Using number-based lists provide an ordered list, whereas using (-), (+), or (*) will provide an unordered list (bullet points).
If you want to begin an unordered list with a number that ends with a period, you must use an escape sequence (\) after the number.
Standard indentation (tab-width) list detection isn't supported, so to nest lists you have to use blockquotes (>) which may not look as appealing.
▶️ Code Blocks
Using code blocks allows you to write actual Pine Script code inside the prompt.
It's a game changer that can potentially help people understand how to execute functions quickly.
To use code blocks, apply three 3 open and close backquotes (```). Built-in's use (```pine) but there's no difference when we apply it.
Considering that tab-width indentation isn't detected properly, we can make use of the blockquotes mentioned above.
▶️ Denotation
Denoting can also be seen as highlighting a background layer behind text. They're basically code blocks, but without the "block".
Similar to how code blocks work, we apply one backquote open and close (`).
Make sure to only use this on important keywords. There really isn't a conventional way of applying this.
It's up to you to decide what people should have their eyes tracked onto when they hover over your functions.
If needed, look at how Pine Script's built-in variables and functions utilize this.
▶️ Tables
Tables are possible in Markdown, although they may look a bit different in the Pine Editor.
They are made by separating text with vertical bars (|).
The headers are detected when there is a minimum of one hyphen (-) below them.
You can align text by using a colon as I do in the photo. Hyphens must be connected to the colon in order to display correctly.
Tables aren't ideal to use in the editor but are there if anyone wants to give it a go.
▶️ Links & Images
Markdown supports images and hyperlinks, which means we can also do that here in the Pine Editor. Cool right?
If you want to create a hyperlink, surround the displayed text in open and close brackets .
If you want to load a photo into your prompt, it's the same syntax as the hyperlink, except it uses a (!)
See syntax list below.
Here are realistic usage examples. (Snippets from code below)
These follow the same syntax as the built-ins.
I'm not using horizontal rules here, but it's entirely up to you.
▶️ Syntax List
Headings
Level 1: #
Level 2: ##
Level 3: ###
Level 4: ####
Level 5: #####
Level 6: ######
Line Breaks
Text (two spaces)
Text\ (backslash)
Text Formatting
Bold (**)
Italic (**)
Strikethrough (~~)
Blockquotes
Indent (>)
Double Indent (>>)
Triple Indent (>>>) and so on.
Horizontal Rules
(___) or (***)
Lists
Ordered List (1.)
Unordered List (-) or (+) or (*)
Code Blocks
(```) or (```pine)
Denotation
(`)
Tables
(|) and (-) and (:)
Hyperlinks
(URL)
Images
! (URL)
Hope this helps. 👍
Strategy Myth-Busting #23 - 2xEMA+DPO- [MYN]#23 on the Myth-Busting bench, we are automating the "Best Funded Account Trading Strategy (Pass EVERY Challenge!)" strategy from "Trade with Pat" who claims this strategy will pass every trading challenge out there.
This strategy uses 3 open source indicators. 2 EMA's. The first one (Slow) is set to a length of 40 and a fast EMA which is set to 12. This strategy uses the crossover of the fast( 12) EMA over the Slow EMA ( 40 ) as the primary means to enter a long position. The opposite when the fast EMA crosses under the slow EMA as a means to indicate a short position. This strategy uses the DPO (Detrended Price Oscillaor) from the Uptrend Price DPO indicator in the same way we would traditionally use a stochastic or moving average convergence/divergence indicator like the MACD . Basically, the DPO helps evaluate and estimate the length of the price cycle from peak to peek or through to trough and in this strategy confirms entry of a long / short condition complimenting the EMA crossover/crossunders.
And as always, If you know of or have a strategy you want to see myth-busted or just have an idea for one, please feel free to message me.
This strategy uses a combination of 2 open-source public indicators:
EMA x2 ( 40 and 12)
Untrend Price DPO indicator by jTradeuh
Trading Rules
1 or 4 hour candles
Stop loss at previous highest-high (Short) and lowest-low (Long).
Take Profit 2 - 2.5 the risk
Strategy Template includes open source code from the following:
Performance Summary Dashboard by @VertMT
Time Of Day Window by @ddctv
Monthly Table Performance Dashboard by @QuantNomad
DistributionsLibrary "Distributions"
Library with price distribution zones calculation helpers.
Based on research from "Trading Systems and Methods, 5th Edition" by Perry J. Kaufman
getZones(h, l, c, window)
Returns price distribution zones based on HLC and for some period
Parameters:
h : high price
l : low price
c : close price
window : period to calculate distributions
Returns: tuple of 5 price zones in descent order, from highest to lowest
Moving Average ZonesImagine bollinger bands, but instead with multiple customizable moving averages.
MAZ contains moving averages that act as support and resistance. This can lead to potential use for stop loss and take profit decision-making along with potential signs of reversals.
Features
Areas of Confluence
Display Options
Data Window
Default Settings (with Data Window)
Areas of Confluence
In the photo above, every touch inside a zone increases the brightness of the zone, strengthening the confluence of the zone.
Zones will disappear after a while if no touches have occurred in between a zone within the specified lookback period.
Asymmetric Dispersion High Lowdear fellows,
this indicator is an effort to determine the range where the prices are likely to fall within in the current candle.
how it is calculated
1. obtain
a. gain from the open to the high
b. loss from the open to the low
in the last 20 (by default) candles and
in the last 200 (10*20 by default) candles
2. perform
a. the geometric average (sma of the log returns) over these gains and losses
b. their respective standard deviation
3. plot from the open of each candle
a. the average + 2 standard deviations (2 by default) of the short window size
b. same for the long window size (which is overlapped)
what it shows
1. where the current candle is likely to move with 95% likelyhood
how it can be interpreted
1. a gauge for volatility in the short and long term
2. a visual inbalance between likelyhood to go up or down according to dispersion in relation to current prices or candle open.
3. a confirmation of crossings of, for instance, support and resistances once the cloud is completely above or below.
in regard to bollinger bands (which are and excellent well proven indicator)
1. it segregates upward moves from the downward ones.
2. it is hardly crossed by prices
3. it is centered on the current candle open, instead of the moving average.
we welcome feedback and critic.
best regards and success wishes.
na_skip_highestLibrary "na_skip_highest"
Finds the highest historic value over len bars but skip na valued bars (eg, off days). In other words, this will ensure we find the highest value over len bars with a real value, and if there are any na bars in-between, we skip over but the loop will continue. This allows to mimic calculations on markets with off days (eg, weekends).
na_skip_highest(src, len)
Finds the highest historic value over len bars but skip na valued bars (eg, off days). In other words, this will ensure we find the highest value over len bars with a real value, and if there are any na bars in-between, we skip over but the loop will continue. This allows to mimic calculations on markets with off days (eg, weekends).
Parameters:
src : series float source (eg, close)
len : int length, number of recent bars to consider in the window to find the highest value
Returns: highest float highest value found over the len window
ctndLibrary "ctnd"
Description:
Double precision algorithm to compute the cumulative trivariate normal distribution
found in A.Genz, Numerical computation of rectangular bivariate and trivariate normal
and t probabilities”, Statistics and Computing, 14, (3), 2004. The cumulative trivariate
normal is needed to price window barrier options, see G.F. Armstrong, Valuation formulae
or window barrier options”, Applied Mathematical Finance, 8, 2001.
References:
link.springer.com
www.tandfonline.com
citeseerx.ist.psu.edu
The Complete Guide to Option Pricing Formulas, 2nd ed. (Espen Gaarder Haug)
CTND(LIMIT1, LIMIT2, LIMIT3, SIGMA1, SIGMA2, SIGMA3)
Returns the Cumulative Trivariate Normal Distribution
Parameters:
LIMIT1 : float,
LIMIT2 : float,
LIMIT3 : float,
SIGMA1 : float,
SIGMA2 : float,
SIGMA3 : float,
Returns: float.
Multiple Frequency Volatility CorrelationThis is a complex indicator that looks to provide some insight into the correlation between volume and price volatility.
Rising volatility is depicted with the color green while falling volatility is depicted with purple.
Lightness of the color is used to depict the length of the window used, darker == shorter in the 2 -> 512 window range.
FunctionDynamicTimeWarpingLibrary "FunctionDynamicTimeWarping"
"In time series analysis, dynamic time warping (DTW) is an algorithm for
measuring similarity between two temporal sequences, which may vary in
speed. For instance, similarities in walking could be detected using DTW,
even if one person was walking faster than the other, or if there were
accelerations and decelerations during the course of an observation.
DTW has been applied to temporal sequences of video, audio, and graphics
data — indeed, any data that can be turned into a linear sequence can be
analyzed with DTW. A well-known application has been automatic speech
recognition, to cope with different speaking speeds. Other applications
include speaker recognition and online signature recognition.
It can also be used in partial shape matching applications."
"Dynamic time warping is used in finance and econometrics to assess the
quality of the prediction versus real-world data."
~~ wikipedia
reference:
en.wikipedia.org
towardsdatascience.com
github.com
cost_matrix(a, b, w)
Dynamic Time Warping procedure.
Parameters:
a : array, data series.
b : array, data series.
w : int , minimum window size.
Returns: matrix optimum match matrix.
traceback(M)
perform a backtrace on the cost matrix and retrieve optimal paths and cost between arrays.
Parameters:
M : matrix, cost matrix.
Returns: tuple:
array aligned 1st array of indices.
array aligned 2nd array of indices.
float final cost.
reference:
github.com
report(a, b, w)
report ordered arrays, cost and cost matrix.
Parameters:
a : array, data series.
b : array, data series.
w : int , minimum window size.
Returns: string report.
PhinkTrade Risk Manager EssentialsHello there, fellow traders!
So, happy to bring you a new, free tool: my Risk Manager Essentials .
(To use it, click on "Add to favorite indicators" below, and then look for it in your charts’ "Indicators & Strategies" dialog window, inside "Favorites" tab.)
The main objective of this indicator is to help and incentivize as many traders as possible to adopt essential risk management practices .
First and foremost, it helps you define how much you can buy or sell, at your chosen price levels, in order to keep your risk always under control (in other words: in order to limit the amount you can potentially lose with a trade if your stop loss order is hit).
This is fundamental if you want to have a lasting and successful trading career: protect your capital, always . Because without it, you know: it’s game over.
Indicator also helps you visualize where minimum ideal target / take profit level is , given your risk, using the popular 3:1 Return/Risk ratio (R/R) .
3:1 R/R ratio is popular because with it you only need to “be right” (have price reach your targets) about 33% of the time, in order to be profitable : in other words, the fewer successful trades will pay you more than the sum of your unsuccessful ones will take from you.
So, make sure your strategy has a success rate greater than 33% and apply 3:1 R/R to your trades . This indicator will help you that, and with developing the necessary discipline . For example, by knowing where the ideal target should be, given your choices, you can assess the likelihood of it being reached in current price context. If that would look like a hard to happen scenario, it would probably be a good idea to avoid taking that particular trade.
Now, let’s see how it works:
When you deploy the indicator to the chart for the first time, you’ll be asked to define:
Your 1st entry price (interactively: you can define and adjust levels directly on the chart, thanks to the new Interactive Mode introduced by TradingView (ty, TV team!))
Your stop loss price (likewise)
Your 1st target price (likewise)
Your starting capital (via initial Input dialog)
Your risk (likewise)
Your risk is how much of your starting capital you are willing to lose if your stop loss is hit (define it as a % of your starting capital).
There’s a good practice here too: to risk only 1 percent of your capital per trade . This way, you can reinforce the odds of making more money than you lose and keep your peace of mind in all trades – and avoid messing up with your plans – and statistics – along the way.
Successful trading is a statistics-based endeavor. So, you want to implement and maintain consistency. Again, this indicator helps with that.
After initial setup:
You can also define additional entries and targets (up to 3 each) . Just open indicator’s Settings window and adjust accordingly.
If you have more than one entry – or target, the amounts involved will be split evenly between them. You can also enable the display of the Average Entry and Average Target labels , to see the equivalent, should you have taken (or take) a single order for each.
You can also define (via Settings, then interactively) a particular date and time for the trade . This way, labels will be presented near that moment, instead of constantly show near the latest bar.
Finally, you can personalize some other display settings: levels precision (number of decimal places), labels positions , and labels colors .
In conclusion:
You are very welcome to check it out – and adopt it on your daily use!
Please let me know your feedbacks as well. If you find any issues, or have any suggestions, I’ll be glad to hear. You can contact me here, via TradingView, or Telegram.
Finally, check the updates section below , as new stuff may show from time to time.
Thank you very much for your attention, and enjoy!
PhinkTrade
Pivot Points High Low & Missed Reversal Levels [LuxAlgo]Pivot Points High/Low, sometimes referred to as "Bar Count Reversals" allows highlighting market prices local tops and bottoms. This method compares the price value at a certain index within a user-specified window length and tests whether it is the highest (pivot high) or lowest (pivot low).
This method can return successive pivots of the same type, thus missing certain reversals, as such, we aimed to highlight those missed reversals and provide a level at their location to determine if they had any significant role to play. A zig-zag is additionally built, connecting regular pivots with missed reversals.
Settings
Pivot Length: Determine the "Bar Count Reversals" window size. higher values will highlight more significant reversals.
Other settings control the look of the displayed graphical elements within the indicator.
Usage
Missed reversals are highlighted by labels with a ghost emoji, a Zig-Zag line connecting a missed reversal is dashed. Note that labels are offset by -Pivot Length bars (with the exception of the most recent one), and as such are detected further ahead of their location.
When a missed reversal is detected, a level is displayed, starting at the location of the missed reversal and ending when a new missed reversal is detected.
These levels can be used as support and resistance.
The most recent label estimates the possible location of a confirmed reversal, and will continuously readjust whether price makes a new higher high/lower low depending on the type of previously detected pivot. A level is also made out of this estimated reversal.
Levels Of Greed
The Levels Of Greed indicator is based on the same idea as the Levels Of Fear one and was suggested by several traders in the comment section. It helps analyze price advances to find the best levels for closing a long position in an asset after a quick surge or longer up-trend. In finance, volatility is a term that describes the degree of variation of an asset price over time. It is usually denoted by the letter σ (sigma) and estimated as the standard deviation of the asset price or price returns. The Levels Of Greed indicator helps measure the current price advance in the standard deviation units. It plots seven levels at distances of 1, 2, 3, 4, 5, 6, and 7 standard deviations (sigmas) above the base price (the recent lowest price or lower bound of the established range). In what follows, we will refer to these levels as levels of greed.
HOW TO USE
When the price in its surge reaches a certain level of greed, it means that it has surged from its recent lowest value by a corresponding number of standard deviations. The indicator helps traders see the maximum levels to which the price may rise and estimate the potential height of the current surge. Five-seven sigma surges are relatively rare events and correspond to significant market exuberance. Careful traders and shorter-term ones would not want to participate in the bandwagon effect and herd behavior that drive market bubbles. They prefer to take their profits when the market is not exceedingly overbought.
SETTINGS
Window : the averaging window or period of the indicator. The algorithm uses this parameter to calculate the base level and standard deviations. Higher values are better for measuring deeper and longer surges.
Levels Stability : the parameter used in the up-move detection. The higher the value is, the more stable and long the greed levels are, but at the same time, the lag increases. The lower it is, the faster the indicator responds to the price changes, but the greed levels are recalculated more frequently and are less stable. This parameter is mostly for fine-tuning. It does not change the overall picture much.
Mode : the parameter that defines the style for the labels. In the Cool Guys Mode, the indicator displays the labels as emojis. In the Serious Guys Mode, labels show the distance from the base level measured in standard deviation units or sigmas.
Multi-Timeframe 10XIMPORTANT NOTE:
-> The timeframe for this indicator must be set at 1 minute;
-> If the chart timeframe is higher than 1 minute, the results shown in the table for timeframes lower than the chart will not be correct;
-> Tradingview's own documentation explains this as follows: " It is not recommended to request data of a timeframe lower that the current chart timeframe, for example 1 minute data from a 5 minutes chart. The main problem with such a case is that some part of a 1 minute data will be inevitably lost, as it’s impossible to display it on a 5 minutes chart and not to break the time axis. In such cases the behavior of security can be rather unexpected "; and
-> It is therefore recommended that this indicator is placed in a standalone 1min chart window, and the window resized to only show the table to avoid any issues.
Credits:
-> J. Welles Wilder creating the Directional Movement System (DMS) (1978); and
-> John Carter applying the DMS to create the popular Simpler Trading 10X Bars indicator.
Introduction:
Quickly see the quality and strength of a trend based on Directional Movement Index (DMI).
The Average Directional Index (ADX), Minus Directional Indicator (-DI) and Plus Directional Indicator (+DI) represent a group of directional movement indicators that form a trading system developed by Welles Wilder. Although Wilder designed his Directional Movement System with commodities and daily prices in mind, these indicators can also be applied to stocks. Wilder determined directional movement by comparing the difference between two consecutive lows with the difference between their respective highs.
+DI and -DI are derived from smoothed averages of these differences and measure trend direction over time. These two indicators are often collectively referred to as the DMI. ADX is in turn derived from the smoothed averages of the difference between +DI and -DI; it measures the strength of the trend (regardless of direction) over time.
Trade Signals:
-> Green indicates an uptrend i.e. when +DI is above -DI and ADX is greater than 20 - there is more upward pressure than downward pressure in the price;
-> Red indicates a downtrend i.e. when -DI is above +DI and ADX is greater than 20 - there is more downward pressure on the price; and
-> Yellow indicates no strong directional trend and potential for a reversal.
Standalone Indicator:
The 10X Bars version of the indicator can be found here:
Multi-Timeframe TTM Squeeze Pro
IMPORTANT NOTE:
-> The timeframe for this indicator must be set at 1 minute;
-> If the chart timeframe is higher than 1 minute, the results shown in the table for timeframes lower than the chart will not be correct;
-> Tradingview's own documentation explains this as follows: " It is not recommended to request data of a timeframe lower that the current chart timeframe, for example 1 minute data from a 5 minutes chart. The main problem with such a case is that some part of a 1 minute data will be inevitably lost, as it’s impossible to display it on a 5 minutes chart and not to break the time axis. In such cases the behavior of security can be rather unexpected "; and
-> It is therefore recommended that this indicator is placed in a standalone 1min chart window, and the window resized to only show the table to avoid any issues.
Credits:
-> John Carter creating the TTM Squeeze and TTM Squeeze Pro
-> Lazybear's original interpretation of the TTM Squeeze: Squeeze Momentum Indicator
-> Makit0's evolution of Lazybear's script to factor in the TTM Squeeze Pro upgrades - Squeeze PRO Arrows
This is my version of their collective works, with amendments primarily to the Squeeze Conditions to more accurately reflect the color coding used by the official TMM Squeeze Pro indicator.
TTM Squeeze Guide
For those unfamiliar with the TTM Squeeze, it is simply a visual way of seeing how Bollinger Bands (standard deviations from a simple moving average ) relate to Keltner Channels ( average true range bands) compared with the momentum of the price action. The concept is that as Bollinger Bands compress within Keltner Channels , price volatility decreases, giving way for a potential explosive price movement up or down.
Differences between the original TTM Squeeze and TTM Squeeze Pro:
-> Both use a 2 standard deviation Bollinger Band ;
-> The original squeeze only used a 1.5 ATR Keltner Channel; and
-> The pro version uses 1.0, 1.5 and 2.0 ATR Keltner Channels .
The pro version therefore helps differentiate between levels of squeeze (compression) as the Bollinger Bands moves through the Keltner Channels i.e. the greater the compression, the more potential for explosive moves - less compression means more squeezing.
The Histogram shows price momentum whereas the colored dots (along the zeroline) show where the Bollinger Bands are in relation to the Keltner Channels:
-> Cyan Bars = positive, increasing momentum;
-> Blue Bars = positive, decreasing momentum (indication of a reversal in price direction);
-> Red Bars = negative, increasing momentum;
-> Yellow Bars = negative, decreasing momentum (indication of a reversal in price direction);
-> Orange Dots = High Compression / large squeeze (One or both of the Bollinger Bands is inside the 1st (1.0 ATR) Keltner Channel);
-> Red Dots = Medium Squeeze (One or both of the Bollinger Bands is inside the 2nd (1.5 ATR) Keltner Channel);
-> Black Dots = Low compression / wide squeeze (One or both of the Bollinger Bands is inside the 3rd (2.0 ATR) Keltner Channels );
-> Green Dots = No Squeeze / Squeeze Fired (One or both of the Bollinger Bands is outside of the 3rd (2.0 ATR) Keltner Channel).
Ideal Scenario:
As the ticker enters the squeeze, black dots would warn of the beginning of a low compression squeeze. As the Bollinger bands continue to constrict within the Keltner Channels , red dots would highlight a medium compression. As the price action and momentum continues to compress an orange dot shows warning of high compression. As price action leaves the squeeze, the coloring would reverse e.g. orange to red to black to green. Any compression squeeze is considered fired at the first green dot that appears.
Note: This is an ideal progression of the different types of squeezes, however any type of squeeze (and color sequence) may appear at anytime, therefore the focus is primarily on the green dots after any type of compression.
Entry and Exit Guide:
-> John Carter recommends entering a position after at least 5 black dots or wait for 1st green dot ; and
-> Exit on second blue or yellow bar or, alternatively, remain in the position after confirming a continuing trend through a separate indicator.
Standalone Indicator:
The indicator (which can be used on any timeframe) can be found here:
Levels Of Greed [AstrideUnicorn]The Levels Of Greed indicator is based on the same idea as the Levels Of Fear one and was suggested by several traders in the comment section. It helps analyze price advances to find the best levels for closing a long position in an asset after a quick surge or longer up-trend. In finance, volatility is a term that describes the degree of variation of an asset price over time. It is usually denoted by the letter σ (sigma) and estimated as the standard deviation of the asset price or price returns. The Levels Of Greed indicator helps measure the current price advance in the standard deviation units. It plots seven levels at distances of 1, 2, 3, 4, 5, 6, and 7 standard deviations (sigmas) above the base price (the recent lowest price or lower bound of the established range). In what follows, we will refer to these levels as levels of greed.
HOW TO USE
When the price in its surge reaches a certain level of greed, it means that it has surged from its recent lowest value by a corresponding number of standard deviations. The indicator helps traders see the maximum levels to which the price may rise and estimate the potential height of the current surge. Five-seven sigma surges are relatively rare events and correspond to significant market exuberance. Careful traders and shorter-term ones would not want to participate in the bandwagon effect and herd behavior that drive market bubbles. They prefer to take their profits when the market is not exceedingly overbought.
SETTINGS
Window : the averaging window or period of the indicator. The algorithm uses this parameter to calculate the base level and standard deviations. Higher values are better for measuring deeper and longer surges.
Levels Stability : the parameter used in the up-move detection. The higher the value is, the more stable and long the greed levels are, but at the same time, the lag increases. The lower it is, the faster the indicator responds to the price changes, but the greed levels are recalculated more frequently and are less stable. This parameter is mostly for fine-tuning. It does not change the overall picture much.
Mode : the parameter that defines the style for the labels. In the Cool Guys Mode , the indicator displays the labels as emojis. In the Serious Guys Mode , labels show the distance from the base level measured in standard deviation units or sigmas.
Retail Insider Trend Following (HTF ONLY)Before I begin, here is a disclaimer: None of this is financial advice, and I'll recommend you to do your own research or talk to your financial advisor, if you want to use this. And also make sure you understand the risks properly before taking any trades. This particular indicator is a work of experiment, and I am publishing the optimized code. Please leave a comment below if you have any queries.
As per the logic, I am taking the highest point in a particular time window (used the in built ta.highest function) , and the lowest point in a particular time window (used the ta.lowest), and averaged it using the in built function (
RMA(which is the B33 Mean.)
For the offset, I am simply calculating and adding some values (which can also be input by the user.)
and this user input is in percentage.
So if you observe the lines, the Red line in between is the mean, and the Yellow lines are the offsets. (Everything can be changed in settings)
In simple layperson terms, if the price goes above the Red line, it's an uptrend,
and if the price goes below the Red line, it is in a downtrend.
Now I just wanted to keep the offset because I wanted more confirmation before actually entering a trade. (the offset can be changed again, from the settings, and the offset is in percentage)
A lot of times, you will see that the price is kind of going sideways, where, a lot of traders get trapped, as there is no clear trend.
So in order to eliminate that choppy price action and stay out, I'm using this offset. This should probably save a lot of bad trades.
So basically, if the price goes and closes above the higher offset, it will confirm a trend change, and a possible bull market.
Similarly, if the price goes and closes below the lower offset, it will confirm the end of the bull market, or a corrective phase, or a bear market.
A few things to note, however...
If you change the timeframe, you will see that the lines are not shifting/changing that much. This is because, it will consider the highest and the lowest points and average it.
So, basically, if you do the math, you will understand why,... and this logic is purely for a higher timeframe analysis/confirmation.
I'll personally recommend this kind of a setup for swing trading/confirmation on the daily or the 4H charts, mostly for longer timeframes. (If you are on the pro/pro+ or premium, you can try out 6H or 12H timeframes as well)
If you are looking for scalping, setups and indicators, this is not the right one.
If you liked it, don't forget to give a follow :)
The Divergent LibraryLibrary "TheDivergentLibrary"
The Divergent Library is only useful when combined with the Pro version of The Divergent - Advanced divergence indicator . This is because the Basic (free) version of The Divergent does not expose the "Divergence Signal" value.
Usage instructions:
1. Create a new chart
2. Add The Divergent (Pro) indicator to your chart
3. Create a new strategy, import this library, add a "source" input, link it to "The Divergent: Divergence Signal", and use the library to decode the divergence signals from The Divergent (You can find example strategy code published in our profile)
4. Act on the divergences signalled by The Divergent
---
isRegularBullishEnabled(context) Returns a boolean value indicating whether Regular Bullish divergence detection is enabled in The Divergent.
Parameters:
context : The context of The Divergent Library.
Returns: A boolean value indicating whether Regular Bullish divergence detection is enabled in The Divergent.
isHiddenBullishEnabled(context) Returns a boolean value indicating whether Hidden Bullish divergence detection is enabled in The Divergent.
Parameters:
context : The context of The Divergent Library.
Returns: A boolean value indicating whether Hidden Bullish divergence detection is enabled in The Divergent.
isRegularBearishEnabled(context) Returns a boolean value indicating whether Regular Bearish divergence detection is enabled in The Divergent.
Parameters:
context : The context of The Divergent Library.
Returns: A boolean value indicating whether Regular Bearish divergence detection is enabled in The Divergent.
isHiddenBearishEnabled(context) Returns a boolean value indicating whether Hidden Bearish divergence detection is enabled in The Divergent.
Parameters:
context : The context of The Divergent Library.
Returns: A boolean value indicating whether Hidden Bearish divergence detection is enabled in The Divergent.
getPivotDetectionSource(context) Returns the 'Pivot Detection Source' setting of The Divergent. The returned value can be either "Oscillator" or "Price".
Parameters:
context : The context of The Divergent Library.
Returns: One of the following string values: "Oscillator" or "Price".
getPivotDetectionMode(context) Returns the 'Pivot Detection Mode' setting of The Divergent. The returned value can be either "Bodies" or "Wicks".
Parameters:
context : The context of The Divergent Library.
Returns: One of the following string values: "Bodies" or "Wicks".
isLinked(context) Returns a boolean value indicating the link status to The Divergent indicator.
Parameters:
context : The context of The Divergent Library.
Returns: A boolean value indicating the link status to The Divergent indicator.
init(firstBarSignal, displayLinkStatus, debug) Initialises The Divergent Library's context with the signal produced by The Divergent on the first bar. The value returned from this function is called the "context of The Divergent Library". Some of the other functions of this library requires you to pass in this context.
Parameters:
firstBarSignal : The signal from The Divergent indicator on the first bar.
displayLinkStatus : A boolean value indicating whether the Link Status window should be displayed in the bottom left corner of the chart. Defaults to true.
debug : A boolean value indicating whether the Link Status window should display debug information. Defaults to false.
Returns: A bool array containing the context of The Divergent Library.
processSignal(signal) Processes a signal from The Divergent and returns a 5-tuple with the decoded signal: [ int divergenceType, int priceBarIndexStart, int priceBarIndexEnd, int oscillatorBarIndexStart, int oscillatorBarIndexEnd]. `divergenceType` can be one of the following values: na → No divergence was detected, 1 → Regular Bullish, 2 → Regular Bullish early, 3 → Hidden Bullish, 4 → Hidden Bullish early, 5 → Regular Bearish, 6 → Regular Bearish early, 7 → Hidden Bearish, 8 → Hidden Bearish early.
Parameters:
signal : The signal from The Divergent indicator.
Returns: A 5-tuple with the following values: [ int divergenceType, int priceBarIndexStart, int priceBarIndexEnd, int oscillatorBarIndexStart, int oscillatorBarIndexEnd].
A simple trading strategy for XTZ/EUR (December 2021)This is my current trading strategy for XTZ/EUR for this month of December.
It tries to avoid pumps/dumps (i.e. does not trade on big candles).
It always performs one order in each candle for the trading window of the rebalance bear/bull market indicator (check my profile for it).
It has alerts configured so that you can use it in your server/broker (just pass along the `{{strategy.order.alert_message}}` in the alert message, it will include a positive number of XTZ when to buy, or a negative number when to sell).
It does not repaint.
The amount of crypto and fiat in the portfolio can be configured in the cog.
It does not outperform buy/hold for the bull months.
Check the results in the Data Window of Trading View (please avoid the Strategy Tester, it has too many bugs and is not intended for out of the box strategies such a this one).
All code is open source.
XTZ trading strategy for Bear monthsThis is my 3rd approach into trading XTZ. It is tuned into bear months and needs to work for at least 30 days.
It looks at the rebalance oscillator and bear market indicator and tries to find a position in the market that does not lose money within the month.
Use the cog icon to update the trading window to fit previous months, and check out the data window for its real performance. Do not rely on the Strategy Tester since this strategy is performing only with `strategy.order` making the values of the Strategy Tester irrelevant and inconsistent with its performance.
40+ Coin Screener (workaround to 40 Security Limit Per Script) This is a far inferior method for a screener/scanner (compared to my first publication) but after looking at that script from a noobs eyes again, I could see how this form would be a lot easier to take in/understand so wanted to publish it. Everything that I could think of to mention about this is in my 1st pub so ill leave it to you to check it out...though I did include some comments in the script. It is pretty straight forward but if you have any questions don't hold them in. I'll answer them if I can. The only thing that is not in this one is setting up the alert feature so that you only have to create 1 alert per iteration of the script and it takes care of all of the coins for that iteration/set that is chosen in the settings (so please see previous script if would like to do this for your screener/scanner).
To be PERFECTLY CLEAR, the workaround is to the issue of not being able to scan but only 40 coins per script. You can scan more than 40 per script but only if you create "batches" or "sets" that the user can select within the settings which set to use for each iteration of the script on the chart. That being, you have to the script multiple times to the chart and merge them into 1 window and merge the scales (instructions in first publications). Here in this script I am scanning 72 different coins that are the Margin Coins on KUCOIN. I have split them up into 3 sets (24 coins per set). I could have made 2 sets but the script will be slower to load and to respond (like, when it comes to receiving alerts), thus I split them up the way I did. If you want to change any of this there are slightly more details in the previous script.
One great use-case that I LOVE about this particular version (and the way I use it) is right at the end of when I see a whole market dump/pump coming to an end and want to know which horse to bet on. Used to think whichever coin come out the fastest from the dump was the one to bet on but quickly learned that 1-2 (or even a few) hrs needs to go by first bc the ones that look the strongest in the beginning are NOT the ones to have performed the best when viewing the results 12 hrs later. IN FACT, many instances of using this exact script for reasons as such has taught me that the manipulators (I believe this to be the case as least) WANT everyone to bet on these that come out the gate the hardest and thus they make them move REALLY hard in the beginning then they QUICKLY become stagnant (moreso, they become WORSE than stagnant, they actually quickly retrace to put you into the negative so that you get out to get into the others now moving (to provide the market with more liquidity. They WANT you to get into a coin thats moving crazy hard so that they can then cease that movement once many fall for the trick just to then make that once strong looking coin now stagnant and make others move crazy hard. They wait for you to get out of the 1st and into the next set of movers just to do this time and time again bc hey, what are we sheep good for other than to provide the big guns with liquidity, am I right? Thats rhetorical, which you would know if you've ever had this happen to you (without a doubt MANY of you have). Let this script (above all other things) provide good evidence to back up this cynical way of viewing the markets to anyone that is questioning it.
This prolonged time between when the dump is over and when the ACTUAL movers REALLY start moving can actually be of great benefit to us sheep if used correctly, Firstly, it gives us some time to determine if when we thought was the bottom, ACTUALLY was the bottom. That bottom is easily determined if there are no (or very few) coins that went any lower than the point in time that the script began calculating on. Secondly, it allows us time to wait for the REAL movers and shakers to start moving and shaking.
One new feature that I LOVE that TV has implemented is the ability (once the script is added to the chart) to be able to click a point in time on the chart where you want the script to begin its calculations. If this point needs to be changed at any point in time then you can either go into the setting and input the time you wish or simply remove the script and add it again so that you are prompted to select another point in time. Ok, I think that everything I wanted to say. The next version that I will add will be probably my favorite and most used by yours truly...not to mention unique in a way that I have yet to see an implementation anything like it in all of TV's public library. Not to say its not there, but I have yet to come across it and I have DEFINITELY done my fair share of searching for it when I couldn't figure out how to code it for the longest time (though, I was and still am a noob so might get some great feedback on better ways to approach it, but we'll save that jabbering for the next of the publications.
I hope each and every one of ya'll (yes, Im from the South) have the GREATEST of Thanksgivings (if in the US that is...I graced my parents with the best gift anyone could have given them 35 years ago on Thanksgiving....MEEEE ;) So I will sure as hell be having a great holiday. Thanks for checking out my script...you can "like" and leave a comment if you so feel the urge to...or not. Im not doing this for me, but rather to stretch my arms out as far as possible to benefit the most people as possible and more people would see the script if it has more likes/comments/traffic pointing towards it...not to mention as other publishers have...it IS gratifying to see a few likes in my side window, which btw, I have MANY more variations and completely diff types of scanners/screeners Ill be publishing in the future and to know that they've become of use....I"VE become of use to the community is very....pleasing to me and does (as I've also seen many publishers mention as well) drive me to want to publish ones that I originally thought I would keep for myself. Peace out people.
ArrayGenerateLibrary "ArrayGenerate"
Functions to generate arrays.
sequence_int(start, end, step) returns a sequence of int numbers.
Parameters:
start : int, begining of sequence range.
end : int, end of sequence range.
step : int, step, default=1 .
Returns: int , array.
sequence_float(start, end, step) returns a sequence of float numbers.
Parameters:
start : float, begining of sequence range.
end : float, end of sequence range.
step : float, step, default=1.0 .
Returns: float , array.
sequence_from_series(src, length, shift, direction_forward) Creates a array from a series sample range.
Parameters:
src : series, any kind.
length : int, window period in bars to sample series.
shift : int, window period in bars to shift backwards the data sample, default=0.
direction_forward : bool, sample from start to end or end to start order, default=true.
Returns: float array
normal_distribution(size, mean, dev) Generate normal distribution random sample.
Parameters:
size : int, size of array
mean : float, mean of the sample, (default=0.0).
dev : float, deviation of the sample from the mean, (default=1.0).
Returns: float array.
log_spaced(length, start_exp, stop_exp) Generate a base 10 logarithmically spaced sample sequence.
Parameters:
length : int, length of the sequence.
start_exp : float, start exponent.
stop_exp : float, stop exponent.
Returns: float array.
linear_range(stop, start) Generate a linearly spaced sample vector within the inclusive interval (start, stop) and step 1.
Parameters:
stop : float, stop value.
start : float, start value, (default=0.0).
Returns: float array.
periodic_wave(length, sampling_rate, frequency, amplitude, phase, delay) Create a periodic wave.
Parameters:
length : int, the number of samples to generate.
sampling_rate : float, samples per time unit (Hz). Must be larger than twice the frequency to satisfy the Nyquist criterion.
frequency : float, frequency in periods per time unit (Hz).
amplitude : float, the length of the period when sampled at one sample per time unit. This is the interval of the periodic domain, a typical value is 1.0, or 2*Pi for angular functions.
phase : float, optional phase offset.
delay : int, optional delay, relative to the phase.
Returns: float array.
sinusoidal(length, sampling_rate, frequency, amplitude, mean, phase, delay) Create a Sine wave.
Parameters:
length : int, The number of samples to generate.
sampling_rate : float, Samples per time unit (Hz). Must be larger than twice the frequency to satisfy the Nyquist criterion.
frequency : float, Frequency in periods per time unit (Hz).
amplitude : float, The maximal reached peak.
mean : float, The mean, or DC part, of the signal.
phase : float, Optional phase offset.
delay : int, Optional delay, relative to the phase.
Returns: float array.
periodic_impulse(length, period, amplitude, delay) Create a periodic Kronecker Delta impulse sample array.
Parameters:
length : int, The number of samples to generate.
period : int, impulse sequence period.
amplitude : float, The maximal reached peak.
delay : int, Offset to the time axis. Zero or positive.
Returns: float array.
Arnaud Legoux Moving Average Set [DM]Greetings Colleagues
As it could not be otherwise in the soul series could not miss its own moving average.
Here you can enjoy 3 soul moving averages with color variables and alerts on all crosses of the three moving averages
/// Quick Explained ALMA ///
//Window size: The window size is the look-back period and it is a basic setting of ALMA.
//Experienced traders can change this setting according to their preference.
//But if you are using this indicator for the first time, it is recommended to go with the default setting.
//Offset: The offset value is used to tweak the ALMA so that it will be more inclined
//towards responsiveness or smoothness. You can set the offset in decimals between the 0 to1.
//The value of 0.01 makes it smoother, while a setting of 0.99 makes the indicator more responsive.
//Sigma: The sigma is used for the filter. Any value less than 6 makes the indicator
//more focused, whereas the setting of 6 makes the filter large. According to Mr Arnaud,
//a sigma value of 6 is offer good performance.