Swing Breakout Sequence [LuxAlgo]The Swing Breakout Sequence tool enables traders to identify a directional price action scalping sequence comprising two unsuccessful breakouts in the same direction, with the expectation of a third.
🔶 USAGE
This sequence looks for pressure on one side of a swing zone.
The market tried to break out of the zone twice but failed. This led to a pullback into the zone after each attempt. Once a reversal inside the zone is identified, the sequence is complete. It is expected that the market will move from the final reversal within the zone to the final breakout attempt outside the zone.
The sequence of price action is as follows:
Point 1: Breakout attempt out of the swing zone
Point 2: Pullback into the zone
Point 3: Breakout attempt out of Point 1
Point 4: Pullback into the zone, tapping into Point 2 liquidity
Point 5: Reversal structure with Point 4 in the form of a double top or double bottom
This sequence assumes traders will be caught off-guard when they try to capitalize on the initial breakout at Point 1, which is likely to result in a loss. If the breakout at Point 3 fails, all traders will be caught out and switch positions.
If there is enough pressure in the swing zone to cause a reversal at Point 5, the trapped traders could be the start of the next breakout attempt.
🔹 Sequence Detection
Traders can define sequence behavior and adjust detection with three parameters from the Settings panel.
Disabling Points 4 and 5 will detect the most uncompleted sequences.
🔹 Showing/Hiding Elements
Traders can change the look of sequences by showing or hiding their parts using the Style settings.
🔶 SETTINGS
Swing Length: Number of candles to confirm a swing high or swing low. A higher number detects larger swings.
Internal Length: Number of candles to confirm a internal high or internal low. A lower number detects smaller swings. It must be the same size or smaller than the swing length.
🔹 Detection
Point 4 Beyond Point 2: It only detects sequences where Point 4 is beyond Point 2.
Show Point 5: Enable/disable Point 5 detection.
Require Equal H/L at Point 5: Enable/Disable double top/bottom detection at Point 5 within a given threshold. A bigger value detects more sequences.
🔹 Style
Show Sequence Path: Enable/disable a line between sequence points.
Show Boxes: Enable/disable colored boxes for each sequence.
Show Lines: Enable/disable horizontal lines from each point of the sequence.
Default Color: Define the color or enable/disable auto color.
Sequence
FiboSequFiboSequ: Fibonacci Sequence Marking
Leonardo Fibonacci was an Italian mathematician who lived in the 12th century. His real name was Leonardo of Pisa, but he is commonly known as "Fibonacci." Fibonacci is famous for introducing the Hindu-Arabic numeral system to the Western world. This system is the basis of the modern decimal number system we use today.
Fibonacci Sequence
The Fibonacci sequence is a series of numbers that frequently appears in mathematics and nature. The first two numbers in the sequence are 0 and 1, and each subsequent number is the sum of the two preceding numbers.
The sequence is as follows:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, ...
Fibonacci Time Zones:
Fibonacci time zones are used to identify potential turning points in the market at specific time intervals. These time zones correspond to the Fibonacci sequence in terms of consecutive days or weeks.
The Fibonacci sequence has a wide range of applications in both mathematics and nature. Leonardo Fibonacci's work has had a significant impact on the development of modern mathematics and numeral systems. In financial markets, the Fibonacci sequence and ratios are frequently used by technical analysts to predict and analyze market movements.
Description:
Overview:
The FiboSequ indicator marks significant days on a price chart based on the Fibonacci sequence. This can help traders identify potential turning points or areas of interest in the market. The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, often found in nature and financial markets.
Fibonacci Sequence:
The sequence used in this indicator includes: 1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, and 2584.
These numbers represent the days to be marked on the chart, highlighting possible significant market movements.
How It Works:
User Input:
Users can input the starting date (Year, Month, and Day) from which the Fibonacci sequence will begin to be calculated.
This allows flexibility and customization based on the trader's analysis needs.
Calculation:
The starting date is converted into a timestamp in seconds.
For each bar on the chart, the number of days since the starting date is calculated.
The indicator checks if the current day matches any of the Fibonacci sequence days, the previous day, or the next day.
In this indicator, Fibonacci numbers can be displayed on the chart as plus and minus 2 days. For example, for the 145th day, signals start to appear as 143,144 and 145. This is due to dates that sometimes coincide with weekends and public holidays.
Marking the Chart:
When a match is found, a label is placed above the bar indicating the day number from the Fibonacci sequence.
These labels are colored blue with white text for easy visibility.
Usage:
This indicator can be used on any timeframe and market to help identify potential areas where price might react.
It is especially useful for those who employ Fibonacci analysis in their trading strategy.
Example:
If the starting date is January 1, 2020, the indicator will mark significant Fibonacci days (e.g., 1, 3, 5, 8 days, etc.) on the chart from this date onward.
Community Guidelines Compliance:
This indicator adheres to TradingView's Pine Script community guidelines.
It provides customizable user inputs and does not violate any terms of use.
By using the FiboSequ indicator, traders can enhance their technical analysis by incorporating time-based Fibonacci levels, potentially leading to better market timing and decision-making.
Frequently Asked Questions (FAQ)
Q: What is the FiboSequ indicator?
A: The FiboSequ indicator is a technical analysis tool that marks significant days on a price chart based on the Fibonacci sequence. This indicator helps traders identify potential turning points or areas of interest in the market.
Q: What is the Fibonacci sequence and why is it important?
A: The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones. The first two numbers are 0 and 1. This sequence frequently appears in nature and financial markets and is used in technical analysis to identify important support and resistance levels.
Q: How do the Fibonacci time zones in the indicator work?
A: Fibonacci time zones are used to identify potential market turning points at specific time intervals. The indicator calculates days based on the Fibonacci sequence (e.g., 1, 3, 5, 8 days, etc.) from the starting date and marks them on the chart.
Q: How can users set the starting date?
A: Users can input the starting date by specifying the year, month, and day. This sets the date from which the indicator begins its calculations, providing flexibility for user analysis.
Q: What do the labels in the indicator represent?
A: The labels mark specific days in the Fibonacci sequence. For example, 1st day, 3rd day, 5th day, etc. These labels are displayed in blue with white text for easy visibility.
Q: Which timeframes can I use the FiboSequ indicator on?
A: The FiboSequ indicator can be used on any timeframe. This includes daily, weekly, or monthly charts, as well as shorter timeframes.
Q: Which markets can the FiboSequ indicator be used in?
A: The FiboSequ indicator can be used in various financial markets, including stocks, forex, cryptocurrencies, commodities, and more.
Q: How can I achieve better market timing with the FiboSequ indicator?
A: The FiboSequ indicator helps identify potential market turning points using time-based Fibonacci levels. This can lead to better market timing and more informed trading decisions for traders.
-Please feel free to write your valuable comments and opinions. I attach importance to your valuable opinions so that I can improve myself.
Sequencer [LuxAlgo]The Sequencer indicator is a tool that is able to highlight sequences of prices based on their relative position to past prices, which allows a high degree of customization from the user.
Two phases are included in this script, a "Preparation" phase and a "Lead-Up" phase, each with a customizable amount of steps, as well as other characteristics.
Users can also highlight the last step leading to each phase completion with a level, this level can eventually be used as a key price point.
🔶 USAGE
The script highlights two phases, each being based on a sequence of events requiring prices to be higher/lower than prices various bars ago.
The completion of the preparation phase will lead to the evaluation of the lead-up phase, however, it isn't uncommon to see a reversal occurring after the completion of a preparation phase. In the script, bullish preparations are highlighted in green, while bearish preparations are highlighted in red.
Completion of a "Lead-Up" phase is indicative of a potential reversal, with a bullish reversal for the completion of a bullish lead-up (in blue), and a bearish reversal for the completion of a bearish lead-up (in orange).
Using a higher length for the preparation/lead-up phases can allow the detection of longer-term reversals.
Users wishing to display levels based on specific phases completion can do so from the settings in the "Preparation/Lead-Up Completion Levels" settings group.
The "Show Last" settings determine the amount of respective levels to display on the chart.
🔶 PREPARATION PHASE
The "Preparation" phase precedes the "Lead-Up" phase. The completion of this phase requires N successive prices to be lower than the closing price P bars ago for a bullish phase, and for prices to be higher than the closing price P bars ago for a bearish phase, where N is the user set "Preparation Phase Length" and P the user set "Comparison Period".
🔹 Refined Preparations
Sequences of the preparation phase can either be "Standard" or "Refined". Unlike the standard preparation previously described a refined preparation requires the low prices from the user-specified steps in "Refined Preparation Steps" to be above the low price of the last step for a bullish preparation phase, and for the high prices specified in the refined preparation steps to be below the high price of the last step for a bearish preparation phase.
🔶 LEAD-UP PHASE
The "Lead-Up" phase is initiated by the completion of the "Preparation" phase.
Completion of this phase requires the price to be lower than the low price P bars ago N times for a bullish phase, and for prices to be higher than the high price P bars ago N times for a bearish phase, where N is the user set "Lead-Up Phase Length" and P the user set "Comparison Period".
Unlike with the "Preparation" phase these conditions don't need to be successive for them to be valid and can occur at any time.
🔹 Lead-Up Cancellation
Incomplete "Lead-Up" phases can be canceled and removed from the chart once a preparation of the opposite sentiment is completed, avoiding lead-ups to be evaluated after completion of complete preparations.
This can be disabled by toggling off "Apply Cancellation".
🔹 Lead-Up Suspension
Like with refined preparations, we can require specific steps from the lead-up phase to be higher/lower than the price on the last step. This can be particularly important since we do not require lead-up steps to be successive.
For a bullish lead-up, the low of the last step must be lower than the minimum closing prices of the user-specified steps for it to be valid, while for a bearish lead-up, the high of the last step must be higher than the maximum closing prices of the user-specified steps for it to be valid.
This effectively allows for eliminating lead-up phases getting completed on opposite trends.
🔶 SETTINGS
🔹 Preparation Phase
Preparation Phase Length: Length of the "Preparation" phase.
Comparison Period: Offset used to compare current prices to past ones.
Preparation Type: Type of preparation to evaluate, options include "Standard" or "Refined"
Refined Preparations Steps: Steps to evaluate when preparation type is "Refined"
🔹 Lead-Up Phase
Lead-Up Phase Length: Length of the "Lead-Up" phase.
Comparison Period: Offset used to compare current prices to past ones.
Suspension: Applies suspension rule to evaluate lead-up completion.
Suspension Steps: Specifies the steps evaluated to determine if the lead-up referral is respected. Multiple steps are supported and should be comma-separated.
Apply Cancellation: Cancellation will remove any incomplete lead-up upon the completion of a new preparation phase of the opposite sentiment.
🔹 Levels
Bullish Preparations Levels: When enabled display price levels from completed bullish preparations.
Show Last: Number of most recent bullish preparations levels to display.
Bearish Preparations Levels: When enabled display price levels from completed bearish preparations.
Show Last: Number of most recent bearish preparations levels to display.
Trend Direction Sequence | Auto-Multi-TimeframeThe main benefit of this indicator is the ability to see multiple higher timeframes at ones to get a better overview of signals that could mark possible trend reversals with more weight than those on the selected timeframe. Since the higher timeframes are calculated automatically, the user needs to set a Period Multiplier that multiplies the selected timeframe several times to determine the higher timeframes. Equal periods are filtered out. And the current highest timeframe is capped at 1 year by TradingView.
It is possible to alter the sequence Count Limit and the underlying Wavelength. The Wavelength defines the distance between the starting and ending candle. This builds the minimum condition to find a trend. A longer Wavelength means that the distortions between the start and end candle can be bigger, so it can become easier to find a trending sequence. But be careful not to set the length too high as this could mean that the resulting sequence does not really represent a trend anymore. The Count Limit defines the completion of a trending sequence. A higher number makes it more difficult to find a completed sequence, but also makes the result more reliable. If the Wavelength is changed, the Count Limit should be adjusted accordingly.
There is also a qualifier for the completion of a sequence. A completed sequence only will be labeled on the chart, if it is proved that the lowest low/highest high of the last two candlesticks of a period is lower/higher than that of the previous two candlesticks. It does not require the trend to be continuous on the last candlestick. On the contrary, a trend shift may already have begun.
By default, the labeling of completed sequences will appear on the highs and lows of the specific periods. Because the higher periods will take time and several candlesticks to appear, the labels will be redrawn accordingly. As an option it is possible to disable the Count Limit for completed sequences so that the labels will be fluently redrawn until the corresponding sequences are interrupted by trend breaks. Only activate this option, if it can serve a plausible strategy.
The count status of all sequences in the specific timeframe periods is listed in a table. Also the results of the trends in higher timeframes are accumulated and combined into an overall trend. Positive trends are counted as positive, negative in the opposite case. To see the resulting Trend Shift Signals, the user can set a filter under 100% so that not all of them will be filtered out and therefore labeled on the chart (this signals cannot be redrawn). An “External Indicator Analysis Overlay” can be used to analyze the profitability with the provided Trend Shift Signal (TSS) which switches from 0 to 1, if the trend becomes positive or from 0 to -1, if the trend becomes negative.
MarkovChainLibrary "MarkovChain"
Generic Markov Chain type functions.
---
A Markov chain or Markov process is a stochastic model describing a sequence of possible events in which the
probability of each event depends only on the state attained in the previous event.
---
reference:
Understanding Markov Chains, Examples and Applications. Second Edition. Book by Nicolas Privault.
en.wikipedia.org
www.geeksforgeeks.org
towardsdatascience.com
github.com
stats.stackexchange.com
timeseriesreasoning.com
www.ris-ai.com
github.com
gist.github.com
github.com
gist.github.com
writings.stephenwolfram.com
kevingal.com
towardsdatascience.com
spedygiorgio.github.io
github.com
www.projectrhea.org
method to_string(this)
Translate a Markov Chain object to a string format.
Namespace types: MC
Parameters:
this (MC) : `MC` . Markov Chain object.
Returns: string
method to_table(this, position, text_color, text_size)
Namespace types: MC
Parameters:
this (MC)
position (string)
text_color (color)
text_size (string)
method create_transition_matrix(this)
Namespace types: MC
Parameters:
this (MC)
method generate_transition_matrix(this)
Namespace types: MC
Parameters:
this (MC)
new_chain(states, name)
Parameters:
states (state )
name (string)
from_data(data, name)
Parameters:
data (string )
name (string)
method probability_at_step(this, target_step)
Namespace types: MC
Parameters:
this (MC)
target_step (int)
method state_at_step(this, start_state, target_state, target_step)
Namespace types: MC
Parameters:
this (MC)
start_state (int)
target_state (int)
target_step (int)
method forward(this, obs)
Namespace types: HMC
Parameters:
this (HMC)
obs (int )
method backward(this, obs)
Namespace types: HMC
Parameters:
this (HMC)
obs (int )
method viterbi(this, observations)
Namespace types: HMC
Parameters:
this (HMC)
observations (int )
method baumwelch(this, observations)
Namespace types: HMC
Parameters:
this (HMC)
observations (int )
Node
Target node.
Fields:
index (series int) : . Key index of the node.
probability (series float) : . Probability rate of activation.
state
State reference.
Fields:
name (series string) : . Name of the state.
index (series int) : . Key index of the state.
target_nodes (Node ) : . List of index references and probabilities to target states.
MC
Markov Chain reference object.
Fields:
name (series string) : . Name of the chain.
states (state ) : . List of state nodes and its name, index, targets and transition probabilities.
size (series int) : . Number of unique states
transitions (matrix) : . Transition matrix
HMC
Hidden Markov Chain reference object.
Fields:
name (series string) : . Name of thehidden chain.
states_hidden (state ) : . List of state nodes and its name, index, targets and transition probabilities.
states_obs (state ) : . List of state nodes and its name, index, targets and transition probabilities.
transitions (matrix) : . Transition matrix
emissions (matrix) : . Emission matrix
initial_distribution (float )
FunctionProbabilityViterbiLibrary "FunctionProbabilityViterbi"
The Viterbi Algorithm calculates the most likely sequence of hidden states *(called Viterbi path)*
that results in a sequence of observed events.
viterbi(observations, transitions, emissions, initial_distribution)
Calculate most probable path in a Markov model.
Parameters:
observations (int ) : array . Observation states data.
transitions (matrix) : matrix . Transition probability table, (HxH, H:Hidden states).
emissions (matrix) : matrix . Emission probability table, (OxH, O:Observed states).
initial_distribution (float ) : array . Initial probability distribution for the hidden states.
Returns: array. Most probable path.
FunctionBaumWelchLibrary "FunctionBaumWelch"
Baum-Welch Algorithm, also known as Forward-Backward Algorithm, uses the well known EM algorithm
to find the maximum likelihood estimate of the parameters of a hidden Markov model given a set of observed
feature vectors.
---
### Function List:
> `forward (array pi, matrix a, matrix b, array obs)`
> `forward (array pi, matrix a, matrix b, array obs, bool scaling)`
> `backward (matrix a, matrix b, array obs)`
> `backward (matrix a, matrix b, array obs, array c)`
> `baumwelch (array observations, int nstates)`
> `baumwelch (array observations, array pi, matrix a, matrix b)`
---
### Reference:
> en.wikipedia.org
> github.com
> en.wikipedia.org
> www.rdocumentation.org
> www.rdocumentation.org
forward(pi, a, b, obs)
Computes forward probabilities for state `X` up to observation at time `k`, is defined as the
probability of observing sequence of observations `e_1 ... e_k` and that the state at time `k` is `X`.
Parameters:
pi (float ) : Initial probabilities.
a (matrix) : Transmissions, hidden transition matrix a or alpha = transition probability matrix of changing
states given a state matrix is size (M x M) where M is number of states.
b (matrix) : Emissions, matrix of observation probabilities b or beta = observation probabilities. Given
state matrix is size (M x O) where M is number of states and O is number of different
possible observations.
obs (int ) : List with actual state observation data.
Returns: - `matrix _alpha`: Forward probabilities. The probabilities are given on a logarithmic scale (natural logarithm). The first
dimension refers to the state and the second dimension to time.
forward(pi, a, b, obs, scaling)
Computes forward probabilities for state `X` up to observation at time `k`, is defined as the
probability of observing sequence of observations `e_1 ... e_k` and that the state at time `k` is `X`.
Parameters:
pi (float ) : Initial probabilities.
a (matrix) : Transmissions, hidden transition matrix a or alpha = transition probability matrix of changing
states given a state matrix is size (M x M) where M is number of states.
b (matrix) : Emissions, matrix of observation probabilities b or beta = observation probabilities. Given
state matrix is size (M x O) where M is number of states and O is number of different
possible observations.
obs (int ) : List with actual state observation data.
scaling (bool) : Normalize `alpha` scale.
Returns: - #### Tuple with:
> - `matrix _alpha`: Forward probabilities. The probabilities are given on a logarithmic scale (natural logarithm). The first
dimension refers to the state and the second dimension to time.
> - `array _c`: Array with normalization scale.
backward(a, b, obs)
Computes backward probabilities for state `X` and observation at time `k`, is defined as the probability of observing the sequence of observations `e_k+1, ... , e_n` under the condition that the state at time `k` is `X`.
Parameters:
a (matrix) : Transmissions, hidden transition matrix a or alpha = transition probability matrix of changing states
given a state matrix is size (M x M) where M is number of states
b (matrix) : Emissions, matrix of observation probabilities b or beta = observation probabilities. given state
matrix is size (M x O) where M is number of states and O is number of different possible observations
obs (int ) : Array with actual state observation data.
Returns: - `matrix _beta`: Backward probabilities. The probabilities are given on a logarithmic scale (natural logarithm). The first dimension refers to the state and the second dimension to time.
backward(a, b, obs, c)
Computes backward probabilities for state `X` and observation at time `k`, is defined as the probability of observing the sequence of observations `e_k+1, ... , e_n` under the condition that the state at time `k` is `X`.
Parameters:
a (matrix) : Transmissions, hidden transition matrix a or alpha = transition probability matrix of changing states
given a state matrix is size (M x M) where M is number of states
b (matrix) : Emissions, matrix of observation probabilities b or beta = observation probabilities. given state
matrix is size (M x O) where M is number of states and O is number of different possible observations
obs (int ) : Array with actual state observation data.
c (float ) : Array with Normalization scaling coefficients.
Returns: - `matrix _beta`: Backward probabilities. The probabilities are given on a logarithmic scale (natural logarithm). The first dimension refers to the state and the second dimension to time.
baumwelch(observations, nstates)
**(Random Initialization)** Baum–Welch algorithm is a special case of the expectation–maximization algorithm used to find the
unknown parameters of a hidden Markov model (HMM). It makes use of the forward-backward algorithm
to compute the statistics for the expectation step.
Parameters:
observations (int ) : List of observed states.
nstates (int)
Returns: - #### Tuple with:
> - `array _pi`: Initial probability distribution.
> - `matrix _a`: Transition probability matrix.
> - `matrix _b`: Emission probability matrix.
---
requires: `import RicardoSantos/WIPTensor/2 as Tensor`
baumwelch(observations, pi, a, b)
Baum–Welch algorithm is a special case of the expectation–maximization algorithm used to find the
unknown parameters of a hidden Markov model (HMM). It makes use of the forward-backward algorithm
to compute the statistics for the expectation step.
Parameters:
observations (int ) : List of observed states.
pi (float ) : Initial probaility distribution.
a (matrix) : Transmissions, hidden transition matrix a or alpha = transition probability matrix of changing states
given a state matrix is size (M x M) where M is number of states
b (matrix) : Emissions, matrix of observation probabilities b or beta = observation probabilities. given state
matrix is size (M x O) where M is number of states and O is number of different possible observations
Returns: - #### Tuple with:
> - `array _pi`: Initial probability distribution.
> - `matrix _a`: Transition probability matrix.
> - `matrix _b`: Emission probability matrix.
---
requires: `import RicardoSantos/WIPTensor/2 as Tensor`
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.
Sequence Distribution Reporta basic tool to retrieve statistics of the distribution of price range sequences.
Function - Sequence From SeriesFunction to create a array from a sample taken from a series (ex:. close, hlc3...).
[e2] Fibonacci, Tribonacci, Tetranacci Sequence CalculatorThe script is a simple calculator to obtain numbers of Fibonacci, Tribonacci or Tetranacci Sequence.
The script contain calculations for constants (up to 16 digits) that could be used as one of the sequence's number.
The Calculator has 3 modes. Users can define the numbers to initialize the sequence in the options:
- The Fibonacci Sequence is the series of numbers, every next number is found by adding up the two numbers before it.
xn = xn-1 + xn-2
fiConst variable = Fibonacci Constant(Golden Ratio) - 1.61803...
"Classic" Sequence initialize with numbers {0, 1}. Output: 1,2,3,5,8,13,21...
To Calculate the Fibonacci Extensions the sequence should be initialized with {1, fiConst}. Output: 2.618, 4.236, 6.854...
- The Tribonacci Sequence is the series of numbers, every next number is found by adding up the three numbers before it.
xn = xn-1 + xn-2 + xn-3
trConst variable = Tribonacci Constant - 1.83929...
"Classic" Sequence initialize with numbers {0, 0, 1}. Output: 1,2,4,7,13,24...
To Calculate the Tribonacci Extensions the sequence should be initialized with {0, 1, trConst}. Output: 2.839, 5.679, 10.357...
- The Tetranacci Sequence is the series of numbers, every next number is found by adding up the four numbers before it.
xn = xn-1 + xn-2 + xn-3 + xn-4
teConst variable = Tetranacci Constant - 1.92756...
"Classic" Sequence initialize with numbers {0, 0, 0, 1}. Output: 1,2,4,8,15,29,56...
To Calculate the Tetranacci Extensions the sequence should be initialized with {0, 0, 1, teConst}. Output: 2.928, 5.855, 11.710...
The Calculator can return a single number or a set of numbers based on the selected sequence mode.
The script is made for other scripts integration rather than stand-alone usage.
Sequentially Filtered Moving AverageThe previously proposed sequential filter aimed to filter variations lower than a certain period, this allowed to remove noisy variations and retain only the closing price values that occurred after a consecutive up/down, however because of the noisy nature of the closing price large filtering was impossible, in order to tackle to this problem the same indicator using a simple moving average as input is proposed, this allow for smoother results.
We will see that the proposed indicator can provide an alternative moving average that could be used as slow moving average in crossover systems.
The Indicator
The length parameter as the same function as the one described in the sequential filter post, however here length also control the period of the moving average used input, in short larger values of length will return a smoother but less reactive output.
In blue the moving average with length = 200, and in red the moving average with length = 50.
It is interesting to see how the moving average remain flat during ranging/flat market periods
Unfortunately like the sequential filter the sequentially filtered moving average (SFMA) is not affected by large short term variations such as gaps or short term volatile events. This is because of the nature of the sequential filter to ignore movements amplitude and only focus on the variation period.
Moving Average Crossover System
The SFMA is equal to a simple moving average of period length when a consecutive up/down sequence of size length has occurred, else the SFMA is equal to its precedent value, therefore we could expect less crosses between a fast moving average and the SFMA as slow moving average.
We can see on the figure above that the fast moving average of period 50 (in green) cross more with the slow moving average of period 200 (in red) than with the SFMA of period 200 (in blue).
Crosses can occur at the same time as with the classical slow moving average (in red) or a bit later.
Conclusion
A new moving average based on the recently proposed sequential filter has been proposed, it can be seen that under a moving average crossover system the proposed moving average seems to be more effective at producing less crosses without necessarily doing it with an excessive lag, in fact the moving average has either lag (length-1)/2 or lag length .
In the future it could be interesting to provide an hybrid alternative that take into account volatility as well as variations period.
Thanks for reading !
Farey Sequence Weighted Moving AverageA moving average that weighted with Farey fractions. It matches a standard linear weighted average almost one-to-one. Why? Because both averages have strictly monotonic weighting sequences and assign a higher weight to latests data. So, Farey weights are just scaled to linear ones. Instead of specifing period you specify an order of Farey sequence. To learn more about Farey sequence you can refer to Wiki
Published just for reference, it is not intended for trading purposes.
[RS]Study of sequence ratio V0counts N of sequences, N of bars, N of same open/close value, and N of sequences from 1 -> 10+ bar sequences in a direction up/down.
[RS]Study into sequential probabilitys V0EXPERIMENTAL:
just some experimentation to check results, putting it out there. :P
odds of the next bar being up or down bar.
[RS]Price Linear Sequence CounterSimple green/red sequence counter, also gives current highest achieved sequence(black lines).