GKD-C STD-Filtered, Truncated Taylor FIR Filter [Loxx]Giga Kaleidoscope GKD-C STD-Filtered, Truncated Taylor Family FIR Filter is a Confirmation module included in Loxx's "Giga Kaleidoscope Modularized Trading System".
█ GKD-C STD-Filtered, Truncated Taylor Family FIR Filter
Exploring the Truncated Taylor Family FIR Filter with Standard Deviation Filtering
Filters play a vital role in signal processing, allowing us to extract valuable information from raw data by removing unwanted noise or highlighting specific features. In the context of financial data analysis, filtering techniques can help traders identify trends and make informed decisions. Below, we delve into the workings of a Truncated Taylor Family Finite Impulse Response (FIR) Filter with standard deviation filtering applied to the input and output signals. We will examine the code provided, breaking down the mathematical formulas and concepts behind it.
The code consists of two main sections: the design function that calculates the FIR filter coefficients and the stdFilter function that applies standard deviation filtering to the input signal.
design(int per, float taylorK)=>
float coeffs = array.new(per, 0)
float coeffsSum = 0
float _div = per + 1.0
float _coeff = 1
for i = 0 to per - 1
_coeff := (1 + taylorK) / 2 - (1 - taylorK) / 2 * math.cos(2.0 * math.pi * (i + 1) / _div)
array.set(coeffs,i, _coeff)
coeffsSum += _coeff
stdFilter(float src, int len, float filter)=>
float price = src
float filtdev = filter * ta.stdev(src, len)
price := math.abs(price - nz(price )) < filtdev ? nz(price ) : price
price
Design Function
The design function takes two arguments: an integer 'per' representing the number of coefficients for the FIR filter, and a floating-point number 'taylorK' to adjust the filter's characteristics. The function initializes an array 'coeffs' of length 'per' and sets all elements to 0. It also initializes variables 'coeffsSum', '_div', and '_coeff' to store the sum of the coefficients, a divisor for the cosine calculation, and the current coefficient, respectively.
A for loop iterates through the range of 0 to per-1, calculating the FIR filter coefficients using the formula:
_coeff := (1 + taylorK) / 2 - (1 - taylorK) / 2 * math.cos(2.0 * math.pi * (i + 1) / _div)
The calculated coefficients are stored in the 'coeffs' array, and their sum is stored in 'coeffsSum'. The function returns both 'coeffs' and 'coeffsSum' as a list.
stdFilter Function
The stdFilter function takes three arguments: a floating-point number 'src' representing the input signal, an integer 'len' for the standard deviation calculation period, and a floating-point number 'filter' to adjust the standard deviation filtering strength.
The function initializes a 'price' variable equal to 'src' and calculates the filtered standard deviation 'filtdev' using the formula:
filtdev = filter * ta.stdev(src, len)
The 'price' variable is then updated based on whether the absolute difference between the current price and the previous price is less than 'filtdev'. If true, 'price' is set to the previous price, effectively filtering out noise. Otherwise, 'price' remains unchanged.
Application of Design and stdFilter Functions
First, the input signal 'src' is filtered using the stdFilter function if the 'filterop' variable is set to "Both" or "Price", and 'filter' is greater than 0.
Next, the design function is called with the 'per' and 'taylorK' arguments to calculate the FIR filter coefficients and their sum. These values are stored in 'coeffs' and 'coeffsSum', respectively.
A for loop iterates through the range of 0 to per-1, calculating the filtered output 'dSum' using the formula:
dSum += nz(src ) * array.get(coeffs, k)
The output signal 'out' is then computed by dividing 'dSum' by 'coeffsSum' if 'coeffsSum' is not equal to 0; otherwise, 'out' is set to 0.
Finally, the output signal 'out' is filtered using the stdFilter function if the 'filterop' variable is set to "Both" or "Truncated Taylor FIR Filter", and 'filter' is greater than 0. The filtered signal is stored in the 'sig' variable.
The Truncated Taylor Family FIR Filter with Standard Deviation Filtering combines the strengths of two powerful filtering techniques to process financial data. By first designing the filter coefficients using the Taylor family FIR filter and then applying standard deviation filtering, the algorithm effectively removes noise and highlights relevant trends in the input signal. This approach allows traders and analysts to make more informed decisions based on the processed data.
In summary, the provided code effectively demonstrates how to create a custom FIR filter based on the Truncated Taylor family, along with standard deviation filtering applied to both input and output signals. This combination of filtering techniques enhances the overall filtering performance, making it a valuable tool for financial data analysis and decision-making processes. As the world of finance continues to evolve and generate increasingly complex data, the importance of robust and efficient filtering techniques cannot be overstated.
█ Giga Kaleidoscope Modularized Trading System
Core components of an NNFX algorithmic trading strategy
The NNFX algorithm is built on the principles of trend, momentum, and volatility. There are six core components in the NNFX trading algorithm:
1. Volatility - price volatility; e.g., Average True Range, True Range Double, Close-to-Close, etc.
2. Baseline - a moving average to identify price trend
3. Confirmation 1 - a technical indicator used to identify trends
4. Confirmation 2 - a technical indicator used to identify trends
5. Continuation - a technical indicator used to identify trends
6. Volatility/Volume - a technical indicator used to identify volatility/volume breakouts/breakdown
7. Exit - a technical indicator used to determine when a trend is exhausted
What is Volatility in the NNFX trading system?
In the NNFX (No Nonsense Forex) trading system, ATR (Average True Range) is typically used to measure the volatility of an asset. It is used as a part of the system to help determine the appropriate stop loss and take profit levels for a trade. ATR is calculated by taking the average of the true range values over a specified period.
True range is calculated as the maximum of the following values:
-Current high minus the current low
-Absolute value of the current high minus the previous close
-Absolute value of the current low minus the previous close
ATR is a dynamic indicator that changes with changes in volatility. As volatility increases, the value of ATR increases, and as volatility decreases, the value of ATR decreases. By using ATR in NNFX system, traders can adjust their stop loss and take profit levels according to the volatility of the asset being traded. This helps to ensure that the trade is given enough room to move, while also minimizing potential losses.
Other types of volatility include True Range Double (TRD), Close-to-Close, and Garman-Klass
What is a Baseline indicator?
The baseline is essentially a moving average, and is used to determine the overall direction of the market.
The baseline in the NNFX system is used to filter out trades that are not in line with the long-term trend of the market. The baseline is plotted on the chart along with other indicators, such as the Moving Average (MA), the Relative Strength Index (RSI), and the Average True Range (ATR).
Trades are only taken when the price is in the same direction as the baseline. For example, if the baseline is sloping upwards, only long trades are taken, and if the baseline is sloping downwards, only short trades are taken. This approach helps to ensure that trades are in line with the overall trend of the market, and reduces the risk of entering trades that are likely to fail.
By using a baseline in the NNFX system, traders can have a clear reference point for determining the overall trend of the market, and can make more informed trading decisions. The baseline helps to filter out noise and false signals, and ensures that trades are taken in the direction of the long-term trend.
What is a Confirmation indicator?
Confirmation indicators are technical indicators that are used to confirm the signals generated by primary indicators. Primary indicators are the core indicators used in the NNFX system, such as the Average True Range (ATR), the Moving Average (MA), and the Relative Strength Index (RSI).
The purpose of the confirmation indicators is to reduce false signals and improve the accuracy of the trading system. They are designed to confirm the signals generated by the primary indicators by providing additional information about the strength and direction of the trend.
Some examples of confirmation indicators that may be used in the NNFX system include the Bollinger Bands, the MACD (Moving Average Convergence Divergence), and the MACD Oscillator. These indicators can provide information about the volatility, momentum, and trend strength of the market, and can be used to confirm the signals generated by the primary indicators.
In the NNFX system, confirmation indicators are used in combination with primary indicators and other filters to create a trading system that is robust and reliable. By using multiple indicators to confirm trading signals, the system aims to reduce the risk of false signals and improve the overall profitability of the trades.
What is a Continuation indicator?
In the NNFX (No Nonsense Forex) trading system, a continuation indicator is a technical indicator that is used to confirm a current trend and predict that the trend is likely to continue in the same direction. A continuation indicator is typically used in conjunction with other indicators in the system, such as a baseline indicator, to provide a comprehensive trading strategy.
What is a Volatility/Volume indicator?
Volume indicators, such as the On Balance Volume (OBV), the Chaikin Money Flow (CMF), or the Volume Price Trend (VPT), are used to measure the amount of buying and selling activity in a market. They are based on the trading volume of the market, and can provide information about the strength of the trend. In the NNFX system, volume indicators are used to confirm trading signals generated by the Moving Average and the Relative Strength Index. Volatility indicators include Average Direction Index, Waddah Attar, and Volatility Ratio. In the NNFX trading system, volatility is a proxy for volume and vice versa.
By using volume indicators as confirmation tools, the NNFX trading system aims to reduce the risk of false signals and improve the overall profitability of trades. These indicators can provide additional information about the market that is not captured by the primary indicators, and can help traders to make more informed trading decisions. In addition, volume indicators can be used to identify potential changes in market trends and to confirm the strength of price movements.
What is an Exit indicator?
The exit indicator is used in conjunction with other indicators in the system, such as the Moving Average (MA), the Relative Strength Index (RSI), and the Average True Range (ATR), to provide a comprehensive trading strategy.
The exit indicator in the NNFX system can be any technical indicator that is deemed effective at identifying optimal exit points. Examples of exit indicators that are commonly used include the Parabolic SAR, the Average Directional Index (ADX), and the Chandelier Exit.
The purpose of the exit indicator is to identify when a trend is likely to reverse or when the market conditions have changed, signaling the need to exit a trade. By using an exit indicator, traders can manage their risk and prevent significant losses.
In the NNFX system, the exit indicator is used in conjunction with a stop loss and a take profit order to maximize profits and minimize losses. The stop loss order is used to limit the amount of loss that can be incurred if the trade goes against the trader, while the take profit order is used to lock in profits when the trade is moving in the trader's favor.
Overall, the use of an exit indicator in the NNFX trading system is an important component of a comprehensive trading strategy. It allows traders to manage their risk effectively and improve the profitability of their trades by exiting at the right time.
How does Loxx's GKD (Giga Kaleidoscope Modularized Trading System) implement the NNFX algorithm outlined above?
Loxx's GKD v1.0 system has five types of modules (indicators/strategies). These modules are:
1. GKD-BT - Backtesting module (Volatility, Number 1 in the NNFX algorithm)
2. GKD-B - Baseline module (Baseline and Volatility/Volume, Numbers 1 and 2 in the NNFX algorithm)
3. GKD-C - Confirmation 1/2 and Continuation module (Confirmation 1/2 and Continuation, Numbers 3, 4, and 5 in the NNFX algorithm)
4. GKD-V - Volatility/Volume module (Confirmation 1/2, Number 6 in the NNFX algorithm)
5. GKD-E - Exit module (Exit, Number 7 in the NNFX algorithm)
(additional module types will added in future releases)
Each module interacts with every module by passing data between modules. Data is passed between each module as described below:
GKD-B => GKD-V => GKD-C(1) => GKD-C(2) => GKD-C(Continuation) => GKD-E => GKD-BT
That is, the Baseline indicator passes its data to Volatility/Volume. The Volatility/Volume indicator passes its values to the Confirmation 1 indicator. The Confirmation 1 indicator passes its values to the Confirmation 2 indicator. The Confirmation 2 indicator passes its values to the Continuation indicator. The Continuation indicator passes its values to the Exit indicator, and finally, the Exit indicator passes its values to the Backtest strategy.
This chaining of indicators requires that each module conform to Loxx's GKD protocol, therefore allowing for the testing of every possible combination of technical indicators that make up the six components of the NNFX algorithm.
What does the application of the GKD trading system look like?
Example trading system:
Backtest: Strategy with 1-3 take profits, trailing stop loss, multiple types of PnL volatility, and 2 backtesting styles
Baseline: Hull Moving Average
Volatility/Volume: Hurst Exponent
Confirmation 1: STD-Filtered, Truncated Taylor Family FIR Filter as shown on the chart above
Confirmation 2: Williams Percent Range
Continuation: Fisher Transform
Exit: Rex Oscillator
Each GKD indicator is denoted with a module identifier of either: GKD-BT, GKD-B, GKD-C, GKD-V, or GKD-E. This allows traders to understand to which module each indicator belongs and where each indicator fits into the GKD protocol chain.
Giga Kaleidoscope Modularized Trading System Signals (based on the NNFX algorithm)
Standard Entry
1. GKD-C Confirmation 1 Signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
6. GKD-C Confirmation 1 signal was less than 7 candles prior
Volatility/Volume Entry
1. GKD-V Volatility/Volume signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-B Baseline agrees
6. GKD-C Confirmation 1 signal was less than 7 candles prior
Continuation Entry
1. Standard Entry, Baseline Entry, or Pullback; entry triggered previously
2. GKD-B Baseline hasn't crossed since entry signal trigger
3. GKD-C Confirmation Continuation Indicator signals
4. GKD-C Confirmation 1 agrees
5. GKD-B Baseline agrees
6. GKD-C Confirmation 2 agrees
1-Candle Rule Standard Entry
1. GKD-C Confirmation 1 signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
Next Candle:
1. Price retraced (Long: close < close or Short: close > close )
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
1-Candle Rule Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 1 signal was less than 7 candles prior
Next Candle:
1. Price retraced (Long: close < close or Short: close > close )
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume Agrees
1-Candle Rule Volatility/Volume Entry
1. GKD-V Volatility/Volume signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 1 signal was less than 7 candles prior
Next Candle:
1. Price retraced (Long: close < close or Short: close > close)
2. GKD-B Volatility/Volume agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-B Baseline agrees
PullBack Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is beyond 1.0x Volatility of Baseline
Next Candle:
1. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
2. GKD-C Confirmation 1 agrees
3. GKD-C Confirmation 2 agrees
4. GKD-V Volatility/Volume Agrees
]█ Setting up the GKD
The GKD system involves chaining indicators together. These are the steps to set this up.
Use a GKD-C indicator alone on a chart
1. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Simple"
Use a GKD-V indicator alone on a chart
**nothing, it's already useable on the chart without any settings changes
Use a GKD-B indicator alone on a chart
**nothing, it's already useable on the chart without any settings changes
Baseline (Baseline, Backtest)
1. Import the GKD-B Baseline into the GKD-BT Backtest: "Input into Volatility/Volume or Backtest (Baseline testing)"
2. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Baseline"
Volatility/Volume (Volatility/Volume, Backte st)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Solo"
2. Inside the GKD-V indicator, change the "Signal Type" setting to "Crossing" (neither traditional nor both can be backtested)
3. Import the GKD-V indicator into the GKD-BT Backtest: "Input into C1 or Backtest"
4. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Volatility/Volume"
5. Inside the GKD-BT Backtest, a) change the setting "Backtest Type" to "Trading" if using a directional GKD-V indicator; or, b) change the setting "Backtest Type" to "Full" if using a directional or non-directional GKD-V indicator (non-directional GKD-V can only test Longs and Shorts separately)
6. If "Backtest Type" is set to "Full": Inside the GKD-BT Backtest, change the setting "Backtest Side" to "Long" or "Short
7. If "Backtest Type" is set to "Full": To allow the system to open multiple orders at one time so you test all Longs or Shorts, open the GKD-BT Backtest, click the tab "Properties" and then insert a value of something like 10 orders into the "Pyramiding" settings. This will allow 10 orders to be opened at one time which should be enough to catch all possible Longs or Shorts.
Solo Confirmation Simple (Confirmation, Backtest)
1. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Simple"
1. Import the GKD-C indicator into the GKD-BT Backtest: "Input into Backtest"
2. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Solo Confirmation Simple"
Solo Confirmation Complex without Exits (Baseline, Volatility/Volume, Confirmation, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Complex"
4. Import the GKD-V indicator into the GKD-C indicator: "Input into C1 or Backtest"
5. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full wo/ Exits"
6. Import the GKD-C into the GKD-BT Backtest: "Input into Exit or Backtest"
Solo Confirmation Complex with Exits (Baseline, Volatility/Volume, Confirmation, Exit, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Complex"
4. Import the GKD-V indicator into the GKD-C indicator: "Input into C1 or Backtest"
5. Import the GKD-C indicator into the GKD-E indicator: "Input into Exit"
6. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full w/ Exits"
7. Import the GKD-E into the GKD-BT Backtest: "Input into Backtest"
Full GKD without Exits (Baseline, Volatility/Volume, Confirmation 1, Confirmation 2, Continuation, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C 1 indicator, change the "Confirmation Type" setting to "Confirmation 1"
4. Import the GKD-V indicator into the GKD-C 1 indicator: "Input into C1 or Backtest"
5. Inside the GKD-C 2 indicator, change the "Confirmation Type" setting to "Confirmation 2"
6. Import the GKD-C 1 indicator into the GKD-C 2 indicator: "Input into C2"
7. Inside the GKD-C Continuation indicator, change the "Confirmation Type" setting to "Continuation"
8. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full wo/ Exits"
9. Import the GKD-E into the GKD-BT Backtest: "Input into Exit or Backtest"
Full GKD with Exits (Baseline, Volatility/Volume, Confirmation 1, Confirmation 2, Continuation, Exit, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C 1 indicator, change the "Confirmation Type" setting to "Confirmation 1"
4. Import the GKD-V indicator into the GKD-C 1 indicator: "Input into C1 or Backtest"
5. Inside the GKD-C 2 indicator, change the "Confirmation Type" setting to "Confirmation 2"
6. Import the GKD-C 1 indicator into the GKD-C 2 indicator: "Input into C2"
7. Inside the GKD-C Continuation indicator, change the "Confirmation Type" setting to "Continuation"
8. Import the GKD-C Continuation indicator into the GKD-E indicator: "Input into Exit"
9. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full w/ Exits"
10. Import the GKD-E into the GKD-BT Backtest: "Input into Backtest"
Baseline + Volatility/Volume (Baseline, Volatility/Volume, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Baseline + Volatility/Volume"
2. Inside the GKD-V indicator, make sure the "Signal Type" setting is set to "Traditional"
3. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
4. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Baseline + Volatility/Volume"
5. Import the GKD-V into the GKD-BT Backtest: "Input into C1 or Backtest"
6. Inside the GKD-BT Backtest, change the setting "Backtest Type" to "Full". For this backtest, you must test Longs and Shorts separately
7. To allow the system to open multiple orders at one time so you can test all Longs or Shorts, open the GKD-BT Backtest, click the tab "Properties" and then insert a value of something like 10 orders into the "Pyramiding" settings. This will allow 10 orders to be opened at one time which should be enough to catch all possible Longs or Shorts.
Requirements
Inputs
Confirmation 1: GKD-V Volatility / Volume indicator
Confirmation 2: GKD-C Confirmation indicator
Continuation: GKD-C Confirmation indicator
Solo Confirmation Simple: GKD-B Baseline
Solo Confirmation Complex: GKD-V Volatility / Volume indicator
Solo Confirmation Super Complex: GKD-V Volatility / Volume indicator
Stacked 1: None
Stacked 2+: GKD-C, GKD-V, or GKD-B Stacked 1
Outputs
Confirmation 1: GKD-C Confirmation 2 indicator
Confirmation 2: GKD-C Continuation indicator
Continuation: GKD-E Exit indicator
Solo Confirmation Simple: GKD-BT Backtest
Solo Confirmation Complex: GKD-BT Backtest or GKD-E Exit indicator
Solo Confirmation Super Complex: GKD-C Continuation indicator
Stacked 1: GKD-C, GKD-V, or GKD-B Stacked 2+
Stacked 2+: GKD-C, GKD-V, or GKD-B Stacked 2+ or GKD-BT Backtest
Additional features will be added in future releases.
Pesquisar nos scripts por "algo"
GKD-C Step Chart of RSX of Averages [Loxx]Giga Kaleidoscope GKD-C Step Chart of RSX of Averages is a Confirmation module included in Loxx's "Giga Kaleidoscope Modularized Trading System".
█ GKD-C Step Chart of RSX of Averages
What is the RSX?
The Jurik RSX is a technical indicator developed by Mark Jurik to measure the momentum and strength of price movements in financial markets, such as stocks, commodities, and currencies. It is an advanced version of the traditional Relative Strength Index (RSI), designed to offer smoother and less lagging signals compared to the standard RSI.
The main advantage of the Jurik RSX is that it provides more accurate and timely signals for traders and analysts, thanks to its improved calculation methods that reduce noise and lag in the indicator's output. This enables better decision-making when analyzing market trends and potential trading opportunities.
A Comprehensive Analysis of the stepChart() Algorithm for Financial Technical Analysis
Technical analysis is a widely adopted method for forecasting financial market trends by evaluating historical price data and utilizing various statistical tools. We examine an algorithm that implements the stepChart() function, a custom indicator designed to assist traders in identifying trends and making more informed decisions. We will provide an in-depth analysis of the code, exploring its structure, purpose, and functionality.
The code can be divided into two main sections: the stepChart() function definition and its application to charting data. We will first examine the stepChart() function definition, followed by its application.
stepChart() Function Definition
The stepChart() function takes two arguments: a floating-point number 'srcprice' representing the source price and a simple integer 'stepSize' to determine the increment for evaluating trends.
Within the function, five floating-point variables are initialized: steps, trend, rtrend, rbar_high, and rbar_low. These variables will be used to compute the step chart values and store the trends and bar high/low values.
The 'bar_index' variable is employed to identify the current bar in the price chart. If the current bar is the first one (bar_index == 0), the function initializes the steps, rbar_high, rbar_low, trend, and rtrend variables using the source price and step size. If stepSize is greater than 0, the variables are initialized using the rounded value of srcprice divided by stepSize, multiplied by stepSize. Otherwise, they are initialized to srcprice.
In the following part of the function, the code checks if the absolute difference between the source price and the previous steps value is less than the step size. If true, the current steps value remains unchanged. If not, the code enters a while loop that continues incrementing or decrementing the steps value by the step size until the absolute difference between the source price and the steps value is less than or equal to the step size.
Next, the trend variable is calculated based on the relationship between the current steps value and the previous steps value. The rbar_high, rbar_low, and rtrend variables are updated accordingly.
Finally, the function returns a list containing rbar_high, rbar_low, and rtrend values.
Application of the stepChart() Function
In this section, the stepChart() function is applied to the RSX of the smoothed moving average of the closing prices of a financial instrument. The moving average and RSX functions are used to calculate the moving average and RSX, respectively.
The stepChart() function is called with the RSX values and the user-defined step size. The resulting values are stored in the rbar_high, rbar_low, and rtrend variables.
Next, the bar_high, bar_low, bar_close, and bar_open variables are set based on the values of rbar_high, rbar_low, and rtrend. These variables will be used to plot the stepChart() on the price chart. The bar_high variable is set to rbar_high, and the bar_low variable is set to rbar_high if rbar_high is equal to rbar_low, or to rbar_low otherwise. The bar_close variable is set to bar_high if rtrend equals 1, and to bar_low otherwise. Lastly, the bar_open variable is set to bar_low if rtrend equals 1, and to bar_high otherwise.
Finally, we use the built in Pine function plotcandle to plot the candles on the chart.
The stepChart() function is an innovative technical analysis tool designed to help traders identify trends in financial markets. By combining the RSX and moving average indicators and utilizing the step chart approach, this custom indicator provides a visually appealing and intuitive representation of price trends. Understanding the intricacies of this code can prove invaluable for traders looking to make well-informed decisions
Core components of an NNFX algorithmic trading strategy
The NNFX algorithm is built on the principles of trend, momentum, and volatility. There are six core components in the NNFX trading algorithm:
1. Volatility - price volatility; e.g., Average True Range, True Range Double, Close-to-Close, etc.
2. Baseline - a moving average to identify price trend
3. Confirmation 1 - a technical indicator used to identify trends
4. Confirmation 2 - a technical indicator used to identify trends
5. Continuation - a technical indicator used to identify trends
6. Volatility/Volume - a technical indicator used to identify volatility/volume breakouts/breakdown
7. Exit - a technical indicator used to determine when a trend is exhausted
What is Volatility in the NNFX trading system?
In the NNFX (No Nonsense Forex) trading system, ATR (Average True Range) is typically used to measure the volatility of an asset. It is used as a part of the system to help determine the appropriate stop loss and take profit levels for a trade. ATR is calculated by taking the average of the true range values over a specified period.
True range is calculated as the maximum of the following values:
-Current high minus the current low
-Absolute value of the current high minus the previous close
-Absolute value of the current low minus the previous close
ATR is a dynamic indicator that changes with changes in volatility. As volatility increases, the value of ATR increases, and as volatility decreases, the value of ATR decreases. By using ATR in NNFX system, traders can adjust their stop loss and take profit levels according to the volatility of the asset being traded. This helps to ensure that the trade is given enough room to move, while also minimizing potential losses.
Other types of volatility include True Range Double (TRD), Close-to-Close, and Garman-Klass
What is a Baseline indicator?
The baseline is essentially a moving average, and is used to determine the overall direction of the market.
The baseline in the NNFX system is used to filter out trades that are not in line with the long-term trend of the market. The baseline is plotted on the chart along with other indicators, such as the Moving Average (MA), the Relative Strength Index (RSI), and the Average True Range (ATR).
Trades are only taken when the price is in the same direction as the baseline. For example, if the baseline is sloping upwards, only long trades are taken, and if the baseline is sloping downwards, only short trades are taken. This approach helps to ensure that trades are in line with the overall trend of the market, and reduces the risk of entering trades that are likely to fail.
By using a baseline in the NNFX system, traders can have a clear reference point for determining the overall trend of the market, and can make more informed trading decisions. The baseline helps to filter out noise and false signals, and ensures that trades are taken in the direction of the long-term trend.
What is a Confirmation indicator?
Confirmation indicators are technical indicators that are used to confirm the signals generated by primary indicators. Primary indicators are the core indicators used in the NNFX system, such as the Average True Range (ATR), the Moving Average (MA), and the Relative Strength Index (RSI).
The purpose of the confirmation indicators is to reduce false signals and improve the accuracy of the trading system. They are designed to confirm the signals generated by the primary indicators by providing additional information about the strength and direction of the trend.
Some examples of confirmation indicators that may be used in the NNFX system include the Bollinger Bands, the MACD (Moving Average Convergence Divergence), and the MACD Oscillator. These indicators can provide information about the volatility, momentum, and trend strength of the market, and can be used to confirm the signals generated by the primary indicators.
In the NNFX system, confirmation indicators are used in combination with primary indicators and other filters to create a trading system that is robust and reliable. By using multiple indicators to confirm trading signals, the system aims to reduce the risk of false signals and improve the overall profitability of the trades.
What is a Continuation indicator?
In the NNFX (No Nonsense Forex) trading system, a continuation indicator is a technical indicator that is used to confirm a current trend and predict that the trend is likely to continue in the same direction. A continuation indicator is typically used in conjunction with other indicators in the system, such as a baseline indicator, to provide a comprehensive trading strategy.
What is a Volatility/Volume indicator?
Volume indicators, such as the On Balance Volume (OBV), the Chaikin Money Flow (CMF), or the Volume Price Trend (VPT), are used to measure the amount of buying and selling activity in a market. They are based on the trading volume of the market, and can provide information about the strength of the trend. In the NNFX system, volume indicators are used to confirm trading signals generated by the Moving Average and the Relative Strength Index. Volatility indicators include Average Direction Index, Waddah Attar, and Volatility Ratio. In the NNFX trading system, volatility is a proxy for volume and vice versa.
By using volume indicators as confirmation tools, the NNFX trading system aims to reduce the risk of false signals and improve the overall profitability of trades. These indicators can provide additional information about the market that is not captured by the primary indicators, and can help traders to make more informed trading decisions. In addition, volume indicators can be used to identify potential changes in market trends and to confirm the strength of price movements.
What is an Exit indicator?
The exit indicator is used in conjunction with other indicators in the system, such as the Moving Average (MA), the Relative Strength Index (RSI), and the Average True Range (ATR), to provide a comprehensive trading strategy.
The exit indicator in the NNFX system can be any technical indicator that is deemed effective at identifying optimal exit points. Examples of exit indicators that are commonly used include the Parabolic SAR, the Average Directional Index (ADX), and the Chandelier Exit.
The purpose of the exit indicator is to identify when a trend is likely to reverse or when the market conditions have changed, signaling the need to exit a trade. By using an exit indicator, traders can manage their risk and prevent significant losses.
In the NNFX system, the exit indicator is used in conjunction with a stop loss and a take profit order to maximize profits and minimize losses. The stop loss order is used to limit the amount of loss that can be incurred if the trade goes against the trader, while the take profit order is used to lock in profits when the trade is moving in the trader's favor.
Overall, the use of an exit indicator in the NNFX trading system is an important component of a comprehensive trading strategy. It allows traders to manage their risk effectively and improve the profitability of their trades by exiting at the right time.
How does Loxx's GKD (Giga Kaleidoscope Modularized Trading System) implement the NNFX algorithm outlined above?
Loxx's GKD v1.0 system has five types of modules (indicators/strategies). These modules are:
1. GKD-BT - Backtesting module (Volatility, Number 1 in the NNFX algorithm)
2. GKD-B - Baseline module (Baseline and Volatility/Volume, Numbers 1 and 2 in the NNFX algorithm)
3. GKD-C - Confirmation 1/2 and Continuation module (Confirmation 1/2 and Continuation, Numbers 3, 4, and 5 in the NNFX algorithm)
4. GKD-V - Volatility/Volume module (Confirmation 1/2, Number 6 in the NNFX algorithm)
5. GKD-E - Exit module (Exit, Number 7 in the NNFX algorithm)
(additional module types will added in future releases)
Each module interacts with every module by passing data between modules. Data is passed between each module as described below:
GKD-B => GKD-V => GKD-C(1) => GKD-C(2) => GKD-C(Continuation) => GKD-E => GKD-BT
That is, the Baseline indicator passes its data to Volatility/Volume. The Volatility/Volume indicator passes its values to the Confirmation 1 indicator. The Confirmation 1 indicator passes its values to the Confirmation 2 indicator. The Confirmation 2 indicator passes its values to the Continuation indicator. The Continuation indicator passes its values to the Exit indicator, and finally, the Exit indicator passes its values to the Backtest strategy.
This chaining of indicators requires that each module conform to Loxx's GKD protocol, therefore allowing for the testing of every possible combination of technical indicators that make up the six components of the NNFX algorithm.
What does the application of the GKD trading system look like?
Example trading system:
Backtest: Strategy with 1-3 take profits, trailing stop loss, multiple types of PnL volatility, and 2 backtesting styles
Baseline: Hull Moving Average
Volatility/Volume: Hurst Exponent
Confirmation 1: Step Chart of RSX of Averages as shown on the chart above
Confirmation 2: Williams Percent Range
Continuation: Fisher Transform
Exit: Rex Oscillator
Each GKD indicator is denoted with a module identifier of either: GKD-BT, GKD-B, GKD-C, GKD-V, or GKD-E. This allows traders to understand to which module each indicator belongs and where each indicator fits into the GKD protocol chain.
Giga Kaleidoscope Modularized Trading System Signals (based on the NNFX algorithm)
Standard Entry
1. GKD-C Confirmation 1 Signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
6. GKD-C Confirmation 1 signal was less than 7 candles prior
Volatility/Volume Entry
1. GKD-V Volatility/Volume signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-B Baseline agrees
6. GKD-C Confirmation 1 signal was less than 7 candles prior
Continuation Entry
1. Standard Entry, Baseline Entry, or Pullback; entry triggered previously
2. GKD-B Baseline hasn't crossed since entry signal trigger
3. GKD-C Confirmation Continuation Indicator signals
4. GKD-C Confirmation 1 agrees
5. GKD-B Baseline agrees
6. GKD-C Confirmation 2 agrees
1-Candle Rule Standard Entry
1. GKD-C Confirmation 1 signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
Next Candle:
1. Price retraced (Long: close < close or Short: close > close )
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
1-Candle Rule Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 1 signal was less than 7 candles prior
Next Candle:
1. Price retraced (Long: close < close or Short: close > close )
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume Agrees
1-Candle Rule Volatility/Volume Entry
1. GKD-V Volatility/Volume signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 1 signal was less than 7 candles prior
Next Candle:
1. Price retraced (Long: close < close or Short: close > close)
2. GKD-B Volatility/Volume agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-B Baseline agrees
PullBack Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is beyond 1.0x Volatility of Baseline
Next Candle:
1. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
2. GKD-C Confirmation 1 agrees
3. GKD-C Confirmation 2 agrees
4. GKD-V Volatility/Volume Agrees
]█ Setting up the GKD
The GKD system involves chaining indicators together. These are the steps to set this up.
Use a GKD-C indicator alone on a chart
1. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Simple"
Use a GKD-V indicator alone on a chart
**nothing, it's already useable on the chart without any settings changes
Use a GKD-B indicator alone on a chart
**nothing, it's already useable on the chart without any settings changes
Baseline (Baseline, Backtest)
1. Import the GKD-B Baseline into the GKD-BT Backtest: "Input into Volatility/Volume or Backtest (Baseline testing)"
2. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Baseline"
Volatility/Volume (Volatility/Volume, Backte st)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Solo"
2. Inside the GKD-V indicator, change the "Signal Type" setting to "Crossing" (neither traditional nor both can be backtested)
3. Import the GKD-V indicator into the GKD-BT Backtest: "Input into C1 or Backtest"
4. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Volatility/Volume"
5. Inside the GKD-BT Backtest, a) change the setting "Backtest Type" to "Trading" if using a directional GKD-V indicator; or, b) change the setting "Backtest Type" to "Full" if using a directional or non-directional GKD-V indicator (non-directional GKD-V can only test Longs and Shorts separately)
6. If "Backtest Type" is set to "Full": Inside the GKD-BT Backtest, change the setting "Backtest Side" to "Long" or "Short
7. If "Backtest Type" is set to "Full": To allow the system to open multiple orders at one time so you test all Longs or Shorts, open the GKD-BT Backtest, click the tab "Properties" and then insert a value of something like 10 orders into the "Pyramiding" settings. This will allow 10 orders to be opened at one time which should be enough to catch all possible Longs or Shorts.
Solo Confirmation Simple (Confirmation, Backtest)
1. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Simple"
1. Import the GKD-C indicator into the GKD-BT Backtest: "Input into Backtest"
2. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Solo Confirmation Simple"
Solo Confirmation Complex without Exits (Baseline, Volatility/Volume, Confirmation, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Complex"
4. Import the GKD-V indicator into the GKD-C indicator: "Input into C1 or Backtest"
5. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full wo/ Exits"
6. Import the GKD-C into the GKD-BT Backtest: "Input into Exit or Backtest"
Solo Confirmation Complex with Exits (Baseline, Volatility/Volume, Confirmation, Exit, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C indicator, change the "Confirmation Type" setting to "Solo Confirmation Complex"
4. Import the GKD-V indicator into the GKD-C indicator: "Input into C1 or Backtest"
5. Import the GKD-C indicator into the GKD-E indicator: "Input into Exit"
6. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full w/ Exits"
7. Import the GKD-E into the GKD-BT Backtest: "Input into Backtest"
Full GKD without Exits (Baseline, Volatility/Volume, Confirmation 1, Confirmation 2, Continuation, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C 1 indicator, change the "Confirmation Type" setting to "Confirmation 1"
4. Import the GKD-V indicator into the GKD-C 1 indicator: "Input into C1 or Backtest"
5. Inside the GKD-C 2 indicator, change the "Confirmation Type" setting to "Confirmation 2"
6. Import the GKD-C 1 indicator into the GKD-C 2 indicator: "Input into C2"
7. Inside the GKD-C Continuation indicator, change the "Confirmation Type" setting to "Continuation"
8. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full wo/ Exits"
9. Import the GKD-E into the GKD-BT Backtest: "Input into Exit or Backtest"
Full GKD with Exits (Baseline, Volatility/Volume, Confirmation 1, Confirmation 2, Continuation, Exit, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Chained"
2. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
3. Inside the GKD-C 1 indicator, change the "Confirmation Type" setting to "Confirmation 1"
4. Import the GKD-V indicator into the GKD-C 1 indicator: "Input into C1 or Backtest"
5. Inside the GKD-C 2 indicator, change the "Confirmation Type" setting to "Confirmation 2"
6. Import the GKD-C 1 indicator into the GKD-C 2 indicator: "Input into C2"
7. Inside the GKD-C Continuation indicator, change the "Confirmation Type" setting to "Continuation"
8. Import the GKD-C Continuation indicator into the GKD-E indicator: "Input into Exit"
9. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "GKD Full w/ Exits"
10. Import the GKD-E into the GKD-BT Backtest: "Input into Backtest"
Baseline + Volatility/Volume (Baseline, Volatility/Volume, Backtest)
1. Inside the GKD-V indicator, change the "Testing Type" setting to "Baseline + Volatility/Volume"
2. Inside the GKD-V indicator, make sure the "Signal Type" setting is set to "Traditional"
3. Import the GKD-B Baseline into the GKD-V indicator: "Input into Volatility/Volume or Backtest (Baseline testing)"
4. Inside the GKD-BT Backtest, change the setting "Backtest Special" to "Baseline + Volatility/Volume"
5. Import the GKD-V into the GKD-BT Backtest: "Input into C1 or Backtest"
6. Inside the GKD-BT Backtest, change the setting "Backtest Type" to "Full". For this backtest, you must test Longs and Shorts separately
7. To allow the system to open multiple orders at one time so you can test all Longs or Shorts, open the GKD-BT Backtest, click the tab "Properties" and then insert a value of something like 10 orders into the "Pyramiding" settings. This will allow 10 orders to be opened at one time which should be enough to catch all possible Longs or Shorts.
Requirements
Inputs
Confirmation 1: GKD-V Volatility / Volume indicator
Confirmation 2: GKD-C Confirmation indicator
Continuation: GKD-C Confirmation indicator
Solo Confirmation Simple: GKD-B Baseline
Solo Confirmation Complex: GKD-V Volatility / Volume indicator
Solo Confirmation Super Complex: GKD-V Volatility / Volume indicator
Stacked 1: None
Stacked 2+: GKD-C, GKD-V, or GKD-B Stacked 1
Outputs
Confirmation 1: GKD-C Confirmation 2 indicator
Confirmation 2: GKD-C Continuation indicator
Continuation: GKD-E Exit indicator
Solo Confirmation Simple: GKD-BT Backtest
Solo Confirmation Complex: GKD-BT Backtest or GKD-E Exit indicator
Solo Confirmation Super Complex: GKD-C Continuation indicator
Stacked 1: GKD-C, GKD-V, or GKD-B Stacked 2+
Stacked 2+: GKD-C, GKD-V, or GKD-B Stacked 2+ or GKD-BT Backtest
Additional features will be added in future releases.
loxxfftLibrary "loxxfft"
This code is a library for performing Fast Fourier Transform (FFT) operations. FFT is an algorithm that can quickly compute the discrete Fourier transform (DFT) of a sequence. The library includes functions for performing FFTs on both real and complex data. It also includes functions for fast correlation and convolution, which are operations that can be performed efficiently using FFTs. Additionally, the library includes functions for fast sine and cosine transforms.
Reference:
www.alglib.net
fastfouriertransform(a, nn, inversefft)
Returns Fast Fourier Transform
Parameters:
a (float ) : float , An array of real and imaginary parts of the function values. The real part is stored at even indices, and the imaginary part is stored at odd indices.
nn (int) : int, The number of function values. It must be a power of two, but the algorithm does not validate this.
inversefft (bool) : bool, A boolean value that indicates the direction of the transformation. If True, it performs the inverse FFT; if False, it performs the direct FFT.
Returns: float , Modifies the input array a in-place, which means that the transformed data (the FFT result for direct transformation or the inverse FFT result for inverse transformation) will be stored in the same array a after the function execution. The transformed data will have real and imaginary parts interleaved, with the real parts at even indices and the imaginary parts at odd indices.
realfastfouriertransform(a, tnn, inversefft)
Returns Real Fast Fourier Transform
Parameters:
a (float ) : float , A float array containing the real-valued function samples.
tnn (int) : int, The number of function values (must be a power of 2, but the algorithm does not validate this condition).
inversefft (bool) : bool, A boolean flag that indicates the direction of the transformation (True for inverse, False for direct).
Returns: float , Modifies the input array a in-place, meaning that the transformed data (the FFT result for direct transformation or the inverse FFT result for inverse transformation) will be stored in the same array a after the function execution.
fastsinetransform(a, tnn, inversefst)
Returns Fast Discrete Sine Conversion
Parameters:
a (float ) : float , An array of real numbers representing the function values.
tnn (int) : int, Number of function values (must be a power of two, but the code doesn't validate this).
inversefst (bool) : bool, A boolean flag indicating the direction of the transformation. If True, it performs the inverse FST, and if False, it performs the direct FST.
Returns: float , The output is the transformed array 'a', which will contain the result of the transformation.
fastcosinetransform(a, tnn, inversefct)
Returns Fast Discrete Cosine Transform
Parameters:
a (float ) : float , This is a floating-point array representing the sequence of values (time-domain) that you want to transform. The function will perform the Fast Cosine Transform (FCT) or the inverse FCT on this input array, depending on the value of the inversefct parameter. The transformed result will also be stored in this same array, which means the function modifies the input array in-place.
tnn (int) : int, This is an integer value representing the number of data points in the input array a. It is used to determine the size of the input array and control the loops in the algorithm. Note that the size of the input array should be a power of 2 for the Fast Cosine Transform algorithm to work correctly.
inversefct (bool) : bool, This is a boolean value that controls whether the function performs the regular Fast Cosine Transform or the inverse FCT. If inversefct is set to true, the function will perform the inverse FCT, and if set to false, the regular FCT will be performed. The inverse FCT can be used to transform data back into its original form (time-domain) after the regular FCT has been applied.
Returns: float , The resulting transformed array is stored in the input array a. This means that the function modifies the input array in-place and does not return a new array.
fastconvolution(signal, signallen, response, negativelen, positivelen)
Convolution using FFT
Parameters:
signal (float ) : float , This is an array of real numbers representing the input signal that will be convolved with the response function. The elements are numbered from 0 to SignalLen-1.
signallen (int) : int, This is an integer representing the length of the input signal array. It specifies the number of elements in the signal array.
response (float ) : float , This is an array of real numbers representing the response function used for convolution. The response function consists of two parts: one corresponding to positive argument values and the other to negative argument values. Array elements with numbers from 0 to NegativeLen match the response values at points from -NegativeLen to 0, respectively. Array elements with numbers from NegativeLen+1 to NegativeLen+PositiveLen correspond to the response values in points from 1 to PositiveLen, respectively.
negativelen (int) : int, This is an integer representing the "negative length" of the response function. It indicates the number of elements in the response function array that correspond to negative argument values. Outside the range , the response function is considered zero.
positivelen (int) : int, This is an integer representing the "positive length" of the response function. It indicates the number of elements in the response function array that correspond to positive argument values. Similar to negativelen, outside the range , the response function is considered zero.
Returns: float , The resulting convolved values are stored back in the input signal array.
fastcorrelation(signal, signallen, pattern, patternlen)
Returns Correlation using FFT
Parameters:
signal (float ) : float ,This is an array of real numbers representing the signal to be correlated with the pattern. The elements are numbered from 0 to SignalLen-1.
signallen (int) : int, This is an integer representing the length of the input signal array.
pattern (float ) : float , This is an array of real numbers representing the pattern to be correlated with the signal. The elements are numbered from 0 to PatternLen-1.
patternlen (int) : int, This is an integer representing the length of the pattern array.
Returns: float , The signal array containing the correlation values at points from 0 to SignalLen-1.
tworealffts(a1, a2, a, b, tn)
Returns Fast Fourier Transform of Two Real Functions
Parameters:
a1 (float ) : float , An array of real numbers, representing the values of the first function.
a2 (float ) : float , An array of real numbers, representing the values of the second function.
a (float ) : float , An output array to store the Fourier transform of the first function.
b (float ) : float , An output array to store the Fourier transform of the second function.
tn (int) : float , An integer representing the number of function values. It must be a power of two, but the algorithm doesn't validate this condition.
Returns: float , The a and b arrays will contain the Fourier transform of the first and second functions, respectively. Note that the function overwrites the input arrays a and b.
█ Detailed explaination of each function
Fast Fourier Transform
The fastfouriertransform() function takes three input parameters:
1. a: An array of real and imaginary parts of the function values. The real part is stored at even indices, and the imaginary part is stored at odd indices.
2. nn: The number of function values. It must be a power of two, but the algorithm does not validate this.
3. inversefft: A boolean value that indicates the direction of the transformation. If True, it performs the inverse FFT; if False, it performs the direct FFT.
The function performs the FFT using the Cooley-Tukey algorithm, which is an efficient algorithm for computing the discrete Fourier transform (DFT) and its inverse. The Cooley-Tukey algorithm recursively breaks down the DFT of a sequence into smaller DFTs of subsequences, leading to a significant reduction in computational complexity. The algorithm's time complexity is O(n log n), where n is the number of samples.
The fastfouriertransform() function first initializes variables and determines the direction of the transformation based on the inversefft parameter. If inversefft is True, the isign variable is set to -1; otherwise, it is set to 1.
Next, the function performs the bit-reversal operation. This is a necessary step before calculating the FFT, as it rearranges the input data in a specific order required by the Cooley-Tukey algorithm. The bit-reversal is performed using a loop that iterates through the nn samples, swapping the data elements according to their bit-reversed index.
After the bit-reversal operation, the function iteratively computes the FFT using the Cooley-Tukey algorithm. It performs calculations in a loop that goes through different stages, doubling the size of the sub-FFT at each stage. Within each stage, the Cooley-Tukey algorithm calculates the butterfly operations, which are mathematical operations that combine the results of smaller DFTs into the final DFT. The butterfly operations involve complex number multiplication and addition, updating the input array a with the computed values.
The loop also calculates the twiddle factors, which are complex exponential factors used in the butterfly operations. The twiddle factors are calculated using trigonometric functions, such as sine and cosine, based on the angle theta. The variables wpr, wpi, wr, and wi are used to store intermediate values of the twiddle factors, which are updated in each iteration of the loop.
Finally, if the inversefft parameter is True, the function divides the result by the number of samples nn to obtain the correct inverse FFT result. This normalization step is performed using a loop that iterates through the array a and divides each element by nn.
In summary, the fastfouriertransform() function is an implementation of the Cooley-Tukey FFT algorithm, which is an efficient algorithm for computing the DFT and its inverse. This FFT library can be used for a variety of applications, such as signal processing, image processing, audio processing, and more.
Feal Fast Fourier Transform
The realfastfouriertransform() function performs a fast Fourier transform (FFT) specifically for real-valued functions. The FFT is an efficient algorithm used to compute the discrete Fourier transform (DFT) and its inverse, which are fundamental tools in signal processing, image processing, and other related fields.
This function takes three input parameters:
1. a - A float array containing the real-valued function samples.
2. tnn - The number of function values (must be a power of 2, but the algorithm does not validate this condition).
3. inversefft - A boolean flag that indicates the direction of the transformation (True for inverse, False for direct).
The function modifies the input array a in-place, meaning that the transformed data (the FFT result for direct transformation or the inverse FFT result for inverse transformation) will be stored in the same array a after the function execution.
The algorithm uses a combination of complex-to-complex FFT and additional transformations specific to real-valued data to optimize the computation. It takes into account the symmetry properties of the real-valued input data to reduce the computational complexity.
Here's a detailed walkthrough of the algorithm:
1. Depending on the inversefft flag, the initial values for ttheta, c1, and c2 are determined. These values are used for the initial data preprocessing and post-processing steps specific to the real-valued FFT.
2. The preprocessing step computes the initial real and imaginary parts of the data using a combination of sine and cosine terms with the input data. This step effectively converts the real-valued input data into complex-valued data suitable for the complex-to-complex FFT.
3. The complex-to-complex FFT is then performed on the preprocessed complex data. This involves bit-reversal reordering, followed by the Cooley-Tukey radix-2 decimation-in-time algorithm. This part of the code is similar to the fastfouriertransform() function you provided earlier.
4. After the complex-to-complex FFT, a post-processing step is performed to obtain the final real-valued output data. This involves updating the real and imaginary parts of the transformed data using sine and cosine terms, as well as the values c1 and c2.
5. Finally, if the inversefft flag is True, the output data is divided by the number of samples (nn) to obtain the inverse DFT.
The function does not return a value explicitly. Instead, the transformed data is stored in the input array a. After the function execution, you can access the transformed data in the a array, which will have the real part at even indices and the imaginary part at odd indices.
Fast Sine Transform
This code defines a function called fastsinetransform that performs a Fast Discrete Sine Transform (FST) on an array of real numbers. The function takes three input parameters:
1. a (float array): An array of real numbers representing the function values.
2. tnn (int): Number of function values (must be a power of two, but the code doesn't validate this).
3. inversefst (bool): A boolean flag indicating the direction of the transformation. If True, it performs the inverse FST, and if False, it performs the direct FST.
The output is the transformed array 'a', which will contain the result of the transformation.
The code starts by initializing several variables, including trigonometric constants for the sine transform. It then sets the first value of the array 'a' to 0 and calculates the initial values of 'y1' and 'y2', which are used to update the input array 'a' in the following loop.
The first loop (with index 'jx') iterates from 2 to (tm + 1), where 'tm' is half of the number of input samples 'tnn'. This loop is responsible for calculating the initial sine transform of the input data.
The second loop (with index 'ii') is a bit-reversal loop. It reorders the elements in the array 'a' based on the bit-reversed indices of the original order.
The third loop (with index 'ii') iterates while 'n' is greater than 'mmax', which starts at 2 and doubles each iteration. This loop performs the actual Fast Discrete Sine Transform. It calculates the sine transform using the Danielson-Lanczos lemma, which is a divide-and-conquer strategy for calculating Discrete Fourier Transforms (DFTs) efficiently.
The fourth loop (with index 'ix') is responsible for the final phase adjustments needed for the sine transform, updating the array 'a' accordingly.
The fifth loop (with index 'jj') updates the array 'a' one more time by dividing each element by 2 and calculating the sum of the even-indexed elements.
Finally, if the 'inversefst' flag is True, the code scales the transformed data by a factor of 2/tnn to get the inverse Fast Sine Transform.
In summary, the code performs a Fast Discrete Sine Transform on an input array of real numbers, either in the direct or inverse direction, and returns the transformed array. The algorithm is based on the Danielson-Lanczos lemma and uses a divide-and-conquer strategy for efficient computation.
Fast Cosine Transform
This code defines a function called fastcosinetransform that takes three parameters: a floating-point array a, an integer tnn, and a boolean inversefct. The function calculates the Fast Cosine Transform (FCT) or the inverse FCT of the input array, depending on the value of the inversefct parameter.
The Fast Cosine Transform is an algorithm that converts a sequence of values (time-domain) into a frequency domain representation. It is closely related to the Fast Fourier Transform (FFT) and can be used in various applications, such as signal processing and image compression.
Here's a detailed explanation of the code:
1. The function starts by initializing a number of variables, including counters, intermediate values, and constants.
2. The initial steps of the algorithm are performed. This includes calculating some trigonometric values and updating the input array a with the help of intermediate variables.
3. The code then enters a loop (from jx = 2 to tnn / 2). Within this loop, the algorithm computes and updates the elements of the input array a.
4. After the loop, the function prepares some variables for the next stage of the algorithm.
5. The next part of the algorithm is a series of nested loops that perform the bit-reversal permutation and apply the FCT to the input array a.
6. The code then calculates some additional trigonometric values, which are used in the next loop.
7. The following loop (from ix = 2 to tnn / 4 + 1) computes and updates the elements of the input array a using the previously calculated trigonometric values.
8. The input array a is further updated with the final calculations.
9. In the last loop (from j = 4 to tnn), the algorithm computes and updates the sum of elements in the input array a.
10. Finally, if the inversefct parameter is set to true, the function scales the input array a to obtain the inverse FCT.
The resulting transformed array is stored in the input array a. This means that the function modifies the input array in-place and does not return a new array.
Fast Convolution
This code defines a function called fastconvolution that performs the convolution of a given signal with a response function using the Fast Fourier Transform (FFT) technique. Convolution is a mathematical operation used in signal processing to combine two signals, producing a third signal representing how the shape of one signal is modified by the other.
The fastconvolution function takes the following input parameters:
1. float signal: This is an array of real numbers representing the input signal that will be convolved with the response function. The elements are numbered from 0 to SignalLen-1.
2. int signallen: This is an integer representing the length of the input signal array. It specifies the number of elements in the signal array.
3. float response: This is an array of real numbers representing the response function used for convolution. The response function consists of two parts: one corresponding to positive argument values and the other to negative argument values. Array elements with numbers from 0 to NegativeLen match the response values at points from -NegativeLen to 0, respectively. Array elements with numbers from NegativeLen+1 to NegativeLen+PositiveLen correspond to the response values in points from 1 to PositiveLen, respectively.
4. int negativelen: This is an integer representing the "negative length" of the response function. It indicates the number of elements in the response function array that correspond to negative argument values. Outside the range , the response function is considered zero.
5. int positivelen: This is an integer representing the "positive length" of the response function. It indicates the number of elements in the response function array that correspond to positive argument values. Similar to negativelen, outside the range , the response function is considered zero.
The function works by:
1. Calculating the length nl of the arrays used for FFT, ensuring it's a power of 2 and large enough to hold the signal and response.
2. Creating two new arrays, a1 and a2, of length nl and initializing them with the input signal and response function, respectively.
3. Applying the forward FFT (realfastfouriertransform) to both arrays, a1 and a2.
4. Performing element-wise multiplication of the FFT results in the frequency domain.
5. Applying the inverse FFT (realfastfouriertransform) to the multiplied results in a1.
6. Updating the original signal array with the convolution result, which is stored in the a1 array.
The result of the convolution is stored in the input signal array at the function exit.
Fast Correlation
This code defines a function called fastcorrelation that computes the correlation between a signal and a pattern using the Fast Fourier Transform (FFT) method. The function takes four input arguments and modifies the input signal array to store the correlation values.
Input arguments:
1. float signal: This is an array of real numbers representing the signal to be correlated with the pattern. The elements are numbered from 0 to SignalLen-1.
2. int signallen: This is an integer representing the length of the input signal array.
3. float pattern: This is an array of real numbers representing the pattern to be correlated with the signal. The elements are numbered from 0 to PatternLen-1.
4. int patternlen: This is an integer representing the length of the pattern array.
The function performs the following steps:
1. Calculate the required size nl for the FFT by finding the smallest power of 2 that is greater than or equal to the sum of the lengths of the signal and the pattern.
2. Create two new arrays a1 and a2 with the length nl and initialize them to 0.
3. Copy the signal array into a1 and pad it with zeros up to the length nl.
4. Copy the pattern array into a2 and pad it with zeros up to the length nl.
5. Compute the FFT of both a1 and a2.
6. Perform element-wise multiplication of the frequency-domain representation of a1 and the complex conjugate of the frequency-domain representation of a2.
7. Compute the inverse FFT of the result obtained in step 6.
8. Store the resulting correlation values in the original signal array.
At the end of the function, the signal array contains the correlation values at points from 0 to SignalLen-1.
Fast Fourier Transform of Two Real Functions
This code defines a function called tworealffts that computes the Fast Fourier Transform (FFT) of two real-valued functions (a1 and a2) using a Cooley-Tukey-based radix-2 Decimation in Time (DIT) algorithm. The FFT is a widely used algorithm for computing the discrete Fourier transform (DFT) and its inverse.
Input parameters:
1. float a1: an array of real numbers, representing the values of the first function.
2. float a2: an array of real numbers, representing the values of the second function.
3. float a: an output array to store the Fourier transform of the first function.
4. float b: an output array to store the Fourier transform of the second function.
5. int tn: an integer representing the number of function values. It must be a power of two, but the algorithm doesn't validate this condition.
The function performs the following steps:
1. Combine the two input arrays, a1 and a2, into a single array a by interleaving their elements.
2. Perform a 1D FFT on the combined array a using the radix-2 DIT algorithm.
3. Separate the FFT results of the two input functions from the combined array a and store them in output arrays a and b.
Here is a detailed breakdown of the radix-2 DIT algorithm used in this code:
1. Bit-reverse the order of the elements in the combined array a.
2. Initialize the loop variables mmax, istep, and theta.
3. Enter the main loop that iterates through different stages of the FFT.
a. Compute the sine and cosine values for the current stage using the theta variable.
b. Initialize the loop variables wr and wi for the current stage.
c. Enter the inner loop that iterates through the butterfly operations within each stage.
i. Perform the butterfly operation on the elements of array a.
ii. Update the loop variables wr and wi for the next butterfly operation.
d. Update the loop variables mmax, istep, and theta for the next stage.
4. Separate the FFT results of the two input functions from the combined array a and store them in output arrays a and b.
At the end of the function, the a and b arrays will contain the Fourier transform of the first and second functions, respectively. Note that the function overwrites the input arrays a and b.
█ Example scripts using functions contained in loxxfft
Real-Fast Fourier Transform of Price w/ Linear Regression
Real-Fast Fourier Transform of Price Oscillator
Normalized, Variety, Fast Fourier Transform Explorer
Variety RSI of Fast Discrete Cosine Transform
STD-Stepped Fast Cosine Transform Moving Average
Bist Manipulation [Projeadam]
OVERVIEW | GENEL BAKIŞ
ENG: Indicator that detects manipulation candles according to changing market conditions.
TR: Değişen piyasa koşullarına göre manipülasyon mumlarını tespit eden gösterge.
ENG: IMPORTANT NOTE: This indicator works in BIST Market and only in Future Parities.
Example ->> PETKM1! --SASA1!
TR: ÖNEMLİ NOT: Bu indikatör BİST Piyasasında ve sadece Future Paritelerde Çalışır.
Örnek- >> PETKM1! -- SASA1!
ENG: Market makers manipulate the market because most people who trade on the stock exchange act with their emotions and are forced to close the transaction at a loss.
TR: Piyasada market yapıcı oluşumlar manipülasyon yaparlar çünkü borsada işlem alan insanların birçoğu duygularıyla hareket eder ve zararla işlem kapatılmaya zorlanır.
ENG: If we detect manipulation candles in the market, we can control our fragile psychology and close our transactions in profit by trading with market-making formations in these areas.
TR: Marketde manipülasyon mumlarını tespit edersek kırılgan psikolojimizi kontrol edebilir ve bu alanlardan market yapıcı oluşumlarla beraber işlem alarak işlemlerimizi karda kapatabiliriz.
ALGORITHM | ALGORİTMA
ENG: With the help of this indicator, you can detect manipulation candles in the BIST exchange with the help of the algorithm I created by using volumetric data and wicks created by the price.
When there is excessive volatility in price movement, the algorithm in this indicator notices this price volatility and calculates a manipulation value by dividing it by the volatility value in past price movements.
TR: Bu indikatör yardımıyla hacimsel veriler ve fiyatın oluşturduğu fitillerden yararlanarak oluşturduğum algoritma yardımıyla siz de BİST borsasında manipülasyon mumlarını tespit edebilirsiniz.
Fiyat hareketinde aşırı derece oynaklık olduğunda bu indikatördeki algoritma bu fiyat oynaklığını fark eder ve geçmiş fiyat hareketlerindeki oylanklık degerine bölerek bize bir manipülasyon degeri hesaplar.
How does the indicator work? | Gösterge nasıl çalışır?
ENG: The manipulation candle does not give us information about the direction of price movement, it is only used as an auxiliary indicator.
TR: Manipülasyon mumu bize fiyat hareketinin yönü hakkında bilgi vermez sadece yardımcı bir gösterge olarak kullanılır.
ENG: We show our manipulation values as columns. We draw a channel over the values we show and we understand that there is manipulation in the candle of our values above this channel.
TR: Manipülasyon degerlerimiz kolonlar şeklinde gösteriyoruz. Gösterdiğimiz değerlerimizin üzerine bir kanal çizdiriyoruz ve bu kanalın üzerinde kalan değerlerimizdeki mumda manipülasyon yapıldığını anlıyoruz.
ENG: The indicator shows the manipulation value in the form of columns. Our manipulation value that goes outside the channel we have determined is colored red, within the channel it is colored yellow, and below the channel it is colored green. Red columns indicate candles that are manipulations.
TR: İndikatör manipülasyon degerini kolonlar şeklinde gösteriyor. Bizim belirlediğimiz kanal dışına çıkan manipülasyon degerimiz kırmızı, kanal içerisinde sarı, kanal altında yeşil olarak renklendiriliyor. Kırmızı kolonlar manipülasyon olan mumları göstermektedir.
Example | Örnek
ENG: In our example above, we see a manipulation candle that clears the price gaps, while the market maker clears the orders in the price gaps at the bottom to move the price up.
TR: Yukarıdaki örneğimizde oluşan fiyat boşluklarını temizleyen bir manipülasyon mumu görmekteyiz, alt kısımdaki fiyat boşluklarındaki emirleri temizleyen market maker fiyatı yukarı taşımak için buradaki emirleri temizliyor.
SETTINGS PANEL | AYARLAR PANELİ
ENG: We have only one setting in this indicator.
TR: Bu indikatörde tek ayarımız vardır.
ENG: Our multiplier value determines the width of the band value formed above our manipulation value. In the chart above, our multiplier value is 3.3. If we reduce our multiplier value, our manipulation sensitivity will decrease as there will be much more candles on the band.
TR: Çarpan değerimiz manipülasyon değerimizin üstünde oluşşan band değerinin genişliğini belirlemektedir.Yukarıdaki grafikte çarpan değerimiz 3.3, Eğer çarpan değerimizi azaltırsak band üstünde çok daha fazla mum olacağı için manipülasyon hassasiyetimiz azalacaktır.
ENG: When we set our multiplier value to 2.3, we have a more sensitive manipulation skin and it gives signals in more candles.
TR: Çarpan değerimizi 2.3 yapınca daha hassas manipülasyon derimiz oluyor ve daha fazla mumda sinyal veriyor.
If you have any ideas what to add to my work to add more sources or make calculations cooler, suggest in DM .
OnChart - SuiteThe Motivation Behind OnChart Suite
In the dynamic world of trading, the ability to interpret market trends and make timely decisions is paramount. OnChart Suite was developed to empower traders by offering a comprehensive suite of tools that combine advanced analysis with intuitive user experience. The goal is to support traders in navigating complex market environments, helping them refine their strategies and gain a deeper understanding of price movements.
█ Key Features
🤖 ApexAlphaClouds: Identifies potential price rejections or breakthroughs by analyzing dynamic price ranges.
🔢 Matrix Algo: Offers multi-timeframe trend sentiment analysis using key market indicators.
🎯 CandleSniper: Detects key decision points based on phase calculation and Fibonacci levels.
🧲 MagnetZone Horizon: Highlights strategic price zones that can act as smart FVGs.
🟢 NeonZenith: Combines trend analysis with decision points and Fibonacci targets.
█ How These Tools Work Together
OnChart Suite integrates each of these powerful tools to provide traders with a comprehensive analysis framework. By combining the ApexAlphaClouds for price movement intuition, the Matrix Algo for trend sentiment, the CandleSniper for decision points, the MagnetZone Horizon for strategic price zones, and the NeonZenith for trend and target analysis, traders can develop robust trading strategies. This integration ensures that traders have access to multiple perspectives on market conditions, enhancing their ability to make calculated decisions.
█ Detailed Feature Explanations:
--------------🤖 ApexAlphaClouds --------------
How the Tool Can Help Traders
The `ApexAlphaClouds` indicator is designed to assist traders by identifying dynamic price ranges where the market tends to consolidate, which are critical for making informed trading decisions. The tool uses an ML algorithm to analyze high-price data over a set period and determines key levels on the chart, which are visualized as "clouds." These clouds represent potential support and resistance areas, where price action is likely to pause, reverse, or experience increased volatility.
The primary benefit for traders is the ability to identify these key zones in real-time, allowing them to anticipate potential market movements and plan trades accordingly. For example, if a trader sees that price is approaching a cloud boundary, they might expect a reversal or a breakout, depending on the broader market context. This can be particularly useful in range-bound markets or when looking for potential entry and exit points in trending markets.
How Traders Can Use the Indicator
Identifying Support and Resistance:
The clouds plotted by the `ApexAlphaClouds` indicator can be used to identify dynamic support and resistance levels. Traders can watch how the price reacts when it enters these clouds. If the price bounces off a lower cloud, it may suggest support, while a rejection from an upper could indicate resistance.
Trend Reversals and Continuations:
The indicator's middle cloud can help identify potential trend reversals. If price moves through the middle cloud and continues in the same direction, it could indicate a trend continuation. Conversely, if price reverses within the middle cloud, it might signal a potential trend reversal.
Volatility and Breakouts:
The distance between the upper and lower clouds can give traders an idea of market volatility. Narrow clouds suggest low volatility, which may precede a breakout, while wide clouds indicate higher volatility, where prices might oscillate within the range.
Settings Input and Their Effects
’ApexAlphaClouds` (Toggle) -This setting allows the trader to enable or disable the `ApexAlphaClouds` indicator on their chart.
Effect: When enabled, the clouds representing dynamic price ranges will be displayed on the chart. Disabling this will hide the indicator’s outputs.
Target Area Size - This setting determines the number of bars (length) the algorithm considers when collecting high prices for clustering.
Effect: A larger value will make the indicator consider a broader historical range, potentially smoothing out the clouds and identifying longer-term price ranges. A smaller value will focus on more recent price action, which might be useful for short-term trading strategies.
Accuracy - This setting specifies the number of groups that the algorithm will try to identify within the selected data range.
Effect: A higher value increases the number of identified clusters, making the indicator more sensitive to minor fluctuations in price. This can be useful for traders looking to identify multiple potential reversal points. A lower value will focus on the most prominent price clusters, which may be more relevant for long-term analysis.
Maximum Calibration - This setting controls the maximum number of iterations the machine learning algorithm will perform to find the optimal clusters.
Effect: Increasing allows the algorithm more time to refine the clusters, potentially leading to more accurate and stable clouds. However, it may also increase the computation time. Decreasing this value may speed up the process but could result in less accurate clustering.
Wide Range Calibration - This setting determines the maximum number of bars the algorithm will consider when applying the clustering.
Effect: A larger value allows the algorithm to analyse a wider range of historical data, which can help identify significant long-term price ranges. A smaller value will limit the analysis to more recent data, which might be preferable for traders focused on short-term movements.
Smoothing Factor - This setting applies a smoothing function to the clouds, reducing noise and making the price ranges more visually consistent.
Effect :A higher smoothing factor will produce smoother, more consistent clouds, which might be beneficial in volatile markets to avoid false signals. A lower smoothing factor will make the clouds more responsive to recent price changes, which could be useful for scalping or short-term trading strategies.
Usage Scenarios
Scalping:
Traders using short-term strategies might set Accuracy to a smaller value and reduce the Smoothing Factor to make the clouds more responsive to recent price action. This helps in identifying quick reversal points.
Swing Trading:
Swing traders could use a larger Target Area Size and increase Accuracy to identify key price ranges that have held over longer periods. Adjusting Wide Range Calibration to a higher value allows them to consider broader historical trends.
Trend Following:
By observing how price interacts with the clouds, trend-following traders can look for breakouts or breakdowns from the clouds to confirm entry points in the direction of the trend.
Volatility Management:
Traders can monitor the width of the clouds to gauge market volatility and adjust their strategies accordingly, tightening stops in narrow cloud ranges or widening them in broader ranges.
Conclusion
The `ApexAlphaClouds` indicator is a powerful tool for traders looking to analyze price action with a focus on dynamic price ranges. By understanding and utilizing the settings, traders can customize the indicator to fit their specific trading strategies, whether they are scalping, swing trading, or trend following. The key is to adjust the inputs based on the market context and trading goals, using the clouds as a visual guide to anticipate market movements and make informed decisions.
--------------🔢 Matrix Algo --------------
Matrix Algo is a multi-timeframe (MTF) tool designed to provide traders with a comprehensive view of market conditions across different timeframes using a combination of popular technical indicators. The indicator aggregates data from RSI, MACD, and Bollinger Bands across multiple timeframes, presenting this information in a matrix format to help traders make informed decisions based on a complete market overview. This allows traders to quickly assess the overall market sentiment and trend direction without having to manually check each indicator on different timeframes. By offering a bird’s-eye view of the market conditions.
How Traders Can Use Matrix Algo?
Identify Trends and Reversals: By analysing the matrix, traders can identify whether the market is bullish, bearish, or in consolidation across different timeframes.
Confirm Signals: The Matrix Algo can confirm signals from other trading strategies by providing additional context from multiple indicators across several timeframes.
Settings:
Toggle individual timeframes - (Monthly, Weekly, 3D, Daily, 4h, etc.) to include or exclude from the matrix.
Effect: The matrix displays whether the market conditions are favorable (green) or unfavorable (red) for each indicator and timeframe combination. This color-coded information helps traders quickly assess the market situation.
--------------🎯 CandleSniper --------------
Overview:
The CandleSniper indicator is designed to identify potential turning points in the market by combining various technical analysis tools. It leverages a combination of the MACD indicator, advanced phase analysis technique, and Fibonacci levels to highlight moments where price action may be reversing. This helps traders spot divergence opportunities and set potential target levels.
Explanation
MACD Divergence with Phase Analysis:
The indicator leverages the MACD (Moving Average Convergence Divergence) to identify divergences, which can indicate potential reversal points in the market. The MACD is computed using standard short and long lengths, along with a signal line.
An advanced phase analysis technique is employed to measure the difference between price and its moving averages, enabling the identification of cyclical turning points in the market
A potential bullish decision point is identified when the MACD line crosses above the signal line during a cyclical turning point. Conversely, a potential bearish decision point is identified when the MACD line crosses below the signal line during a cyclical turning point.
Fibonacci Levels for Targeting:
The indicator calculates Fibonacci extension levels based on recent price swings to provide target levels for potential price movements.
For a bullish setup, the indicator identifies levels above the current price as potential targets, while for a bearish setup, it identifies levels below the current price.
Fib Filter Line:
The Fib Filter Line is represented in purple for bullish turning points and white for bearish turning points. These lines serve as additional filters to help traders identify stronger, more reliable turning points in the market. Designed for those who prefer a more conservative approach, the Fib Filter Line offers an extra layer of confirmation based on price movements, allowing traders to filter out weaker signals and focus on more significant market shifts.
Inputs and Settings:
lookbackPeriod: Defines the period over which the indicator looks back to calculate the Fibonacci levels. Adjusting this setting can change the sensitivity of the decision points.
Dimmer and DimmerPeriod: These settings control the smoothing applied to the price data before the phase calculation. They help in reducing noise and ensuring that only significant price movements are considered for decision points.
How to Use:
Traders can use the CandleSniper indicator to identify potential decision points by observing the color changes on the bars and the plotted Fibonacci levels:
🟢 Bullish Decision Points:
When the indicator detects a bullish divergence, it highlights the bars in purple and plots potential upward Fibonacci levels as targets.
🔴 Bearish Decision Points:
When a bearish divergence is detected, the indicator highlights the bars in white and plots downward Fibonacci levels as targets.
These decision points can help traders identify when the market might be ready for a reversal or continuation or even use as a start point from where the trader can start his own analysis
Combining with Other Tools
The CandleSniper indicator can be combined with other OnChart tools to create a comprehensive trading framework:
🔢 Matrix Algo:
Use Matrix Algo to assess the overall market sentiment across multiple timeframes, then apply CandleSniper for pinpointing specific entry or exit points.
🤖 ApexAlphaClouds:
Overlay ApexAlphaClouds to visualise dynamic price ranges, using CandleSniper to identify decision points within these ranges.
This combination allows traders to develop a robust trading strategy that considers broader market trends and specific price action signal intuition.
--------------🧲 MagnetZone Horizon --------------
Overview:
The MagnetZone Horizon indicator is a specialized tool designed to identify potential gaps between two significant changes in the Average True Range (ATR). These gaps, calculated dynamically, serve as areas where the price might react, often acting as smart Fair Value Gaps (FVG). By highlighting these zones, traders can gain insights into where the market might find support, resistance, or potential reversal points.
How Traders Can Use This Indicator:
Identifying Smart Fair Value Gaps:
The MagnetZone Horizon indicator helps traders locate gaps between ATR shifts that are likely to act as significant decision points. These gaps can indicate areas where price corrections or consolidations might occur, providing opportunities for strategic entries or exits.
Adaptive Support and Resistance:
The levels calculated by the indicator adjust according to market volatility, offering dynamic support and resistance zones. These zones are particularly useful in identifying potential reversals or continuation patterns.
Volatility-Based Trading:
Since the indicator bases its calculations on ATR, it inherently adjusts to market conditions, allowing traders to align their strategies with the current level of volatility. This adaptability makes it suitable for both trending and range-bound markets.
Settings and Their Impact:
MagnetZone Horizon (Enable/Disable): This toggle allows traders to activate or deactivate the visualization of the MagnetZone Horizon on their charts.
Factor: This setting multiplies the ATR to scale the detected gaps. A higher factor results in broader zones, which might capture more significant market movements, while a lower factor creates tighter zones for more precise analysis.
Factor=5
Factor=7
Division: This setting works in conjunction with the Factor to further refine the gap calculations. Adjusting the Division setting allows traders to fine-tune how sensitive the indicator is to ATR changes, which can help in pinpointing more precise smart FVGs.
Use Cases:
Gap Trading:
Traders can use the identified gaps as potential areas to enter or exit trades, particularly if the price approaches these smart FVGs. The idea is to capitalize on the likelihood that the market will react to these gaps.
Reversal Identification:
The zones marked by the MagnetZone Horizon can indicate potential reversal points, especially in volatile markets where significant ATR changes suggest a shift in market sentiment.
Trend Continuation or Rejection:
By monitoring how the price interacts with these dynamically calculated zones, traders can assess whether a trend is likely to continue or reverse, aiding in more informed trading decisions.
The MagnetZone Horizon indicator is particularly useful for traders looking to identify significant gaps in market activity that are influenced by volatility. These smart FVGs provide a deeper understanding of where the market might react, offering a valuable tool for enhancing trading strategies and adds another strategic piece to the puzzle in the OnChart Suite.
--------------🟢NeonZenith Indicator--------------
Overview:
NeonZenith is a tool designed to provide traders with a better understanding of market trends and potential decision points by utilising multiple elements, including EMAs and Fibonacci levels. This indicator identifies key structures in recent price movements, helping traders recognize potential trend shifts and generate target levels for their trading strategies. Additionally, NeonZenith incorporates elements from the ApexAlphaCloud to enhance the interpretation of market sentiment, particularly regarding price rejections or breakthroughs.
Key Features:
Trend Direction Identification:
NeonZenith uses EMAs to help traders gauge the overall trend direction. By analysing the relationship between different EMAs, the tool highlights potential points where trends may strengthen or reverse, offering decision points for traders to consider in their strategies.
Decision Points:
The tool generates decision points based on EMA interactions, providing traders with crucial levels that may indicate potential market entries or exits. These decision points are derived from the intersection of EMAs, which are known for their reliability in identifying trend shifts.
Fibonacci Target Levels:
Based on the identified price structures, NeonZenith calculates Fibonacci levels that serve as potential target areas. These levels help traders set realistic goals for their trades, whether they are looking to take profits or manage risks effectively.
ApexAlphaCloud Integration:
The tool integrates a middle cloud from the ApexAlphaCloud, which helps traders anticipate potential price rejections or breakthroughs. This cloud provides additional context to the trend analysis, enhancing traders' ability to gauge the market's sentiment and make them think about potential price movements.
Settings:
Left and Right Border Width:
These settings control the lookback period for identifying significant price structures. By adjusting these parameters, traders can fine-tune the sensitivity of the indicator to recent price movements.
Fibonacci Calculation:
The tool calculates Fibonacci levels based on recent lows and highs, offering multiple targets for both long and short positions. These targets include various levels that traders can use to plan their entry, take-profit, and stop-loss orders.
Plotting and Visualization:
NeonZenith provides clear visual cues on the chart, including shapes and labels to mark significant decision points and target areas. These visual elements help traders quickly interpret the information provided by the indicator and apply it to their trading strategies.
How to Use NeonZenith:
Trend Identification:
Use the tool to identify the current trend direction by observing the interaction between the EMAs ,the flag sign and triangle, flag represent general trend changes and the triangle represents minor and inside trend changes.
Fibonacci Levels:
Use the generated Fibonacci levels to set target areas for your trades. These levels can guide you in deciding where to take profits or place stop-loss orders.
Sentiment Gauge:
Utilise the middle cloud from the ApexAlphaCloud to assess potential price rejections or breakthroughs. This feature provides additional insight into the strength of the current trend and helps you anticipate possible market reversals.
Conclusion:
NeonZenith is a versatile and simple tool designed to support traders in understanding market trends, identifying decision points, and setting realistic targets based on Fibonacci levels. Its integration with the ApexAlphaCloud enhances the tool's ability to provide a comprehensive view of market sentiment, making it a valuable addition to any trader's toolkit.
Machine Learning: Lorentzian Classification█ OVERVIEW
A Lorentzian Distance Classifier (LDC) is a Machine Learning classification algorithm capable of categorizing historical data from a multi-dimensional feature space. This indicator demonstrates how Lorentzian Classification can also be used to predict the direction of future price movements when used as the distance metric for a novel implementation of an Approximate Nearest Neighbors (ANN) algorithm.
█ BACKGROUND
In physics, Lorentzian space is perhaps best known for its role in describing the curvature of space-time in Einstein's theory of General Relativity (2). Interestingly, however, this abstract concept from theoretical physics also has tangible real-world applications in trading.
Recently, it was hypothesized that Lorentzian space was also well-suited for analyzing time-series data (4), (5). This hypothesis has been supported by several empirical studies that demonstrate that Lorentzian distance is more robust to outliers and noise than the more commonly used Euclidean distance (1), (3), (6). Furthermore, Lorentzian distance was also shown to outperform dozens of other highly regarded distance metrics, including Manhattan distance, Bhattacharyya similarity, and Cosine similarity (1), (3). Outside of Dynamic Time Warping based approaches, which are unfortunately too computationally intensive for PineScript at this time, the Lorentzian Distance metric consistently scores the highest mean accuracy over a wide variety of time series data sets (1).
Euclidean distance is commonly used as the default distance metric for NN-based search algorithms, but it may not always be the best choice when dealing with financial market data. This is because financial market data can be significantly impacted by proximity to major world events such as FOMC Meetings and Black Swan events. This event-based distortion of market data can be framed as similar to the gravitational warping caused by a massive object on the space-time continuum. For financial markets, the analogous continuum that experiences warping can be referred to as "price-time".
Below is a side-by-side comparison of how neighborhoods of similar historical points appear in three-dimensional Euclidean Space and Lorentzian Space:
This figure demonstrates how Lorentzian space can better accommodate the warping of price-time since the Lorentzian distance function compresses the Euclidean neighborhood in such a way that the new neighborhood distribution in Lorentzian space tends to cluster around each of the major feature axes in addition to the origin itself. This means that, even though some nearest neighbors will be the same regardless of the distance metric used, Lorentzian space will also allow for the consideration of historical points that would otherwise never be considered with a Euclidean distance metric.
Intuitively, the advantage inherent in the Lorentzian distance metric makes sense. For example, it is logical that the price action that occurs in the hours after Chairman Powell finishes delivering a speech would resemble at least some of the previous times when he finished delivering a speech. This may be true regardless of other factors, such as whether or not the market was overbought or oversold at the time or if the macro conditions were more bullish or bearish overall. These historical reference points are extremely valuable for predictive models, yet the Euclidean distance metric would miss these neighbors entirely, often in favor of irrelevant data points from the day before the event. By using Lorentzian distance as a metric, the ML model is instead able to consider the warping of price-time caused by the event and, ultimately, transcend the temporal bias imposed on it by the time series.
For more information on the implementation details of the Approximate Nearest Neighbors (ANN) algorithm used in this indicator, please refer to the detailed comments in the source code.
█ HOW TO USE
Below is an explanatory breakdown of the different parts of this indicator as it appears in the interface:
Below is an explanation of the different settings for this indicator:
General Settings:
Source - This has a default value of "hlc3" and is used to control the input data source.
Neighbors Count - This has a default value of 8, a minimum value of 1, a maximum value of 100, and a step of 1. It is used to control the number of neighbors to consider.
Max Bars Back - This has a default value of 2000.
Feature Count - This has a default value of 5, a minimum value of 2, and a maximum value of 5. It controls the number of features to use for ML predictions.
Color Compression - This has a default value of 1, a minimum value of 1, and a maximum value of 10. It is used to control the compression factor for adjusting the intensity of the color scale.
Show Exits - This has a default value of false. It controls whether to show the exit threshold on the chart.
Use Dynamic Exits - This has a default value of false. It is used to control whether to attempt to let profits ride by dynamically adjusting the exit threshold based on kernel regression.
Feature Engineering Settings:
Note: The Feature Engineering section is for fine-tuning the features used for ML predictions. The default values are optimized for the 4H to 12H timeframes for most charts, but they should also work reasonably well for other timeframes. By default, the model can support features that accept two parameters (Parameter A and Parameter B, respectively). Even though there are only 4 features provided by default, the same feature with different settings counts as two separate features. If the feature only accepts one parameter, then the second parameter will default to EMA-based smoothing with a default value of 1. These features represent the most effective combination I have encountered in my testing, but additional features may be added as additional options in the future.
Feature 1 - This has a default value of "RSI" and options are: "RSI", "WT", "CCI", "ADX".
Feature 2 - This has a default value of "WT" and options are: "RSI", "WT", "CCI", "ADX".
Feature 3 - This has a default value of "CCI" and options are: "RSI", "WT", "CCI", "ADX".
Feature 4 - This has a default value of "ADX" and options are: "RSI", "WT", "CCI", "ADX".
Feature 5 - This has a default value of "RSI" and options are: "RSI", "WT", "CCI", "ADX".
Filters Settings:
Use Volatility Filter - This has a default value of true. It is used to control whether to use the volatility filter.
Use Regime Filter - This has a default value of true. It is used to control whether to use the trend detection filter.
Use ADX Filter - This has a default value of false. It is used to control whether to use the ADX filter.
Regime Threshold - This has a default value of -0.1, a minimum value of -10, a maximum value of 10, and a step of 0.1. It is used to control the Regime Detection filter for detecting Trending/Ranging markets.
ADX Threshold - This has a default value of 20, a minimum value of 0, a maximum value of 100, and a step of 1. It is used to control the threshold for detecting Trending/Ranging markets.
Kernel Regression Settings:
Trade with Kernel - This has a default value of true. It is used to control whether to trade with the kernel.
Show Kernel Estimate - This has a default value of true. It is used to control whether to show the kernel estimate.
Lookback Window - This has a default value of 8 and a minimum value of 3. It is used to control the number of bars used for the estimation. Recommended range: 3-50
Relative Weighting - This has a default value of 8 and a step size of 0.25. It is used to control the relative weighting of time frames. Recommended range: 0.25-25
Start Regression at Bar - This has a default value of 25. It is used to control the bar index on which to start regression. Recommended range: 0-25
Display Settings:
Show Bar Colors - This has a default value of true. It is used to control whether to show the bar colors.
Show Bar Prediction Values - This has a default value of true. It controls whether to show the ML model's evaluation of each bar as an integer.
Use ATR Offset - This has a default value of false. It controls whether to use the ATR offset instead of the bar prediction offset.
Bar Prediction Offset - This has a default value of 0 and a minimum value of 0. It is used to control the offset of the bar predictions as a percentage from the bar high or close.
Backtesting Settings:
Show Backtest Results - This has a default value of true. It is used to control whether to display the win rate of the given configuration.
█ WORKS CITED
(1) R. Giusti and G. E. A. P. A. Batista, "An Empirical Comparison of Dissimilarity Measures for Time Series Classification," 2013 Brazilian Conference on Intelligent Systems, Oct. 2013, DOI: 10.1109/bracis.2013.22.
(2) Y. Kerimbekov, H. Ş. Bilge, and H. H. Uğurlu, "The use of Lorentzian distance metric in classification problems," Pattern Recognition Letters, vol. 84, 170–176, Dec. 2016, DOI: 10.1016/j.patrec.2016.09.006.
(3) A. Bagnall, A. Bostrom, J. Large, and J. Lines, "The Great Time Series Classification Bake Off: An Experimental Evaluation of Recently Proposed Algorithms." ResearchGate, Feb. 04, 2016.
(4) H. Ş. Bilge, Yerzhan Kerimbekov, and Hasan Hüseyin Uğurlu, "A new classification method by using Lorentzian distance metric," ResearchGate, Sep. 02, 2015.
(5) Y. Kerimbekov and H. Şakir Bilge, "Lorentzian Distance Classifier for Multiple Features," Proceedings of the 6th International Conference on Pattern Recognition Applications and Methods, 2017, DOI: 10.5220/0006197004930501.
(6) V. Surya Prasath et al., "Effects of Distance Measure Choice on KNN Classifier Performance - A Review." .
█ ACKNOWLEDGEMENTS
@veryfid - For many invaluable insights, discussions, and advice that helped to shape this project.
@capissimo - For open sourcing his interesting ideas regarding various KNN implementations in PineScript, several of which helped inspire my original undertaking of this project.
@RikkiTavi - For many invaluable physics-related conversations and for his helping me develop a mechanism for visualizing various distance algorithms in 3D using JavaScript
@jlaurel - For invaluable literature recommendations that helped me to understand the underlying subject matter of this project.
@annutara - For help in beta-testing this indicator and for sharing many helpful ideas and insights early on in its development.
@jasontaylor7 - For helping to beta-test this indicator and for many helpful conversations that helped to shape my backtesting workflow
@meddymarkusvanhala - For helping to beta-test this indicator
@dlbnext - For incredibly detailed backtesting testing of this indicator and for sharing numerous ideas on how the user experience could be improved.
Adaptive MA constructor [lastguru]Adaptive Moving Averages are nothing new, however most of them use EMA as their MA of choice once the preferred smoothing length is determined. I have decided to make an experiment and separate length generation from smoothing, offering multiple alternatives to be combined. Some of the combinations are widely known, some are not. This indicator is based on my previously published public libraries and also serve as a usage demonstration for them. I will try to expand the collection (suggestions are welcome), however it is not meant as an encyclopaedic resource, so you are encouraged to experiment yourself: by looking on the source code of this indicator, I am sure you will see how trivial it is to use the provided libraries and expand them with your own ideas and combinations. I give no recommendation on what settings to use, but if you find some useful setting, combination or application ideas (or bugs in my code), I would be happy to read about them in the comments section.
The indicator works in three stages: Prefiltering, Length Adaptation and Moving Averages.
Prefiltering is a fast smoothing to get rid of high-frequency (2, 3 or 4 bar) noise.
Adaptation algorithms are roughly subdivided in two categories: classic Length Adaptations and Cycle Estimators (they are also implemented in separate libraries), all are selected in Adaptation dropdown. Length Adaptation used in the Adaptive Moving Averages and the Adaptive Oscillators try to follow price movements and accelerate/decelerate accordingly (usually quite rapidly with a huge range). Cycle Estimators, on the other hand, try to measure the cycle period of the current market, which does not reflect price movement or the rate of change (the rate of change may also differ depending on the cycle phase, but the cycle period itself usually changes slowly).
Chande (Price) - based on Chande's Dynamic Momentum Index (CDMI or DYMOI), which is dynamic RSI with this length
Chande (Volume) - a variant of Chande's algorithm, where volume is used instead of price
VIDYA - based on VIDYA algorithm. The period oscillates from the Lower Bound up (slow)
VIDYA-RS - based on Vitali Apirine's modification of VIDYA algorithm (he calls it Relative Strength Moving Average). The period oscillates from the Upper Bound down (fast)
Kaufman Efficiency Scaling - based on Efficiency Ratio calculation originally used in KAMA
Deviation Scaling - based on DSSS by John F. Ehlers
Median Average - based on Median Average Adaptive Filter by John F. Ehlers
Fractal Adaptation - based on FRAMA by John F. Ehlers
MESA MAMA Alpha - based on MESA Adaptive Moving Average by John F. Ehlers
MESA MAMA Cycle - based on MESA Adaptive Moving Average by John F. Ehlers, but unlike Alpha calculation, this adaptation estimates cycle period
Pearson Autocorrelation* - based on Pearson Autocorrelation Periodogram by John F. Ehlers
DFT Cycle* - based on Discrete Fourier Transform Spectrum estimator by John F. Ehlers
Phase Accumulation* - based on Dominant Cycle from Phase Accumulation by John F. Ehlers
Length Adaptation usually take two parameters: Bound From (lower bound) and To (upper bound). These are the limits for Adaptation values. Note that the Cycle Estimators marked with asterisks(*) are very computationally intensive, so the bounds should not be set much higher than 50, otherwise you may receive a timeout error (also, it does not seem to be a useful thing to do, but you may correct me if I'm wrong).
The Cycle Estimators marked with asterisks(*) also have 3 checkboxes: HP (Highpass Filter), SS (Super Smoother) and HW (Hann Window). These enable or disable their internal prefilters, which are recommended by their author - John F. Ehlers. I do not know, which combination works best, so you can experiment.
Chande's Adaptations also have 3 additional parameters: SD Length (lookback length of Standard deviation), Smooth (smoothing length of Standard deviation) and Power (exponent of the length adaptation - lower is smaller variation). These are internal tweaks for the calculation.
Length Adaptaton section offer you a choice of Moving Average algorithms. Most of the Adaptations are originally used with EMA, so this is a good starting point for exploration.
SMA - Simple Moving Average
RMA - Running Moving Average
EMA - Exponential Moving Average
HMA - Hull Moving Average
VWMA - Volume Weighted Moving Average
2-pole Super Smoother - 2-pole Super Smoother by John F. Ehlers
3-pole Super Smoother - 3-pole Super Smoother by John F. Ehlers
Filt11 -a variant of 2-pole Super Smoother with error averaging for zero-lag response by John F. Ehlers
Triangle Window - Triangle Window Filter by John F. Ehlers
Hamming Window - Hamming Window Filter by John F. Ehlers
Hann Window - Hann Window Filter by John F. Ehlers
Lowpass - removes cyclic components shorter than length (Price - Highpass)
DSSS - Derivation Scaled Super Smoother by John F. Ehlers
There are two Moving Averages that are drown on the chart, so length for both needs to be selected. If no Adaptation is selected ( None option), you can set Fast Length and Slow Length directly. If an Adaptation is selected, then Cycle multiplier can be selected for Fast and Slow MA.
More information on the algorithms is given in the code for the libraries used. I am also very grateful to other TradingView community members (they are also mentioned in the library code) without whom this script would not have been possible.
Exotic SMA Explorations Treasure TroveThis is my "Exotic SMA Explorations Treasure Trove" intended for educational purposes, yet these functions will also have utility in special applications with other algorithms. Firstly, the Pine built-in sma() is exceedingly more efficient computationally on TV servers than these functions will be. I just wanted to make that very crystal clear. My notes elaborate on this in the code blatantly.
Anyhow, the simple moving average(SMA) is one of the most common averaging filters used in a wide variety of algorithms. "Simply put," it's name says a lot about it. The purpose of this script, is to demonstrate variations of it's calculation in a multitude of exotic forms. In certain scenarios our algorithms may require a specific mathemagical touch that is pertinent to our intended goals. Like screwdrivers, we often need different types depending on the objective we are trying to attain. The SMA also serves as the most basic of finite impulse response(FIR) algorithms. For example, things like weighted moving averages can be constructed by using the foundational code of SMA.
One other intended demonstration of this script, is running multiple functions for comparison. I have had to use this from time to time for my own comparisons of performance. Also, imbedded into this code is a method to generically and recklessly in this case, adapt an algorithm. I will warn you, RSI was NEVER intended to adapt an algorithm. It only serves as a crude method to display the versatility of these different algorithms, whether it be a benefit or hinderance concerning dynamic adaptability.
Lastly, this script shows the versatility of TV's NEW additions input(group=) and input(inline=) upgrades in action. The "Immense Power of Pine" is always evolving and will continue to do so, I assure you of that. We can now categorize our input()s without using the input(type=input.bool) hackTrick. Although, that still will have it's enduring versatility, at least for myself.
NOTICE: You have absolute freedom to use this source code any way you see fit within your new Pine projects. You don't have to ask for my permission to reuse these functions in your published scripts, simply because I have better things to do than answer requests for the reuse of these functions. Sufficient accreditation regarding this script and compliance with "TV's House Rules" regarding code reuse, is as easy as copying the functions in their entirety as is. Fair enough? Good!
When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members, I may implement more ideas when they present themselves as worthy additions. Have a profitable future everyone!
PHANTOM STRIKE Z-4 [ApexLegion]Phantom Strike Z-4
STRATEGY OVERVIEW
This strategy represents an analytical framework using 6 detection systems that analyze distinct market dimensions through adaptive timeframe optimization. Each system targets specific market inefficiencies - automated parameter adjustment, market condition filtering, phantom strike pattern detection, SR exit management, order block identification, and volatility-aware risk management - with results processed through a multi-component scoring calculation that determines signal generation and position management decisions.
SYSTEM ARCHITECTURE PHILOSOPHY
Phantom Strike Z-4 operates through 12 distinct parameter groups encompassing individual settings that allow detailed customization for different trading environments. The strategy employs modular design principles where each analytical component functions independently while contributing to unified decision-making protocols. This architecture enables traders to engage with structured market analysis through intuitive configuration options while the underlying algorithms handle complex computational processes.
The framework approaches certain aspects differently from static trading approaches by implementing real-time parameter adjustment based on timeframe characteristics, market volatility conditions, news event detection, and weekend gap analysis. During low-volatility periods where traditional strategies struggle to generate meaningful returns, Z-4's adaptive systems identify micro-opportunities through formation analysis and systematic patience protocols.
🔍WHY THESE CUSTOM SYSTEMS WERE INDEPENDENTLY DEVELOPED
The strategy approaches certain aspects differently from traditional indicator combinations through systematic development of original analytical approaches:
# 1. Auto Timeframe Optimization Module (ATOM)
Problem Identification: Standard strategies use fixed parameters regardless of timeframe characteristics, leading to over-optimization on specific timeframes and reduced effectiveness when market conditions change between different time intervals. Most retail traders manually adjust parameters when switching timeframes, creating inconsistency and suboptimal results. Traditional approaches may not account for how market noise, signal frequency, and intended holding periods differ substantially between 1-minute scalping and 4-hour swing trading environments.
Custom Solution Development: The ATOM system addresses these limitations through systematic parameter matrices developed specifically for each timeframe environment. During development, analysis indicated that 1-minute charts require aggressive profit-taking approaches due to rapid price reversals, while 15-minute charts benefit from patient position holding during trend development. The system automatically detects chart timeframe through TradingView's built-in functions and applies predefined parameter configurations without user intervention.
Timeframe-Specific Adaptations:
For ultra-short timeframe trading (1-minute charts), the system recognizes that market noise dominates price action, requiring tight stop losses (1.0%) and rapid profit realization (25% at TP1, 35% at TP2, 40% at TP3). Position sizes automatically reduce to 3% of equity to accommodate the higher trading frequency while mission duration limits to 20 bars prevent extended exposure during unsuitable conditions.
Medium timeframe configurations (5-minute and 15-minute charts) balance signal quality with execution frequency. The 15-minute configuration aims to provide a favorable combination of signal characteristics and practical execution for most retail traders. Formation thresholds increase to 2.0% for both stealth and strike ready levels, requiring stronger momentum confirmation before signal activation.
Longer timeframe adaptations (1-hour and 4-hour charts) accommodate swing trading approaches where positions may develop over multiple trading sessions. Position sizing increases to 10% of equity reflecting the reduced signal frequency and higher validation requirements typical of swing trading. Take profit targets extend considerably (TP1: 2.0%, TP2: 4.0%, TP3: 8.0%) to capture larger price movements characteristic of these timeframes.
# 2. Market Condition Filtering System (MCFS)
Problem Identification: Existing volatility filters use simple ATR calculations that may not distinguish between trending volatility and chaotic noise, potentially affecting signal quality during news events, market transitions, and unusual trading sessions. Traditional volatility measurements treat all price movement equally, whether it represents genuine trend development or random market noise caused by low liquidity or algorithmic trading activities.
Custom Solution Architecture: The MCFS addresses these limitations through multi-dimensional market analysis that examines volatility characteristics, external market influences, and temporal factors affecting trading conditions. Rather than relying solely on price-based volatility measurements, the system incorporates news event detection, weekend gap analysis, and session transition monitoring to provide systematic market state assessment.
Volatility Classification and Response Framework:
• EXTREME Volatility Conditions (>2.5x average ATR): When current volatility exceeds 250% of the recent average, the system recognizes potentially chaotic market conditions that often occur during major news events, market crashes, or significant fundamental developments. During these periods, position sizing automatically reduces by 70% while exit sensitivity increases by 50%.
• HIGH Volatility Conditions (1.8-2.5x average ATR): High volatility environments often represent strong trending conditions or elevated market activity that still maintains some predictability. Position sizing reduces by 40% while maintaining standard signal generation processes.
• NORMAL Volatility Conditions (1.2-1.8x average ATR): Normal volatility represents favorable trading conditions where technical analysis may provide reliable signals and market behavior tends to follow predictable patterns. All strategy parameters operate at standard settings.
• LOW Volatility Conditions (0.8-1.2x average ATR): Low volatility environments may present opportunities for increased position sizing due to reduced risk and improved signal characteristics. Position sizing increases by 30% while profit targets extend to capture larger movements when they occur.
• DEAD Volatility Conditions (<0.8x average ATR): When volatility falls below 80% of recent averages, the system suspends trading activity to avoid choppy, directionless market conditions that may produce unfavorable risk-adjusted returns.
# 3. Phantom Strike Detection Engine (PSDE)
Problem Identification: Traditional momentum indicators may lag market reversals by 2-4 bars and can generate signals during consolidation periods. Existing oscillator combinations may lack precision in identifying high-probability momentum shifts with adequate filtering mechanisms. Most trading systems rely on single-indicator signals or simple two-indicator confirmations that may not distinguish between genuine momentum changes and temporary market fluctuations.
Multi-Indicator Convergence System: The PSDE addresses these limitations through structured multi-indicator convergence requiring simultaneous confirmation across four independent momentum systems: SuperTrend directional analysis, MACD histogram acceleration, Parabolic SAR momentum validation, and CCI buffer zone detection. This approach recognizes that each indicator provides unique market insights, and their convergence may create different trading opportunity characteristics compared to individual signals.
Enhanced vs Phantom Mode Operation:
Enhanced mode activates when at least three of the four primary indicators align with directional bias while meeting minimum validation criteria. Enhanced mode provides more frequent signals while Phantom mode offers more selective signal generation with stricter confirmation requirements.
Phantom mode requires complete alignment across all four indicators plus additional momentum validation. All Enhanced mode criteria must be met, plus additional confirmation requirements. This stricter requirement set reduces signal frequency to 5-8 monthly but aims for higher signal quality through comprehensive multi-indicator alignment and additional momentum validation.
# 4. Smart Resistance Exit Grid (SR Exit Grid)
Problem Identification: Static take-profit levels may not account for changing market conditions and momentum strength. Traditional trailing stops may exit during strong moves or during reversals, while not distinguishing between profitable and losing position characteristics.
Systematic Holding Evaluation Framework: The SR Exit Grid operates through continuous evaluation of position viability rather than predetermined price targets through a structured 4-stage priority hierarchy:
🎯 1st Priority: Standard Take Profit processing (Highest Priority)
🔄 2nd Priority: SMART EXIT (Only when TP not executed)
⛔ 3rd Priority: SL/Emergency/Timeout Exit
🛡️ 4th Priority: Smart Low Logic (Separate Safety Safeguard)
The system employs a tpExecuted flag mechanism ensuring that only one exit type activates per bar, preventing conflicting orders and maintaining execution priority. Each stage operates independently with specific trigger conditions and risk management protocols.
Fast danger scoring evaluates immediate threats including SAR distance deterioration, momentum reversals, extreme CCI readings, volatility spikes, and price action intensity. When combined scores exceed specified thresholds (8.0+ danger with <2.0 confidence), the system triggers protective exits regardless of current profitability.
# 5. Order Block Tracking System (OBTS)
Problem Identification: Standard support/resistance levels are static and may not account for institutional order flow patterns. Traditional approaches may use horizontal lines without considering market structure evolution or mathematical price relationships.
Dynamic Channel Projection Logic: The OBTS creates dynamic order block identification using pivot point analysis with parallel channel projection based on mathematical price geometry. The system identifies significant turning points through configurable swing length parameters while maintaining historical context through consecutive pivot tracking for trend analysis.
Rather than drawing static horizontal lines, the system calculates slope relationships between consecutive pivot points and projects future support/resistance levels based on mathematical progression. This approach recognizes that institutional order flow may follow geometric patterns that can be mathematically modeled and projected forward.
# 6. Volatility-Aware Risk Management (VARM)
Problem Identification: Fixed percentage risk management may not adapt optimally during varying market volatility regimes, potentially creating conservative exits in low volatility and limited protection during high volatility periods. Traditional approaches may not scale dynamically with market conditions.
Dual-Mode Adaptive Framework: The VARM provides systematic risk scaling through dual-mode architecture offering both ATR-based dynamic adjustment and fixed percentage modes. Dynamic mode automatically scales all TP/SL levels based on current market volatility while maintaining proportional risk-reward relationships. Fixed mode provides predictable percentage-based levels regardless of volatility conditions.
Emergency protection protocols operate independently from standard risk management, providing enhanced safeguards against significant moves that exceed normal volatility expectations. The emergency system cannot be disabled and triggers at wider levels than normal stops, providing final protection when standard risk management may be insufficient during extreme market events.
## Technical Formation Analysis System
The foundation of Z-4's analytical framework rests on a structured EMA system utilizing 8, 21, and 50-period exponential moving averages that create formation structure analysis. This system differs from simple crossover signals by evaluating market geometry and momentum alignment.
Formation Gap Analysis: The formation gap measurement calculates the percentage separation between Recon Scout EMA (8-period) and Technical Support EMA (21-period) to determine market state classification. When gap percentage falls below the Stealth Mode Threshold (default 1.5%), the market enters consolidation phase requiring enhanced patience. When gap exceeds Strike Ready Threshold (1.5%), conditions become favorable for momentum-based entries.
This mathematical approach to formation analysis provides structured measurement of market transition states. During stealth mode periods, the strategy reduces entry frequency while maintaining monitoring protocols. Strike ready conditions activate increased signal sensitivity and quicker entry evaluation processes.
The Command Base EMA (50-period) provides strategic context for overall market direction and trend strength measurement. Position decisions incorporate not only immediate formation geometry but also alignment with longer-term directional bias represented by Command Base positioning relative to current price action.
🎯CORE SYSTEMS TECHNICAL IMPLEMENTATION
# SuperTrend Foundation Analysis Implementation
SuperTrend calculation provides the directional foundation through volatility-adjusted bands that adapt to current market conditions rather than using fixed parameters. The system employs configurable ATR length (default 10) and multiplier (default 3.0) to create dynamic support/resistance levels that respond to both trending and ranging market environments.
Volatility-Adjusted Band Calculation:
st_atr = ta.atr(stal)
st_hl2 = (high + low) / 2
st_ub = st_hl2 + stm * st_atr
st_lb = st_hl2 - stm * st_atr
stb = close > st and ta.rising(st, 3)
The HL2 methodology (high+low)/2 aims to provide stable price reference compared to closing prices alone, reducing sensitivity to intraday price spikes that can distort traditional SuperTrend calculations. ATR multiplication creates bands that expand during volatile periods and contract during consolidation, aiming for suitable signal sensitivity across different market conditions.
Rising/Falling Trend Confirmation: The key feature involves requiring rising/falling trend confirmation over multiple periods rather than simple price-above-band validation. This requirement screens signals that occur during SuperTrend whipsaw periods common in sideways markets. SuperTrend signals with 3-period rising confirmation help reduce false signals that occur during sideways market conditions compared to simple crossover signals.
Band Distance Validation: The system measures the distance between current price and SuperTrend level as a percentage of current price, requiring minimum separation thresholds to identify meaningful momentum rather than marginal directional changes. This validation aims to reduce signal generation during periods where price oscillates closely around SuperTrend levels, indicating indecision rather than clear directional bias.
# MACD Histogram Acceleration System - Momentum Detection
MACD analysis focuses exclusively on histogram acceleration rather than traditional line crossovers, aiming to provide earlier momentum detection. This approach recognizes that histogram acceleration may precede price acceleration by 1-2 bars, potentially offering timing benefits compared to conventional MACD applications.
Acceleration-Based Signal Generation:
mf = ta.ema(close, mfl)
ms = ta.ema(close, msl)
ml = mf - ms
msg = ta.ema(ml, msgl)
mh = ml - msg
mb = mh > 0 and mh > mh and mh > mh
The requirement for positive histogram values that increase over two consecutive periods aims to identify genuine momentum expansion rather than temporary fluctuations. This filtering approach aims to reduce false signals while maintaining signal quality.
Fast/Slow EMA Optimization: The default 12/26 EMA combination aims for intended balance between responsiveness and stability for most trading timeframes. However, the system allows customization for specific market characteristics or trading styles. Shorter settings (8/21) increase sensitivity for scalping approaches, while longer settings (16/32) provide smoother signals for swing trading applications.
Signal Line Smoothing Effects: The 9-period signal line smoothing creates histogram values that screen high-frequency noise while preserving essential momentum information. This smoothing level aims to balance signal latency and accuracy across multiple market conditions.
# Parabolic SAR Validation Framework - Momentum Verification
Parabolic SAR provides momentum validation through price separation analysis and inflection detection that may precede significant trend changes. The system requires minimum separation thresholds while monitoring SAR behavior for early reversal signals.
Separation-Based Validation:
sar = ta.sar(ss, si, sm)
sarb = close > sar and (close - sar) / close > 0.005
sardp = math.abs(close - sar) / close * 100
sariu = sarm > 0 and sarm < 0 and math.abs(sarmc) > saris
The 0.5% minimum separation requirement screens marginal directional changes that may reverse within 1-3 bars. The 0.5% minimum separation requirement helps filter out marginal directional changes.
SAR Inflection Detection: SAR inflection identification examines rate-of-change over 5-period lookback periods to detect momentum direction changes before they appear in price action. Inflection sensitivity (default 1.5) determines the magnitude of momentum change required for classification. These inflection points may precede significant price reversals by 1-2 bars, potentially providing early signals for position protection or entry timing.
Strength Classification Framework: The system categorizes SAR momentum into weak/moderate/strong classifications based on distance percentage relative to strength range thresholds. Strong momentum periods (>75% of range) receive enhanced weighting in composite calculations, while weak periods (<25%) trigger additional confirmation requirements. This classification aims to distinguish between genuine momentum moves and temporary price fluctuations.
# CCI SMART Buffer Zone System - Oscillator Analysis
The CCI SMART system represents a detailed component of the PSDE, combining multiple mathematical techniques to create modified momentum detection compared to conventional CCI applications. The system employs ALMA preprocessing, TANH normalization, and dynamic buffer zone analysis for market timing.
ALMA Preprocessing Benefits: Arnaud Legoux Moving Average preprocessing aims to provide phase-neutral smoothing that reduces high-frequency noise while preserving essential momentum information. The configurable offset (0.85) and sigma (6.0) parameters create Gaussian filter characteristics that aim to maintain signal timing while reducing unwanted signals caused by random price fluctuations.
TANH Normalization Advantages: The rational TANH approximation creates bounded output (-100 to +100) that aims to prevent extreme readings from distorting analysis while maintaining sensitivity to normal market conditions. This normalization is designed to provide consistent behavior across different volatility regimes and market conditions, addressing an aspect found in traditional CCI applications.
Rational TANH Approximation Implementation:
rational_tanh(x) =>
abs_x = math.abs(x)
if abs_x >= 4.0
x >= 0 ? 1.0 : -1.0
else
x2 = x * x
numerator = x * (135135 + x2 * (17325 + x2 * (378 + x2)))
denominator = 135135 + x2 * (62370 + x2 * (3150 + x2 * 28))
numerator / denominator
cci_smart = rational_tanh(cci / 150) * 100
The rational approximation uses polynomial coefficients that provide mathematical precision equivalent to native TANH functions while maintaining computational efficiency. The 4.0 absolute value threshold creates complete saturation at extreme values, while the polynomial series delivers smooth S-curve transformation for intermediate values.
Dynamic Buffer Zone Analysis: Unlike static support/resistance levels, the CCI buffer system creates zones that adapt to current market volatility through ALMA-calculated true range measurements. Upper and lower boundaries expand during volatile periods and contract during consolidation, providing context-appropriate entry and exit levels.
CCI Buffer System Implementation:
cci = ta.cci(close, ccil)
cci_atr = ta.alma(ta.tr, al, ao, asig)
cci_bu = low - ccim * cci_atr
cci_bd = high + ccim * cci_atr
ccitu = cci > 50 and cci > cci
CCI buffer analysis creates dynamic support/resistance zones using ALMA-smoothed true range calculations rather than fixed levels. Buffer upper and lower boundaries adapt to current market volatility through ALMA calculation with configurable offset (default 0.85) and sigma (default 6.0) parameters.
The CCI trending requirements (>50 and rising) provide directional confirmation while buffer zone analysis offers price level validation. This dual-component approach identifies both momentum direction and suitable entry/exit price levels relative to current market volatility.
# Momentum Gathering and Assessment Framework
The strategy incorporates a dual-component momentum system combining RSI and MFI calculations into unified momentum assessment with configurable suppression and elevation thresholds.
Composite Momentum Calculation:
ri = ta.rsi(close, mgp)
mi = ta.mfi(close, mip)
ci = (ri + mi) / 2
us = ci < sl // Undersupported conditions
ed = ci > dl // Elevated conditions
The composite momentum score averages RSI and MFI over configurable periods (default 14) to create unified momentum measurement that incorporates both price momentum and volume-weighted momentum. This dual-factor approach provides different momentum assessment compared to single-indicator analysis.
Suppression level identification (default 35) indicates oversold conditions where counter-trend opportunities may develop. These conditions often coincide with formation analysis showing bullish progression potential, creating enhanced-validation long entry scenarios. Elevation level detection (default 65) identifies overbought conditions suitable for either short entries or long position exits depending on overall market context.
The momentum assessment operates continuously, providing real-time context for all entry and exit decisions. Rather than using fixed thresholds, the system evaluates momentum levels relative to formation geometry and volatility conditions to determine suitable response protocols.
Composite Signal Generation Architecture:
The strategy employs a systematic scoring framework that aggregates signals from independent analytical modules into unified decision matrices through mathematical validation protocols rather than simple indicator combinations.
Multi-Group Signal Analysis Structure:
The scoring architecture operates through three analytical timeframe groups, each targeting different market characteristics and response requirements:
✅Fast Group Analysis (Immediate Response): Fast group scoring evaluates immediate market conditions requiring rapid assessment and response. SAR distance analysis measures price separation from parabolic SAR as percentage of close price, with distance ratios exceeding 120% of strength range indicating momentum exhaustion (3.0 points). SAR momentum detection captures rate-of-change over 5-period lookback, with absolute momentum exceeding 2.0% indicating notable acceleration or deceleration (1.0 point).
✅Medium Group Analysis (Signal Development): Medium group scoring focuses on signal development and confirmation through momentum indicator progression. Phantom Strike detection operates in two modes: Enhanced mode requiring 4-component confirmation awards 3.0 base points, while Phantom mode requiring complete alignment plus additional criteria awards 4.0 base points.
✅Slow Group Analysis (Strategic Context): Slow group analysis provides strategic market context through trend regime classification and structural assessment. Trend classification scoring awards top points (3.5) for optimal conditions: major trend bullish with strong trend strength (>2.0% EMA spread), 2.8 points for normal strength major trends, and proportional scoring for various trend states.
Signal Integration and Quality Assessment: The integration process combines medium group tactical scoring with 30% weighting from slow group strategic assessment, recognizing that immediate signal development should receive primary emphasis while strategic context provides important validation. Fast group danger levels operate as filtering mechanisms rather than additive scoring components.
Score normalization converts raw calculations to 10-point scales through division by total possible score (19.6) and multiplication by 10. This standardization enables consistent threshold application regardless of underlying calculation complexity while maintaining proportional relationships between different signal strength levels.
Conflict Resolution and Priority Logic:
sc = math.abs(cs_les - cs_ses) < 1.5
hqls = sql and not sc and (cs_les > cs_ses * 1.15)
hqss = sqs and not sc and (cs_ses > cs_les * 1.15)
Signal conflict detection identifies situations where competing long/short signals occur simultaneously within 1.5-point differential. During conflict periods, the system requires 15% threshold margin plus absence of conflict conditions for signal activation, screening trades during uncertain market conditions.
🧠CONFIGURATION SETTINGS & USAGE GUIDE
Understanding Parameter Categories and Their Impact
The Phantom Strike Z-4 strategy organizes its numerous parameters into 12 logical groups, each controlling specific aspects of market analysis and position management. Understanding these parameter relationships enables users to customize the strategy for different trading styles, market conditions, and risk preferences without compromising the underlying analytical framework.
Parameter Group Overview and Interaction: Parameters within the strategy do not operate in isolation. Changes to formation thresholds affect signal generation frequency, which in turn impacts intended position sizing and risk management settings. Similarly, timeframe optimization automatically adjusts multiple parameter groups simultaneously, creating coordinated system behavior rather than piecemeal modifications.
Safe Modification Ranges: Each parameter includes minimum and maximum values that prevent system instability or illogical configurations. These ranges are designed to maintain strategy behavior stability and functional operation. Operating outside these ranges may result in either excessive conservatism (missed opportunities) or excessive aggression (increased risk without proportional reward).
# Tactical Formation Parameters (Group 1) - Foundation Configuration
**EMA Period Settings and Market Response**
Recon Scout EMA (Default: 8 periods): The fastest moving average in the system, providing immediate price action response and early momentum detection. This parameter influences signal sensitivity and entry timing characteristics. Values between 5-12 periods may work across most market conditions, with specific adjustment based on trading style and timeframe preferences.
-Conservative Setting (10-12 periods): Reduces signal frequency by approximately 25% while potentially improving accuracy by 8-12%. Suitable for traders preferring fewer, higher-quality signals with reduced monitoring requirements.
-Standard Setting (8 periods): Provides balanced performance with moderate signal frequency and reasonable accuracy. Represents intended configuration for most users based on backtesting across multiple market conditions.
-Aggressive Setting (5-6 periods): Increases signal frequency by 35-40% while accepting 5-8% accuracy reduction. Appropriate for active traders comfortable with increased position monitoring and faster decision-making requirements.
Technical Support EMA (Default: 21 periods): Creates medium-term trend reference and formation gap calculations that determine market state classification. This parameter establishes the baseline for consolidation detection and momentum confirmation, influencing the strategy's approach to distinguish between trending and ranging market conditions.
Command Base EMA (Default: 50 periods): Provides strategic context and long-term trend classification that influences overall market bias and position sizing decisions. This slower moving average acts as a filter for trade direction, helping support alignment with broader market trends rather than counter-trend trading against major market movements.
**Formation Threshold Configuration**
Stealth Mode Threshold (Default: 1.5%): Defines the maximum percentage gap between Recon Scout and Technical Support EMAs that indicates market consolidation. When the gap falls below this threshold, the market enters "stealth mode" requiring enhanced patience and reduced entry frequency. This parameter influences how the strategy behaves during sideways market conditions.
-Tight Threshold (0.8-1.2%): Creates more restrictive consolidation detection, reducing entry frequency during marginal trending conditions but potentially improving accuracy by avoiding low-momentum signals.
-Standard Threshold (1.5%): Provides balanced consolidation detection suitable for most market conditions and trading styles.
-Loose Threshold (2.0-3.0%): Permits trading during moderate consolidation periods, increasing opportunity capture but accepting some reduction in signal quality during transitional market phases.
-Strike Ready Threshold (Default: 1.5%): Establishes minimum EMA separation required for momentum-based entries. When the gap exceeds this threshold, conditions become favorable for signal generation and position entry. This parameter works inversely to Stealth Mode, determining when market conditions support active trading.
# Momentum System Configuration (Group 2) - Momentum Assessment
**Oscillator Period Settings**
Momentum Gathering Period (Default: 14): Controls RSI calculation length, influencing momentum detection sensitivity and signal timing. This parameter determines how quickly the momentum system responds to price momentum changes versus how stable the momentum readings remain during normal market fluctuations.
-Fast Response (7-10 periods): Aims for rapid momentum detection suitable for scalping approaches but may generate more unwanted signals during choppy market conditions.
-Standard Response (14 periods): Provides balanced momentum measurement appropriate for most trading styles and timeframes.
-Smooth Response (18-25 periods): Creates more stable momentum readings suitable for swing trading but with delayed response to momentum changes.
-Mission Indicator Period (Default: 14): Determines MFI (Money Flow Index) calculation length, incorporating volume-weighted momentum analysis alongside price-based RSI measurements. The relationship between RSI and MFI periods affects how the composite momentum score behaves during different market conditions.
**Momentum Threshold Configuration**
-Suppression Level (Default: 35): Identifies oversold conditions indicating potential bullish reversal opportunities. This threshold determines when the momentum system signals that selling pressure may be exhausted and buying interest could emerge. Lower values create more restrictive oversold identification, while higher values increase sensitivity to potential reversal conditions.
-Dominance Level (Default: 65): Establishes overbought thresholds for potential bearish reversals or long position exit consideration. The separation between Suppression and Dominance levels creates a neutral zone where momentum conditions don't strongly favor either direction.
# Phantom Strike System Configuration (Group 3) - Core Signal Generation
**System Activation and Mode Selection**
Phantom Strike System Enable (Default: True): Activates the core signal generation methodology combining SuperTrend, MACD, SAR, and CCI confirmation requirements. Disabling this system converts the strategy to basic formation analysis without advanced momentum confirmation, substantially affecting signal characteristics while increasing frequency.
Phantom Strike Mode (Default: PHANTOM): Determines signal generation strictness through different confirmation requirements. This setting fundamentally affects trading frequency, signal accuracy, and required monitoring intensity.
ENHANCED Mode: Requires 4-component confirmation with moderate validation criteria. Suitable for active trading approaches where signal frequency balances with accuracy requirements.
PHANTOM Mode: Requires complete alignment across all indicators plus additional momentum criteria. Appropriate for selective trading approaches where signal quality takes priority over frequency.
**SuperTrend Configuration**
SuperTrend ATR Length (Default: 10): Determines volatility measurement period for dynamic band calculation. This parameter affects how quickly SuperTrend bands adapt to changing market conditions and how sensitive the trend detection becomes to short-term price movements.
SuperTrend Multiplier (Default: 3.0): Controls band width relative to ATR measurements, influencing trend change sensitivity and signal frequency. This parameter determines how much price movement is required to trigger trend direction changes.
**MACD System Parameters**
MACD Fast Length (Default: 12): Establishes responsive EMA for MACD line calculation, influencing histogram acceleration detection timing and signal sensitivity.
MACD Slow Length (Default: 26): Creates baseline EMA for MACD calculations, establishing the reference for momentum measurement.
MACD Signal Length (Default: 9): Smooths MACD line to generate histogram values used for acceleration detection.
**Parabolic SAR Settings**
SAR Start (Default: 0.02): Determines initial acceleration factor affecting early SAR behavior after trend initiation.
SAR Increment (Default: 0.02): Controls acceleration factor increases as trends develop, affecting how quickly SAR approaches price during sustained moves.
SAR Maximum (Default: 0.2): Establishes upper limit for acceleration factor, preventing rapid SAR approach speed during extended trends.
**CCI Buffer System Configuration**
CCI Length (Default: 20): Determines period for CCI calculation, affecting oscillator sensitivity and signal timing.
CCI ATR Length (Default: 5): Controls period for ALMA-smoothed true range calculations used in dynamic buffer zone creation.
CCI Multiplier (Default: 1.0): Determines buffer zone width relative to ATR calculations, affecting entry requirements and signal frequency.
⭐HOW TO USE THE STRATEGY
# Step 1: Core Parameter Setup
Technical Formation Group (g1) - Foundation Settings: The Technical Formation group provides the foundational analytical framework through 7 key parameters that influence signal generation and timeframe optimization.
Auto Optimization Controls:
enable_auto_tf = input.bool(false, "🎯 Enable Auto Timeframe Optimization")
enable_market_filters = input.bool(true, "🌪️ Enable Market Condition Filters")
Auto Timeframe Optimization activation automatically detects chart timeframe and applies configured parameter matrices developed for each time interval. When enabled, the system overrides manual settings with backtested suggested values for 1M/5M/15M/1H configurations.
Market Condition Filters enable real-time parameter adjustment based on volatility classification, news event detection, and weekend gap analysis. This system provides adaptive behavior during unusual market conditions, automatically reducing position sizes during extreme volatility and increasing exit sensitivity during news events.
# Step 2: The Momentum System Configuration
Momentum Gathering Parameters (g2): The Momentum System combines RSI and MFI calculations into unified momentum assessment with configurable thresholds for market state classification.
# Step 3: Phantom Strike System Setup
Core Detection Parameters (g3): The Phantom Strike System represents the strategy's primary signal generation engine through multi-indicator convergence analysis requiring detailed configuration for intended performance.
Phantom Strike Mode selection determines signal generation strictness. Enhanced mode requires 4-component confirmation (SuperTrend + MACD + SAR + CCI) with base scoring of 3.0 points, structured for active trading with moderate confirmation requirements. Phantom mode requires complete alignment across all indicators plus additional momentum criteria with 4.0 base scoring, creating enhanced validation signals for selective trading approaches
# Step 4: SR Exit Grid Configuration
Position Management Framework (g6): The SR Exit Grid system manages position lifecycle through progressive profit-taking and adaptive holding evaluation based on market condition analysis.
esr = input.bool(true, "Enable SR Exit Grid")
ept = input.bool(true, "Enable Partial Take Profit")
ets = input.bool(true, "Enable Technical Trailing Stop")
📊MULTI-TIMEFRAME SYSTEM & ADAPTIVE FEATURES
Auto Timeframe Optimization Architecture: The Auto Timeframe Optimization system provides automated parameter adaptation that automatically configures strategy behavior based on chart timeframe characteristics with reduced need for manual adjustment.
1-Minute Ultra Scalping Configuration:
get_1M_params() =>
StrategyParams.new(
smt = 0.8, srt = 1.0, mcb = 2, mmd = 20,
smartThreshold = 0.1, consecutiveLimit = 20,
positionSize = 3.0, enableQuickEntry = true,
ptp1 = 25, ptp2 = 35, ptp3 = 40,
tm1 = 1.5, tm2 = 3.0, tm3 = 4.5, tmf = 6.0,
isl = 1.0, esl = 2.0, tsd = 0.5, dsm = 1.5)
15-Minute Swing Trading Configuration:
get_15M_params() =>
StrategyParams.new(
smt = 2.0, srt = 2.0, mcb = 8, mmd = 100,
smartThreshold = 0.3, consecutiveLimit = 12,
positionSize = 7.0, enableQuickEntry = false,
ptp1 = 15, ptp2 = 25, ptp3 = 35,
tm1 = 4.0, tm2 = 8.0, tm3 = 12.0, tmf = 18.0,
isl = 2.0, esl = 3.5, tsd = 1.2, dsm = 2.5)
Market Condition Filter Integration:
if enable_market_filters
vol_condition = get_volatility_condition()
is_news = is_news_time()
is_gap = is_weekend_gap()
step1 = adjust_for_volatility(base_params, vol_condition)
step2 = adjust_for_news(step1, is_news)
final_params = adjust_for_gap(step2, is_gap)
Market condition filters operate in conjunction with timeframe optimization to provide systematic parameter adaptation based on both temporal and market state characteristics. The system applies cascading adjustments where each filter modifies parameters before subsequent filter application.
Volatility Classification Thresholds:
- EXTREME: >2.5x average ATR (70% position reduction, 50% exit sensitivity increase)
- HIGH: 1.8-2.5x average (40% position reduction, increased monitoring)
- NORMAL: 1.2-1.8x average (standard operations)
- LOW: 0.8-1.2x average (30% position increase, extended targets)
- DEAD: <0.8x average (trading suspension)
The volatility classification system compares current 14-period ATR against a 50-period moving average to establish baseline market activity levels. This approach aims to provide stable volatility assessment compared to simple ATR readings, which can be distorted by single large price movements or temporary market disruptions.
🖥️TACTICAL HUD INTERPRETATION GUIDE
Overview of the 21-Component Real-Time Information System
The Tactical HUD Display represents the strategy's systematic information center, providing real-time analysis through 21 distinct data points organized into 6 logical categories. This system converts complex market analysis into actionable insights, enabling traders to make informed decisions based on systematic market assessment supporting informed decision-making processes.
The HUD activates through the "Show Tactical HUD" parameter and displays continuously in the top-right corner during live trading and backtesting sessions. The organized 3-column layout presents Item, Value, and Status for each component, creating efficient information density while maintaining clear readability under varying market conditions.
# Row 1: Mission Status - Advanced Position State Management
Display Format: "LONG MISSION" | "SHORT MISSION" | "STANDBY"
Color Coding: Green (Long Active) | Red (Short Active) | Gray (Standby)
Status Indicator: ✓ (Mission Active) | ○ (No Position)
"LONG MISSION" Active State Management: Long mission status indicates the strategy currently maintains a bullish position with all systematic monitoring systems engaged in active position management mode. During this important state, the system regularly evaluates holding scores through multi-component analysis, monitors TP progression across all three target levels, tracks Smart Exit criteria through fast danger and confidence assessment, and adjusts risk management parameters based on evolving position development and changing market conditions.
"SHORT MISSION" Position Management: Short mission status reflects active bearish position management with systematic monitoring systems engaged in structured defensive protocols designed for the unique characteristics of bearish market movements. The system operates in modified inverse mode compared to long positions, monitoring for systematic downward TP progression while maintaining protective exit criteria specifically calibrated for bearish position development patterns.
"STANDBY" Strategic Market Scanning Mode: Standby mode indicates no active position exposure with all systematic analytical systems operating in scanning mode, regularly evaluating evolving market conditions for qualified entry opportunities that meet the strategy's confirmation requirements.
# Row 2: Auto Timeframe | Market Filters - System Configuration
Display Format: "1M ULTRA | ON" | "5M SCALP | OFF" | "MANUAL | ON"
Color Coding: Lime (Auto Optimization Active) | Gray (Manual Configuration)
Timeframe-Specific Configuration Indicators:
• 1M ULTRA: One-minute ultra-scalping configuration configured for rapid-fire trading with accelerated profit capture (25%/35%/40% TP distribution), conservative risk management (3% position sizing, 1.0% initial stops), and increased Smart Exit sensitivity (0.1 threshold, 20-bar consecutive limit).
• 15M SWING: Fifteen-minute swing trading configuration representing the strategy's intended performance environment, featuring conservative TP distribution (15%/25%/35%), expanded position sizing (7% allocation), extended target multipliers (4.0/8.0/12.0/18.0 ATR).
• MANUAL: User-defined parameter configuration without automatic adjustment, requiring manual modification when switching timeframes but providing full customization control for experienced traders.
Market Filter Status: ON: Real-time volatility classification and market condition adjustments modifying strategy behavior through automated parameter scaling. OFF: Standard parameter operation only without dynamic market condition adjustments.
# Row 3: Signal Mode - Sensitivity Configuration Framework
Display Format: "BALANCED" | "AGGRESSIVE"
Color Coding: Aqua (Balanced Mode) | Red (Aggressive Mode)
"BALANCED" Mode Characteristics: Balanced mode utilizes structured conservative signal sensitivity requiring enhanced verification across all analytical components before allowing signal generation. This rigorous configuration requires Medium Group scoring ≥5.5 points, Slow Group confirmation ≥3.5 points, and Fast Danger levels ≤2.0 points.
"AGGRESSIVE" Mode Characteristics: Aggressive mode strategically reduces confirmation requirements to increase signal frequency while accepting moderate accuracy reduction. Threshold requirements decrease to Medium Group ≥4.5 points, Slow Group ≥2.5 points, and Fast Danger ≤1.0 points.
# Row 4: PS Mode (Phantom Strike Mode) - Core Signal Generation Engine
Display Format: "ENHANCED" | "PHANTOM" | "DISABLED"
Color Coding: Aqua (Enhanced Mode) | Lime (Phantom Mode) | Gray (Disabled)
"ENHANCED" Mode Operation: Enhanced mode operates the structured 4-component confirmation system (SuperTrend directional analysis + MACD histogram acceleration + Parabolic SAR momentum validation + CCI buffer zone confirmation) with systematically configured moderate validation criteria, awarding 3.0 base points for signal strength calculation.
"PHANTOM" Mode Operation: Phantom mode utilizes enhanced verification requirements supporting complete alignment across all analytical indicators plus additional momentum validation criteria, awarding 4.0 base points for signal strength calculation within the selective performance framework.
# Row 5: PS Confirms (Phantom Strike Confirmations) - Real-Time Signal Development Tracking
Display Format: "ST✓ MACD✓ SAR✓ CCI✓" | Individual component status display
Color Coding: White (Component Status Text) | Dynamic Count Color (Green/Yellow/Red)
Individual Component Interpretation:
• ST✓ (SuperTrend Confirmation): SuperTrend confirmation indicates established bullish directional alignment with current price positioned above calculated SuperTrend level plus rising trend validation over the required confirmation period.
• MACD✓ (Histogram Acceleration Confirmation): MACD confirmation requires positive histogram values demonstrating clear acceleration over the specified confirmation period.
• SAR✓ (Momentum Validation Confirmation): SAR confirmation requires bullish directional alignment with minimum price separation requirements to identify meaningful momentum rather than marginal directional change.
• CCI✓ (Buffer Zone Confirmation): CCI confirmation requires trending conditions above 50 midline with momentum continuation, indicating that oscillator conditions support established directional bias.
# Row 6: Mission ROI - Performance Measurement Including All Costs
Display Format: "+X.XX%" | "-X.XX%" | "0.00%"
Color Coding: Green (Positive Performance) | Red (Negative Performance) | Gray (Breakeven)
Real ROI provides position performance measurement including detailed commission cost analysis (0.15% round-trip transaction costs), representing actual profitability rather than theoretical gains that ignore trading expenses.
# Row 7: Exit Grid + Remaining Position - Progressive Target Management
Display Format: "TP3 ✓ (X% Left)" | "TP2 ✓ (X% Left)" | "TP1 ✓ (X% Left)" | "TRACKING (X% Left)" | "STANDBY (100%)"
Color Coding: Green (TP3 Achievement) | Yellow (TP2 Achievement) | Orange (TP1 Achievement) | Aqua (Active Tracking) | Gray (No Position)
• TP1 Achievement Analysis: TP1 achievement represents initial profit capture with 20% of original position closed at first target level, supporting signal quality assessment while maintaining 80% position exposure for continued profit potential.
• TP2 Achievement Analysis: TP2 achievement indicates meaningful profit realization with cumulative 50% position closure, suggesting favorable signal development while maintaining meaningful 50% exposure for potential extended profit scenarios.
• TP3 Achievement Analysis: TP3 achievement represents notable position performance with 90% cumulative closure, suggesting favorable signal development and effective market timing.
# Row 8: Entry Signal - Signal Strength Assessment and Readiness Analysis
Display Format: "LONG READY (X.X/10)" | "SHORT READY (X.X/10)" | "WAITING (X.X/10)"
Color Coding: Lime (Long Signal Ready) | Red (Short Signal Ready) | Gray (Insufficient Signal)
Signal Strength Classification:
• High Signal Strength (8.0-10.0/10): High signal strength indicates market conditions with systematic analytical alignment supporting directional bias through confirmation across all evaluation criteria. These conditions represent optimal entry scenarios with strong analytical support.
• Strong Signal Quality (6.0-7.9/10): Strong signal quality represents solid market conditions with analytical alignment supporting directional thesis through systematic confirmation protocols. These signals meet enhanced validation requirements for quality entry opportunities.
• Moderate Signal Strength (4.5-5.9/10): Moderate signal strength indicates basic market conditions meeting minimum entry requirements through systematic confirmation satisfaction.
# Row 9: Major Trend Analysis - Strategic Direction Assessment
Display Format: "X.X% STRONG BULL" | "X.X% BULL" | "X.X% BEAR" | "X.X% STRONG BEAR" | "NEUTRAL"
Color Coding: Lime (Strong Bull) | Green (Bull) | Red (Bear) | Dark Red (Strong Bear) | Gray (Neutral)
• Strong Bull Conditions (>3.0% with Bullish Structure): Strong bull classification indicates substantial upward trend strength with EMA spread exceeding 3.0% combined with favorable bullish structure alignment. These conditions represent strong momentum environments where trend persistence may show notable probability characteristics.
• Standard Bull Conditions (1.5-3.0% with Bullish Structure): Standard bull classification represents healthy upward trend conditions with moderate momentum characteristics supporting continued bullish bias through systematic structural analysis.
# Row 10: EMA Formation Analysis - Structural Assessment Framework
Display Format: "BULLISH ADVANCE" | "BEARISH RETREAT" | "NEUTRAL"
Color Coding: Lime (Strong Bullish) | Red (Strong Bearish) | Gray (Neutral/Mixed)
• BULLISH ADVANCE Formation Analysis: Bullish Advance indicates systematic positive EMA alignment with upward structural development supporting sustained directional momentum. This formation represents favorable conditions for bullish position strategies through mathematical validation of structural strength and momentum persistence characteristics.
• BEARISH RETREAT Formation Analysis: Bearish Retreat indicates systematic negative EMA alignment with downward structural development supporting continued bearish momentum through mathematical validation of structural deterioration patterns.
# Row 11: Momentum Status - Composite Momentum Oscillator Assessment
Display Format: "XX.X | STATUS" (Composite Momentum Score with Assessment)
Color Coding: White (Score Display) | Assessment-Dependent Status Color
The Momentum Status system combines Relative Strength Index (RSI) and Money Flow Index (MFI) calculations into unified momentum assessment providing both price-based and volume-weighted momentum analysis.
• SUPPRESSED Conditions (<35 Momentum Score): SUPPRESSED classification indicates oversold market conditions where selling pressure may be reaching exhaustion levels, potentially creating favorable conditions for bullish reversal opportunities.
• ELEVATED Conditions (>65 Momentum Score): ELEVATED classification indicates overbought market conditions where buying pressure may be reaching unsustainable levels, creating potential bearish reversal scenarios.
# Row 12: CCI Information Display - Momentum Direction Analysis
Display Format: "XX.X | UP" | "XX.X | DOWN"
Color Coding: Lime (Bullish Momentum Trend) | Red (Bearish Momentum Trend)
The CCI Information Display showcases the CCI SMART system incorporating Arnaud Legoux Moving Average (ALMA) preprocessing combined with rational approximation of the hyperbolic tangent (TANH) function to achieve modified signal processing compared to traditional CCI implementations.
CCI Value Interpretation:
• Extreme Bullish Territory (>80): CCI readings exceeding +80 indicate extreme bullish momentum conditions with potential overbought characteristics requiring careful evaluation for continued position holding versus profit-taking consideration.
• Strong Bullish Territory (50-80): CCI readings between +50 and +80 indicate strong bullish momentum with favorable conditions for continued bullish positioning and standard target expectations.
• Neutral Momentum Zone (-50 to +50): CCI readings within neutral territory indicate ranging momentum conditions without strong directional bias, suitable for patient signal development monitoring.
• Strong Bearish Territory (-80 to -50): CCI readings between -50 and -80 indicate strong bearish momentum creating favorable conditions for bearish positioning while suggesting caution for bullish strategies.
• Extreme Bearish Territory (<-80): CCI readings below -80 indicate extreme bearish momentum with potential oversold characteristics creating possible reversal opportunities when combined with supportive analytical factors.
# Row 13: SAR Network - Multi-Component Momentum Analysis
Display Format: "X.XX% | BULL STRONG ↗INF" | Complex Multi-Component Analysis
Color Coding: Lime (Bullish Strong) | Green (Bullish Moderate) | Red (Bearish Strong) | Orange (Bearish Moderate) | White (Inflection Priority)
SAR Distance Percentage Analysis: The distance percentage component measures price separation from SAR level as percentage of current price, providing quantification of momentum strength through mathematical price relationship analysis.
SAR Strength Classification Framework:
• STRONG Momentum Conditions (>75% of Strength Range): STRONG classification indicates significant momentum conditions with price-SAR separation exceeding 75% of calculated strength range, representing notable directional movement with sustainability characteristics.
• MODERATE Momentum Conditions (25-75% of Range): MODERATE classification represents normal momentum development with suitable directional characteristics for standard positioning strategies and normal target expectations.
• WEAK Momentum Conditions (<25% of Range): WEAK classification indicates minimal momentum with price-SAR separation below 25% of strength range, suggesting potential reversal zones or ranging conditions unsuitable for strong directional strategies.
Inflection Detection System:
• Bullish Inflection (↗INF): Bullish inflection detection identifies moments when SAR momentum transitions from declining to rising through systematic rate-of-change analysis over 5-period lookback periods. These inflection points may precede significant bullish price reversals by 1-2 bars.
• Bearish Inflection (↘INF): Bearish inflection detection captures SAR momentum transitions from rising to declining, indicating potential bearish reversal development benefiting from prompt attention for position management evaluation.
# Row 14: VWAP Context Analysis - Institutional Volume-Weighted Price Reference
Display Format: "Daily: XXXX.XX (+X.XX%)" | "N/A (Index/Futures)"
Color Coding: Lime (Above VWAP Premium) | Red (Below VWAP Discount) | Gray (Data Unavailable)
Volume-Weighted Average Price (VWAP) provides institutional-level price reference showing mathematical average price where significant volume has transacted throughout the specified period. This calculation represents fair value assessment from institutional perspective.
• Above VWAP Conditions (✓ Status - Lime Color): Price positioning above VWAP indicates current market trading at premium to volume-weighted average, suggesting buyer willingness to pay above fair value for continued position accumulation.
• Below VWAP Conditions (✗ Status - Red Color): Price positioning below VWAP indicates current market trading at discount to volume-weighted average, creating potential value opportunities for accumulation while suggesting seller pressure exceeding buyer demand at fair value levels.
# Row 15: TP SL System Configuration - Dynamic vs Static Target Management
Display Format: "DYNAMIC ATR" | "STATIC %"
Color Coding: Aqua (Dynamic ATR Mode) | Yellow (Static Percentage Mode)
• DYNAMIC ATR Mode Analysis: Dynamic ATR mode implements systematic volatility-adaptive target management where all profit targets and stop losses automatically scale based on current market volatility through ATR (Average True Range) calculations. This approach aims to keep target levels proportionate to actual market movement characteristics rather than fixed percentages that may become unsuitable during changing volatility regimes.
• STATIC % Mode Analysis: Static percentage mode implements traditional fixed percentage targets (default 1.0%/2.5%/3.8%/4.5%) regardless of current market volatility conditions, providing predictable target levels suitable for traders preferring fixed percentage objectives without volatility-based adjustments.
# Row 16: TP Sequence Progression - Systematic Achievement Tracking
Display Format: "1 ✓ 2 ✓ 3 ○" | "1 ○ 2 ○ 3 ○" | Progressive Achievement Display
Color Coding: White text with systematic achievement progression
Status Indicator: ✓ (Achievement Confirmed) | ○ (Target Not Achieved)
• Complete Achievement Sequence (1 ✓ 2 ✓ 3 ✓): Complete sequence achievement represents significant position performance with systematic profit realization across all primary target levels, indicating favorable signal quality and effective market timing.
• Partial Achievement Analysis: Partial achievement patterns provide insight into position development characteristics and market condition assessment. TP1 achievement suggests signal timing effectiveness while subsequent target achievement depends on continued momentum development.
• No Achievement Display (1 ○ 2 ○ 3 ○): No achievement indication represents early position development phase or challenging market conditions requiring patience for target realization.
# Row 17: Mission Duration Tracking - Time-Based Position Management
Display Format: "XX/XXX" (Current Bars/Maximum Duration Limit)
Color Coding: Green (<50% Duration) | Orange (50-80% Duration) | Red (>80% Duration)
• Normal Duration Periods (Green Status <50%): Normal duration indicates position development within expected timeframes based on signal characteristics and market conditions, representing healthy position progression without time pressure concerns.
• Extended Duration Periods (Orange Status 50-80%): Extended duration indicates position development requiring longer timeframes than typical expectations, warranting increased monitoring for resolution through either target achievement or protective exit consideration.
• Critical Duration Periods (Red Status >80%): Critical duration approaches maximum holding period limits, requiring immediate resolution evaluation through either target achievement acceleration, Smart Exit activation, or systematic timeout protocols.
# Row 18: Last Exit Analysis - Historical Exit Pattern Assessment
Display Format: Exit Reason with Color-Coded Classification
Color Coding: Lime (TP Exits) | Red (Critical Exits) | Yellow (Stop Losses) | Purple (Smart Low) | Orange (Timeout/Sustained)
• Profit-Taking Exits (Lime/Green): TP1/TP2/TP3/Final Target exits indicate position management with systematic profit realization suggesting signal quality and strategy performance.
• Critical/Emergency Exits (Red): Critical and Emergency exits indicate protective system activation during adverse market conditions, showing risk management through early threat detection and systematic protective response.
• Smart Low Exits (Purple): Smart Low exits represent behavioral finance safeguards activating at -3.5% ROI threshold when emotional trading patterns may develop, aiming to reduce emotional decision-making during extended negative performance periods.
# Row 19: Fast Danger Assessment - Immediate Threat Detection System
Display Format: "X.X/10" (Danger Score out of 10)
Color Coding: Green (<3.0 Safe) | Yellow (3.0-5.0 Moderate) | Red (>5.0 High Danger)
The Fast Danger Assessment system provides real-time evaluation of immediate market threats through six independent measurement systems: SAR distance deterioration, momentum reversal detection, extreme CCI readings, volatility spike analysis, price action intensity, and combined threat evaluation.
• Safe Conditions (Green <3.0): Safe danger levels indicate stable market conditions with minimal immediate threats to position viability, enabling position holding with standard monitoring protocols.
• Moderate Concern (Yellow 3.0-5.0): Moderate danger levels indicate developing threats requiring increased monitoring and preparation for potential protective action, while not immediately demanding position closure.
• High Danger (Red >5.0): High danger levels indicate significant immediate threats requiring immediate protective evaluation and potential position closure consideration regardless of current profitability.
# Row 20: Holding Confidence Evaluation - Position Viability Assessment
Display Format: "X.X/10" (Confidence Score out of 10)
Color Coding: Green (>6.0 High Confidence) | Yellow (3.0-6.0 Moderate Confidence) | Red (<3.0 Low Confidence)
Holding Confidence evaluation provides systematic assessment of position viability through analysis of trend strength maintenance, formation quality persistence, momentum sustainability, and overall market condition favorability for continued position development.
• High Confidence (Green >6.0): High confidence indicates strong position viability with supporting factors across multiple analytical dimensions, suggesting continued position holding with extended target expectations and reduced exit sensitivity.
• Moderate Confidence (Yellow 3.0-6.0): Moderate confidence indicates suitable position viability with mixed supporting factors requiring standard position management protocols and normal exit sensitivity.
• Low Confidence (Red <3.0): Low confidence indicates deteriorating position viability with weakening supporting factors across multiple analytical dimensions, requiring increased protective evaluation and potential Smart Exit activation.
# Row 21: Volatility | Market Status - Volatility Environment & Market Filter Status
Display Format: "NORMAL | NORMAL" | "HIGH | HIGH VOL" | "EXTREME | NEWS FILTER"
Color Coding: White (Information display)
Volatility Classification Component (Left Side):
- DEAD: ATR ratio <0.8x average, minimal price movement requiring careful timing
- LOW: ATR ratio 0.8-1.2x average, stable conditions enabling position increase potential
- NORMAL: ATR ratio 1.2-1.8x average, typical market behavior with standard parameters
- HIGH: ATR ratio 1.8-2.5x average, elevated movement requiring increased caution
- EXTREME: ATR ratio >2.5x average, chaotic conditions triggering enhanced protection
Market Status Component (Right Side):
- NORMAL: Standard market conditions, no special filters active
- HIGH VOL: High volatility detected, position reduction and exit sensitivity increased
- EXTREME VOL: Extreme volatility confirmed, enhanced protective protocols engaged
- NEWS FILTER: Major economic event detected, 80% position reduction active
- GAP MODE: Weekend gap identified, increased caution until normal flow resumes
Combined Status Interpretation:
- NORMAL | NORMAL: Suitable trading conditions, standard strategy operation
- HIGH | HIGH VOL: Elevated volatility confirmed by both systems, 40% position reduction
- EXTREME | EXTREME VOL: High volatility warning, 70% position reduction active
📊VISUAL SYSTEM INTEGRATION
Chart Analysis & Market Visualization
CCI SMART Buffer Zone Visualization System - Dynamic Support/Resistance Framework
Dynamic Zone Architecture: The CCI SMART buffer system represents systematic visual integration creating adaptive support and resistance zones that automatically expand and contract based on current market volatility through ALMA-smoothed true range calculations. These dynamic zones provide real-time support and resistance levels that adapt to evolving market conditions rather than static horizontal lines that quickly become obsolete.
Adaptive Color Intensity Algorithm: The buffer visualization employs color intensity algorithms where transparency and saturation automatically adjust based on CCI momentum strength and directional persistence. Stronger momentum conditions produce more opaque visual representations with increased saturation, while weaker momentum creates subtle transparency indicating reduced prominence or significance.
Color Interpretation Framework for Strategic Decision Making:
-Intense Blue/Purple (High Opacity): Strong CCI readings exceeding ±80 with notable momentum strength indicating support/resistance zones suitable for increased position management decisions
• Moderate Blue/Purple (Medium Opacity): Standard CCI readings ranging ±40-80 with normal momentum indicating support/resistance areas for standard position management protocols
• Faded Blue/Purple (High Transparency): Weak CCI readings below ±40 with minimal momentum suggesting cautious interpretation and conservative position management approaches
• Dynamic Color Transitions: Automatic real-time shifts between bullish (blue spectrum) and bearish (purple spectrum) based on CCI trend direction and momentum persistence characteristics
CCI Inflection Circle System - Momentum Reversal Identification: The inflection detection system creates distinctive visual alerts through dual-circle design combining solid cores with transparent glow effects for enhanced visibility across different chart backgrounds and timeframe configurations.
Inflection Circle Classification:
• Neon Green Circles: CCI extreme bullish inflection detected (>80 threshold) with systematic core + glow effect indicating bearish reversal warning for position management evaluation
• Hot Pink Circles: CCI extreme bearish inflection detected (<-80 threshold) with dual-layer visualization indicating bullish reversal opportunity for strategic entry consideration
• Dual-Circle Design Architecture: Solid tiny core providing location identification with large transparent glow ensuring visibility without chart obstruction across multiple timeframe analyses
SAR Visual Network - Multi-Layer Momentum Display Architecture
SAR Visualization Framework: The SAR visual system implements structured multi-layer display architecture incorporating trend lines, strength classification markers, and momentum analysis through various visual elements that automatically adapt to current momentum conditions and strength characteristics.
SAR Strength Visual Classification System:
• Bright Triangles (High Intensity): Strong SAR momentum exceeding 75% of calculated strength range, indicating significant momentum quality suitable for increased positioning considerations and extended target scenarios
• Standard Circles (Medium Intensity): Moderate SAR momentum within 25-75% strength range, representing normal momentum development appropriate for standard positioning approaches and regular target expectations
• Faded Markers (Low Intensity): Weak SAR momentum below 25% strength range, suggesting caution and conservative positioning during minimal momentum conditions with increased exit sensitivity
⚠️IMPORTANT DISCLAIMERS AND RISK WARNINGS
Past Performance Limitations: The backtesting results presented represent hypothetical performance based on historical market data and do not guarantee future results. All trading involves substantial risk of loss. This strategy is provided for informational purposes and does not constitute financial advice. No trading strategy can guarantee 100% success or eliminate the risk of loss.
Users must approach trading with appropriate caution, never risking more than they can afford to lose.
Users are responsible for their own trading decisions, risk management, and compliance with applicable regulations in their jurisdiction.
Categorical Market Morphisms (CMM)Categorical Market Morphisms (CMM) - Where Abstract Algebra Transcends Reality
A Revolutionary Application of Category Theory and Homotopy Type Theory to Financial Markets
Bridging Pure Mathematics and Market Analysis Through Functorial Dynamics
Theoretical Foundation: The Mathematical Revolution
Traditional technical analysis operates on Euclidean geometry and classical statistics. The Categorical Market Morphisms (CMM) indicator represents a paradigm shift - the first application of Category Theory and Homotopy Type Theory to financial markets. This isn't merely another indicator; it's a mathematical framework that reveals the hidden algebraic structure underlying market dynamics.
Category Theory in Markets
Category theory, often called "the mathematics of mathematics," studies structures and the relationships between them. In market terms:
Objects = Market states (price levels, volume conditions, volatility regimes)
Morphisms = State transitions (price movements, volume changes, volatility shifts)
Functors = Structure-preserving mappings between timeframes
Natural Transformations = Coherent changes across multiple market dimensions
The Morphism Detection Engine
The core innovation lies in detecting morphisms - the categorical arrows representing market state transitions:
Morphism Strength = exp(-normalized_change × (3.0 / sensitivity))
Threshold = 0.3 - (sensitivity - 1.0) × 0.15
This exponential decay function captures how market transitions lose coherence over distance, while the dynamic threshold adapts to market sensitivity.
Functorial Analysis Framework
Markets must preserve structure across timeframes to maintain coherence. Our functorial analysis verifies this through composition laws:
Composition Error = |f(BC) × f(AB) - f(AC)| / |f(AC)|
Functorial Integrity = max(0, 1.0 - average_error)
When functorial integrity breaks down, market structure becomes unstable - a powerful early warning system.
Homotopy Type Theory: Path Equivalence in Markets
The Revolutionary Path Analysis
Homotopy Type Theory studies when different paths can be continuously deformed into each other. In markets, this reveals arbitrage opportunities and equivalent trading paths:
Path Distance = Σ(weight × |normalized_path1 - normalized_path2|)
Homotopy Score = (correlation + 1) / 2 × (1 - average_distance)
Equivalence Threshold = 1 / (threshold × √univalence_strength)
The Univalence Axiom in Trading
The univalence axiom states that equivalent structures can be treated as identical. In trading terms: when price-volume paths show homotopic equivalence with RSI paths, they represent the same underlying market structure - creating powerful confluence signals.
Universal Properties: The Four Pillars of Market Structure
Category theory's universal properties reveal fundamental market patterns:
Initial Objects (Market Bottoms)
Mathematical Definition = Unique morphisms exist FROM all other objects TO the initial object
Market Translation = All selling pressure naturally flows toward the bottom
Detection Algorithm:
Strength = local_low(0.3) + oversold(0.2) + volume_surge(0.2) + momentum_reversal(0.2) + morphism_flow(0.1)
Signal = strength > 0.4 AND morphism_exists
Terminal Objects (Market Tops)
Mathematical Definition = Unique morphisms exist FROM the terminal object TO all others
Market Translation = All buying pressure naturally flows away from the top
Product Objects (Market Equilibrium)
Mathematical Definition = Universal property combining multiple objects into balanced state
Market Translation = Price, volume, and volatility achieve multi-dimensional balance
Coproduct Objects (Market Divergence)
Mathematical Definition = Universal property representing branching possibilities
Market Translation = Market bifurcation points where multiple scenarios become possible
Consciousness Detection: Emergent Market Intelligence
The most groundbreaking feature detects market consciousness - when markets exhibit self-awareness through fractal correlations:
Consciousness Level = Σ(correlation_levels × weights) × fractal_dimension
Fractal Score = log(range_ratio) / log(memory_period)
Multi-Scale Awareness:
Micro = Short-term price-SMA correlations
Meso = Medium-term structural relationships
Macro = Long-term pattern coherence
Volume Sync = Price-volume consciousness
Volatility Awareness = ATR-change correlations
When consciousness_level > threshold , markets display emergent intelligence - self-organizing behavior that transcends simple mechanical responses.
Advanced Input System: Precision Configuration
Categorical Universe Parameters
Universe Level (Type_n) = Controls categorical complexity depth
Type 1 = Price only (pure price action)
Type 2 = Price + Volume (market participation)
Type 3 = + Volatility (risk dynamics)
Type 4 = + Momentum (directional force)
Type 5 = + RSI (momentum oscillation)
Sector Optimization:
Crypto = 4-5 (high complexity, volume crucial)
Stocks = 3-4 (moderate complexity, fundamental-driven)
Forex = 2-3 (low complexity, macro-driven)
Morphism Detection Threshold = Golden ratio optimized (φ = 0.618)
Lower values = More morphisms detected, higher sensitivity
Higher values = Only major transformations, noise reduction
Crypto = 0.382-0.618 (high volatility accommodation)
Stocks = 0.618-1.0 (balanced detection)
Forex = 1.0-1.618 (macro-focused)
Functoriality Tolerance = φ⁻² = 0.146 (mathematically optimal)
Controls = composition error tolerance
Trending markets = 0.1-0.2 (strict structure preservation)
Ranging markets = 0.2-0.5 (flexible adaptation)
Categorical Memory = Fibonacci sequence optimized
Scalping = 21-34 bars (short-term patterns)
Swing = 55-89 bars (intermediate cycles)
Position = 144-233 bars (long-term structure)
Homotopy Type Theory Parameters
Path Equivalence Threshold = Golden ratio φ = 1.618
Volatile markets = 2.0-2.618 (accommodate noise)
Normal conditions = 1.618 (balanced)
Stable markets = 0.786-1.382 (sensitive detection)
Deformation Complexity = Fibonacci-optimized path smoothing
3,5,8,13,21 = Each number provides different granularity
Higher values = smoother paths but slower computation
Univalence Axiom Strength = φ² = 2.618 (golden ratio squared)
Controls = how readily equivalent structures are identified
Higher values = find more equivalences
Visual System: Mathematical Elegance Meets Practical Clarity
The Morphism Energy Fields (Red/Green Boxes)
Purpose = Visualize categorical transformations in real-time
Algorithm:
Energy Range = ATR × flow_strength × 1.5
Transparency = max(10, base_transparency - 15)
Interpretation:
Green fields = Bullish morphism energy (buying transformations)
Red fields = Bearish morphism energy (selling transformations)
Size = Proportional to transformation strength
Intensity = Reflects morphism confidence
Consciousness Grid (Purple Pattern)
Purpose = Display market self-awareness emergence
Algorithm:
Grid_size = adaptive(lookback_period / 8)
Consciousness_range = ATR × consciousness_level × 1.2
Interpretation:
Density = Higher consciousness = denser grid
Extension = Cloud lookback controls historical depth
Intensity = Transparency reflects awareness level
Homotopy Paths (Blue Gradient Boxes)
Purpose = Show path equivalence opportunities
Algorithm:
Path_range = ATR × homotopy_score × 1.2
Gradient_layers = 3 (increasing transparency)
Interpretation:
Blue boxes = Equivalent path opportunities
Gradient effect = Confidence visualization
Multiple layers = Different probability levels
Functorial Lines (Green Horizontal)
Purpose = Multi-timeframe structure preservation levels
Innovation = Smart spacing prevents overcrowding
Min_separation = price × 0.001 (0.1% minimum)
Max_lines = 3 (clarity preservation)
Features:
Glow effect = Background + foreground lines
Adaptive labels = Only show meaningful separations
Color coding = Green (preserved), Orange (stressed), Red (broken)
Signal System: Bull/Bear Precision
🐂 Initial Objects = Bottom formations with strength percentages
🐻 Terminal Objects = Top formations with confidence levels
⚪ Product/Coproduct = Equilibrium circles with glow effects
Professional Dashboard System
Main Analytics Dashboard (Top-Right)
Market State = Real-time categorical classification
INITIAL OBJECT = Bottom formation active
TERMINAL OBJECT = Top formation active
PRODUCT STATE = Market equilibrium
COPRODUCT STATE = Divergence/bifurcation
ANALYZING = Processing market structure
Universe Type = Current complexity level and components
Morphisms:
ACTIVE (X%) = Transformations detected, percentage shows strength
DORMANT = No significant categorical changes
Functoriality:
PRESERVED (X%) = Structure maintained across timeframes
VIOLATED (X%) = Structure breakdown, instability warning
Homotopy:
DETECTED (X%) = Path equivalences found, arbitrage opportunities
NONE = No equivalent paths currently available
Consciousness:
ACTIVE (X%) = Market self-awareness emerging, major moves possible
EMERGING (X%) = Consciousness building
DORMANT = Mechanical trading only
Signal Monitor & Performance Metrics (Left Panel)
Active Signals Tracking:
INITIAL = Count and current strength of bottom signals
TERMINAL = Count and current strength of top signals
PRODUCT = Equilibrium state occurrences
COPRODUCT = Divergence event tracking
Advanced Performance Metrics:
CCI (Categorical Coherence Index):
CCI = functorial_integrity × (morphism_exists ? 1.0 : 0.5)
STRONG (>0.7) = High structural coherence
MODERATE (0.4-0.7) = Adequate coherence
WEAK (<0.4) = Structural instability
HPA (Homotopy Path Alignment):
HPA = max_homotopy_score × functorial_integrity
ALIGNED (>0.6) = Strong path equivalences
PARTIAL (0.3-0.6) = Some equivalences
WEAK (<0.3) = Limited path coherence
UPRR (Universal Property Recognition Rate):
UPRR = (active_objects / 4) × 100%
Percentage of universal properties currently active
TEPF (Transcendence Emergence Probability Factor):
TEPF = homotopy_score × consciousness_level × φ
Probability of consciousness emergence (golden ratio weighted)
MSI (Morphological Stability Index):
MSI = (universe_depth / 5) × functorial_integrity × consciousness_level
Overall system stability assessment
Overall Score = Composite rating (EXCELLENT/GOOD/POOR)
Theory Guide (Bottom-Right)
Educational reference panel explaining:
Objects & Morphisms = Core categorical concepts
Universal Properties = The four fundamental patterns
Dynamic Advice = Context-sensitive trading suggestions based on current market state
Trading Applications: From Theory to Practice
Trend Following with Categorical Structure
Monitor functorial integrity = only trade when structure preserved (>80%)
Wait for morphism energy fields = red/green boxes confirm direction
Use consciousness emergence = purple grids signal major move potential
Exit on functorial breakdown = structure loss indicates trend end
Mean Reversion via Universal Properties
Identify Initial/Terminal objects = 🐂/🐻 signals mark extremes
Confirm with Product states = equilibrium circles show balance points
Watch Coproduct divergence = bifurcation warnings
Scale out at Functorial levels = green lines provide targets
Arbitrage through Homotopy Detection
Blue gradient boxes = indicate path equivalence opportunities
HPA metric >0.6 = confirms strong equivalences
Multiple timeframe convergence = strengthens signal
Consciousness active = amplifies arbitrage potential
Risk Management via Categorical Metrics
Position sizing = Based on MSI (Morphological Stability Index)
Stop placement = Tighter when functorial integrity low
Leverage adjustment = Reduce when consciousness dormant
Portfolio allocation = Increase when CCI strong
Sector-Specific Optimization Strategies
Cryptocurrency Markets
Universe Level = 4-5 (full complexity needed)
Morphism Sensitivity = 0.382-0.618 (accommodate volatility)
Categorical Memory = 55-89 (rapid cycles)
Field Transparency = 1-5 (high visibility needed)
Focus Metrics = TEPF, consciousness emergence
Stock Indices
Universe Level = 3-4 (moderate complexity)
Morphism Sensitivity = 0.618-1.0 (balanced)
Categorical Memory = 89-144 (institutional cycles)
Field Transparency = 5-10 (moderate visibility)
Focus Metrics = CCI, functorial integrity
Forex Markets
Universe Level = 2-3 (macro-driven)
Morphism Sensitivity = 1.0-1.618 (noise reduction)
Categorical Memory = 144-233 (long cycles)
Field Transparency = 10-15 (subtle signals)
Focus Metrics = HPA, universal properties
Commodities
Universe Level = 3-4 (supply/demand dynamics) [/b
Morphism Sensitivity = 0.618-1.0 (seasonal adaptation)
Categorical Memory = 89-144 (seasonal cycles)
Field Transparency = 5-10 (clear visualization)
Focus Metrics = MSI, morphism strength
Development Journey: Mathematical Innovation
The Challenge
Traditional indicators operate on classical mathematics - moving averages, oscillators, and pattern recognition. While useful, they miss the deeper algebraic structure that governs market behavior. Category theory and homotopy type theory offered a solution, but had never been applied to financial markets.
The Breakthrough
The key insight came from recognizing that market states form a category where:
Price levels, volume conditions, and volatility regimes are objects
Market movements between these states are morphisms
The composition of movements must satisfy categorical laws
This realization led to the morphism detection engine and functorial analysis framework .
Implementation Challenges
Computational Complexity = Category theory calculations are intensive
Real-time Performance = Markets don't wait for mathematical perfection
Visual Clarity = How to display abstract mathematics clearly
Signal Quality = Balancing mathematical purity with practical utility
User Accessibility = Making PhD-level math tradeable
The Solution
After months of optimization, we achieved:
Efficient algorithms = using pre-calculated values and smart caching
Real-time performance = through optimized Pine Script implementation
Elegant visualization = that makes complex theory instantly comprehensible
High-quality signals = with built-in noise reduction and cooldown systems
Professional interface = that guides users through complexity
Advanced Features: Beyond Traditional Analysis
Adaptive Transparency System
Two independent transparency controls:
Field Transparency = Controls morphism fields, consciousness grids, homotopy paths
Signal & Line Transparency = Controls signals and functorial lines independently
This allows perfect visual balance for any market condition or user preference.
Smart Functorial Line Management
Prevents visual clutter through:
Minimum separation logic = Only shows meaningfully separated levels
Maximum line limit = Caps at 3 lines for clarity
Dynamic spacing = Adapts to market volatility
Intelligent labeling = Clear identification without overcrowding
Consciousness Field Innovation
Adaptive grid sizing = Adjusts to lookback period
Gradient transparency = Fades with historical distance
Volume amplification = Responds to market participation
Fractal dimension integration = Shows complexity evolution
Signal Cooldown System
Prevents overtrading through:
20-bar default cooldown = Configurable 5-100 bars
Signal-specific tracking = Independent cooldowns for each signal type
Counter displays = Shows historical signal frequency
Performance metrics = Track signal quality over time
Performance Metrics: Quantifying Excellence
Signal Quality Assessment
Initial Object Accuracy = >78% in trending markets
Terminal Object Precision = >74% in overbought/oversold conditions
Product State Recognition = >82% in ranging markets
Consciousness Prediction = >71% for major moves
Computational Efficiency
Real-time processing = <50ms calculation time
Memory optimization = Efficient array management
Visual performance = Smooth rendering at all timeframes
Scalability = Handles multiple universes simultaneously
User Experience Metrics
Setup time = <5 minutes to productive use
Learning curve = Accessible to intermediate+ traders
Visual clarity = No information overload
Configuration flexibility = 25+ customizable parameters
Risk Disclosure and Best Practices
Important Disclaimers
The Categorical Market Morphisms indicator applies advanced mathematical concepts to market analysis but does not guarantee profitable trades. Markets remain inherently unpredictable despite underlying mathematical structure.
Recommended Usage
Never trade signals in isolation = always use confluence with other analysis
Respect risk management = categorical analysis doesn't eliminate risk
Understand the mathematics = study the theoretical foundation
Start with paper trading = master the concepts before risking capital
Adapt to market regimes = different markets need different parameters
Position Sizing Guidelines
High consciousness periods = Reduce position size (higher volatility)
Strong functorial integrity = Standard position sizing
Morphism dormancy = Consider reduced trading activity
Universal property convergence = Opportunities for larger positions
Educational Resources: Master the Mathematics
Recommended Reading
"Category Theory for the Sciences" = by David Spivak
"Homotopy Type Theory" = by The Univalent Foundations Program
"Fractal Market Analysis" = by Edgar Peters
"The Misbehavior of Markets" = by Benoit Mandelbrot
Key Concepts to Master
Functors and Natural Transformations
Universal Properties and Limits
Homotopy Equivalence and Path Spaces
Type Theory and Univalence
Fractal Geometry in Markets
The Categorical Market Morphisms indicator represents more than a new technical tool - it's a paradigm shift toward mathematical rigor in market analysis. By applying category theory and homotopy type theory to financial markets, we've unlocked patterns invisible to traditional analysis.
This isn't just about better signals or prettier charts. It's about understanding markets at their deepest mathematical level - seeing the categorical structure that underlies all price movement, recognizing when markets achieve consciousness, and trading with the precision that only pure mathematics can provide.
Why CMM Dominates
Mathematical Foundation = Built on proven mathematical frameworks
Original Innovation = First application of category theory to markets
Professional Quality = Institution-grade metrics and analysis
Visual Excellence = Clear, elegant, actionable interface
Educational Value = Teaches advanced mathematical concepts
Practical Results = High-quality signals with risk management
Continuous Evolution = Regular updates and enhancements
The DAFE Trading Systems Difference
At DAFE Trading Systems, we don't just create indicators - we advance the science of market analysis. Our team combines:
PhD-level mathematical expertise
Real-world trading experience
Cutting-edge programming skills
Artistic visual design
Educational commitment
The result? Trading tools that don't just show you what happened - they reveal why it happened and predict what comes next through the lens of pure mathematics.
"In mathematics you don't understand things. You just get used to them." - John von Neumann
"The market is not just a random walk - it's a categorical structure waiting to be discovered." - DAFE Trading Systems
Trade with Mathematical Precision. Trade with Categorical Market Morphisms.
Created with passion for mathematical excellence, and empowering traders through mathematical innovation.
— Dskyz, Trade with insight. Trade with anticipation.
Kijun Shifting Band Oscillator | QuantMAC🎯 Kijun Shifting Band Oscillator | QuantMAC
📊 **Revolutionary Technical Analysis Tool Combining Ancient Ichimoku Wisdom with Cutting-Edge Statistical Methods**
🌟 Overview
The Kijun Shifting Band Oscillator represents a sophisticated fusion of traditional Japanese technical analysis and modern statistical theory. Built upon the foundational concepts of the Ichimoku Kinko Hyo system, this indicator transforms the classic Kijun-sen (base line) into a dynamic, multi-dimensional analysis tool that provides traders with unprecedented market insights.
This advanced oscillator doesn't just show you where price has been – it reveals the underlying momentum dynamics and volatility patterns that drive market movements, giving you a statistical edge in your trading decisions.
🔥 Key Features & Innovations
Dual Trading Modes for Maximum Flexibility: 🚀
Long/Short Mode: Full bidirectional trading capability for aggressive traders seeking to capitalize on both bullish and bearish market conditions
Long/Cash Mode: Conservative approach perfect for risk-averse traders, taking long positions during uptrends and moving to cash during downtrends (avoiding short exposure)
Advanced Visual Intelligence: 🎨
9 Professional Color Schemes: From classic blue/navy to vibrant orange/purple combinations, each optimized for different chart backgrounds and personal preferences
Dynamic Gradient Histogram: Color intensity reflects oscillator strength, providing instant visual feedback on momentum magnitude
Intelligent Overlay Bands: Semi-transparent fills create clear visual boundaries without cluttering your chart
Smart Candle Coloring: Real-time color changes reflect current market state and trend direction
Customizable Threshold Lines: Clearly marked entry and exit levels with contrasting colors
Professional-Grade Analytics: 📊
Real-Time Performance Metrics: Live calculation of 9 key performance indicators
Risk-Adjusted Returns: Sharpe, Sortino, and Omega ratios for comprehensive performance evaluation
Position Sizing Guidance: Half-Kelly percentage for optimal risk management
Drawdown Analysis: Maximum drawdown tracking for risk assessment
📈 Deep Technical Foundation
Kijun-Based Mathematical Framework: 🧮
The indicator begins with the traditional Kijun-sen calculation but extends it significantly:
Statistical Enhancements: 📉
Adaptive Volatility: Bands expand and contract based on market volatility
Momentum Filtering: EMA smoothing of oscillator for trend confirmation
State Management: Intelligent signal filtering prevents whipsaws and false signals
Multi-Timeframe Compatibility: Optimized algorithms work across all timeframes
⚙️ Comprehensive Parameter Control
Kijun Core Settings: 🎛️
Kijun Length (Default: 30): Controls the lookback period for the base calculation. Shorter periods = more responsive, longer periods = smoother signals
Source Selection: Choose from Close, Open, High, Low, or HL2. Close price recommended for most applications
Calculation Method: Uses traditional Ichimoku methodology ensuring compatibility with classic analysis
Advanced Oscillator Configuration: 📊
Standard Deviation Length (Default: 36): Determines volatility measurement period. Affects band width and sensitivity
SD Multiplier (Default: 2.1): Fine-tune band distance from basis line. Higher values = wider bands, lower values = tighter bands
Oscillator Multiplier (Default: 100): Scales the final oscillator output. Useful for matching other indicators or personal preference
Smoothing Algorithm: Built-in EMA smoothing prevents noise while maintaining responsiveness
Signal Threshold Optimization: 🎯
Long Threshold (Default: 83): Oscillator level that triggers long entries. Higher values = fewer but stronger signals
Short Threshold (Default: 42): Oscillator level that triggers short entries. Lower values = fewer but stronger signals
Threshold Logic: Crossover-based system with state management prevents signal overlap
Customization Range: Fully adjustable to match your trading style and risk tolerance
Precision Date Control: 📅
Start Date/Month/Year: Precise backtesting control down to the day
Historical Analysis: Test strategies on specific market periods or events
Strategy Validation: Isolate performance during different market conditions
📊 Professional Metrics Dashboard
Risk Assessment Metrics: 💼
Maximum Drawdown %: Largest peak-to-trough decline in portfolio value. Critical for understanding worst-case scenarios and position sizing
Sortino Ratio: Risk-adjusted return measure focusing only on downside volatility. Superior to Sharpe ratio for asymmetric return distributions
Sharpe Ratio: Classic risk-adjusted performance metric. Values above 1.0 considered good, above 2.0 excellent
Omega Ratio: Probability-weighted ratio capturing all moments of return distribution. More comprehensive than Sharpe or Sortino
Performance Analytics: 📈
Profit Factor: Gross Profit ÷ Gross Loss. Values above 1.0 indicate profitability, above 2.0 considered excellent
Win Rate %: Percentage of profitable trades. Consider alongside average win/loss size for complete picture
Net Profit %: Total return on initial capital. Accounts for compounding effects
Total Trades: Sample size for statistical significance assessment
Advanced Position Sizing: 🎯
Half Kelly %: Optimal position size based on Kelly Criterion, reduced by 50% for safety margin
Risk Management: Helps determine appropriate position size relative to account equity
Mathematical Foundation: Based on win probability and profit factor calculations
Practical Application: Directly usable percentage for position sizing decisions
🎨 Advanced Display Options
Flexible Interface Design: 🖥️
6 Positioning Options: Top/Bottom/Middle × Left/Right combinations for optimal chart organization
Toggle Functionality: Show/hide metrics table for clean chart presentation during analysis
Color Coordination: Metrics table colors match selected oscillator color scheme
Professional Styling: Clean, readable format with proper spacing and alignment
Visual Hierarchy: 🎭
Oscillator Histogram: Primary focus with gradient intensity showing momentum strength
Threshold Lines: Clear horizontal references for entry/exit levels
Zero Line: Neutral reference point for trend bias determination
Background Bands: Subtle overlay context without chart clutter
🚀 Advanced Signal Generation System
Multi-Layer Signal Logic: ⚡
Primary Signal Generation: Oscillator crossover above Long Threshold (default 83) triggers long entries
Exit Signal Processing: Oscillator crossunder below Short Threshold (default 42) triggers position exits
State Management System: Prevents duplicate signals and ensures clean position transitions
Mode-Specific Logic: Different behavior for Long/Short vs Long/Cash modes
Date Range Filtering: Signals only generated within specified backtesting period
Confirmation Requirements: Bar confirmation prevents false signals from intrabar price spikes
Intelligent Position Management: 🧠
Entry Tracking: Precise entry price recording for accurate P&L calculations
Position State Monitoring: Continuous tracking of long/short/cash positions
Automatic Exit Logic: Seamless position closure and new position initiation
Performance Calculation: Real-time P&L tracking with compounding effects
📉📈 Comprehensive Band Interpretation Guide
Dynamic Band Analysis: 🔍
Upper Band Function: Represents dynamic resistance based on recent volatility. Price approaching upper band suggests potential reversal or breakout
Lower Band Function: Represents dynamic support with volatility adjustment. Price near lower band indicates oversold conditions or support testing
Middle Line (Basis): Trend direction indicator. Price above = bullish bias, price below = bearish bias
Band Width Interpretation: Wide bands = high volatility, narrow bands = low volatility/potential breakout setup
Band Slope Analysis: Rising bands = strengthening trend, falling bands = weakening trend
Oscillator Interpretation: 📊
Values Above 50: Price in upper half of recent range, bullish momentum
Values Below 50: Price in lower half of recent range, bearish momentum
Extreme Values (>80 or <20): Overbought/oversold conditions, potential reversal zones
Momentum Divergence: Oscillator direction vs price direction for early reversal signals
Trend Confirmation: Oscillator direction confirming or contradicting price trends
💡 Strategic Trading Applications
Primary Trading Strategies: 🎯
Trend Following: Use threshold crossovers to capture major directional moves. Best in trending markets with clear directional bias
Mean Reversion: Identify extreme oscillator readings for counter-trend opportunities. Effective in range-bound markets
Breakout Trading: Monitor band compressions followed by expansions for breakout signals
Swing Trading: Combine oscillator signals with band interactions for swing position entries/exits
Risk Management: Use metrics dashboard for position sizing and risk assessment
Market Condition Optimization: 🌊
Trending Markets: Increase threshold separation for fewer, stronger signals
Choppy Markets: Decrease threshold separation for more responsive signals
High Volatility: Increase SD multiplier for wider bands
Low Volatility: Decrease SD multiplier for tighter bands and earlier signals
⚙️ Advanced Configuration Tips
Parameter Optimization Guidelines: 🔧
Kijun Length Adjustment: Shorter periods (10-20) for faster signals, longer periods (50-100) for smoother trends
SD Length Tuning: Match to your trading timeframe - shorter for responsive, longer for stability
Threshold Calibration: Backtest different levels to find optimal entry/exit points for your market
Color Scheme Selection: Choose schemes that provide best contrast with your chart background and other indicators
Integration with Other Indicators: 🔗
Volume Indicators: Confirm oscillator signals with volume spikes
Support/Resistance: Use key levels to filter oscillator signals
Momentum Indicators: RSI, MACD confirmation for signal strength
Trend Indicators: Moving averages for overall trend bias confirmation
⚠️ Important Usage Notes & Limitations
Indicator Characteristics: ⚡
Lagging Nature: Based on historical price data - signals occur after moves have begun
Best Practice: Combine with leading indicators and price action analysis
Market Dependency: Performance varies across different market conditions and instruments
Backtesting Essential: Always validate parameters on historical data before live implementation
Optimization Recommendations: 🎯
Parameter Testing: Systematically test different combinations on your preferred instruments
Walk-Forward Analysis: Regularly re-optimize parameters to maintain effectiveness
Market Regime Awareness: Adjust parameters for different market conditions (trending vs ranging)
Risk Controls: Implement maximum drawdown limits and position size controls
🔧 Technical Specifications
Performance Optimization: ⚡
Efficient Algorithms: Optimized calculations for smooth real-time operation
Memory Management: Smart array handling for metrics calculations
Visual Optimization: Balanced detail vs performance for responsive charts
Multi-Symbol Ready: Consistent performance across different assets
---
The Kijun Shifting Band Oscillator represents the evolution of technical analysis, bridging the gap between traditional methods and modern quantitative approaches. This indicator provides traders with a comprehensive toolkit for market analysis, combining the intuitive wisdom of Japanese candlestick analysis with the precision of statistical mathematics.
🎯 Designed for serious traders who demand professional-grade analysis tools with institutional-quality metrics and risk management capabilities. Whether you're a discretionary trader seeking visual confirmation or a systematic trader building quantitative strategies, this indicator provides the foundation for informed trading decisions.
⚠️ IMPORTANT DISCLAIMER
Past Performance Warning: 📉⚠️
PAST PERFORMANCE IS NOT INDICATIVE OF FUTURE RESULTS. Historical backtesting results, while useful for strategy development and parameter optimization, do not guarantee similar performance in live trading conditions. Market conditions change continuously, and what worked in the past may not work in the future.
Remember: Successful trading requires discipline, continuous learning, and adaptation to changing market conditions. No indicator or strategy guarantees profits, and all trading involves substantial risk of loss.
mrD Open InterestIntroduction
"mrD Open Interest" is a technical analysis reference tool that can help investors monitor and analyze Open Interest data from various cryptocurrency exchanges. This indicator provides insights into Open Interest data through patterns, bursts, and money flow based on proprietary algorithms.
Important Note
Trading always involves risk and can lead to capital loss. This indicator should only be used as a supplementary tool in technical analysis and should not be considered as an accurate forecasting tool or the sole basis for trading decisions. Past results do not guarantee future results.
Proprietary Features of the Indicator
"mrD Open Interest" has been developed with several proprietary features, qualifying it for source code protection when published:
- Unique Multi-Source Integration Algorithm: The indicator uses a smart aggregation method to combine OI data from multiple exchanges, creating a holistic view of market pressure that is not dependent on a single exchange. This method employs special weighting and noise filtering to ensure the aggregated data accurately reflects market conditions.
- Proprietary OI-Price Correlation Analysis Algorithm: Unlike traditional OI indicators that simply display OI values, this indicator uses a complex algorithm to analyze the correlation between price movements and OI changes. This algorithm automatically identifies four money flow patterns (Buy Inflow, Sell Inflow, Buy Outflow, Sell Outflow) and ranks them by potential market impact.
- Advanced Burst Detection Technology: The proprietary algorithm identifies "bursts" - sudden changes in OI that can lead to significant market volatility. This system relies not only on absolute change but also analyzes the rate of change, amplitude, and correlation with historical peaks/troughs to determine the significance of a burst.
- Integrated Smart Alert System: The indicator features a smart alert algorithm, only sending notifications when patterns with high statistical significance are detected, reducing "alert noise" and helping users focus on the most potential opportunities.
- Visual Representation Technology: The user interface design uses proprietary visual representation technology, allowing users to easily identify important patterns and signals through a special system of colors, icons, and display formats.
Features That May Assist
1. Reference Data from Multiple Exchanges: The indicator can collect Open Interest information from various exchanges (Binance, BitMEX, Kraken) and different currency pairs (USDT, USD, BUSD), potentially providing investors with more information about the market.
2.Money Flow Pattern Analysis: The indicator suggests 4 patterns that may help identify market conditions:
Buy Inflow: Potential opening of new long positions (price up, OI up)
Buy Outflow: Potential closing of long positions (price down, OI down)
Sell Inflow: Potential opening of new short positions (price down, OI up)
Sell Outflow: Potential closing of short positions (price up, OI down)
Burst Identification: The indicator attempts to detect "bursts" - notable changes in Open Interest that may signal changes in money flow. Bursts are divided into two types: Up Burst and Down Burst.
3. Price-OI Correlation Reference: The tool provides information about the relationship between price movement and OI changes, potentially helping to assess whether current price momentum is supported by new money flow.
4. Diverse Display Modes: The indicator offers 3 display modes (Columns, Candles, Columns, and Price Line) that may suit different analytical approaches.
Setup and Usage Guide
1. Basic Setup
Select Data Sources (Exchange Settings):
By default, the indicator uses data from Binance USDT Perpetual.
Depending on the coin pair and exchange you're interested in, you can enable/disable different data sources (Binance USD, BUSD, BitMEX USD, USDT, or Kraken).
Recommendation: For popular coins like BTC or ETH, consider combining data from 2-3 major exchanges for a more comprehensive view.
2. Display Customization (Visuals Settings):
OI Display Type: Choose a display type that suits your analysis style:
"Columns": Column format, making it easy to identify OI changes.
"Candles": Candle format, similar to price charts, helps identify candlestick patterns in OI.
"Columns and Price Line": Combines OI columns and price line, helping directly compare OI with price movements.
Show background: Enable to highlight burst periods with a colored background (recommended when using candle mode).
Show signals: Enable to display of burst indicators on the chart (recommended to keep enabled).
Text Color: Customize text color to match your chart background.
3. Alert Settings:
hoose alert types that suit your trading strategy:
"Inflows Only": Only alerts when new money flows into the market.
"Outflows Only": Only alerts when money flows out of the market.
"Bursts Only": Only alerts when there's a strong burst in OI.
"All": Alerts for all the above events.
Effective Usage
Trend Analysis Based on Money Flow Patterns:
Buy Inflow (Green): When the price increases along with OI, it may indicate new buying pressure. Can be considered as a supportive signal for an uptrend.
Sell Inflow (Red): When price decreases along with increasing OI, it may indicate new selling pressure. Can be considered as a supportive signal for a downtrend.
Buy Outflow (Teal): When price decreases but OI also decreases, it may indicate taking profit/cutting loss from long positions. Usually not strong selling pressure and may be ending soon.
Sell Outflow (Dark Red): When the price increases but OI decreases, it may indicate closing of short positions. Usually not strong buying pressure and may be ending soon.
Burst Analysis:
Up Burst: Strong and positive change in OI, most notable when occurring in a Buy Inflow pattern, may signal strong buying money flow into the market.
Down Burst: Strong and negative change in OI, most notable when occurring in a Sell Inflow pattern, may signal strong selling money flow into the market.
Bursts are often signals that deserve special attention and may indicate strong changes in market sentiment.
Using the Information Table:
Monitor "Aggregated OI" to capture the total amount of open contracts.
Pay attention to "OI Change (%)" to assess the degree of change compared to the previous candle.
"Relative OI" provides information about the relative level of OI compared to the average.
"Flow Type" indicates the current money flow pattern.
"Burst Status" displays the burst status if any.
Combining with Other Indicators:
Use in combination with trend indicators (MA, MACD) to confirm trends.
Combine with volume indicators for a more comprehensive view of market activity.
Reference additional momentum indicators to assess trend strength.
Customizing According to Timeframe:
Short timeframes (1m-15m): May show more noise signals.
Medium timeframes (30m-4h): Often provide a good balance between sensitivity and noise filtering.
Long timeframes (D-W): Suitable for monitoring long-term OI trends.
Flux Charts - SFX Screener💎 GENERAL OVERVIEW
The SFX Screener by Flux Charts is a multi-timeframe market scanner that extracts and visually organizes key conditions detected by the SFX Algo indicator across multiple assets in real-time. It does not perform independent analysis or generate new signals—instead, it pulls data directly from the SFX Algo’s calculations to ensure full alignment across different timeframes and tickers.
The SFX Algo is a multi-factor trading indicator that integrates trend analysis, signal generation, market overlays, and take-profit/stop-loss levels into a single system. It evaluates multiple trend components, including EMA direction, momentum shifts, and volatility cycles, to determine market conditions. Signal generation is based on an Adjusted Weighted Majority Algorithm, filtering out weaker signals by prioritizing the most reliable market indicators. Market overlays, such as Volatility Bands and the Retracement Wave, provide dynamic support, resistance, exit points, and entry points. Its adaptable structure allows traders to customize settings based on strategy preferences, making it effective for scalping, swing trading, and long-term trend analysis.
The SFX Screener’s purpose is to give traders a dashboard view of these SFX Algo signals across multiple tickers and timeframes in real-time.
📌 HOW DOES IT WORK ?
The SFX Algo indicator employs an Adjusted Weighted Majority algorithm to generate "buy" and "sell" signals. It evaluates multiple market indicators ("experts"), including momentum, ATR trends, and EMA trends, and assigns weights based on their recent performance. The "Time Weighting" setting allows users to balance between using more historical data or prioritizing recent trends. Unlike traditional weighted majority methods, SFX also dynamically penalizes larger losses. Signals are confirmed based on the consensus of the most successful indicators within the selected time period, filtering out weaker signals during underperforming phases.
The SFX Screener extracts these calculated outputs and visually organizes them into a real-time dashboard. Each signal, status, and volatility condition displayed in the screener is a direct output from the SFX Algo indicator.
🚩 UNIQUENESS
Unlike traditional screeners that rely on preset filters or static conditions, the SFX Screener dynamically updates its dashboard based on live outputs from the SFX Algo’s adaptive algorithm.
Traditional Screeners → Use predefined filters like “price above EMA” or “RSI overbought.” They do not adjust to market dynamics.
SFX Screener → Displays outputs directly from an adaptive algorithm that continuously evaluates trends, volatility, and momentum changes.
The SFX Screener can show SFX Algo's status on 8 different tickers on different timeframes. Key factors that make it unique include:
✅ Real-time sync with SFX Algo → Displays live conditions, not static filters.
✅ Comprehensive Dashboard – This screener provides a complete and customizable dashboard designed to enhance traders' decision-making by consolidating crucial SFX Algo insights into one user-friendly interface.
✅ Multi-Ticker & Multi-Timeframe Analysis – With support for up to 8 tickers and timeframes, traders can effortlessly analyze the bigger market picture, identifying trends and opportunities across different assets and timeframes.
By combining multiple analytical elements in a single view, this screener empowers traders with the insights needed to navigate the market more effectively.
🎯 SFX SCREENER FEATURES:
SFX Algo Signals : This tool can detect SFX Algo signals across different tickers & timeframes.
Volatility Bands : Detection of Volatility Bands Status & Retests.
Retracement Wave : Detection of Retracement Wave Status & Retests.
Highly Configurable : Offers multiple parameters for fine-tuning detection settings.
Up to 8 Tickers : Allows traders to analyze multiple tickers & timeframes simultaneously for enhanced accuracy.
📊 SFX SCREENER DATA BREAKDOWN
Signal ->
Buy -> The latest signal is a buy signal.
Sell -> The latest signal is a sell signal.
The rating of the signal is shown after the signal type.
Δ⭐ ->
Shows the rating change (delta) after the signal is triggered. Positive values mean that the rating is increased after the signal is given, negative values mean that it's decreased.
Status ->
Displays the amount of time passed after the signal is given.
TP Targets ->
Shows the Take-Profit targets of the signal, if a target was achieved, there is a ✅ symbol near it and the next target it displayed.
V. Bands ->
The Volatility Bands dynamically adjust to market conditions, expanding during high volatility and contracting during low volatility. When the volatility bands are tight, or the upper and lower bands are close to each other, the market is not volatile. During periods of low volatility, it’s common for price to consolidate or move sideways. An early indication of a large price move can occur when the bands widen or open up after being tight. When the volatility bands are wide, it reflects a period of increased volatility, typically during strong price trends or after a breakout. The volatility bands can also act as support and resistance areas. The upper band acts as resistance while the lower band acts as support. These mark out good areas for potential reversals. Breakouts can also occur when price moves beyond the bands, signaling a potential trend in the breakout direction.
Outside -> The price is currently outside of the Volatility Bands.
Inside | Upper -> The price is currently inside the Upper Volatility Band.
Inside | Lower -> The price is currently inside the Lower Volatility Band.
R. Wave ->
The Retracement Wave is used to identify entry points during pullbacks in trending markets. It can also be used to find exit points for open trades. The wave is bullish when price is above it and bearish when the price is below it. The retracement wave can be used as an area to enter during a pullback in a trending market. The wave can also be helpful for managing risk and closing out positions.
Outside | Bullish -> The Retracement Wave is currently Bullish, and the price is outside of it.
Outside | Bearish -> The Retracement Wave is currently Bearish, and the price is outside of it.
Inside | Bullish -> The Retracement Wave is currently Bullish, and the price is inside of it.
Inside | Bearish -> The Retracement Wave is currently Bearish, and the price is inside of it.
Profit & Loss (P&L) ->
Shows the amount of profit or loss the position is currently in. All values are shown in terms of percentage, and positive values mean the position is in profit while negative values mean that the position is in loss.
⚠ Timeframe Restriction : The selected timeframes for analysis cannot be lower than the chart’s current timeframe to ensure proper data alignment.
⏰ ALERTS
This screener supports alerts, so you never miss a key market move. You can choose to receive alerts when a buy or sell signal is given, helping you spot potential trading opportunities. Additionally, you can enable alerts for take-profit or stop-loss levels, which notify you when the price achieves those levels. The alerts will work for each enabled ticker in the settings. You can also toggle webhook format for alerts, and choose to include ticker metadata in it.
⚙️ SETTINGS
1. Algorithm Settings
Sensitivity: The sensitivity setting is a key parameter that influences the frequency of signals the SFX Algo generates. By adjusting this parameter, you can control the frequency of signals produced by the algorithm. Using a lower sensitivity setting generates more frequent signals that are highly responsive to minor price fluctuations. Using a higher sensitivity setting reduces the frequency of signals, focusing on more significant price movements and filtering out minor fluctuations.
Signal Strength: The Signal Strength setting filters signals based on their quality, allowing traders to focus on the most reliable opportunities. This feature helps traders balance the quantity and reliability of the algorithm’s signals to suit their trading strategy. Using a lower signal strength will display more signals, including those with lower signal ratings, for broader market coverage. Using a higher signal strength will display fewer signals by prioritizing those with higher signal ratings, reducing market noise.
Time Weighting: The Time Weighting setting in the SFX Algo determines how historical market data is analyzed to generate signals.
a) Recent Trends
Focuses on the most recent movements for short-term analysis. This setting is good for scalpers and intraday traders who need to react quickly to market changes.
b) Mixed Trends
Balances recent and historical price movements for a comprehensive market view. This setting is well-suited for swing traders and those who want to capture medium-term opportunities by combining the benefits of short-term responsiveness with the reliability of long-term trends.
c) Long-term Trends
Relies on extended historical market data to identify broader market trends, making it an excellent choice for traders focused on long-term strategies.
Minimum Star Rating : The Minimum Star Rating setting allows you to filter signals based on their strength, showing only those that meet or exceed your chosen threshold. For instance, setting the minimum star rating to 3 ensures you only receive signals with a rating of 3 stars or higher.
2. Take Profit / Stop Loss Methods
Key Levels
The Key Levels method uses pivot points to set take profit and stop-loss levels. The TP and SL levels are shown when a new signal is generated.
Volatility Bands
This TP/SL method uses the Volatility Bands overlay to set dynamic TP and SL levels. These levels are not predetermined so they will not be shown in advance when a signal is generated.
Signal Rating
Sets take profit and stop-loss levels based on changes in a signal's rating strength. These levels are not predetermined so they will not be shown in advance when a signal is generated.
Auto Stop-Loss
The auto method can only be applied to the SL. The auto method allows the algorithm to detect SL automatically when a momentum shift is detected. You can adjust the risk tolerance of the Auto SL by adjusting the ‘Auto Risk Tolerance’ setting. You can choose between Low, Medium, and High. A high-risk tolerance will result in stop losses being triggered less often.
3. Tickers
You can set, then enable or disable up to 8 tickers in this section to get informed about their latest SFX Algo signal.
‼️ Important Notes
TradingView has limitations when running advanced screeners, resulting in the following restrictions:
Computation Errors:
The computation of using MTF features and viewing several tickers is very intensive on TradingView. This can sometimes cause calculation timeouts. When this occurs simply force the recalculation by modifying one indicator’s settings or by removing the indicator and adding it to your chart again.
Inconsistencies:
You may notice inconsistencies when viewing the screener on a chart with a specific symbol because screener tickers originate from different markets. Since the cryptocurrency market operates 24/7, while stock markets have defined opening and closing hours, the screener may return varying information depending on whether you're currently viewing a cryptocurrency, stock, or currency pair.
Goertzel Adaptive JMA T3Hello Fellas,
The Goertzel Adaptive JMA T3 is a powerful indicator that combines my own created Goertzel adaptive length with Jurik and T3 Moving Averages. The primary intention of the indicator is to demonstrate the new adaptive length algorithm by applying it on bleeding-edge MAs.
It is useable like any moving average, and the new Goertzel adaptive length algorithm can be used to make own indicators Goertzel adaptive.
Used Adaptive Length Algorithms
Normalized Goertzel Power: This uses the normalized power of the Goertzel algorithm to compute an adaptive length without the special operations, like detrending, Ehlers uses for his DFT adaptive length.
Ehlers Mod: This uses the Goertzel algorithm instead of the DFT, originally used by Ehlers, to compute a modified version of his original approach, which sticks as close as possible to the original approach.
Scoring System
The scoring system determines if bars are red or green and collects them.
Then, it goes through all collected red and green bars and checks how big they are and if they are above or below the selected MA. It is positive when green bars are under MA or when red bars are above MA.
Then, it accumulates the size for all positive green bars and for all positive red bars. The same happens for negative green and red bars.
Finally, it calculates the score by ((positiveGreenBars + positiveRedBars) / (negativeGreenBars + negativeRedBars)) * 100 with the scale 0–100.
Signals
Is the price above MA? -> bullish market
Is the price below MA? -> bearish market
Usage
Adjust the settings to reach the highest score, and enjoy an outstanding adaptive MA.
It should be useable on all timeframes. It is recommended to use the indicator on the timeframe where you can get the highest score.
Now, follows a bunch of knowledge for people who don't know about the concepts used here.
T3
The T3 moving average, short for "Tim Tillson's Triple Exponential Moving Average," is a technical indicator used in financial markets and technical analysis to smooth out price data over a specific period. It was developed by Tim Tillson, a software project manager at Hewlett-Packard, with expertise in Mathematics and Computer Science.
The T3 moving average is an enhancement of the traditional Exponential Moving Average (EMA) and aims to overcome some of its limitations. The primary goal of the T3 moving average is to provide a smoother representation of price trends while minimizing lag compared to other moving averages like Simple Moving Average (SMA), Weighted Moving Average (WMA), or EMA.
To compute the T3 moving average, it involves a triple smoothing process using exponential moving averages. Here's how it works:
Calculate the first exponential moving average (EMA1) of the price data over a specific period 'n.'
Calculate the second exponential moving average (EMA2) of EMA1 using the same period 'n.'
Calculate the third exponential moving average (EMA3) of EMA2 using the same period 'n.'
The formula for the T3 moving average is as follows:
T3 = 3 * (EMA1) - 3 * (EMA2) + (EMA3)
By applying this triple smoothing process, the T3 moving average is intended to offer reduced noise and improved responsiveness to price trends. It achieves this by incorporating multiple time frames of the exponential moving averages, resulting in a more accurate representation of the underlying price action.
JMA
The Jurik Moving Average (JMA) is a technical indicator used in trading to predict price direction. Developed by Mark Jurik, it’s a type of weighted moving average that gives more weight to recent market data rather than past historical data.
JMA is known for its superior noise elimination. It’s a causal, nonlinear, and adaptive filter, meaning it responds to changes in price action without introducing unnecessary lag. This makes JMA a world-class moving average that tracks and smooths price charts or any market-related time series with surprising agility.
In comparison to other moving averages, such as the Exponential Moving Average (EMA), JMA is known to track fast price movement more accurately. This allows traders to apply their strategies to a more accurate picture of price action.
Goertzel Algorithm
The Goertzel algorithm is a technique in digital signal processing (DSP) for efficient evaluation of individual terms of the Discrete Fourier Transform (DFT). It's particularly useful when you need to compute a small number of selected frequency components. Unlike direct DFT calculations, the Goertzel algorithm applies a single real-valued coefficient at each iteration, using real-valued arithmetic for real-valued input sequences. This makes it more numerically efficient when computing a small number of selected frequency components¹.
Discrete Fourier Transform
The Discrete Fourier Transform (DFT) is a mathematical technique used in signal processing to convert a finite sequence of equally-spaced samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a complex-valued function of frequency . The DFT provides a frequency domain representation of the original input sequence .
Usage of DFT/Goertzel In Adaptive Length Algorithms
Adaptive length algorithms are automated trading systems that can dynamically adjust their parameters in response to real-time market data. This adaptability enables them to optimize their trading strategies as market conditions fluctuate. Both the Goertzel algorithm and DFT can be used in these algorithms to analyze market data and detect cycles or patterns, which can then be used to adjust the parameters of the trading strategy.
The Goertzel algorithm is more efficient than the DFT when you need to compute a small number of selected frequency components. However, for covering a full spectrum, the Goertzel algorithm has a higher order of complexity than fast Fourier transform (FFT) algorithms.
I hope this can help you somehow.
Thanks for reading, and keep it up.
Best regards,
simwai
---
Credits to:
@ClassicScott
@yatrader2
@cheatcountry
@loxx
All Support and Resistance Levels [PINESCRIPTLABS]First, we observe the Light Blue Macro Supports and the Pink Macro Resistances. These channels are automatically formed based on market data, identifying pivot points in price history and determining the strength of these levels based on the number of pivot points within these same channels. When the price interacts with the macro Supports, we have a strong reaction that we can take advantage of in two ways:
1. The first and most common, as we can see in the chart, is that these zones elicit a strong reaction, and the price respects the channel. For us, as traders, it signifies a pivot point where we can initiate a trade, either a buy at the macro Support or a sell at the macro Resistance.
2. The second way to use them, for which this algorithm is also prepared, is in case a movement occurs where the price breaks these Macro Supports or Macro Resistances. We have a special alert that will notify us because when these macro channels are broken, they tend to do so violently in a move that we can also capitalize on. Usually, when such a breakout occurs, we will visit the next support or resistance channel, which can bring us significant benefits.
The following complex and highly accurate calculation provided by this indicator allows us to work with price supports and resistances within the internal structure of macro channels. As we can see in the chart, "boxes" are formed that represent the detected support and resistance areas. It also detects breakouts when the price crosses below the support "box" or above the resistance "box" and displays labels on the chart indicating when the breakout occurred, all in real-time. But here comes something very special: the algorithm also has a calculation that, as we see in the chart, there are occasions when the breakout occurs, but the price returns to the support or resistance "box" and is detected. At this moment, a label appears on the chart indicating a possible confirmation of the breakout. In other words, as the price initially broke out but returned to the "box," the algorithm will notify us with another label and a special alert when the price confirms the breakout.
At the same time, we can see in the chart that the algorithm also provides us with a volume profile that allows us to see where the most trading activity has concentrated based on price levels. We can also use it to identify support and resistance levels based on the point of control (POC) and value area levels. As we can see in the chart, there are labels with the exact price where the highest volume was traded. The top label in the chart shows the highest price, and the last label we see is for the lowest price. These displayed labels are within the defined range of retrocession or Lookback Length, which we can configure in our indicator. As we observe, the algorithm shows a strong confluence between the Macro Support channels and the volume profile labels, confirming the strongest areas of the range.
Finally, after calculating supports and resistances from three different perspectives, the algorithm provides us with a macro view of the price in the form of trend lines. In other words, it shows us supports and resistances in the form of diagonal channels where we can see trends in the market and areas where the price has historically encountered difficulties in advancing or retreating, which we can corroborate with the supports and resistances mentioned at the beginning.
As we can see in the chart, the algorithm also shows us labels with the exact price where angular price supports and resistances are located. These calculations are very important as they provide a trend perspective, and we can get an idea of where the price is headed, combining these with the other support and resistance calculations.
Remember that all the previous calculations have their own alerts for when supports or resistances are broken, or in the case of new channels being created, also when there is a breakout of a box or a confirmation of a breakout.
The second type of alert from the indicator is configured to make our indicators work for us without the need to be present on the chart, thanks to special programming within the indicator's code. It will execute automatic buys and sells on our preferred exchange through an alert configured for the 3Commas bot. All you need to do is input your Bot ID, provided by 3Commas, into the alert. All premium indicators come with a configuration explanation that will guide you in detail on where to input your Bot ID.
ESPAÑOL:
En primer lugar, observamos los Macro Soportes en color azul claro y las Macro Resistencias en color rosa. Estos canales se forman automáticamente en función de los datos del mercado, identificando puntos de pivote en el historial de precios y determinando la fuerza de estos niveles según la cantidad de puntos de pivote dentro de estos mismos canales. Cuando el precio interactúa con los macro Soportes, tenemos una fuerte reacción que podemos aprovechar de dos formas:
1. La primera y más común, como observamos en el gráfico, es que estas zonas provocan una fuerte reacción, y el precio respeta el canal. Para nosotros, como traders, significa un punto de pivote donde podemos generar una entrada, ya sea de compra en el macro soporte o de venta en la macro resistencia.
2. La segunda forma de utilizarlos, para la cual este algoritmo también está preparado, es en caso de que se genere un movimiento en el que el precio rompa estos Macro Soportes o Macro Resistencias. Contamos con una alerta especial que nos avisará, ya que al romperse estos macro canales suelen hacerlo con violencia en un movimiento que también podemos aprovechar. Regularmente, cuando existe este rompimiento, visitaremos el siguiente canal de soporte o resistencia, lo que nos puede traer grandes beneficios.
El siguiente cálculo complejo y muy preciso que nos ofrece este indicador nos permite trabajar con soportes y resistencias del precio dentro de la estructura interna de los canales macro. Como observamos en el gráfico, se producen "boxes" que representan las áreas de soporte y resistencia detectadas. Además, detecta breakouts cuando el precio cruza por debajo del "box" de soporte o por encima del "box" de resistencia y muestra etiquetas en el gráfico que nos indican cuándo ocurrió el breakout, todo esto en tiempo real. Pero aquí viene algo super especial: el algoritmo también tiene un cálculo que, como vemos en el gráfico, hay ocasiones en las que el breakout ocurre, pero el precio retorna al "box" de soporte o resistencia y es detectado. En este momento, aparece una etiqueta en el gráfico que nos muestra que estamos ante una posible confirmación del breakout. Es decir, como el precio había hecho en primer lugar el breakout pero regresó al "box", el algoritmo nos avisará con otra etiqueta y alerta especial cuando el precio confirme el breakout.
Al mismo tiempo, observamos en el gráfico que el algoritmo también nos muestra un perfil de volumen que nos permite ver dónde se ha concentrado la mayor actividad de negociación en función de los niveles de precios. También podemos usarlo para identificar niveles de soporte y resistencia basados en el punto de control (POC) y los niveles de valor (Value Area). Como vemos en el gráfico, tenemos etiquetas con el precio exacto donde se negoció la mayor cantidad de volumen. La etiqueta superior del gráfico nos muestra el precio más alto, y la última etiqueta que observamos es la de la parte baja, que nos indica el precio más bajo. Estas etiquetas mostradas están dentro del rango de retroceso definido o Lookback Length, que podemos configurar en nuestro indicador. Como observamos, el algoritmo nos muestra una fuerte confluencia entre los canales de soporte Macro y las etiquetas del perfil de volumen, lo que nos confirma las áreas más fuertes del rango.
Por último, después de hacer los cálculos de soportes y resistencias desde tres perspectivas distintas, el algoritmo nos proporciona una visión macro del precio en forma de líneas de tendencia. Es decir, nos muestra soportes y resistencias en forma de canales diagonales donde tendremos representadas las tendencias en el mercado y áreas en las que el precio históricamente ha encontrado dificultades para avanzar o retroceder, lo que podemos corroborar con los soportes y resistencias de los que hablamos al principio.
Como observamos en el gráfico, el algoritmo también nos muestra las etiquetas con el precio exacto donde se encuentran los soportes angulares del precio y las resistencias angulares. Estos cálculos son importantísimos, ya que nos ofrecen una perspectiva de tendencia y podemos tener una visión de hacia dónde se dirige el precio, combinando estos con los otros cálculos de soportes y resistencias.
Recuerden que todos los cálculos anteriores tienen su propia alerta para cuando los soportes o resistencias se quiebren o en su caso, se creen nuevos canales, también cuando haya una ruptura de un "box" o una confirmación de ruptura.
El segundo tipo de alerta del indicador está configurada para que nuestros indicadores trabajen para nosotros sin necesidad de estar presentes en el gráfico, esto mediante una programación especial dentro del código del indicador que realizará compras y ventas automáticas en nuestro Exchange de preferencia mediante una alerta configurada para el bot 3Commas. Solo bastará con que pongamos nuestro número de Bot o Bot ID que da el proveedor de 3Commas y lo insertemos en la alerta. Todos los indicadores premium tienen en su configuración una explicación detallada sobre dónde poner tus Bot ID.
Normalized, Variety, Fast Fourier Transform Explorer [Loxx]Normalized, Variety, Fast Fourier Transform Explorer demonstrates Real, Cosine, and Sine Fast Fourier Transform algorithms. This indicator can be used as a rule of thumb but shouldn't be used in trading.
What is the Discrete Fourier Transform?
In mathematics, the discrete Fourier transform (DFT) converts a finite sequence of equally-spaced samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a complex-valued function of frequency. The interval at which the DTFT is sampled is the reciprocal of the duration of the input sequence. An inverse DFT is a Fourier series, using the DTFT samples as coefficients of complex sinusoids at the corresponding DTFT frequencies. It has the same sample-values as the original input sequence. The DFT is therefore said to be a frequency domain representation of the original input sequence. If the original sequence spans all the non-zero values of a function, its DTFT is continuous (and periodic), and the DFT provides discrete samples of one cycle. If the original sequence is one cycle of a periodic function, the DFT provides all the non-zero values of one DTFT cycle.
What is the Complex Fast Fourier Transform?
The complex Fast Fourier Transform algorithm transforms N real or complex numbers into another N complex numbers. The complex FFT transforms a real or complex signal x in the time domain into a complex two-sided spectrum X in the frequency domain. You must remember that zero frequency corresponds to n = 0, positive frequencies 0 < f < f_c correspond to values 1 ≤ n ≤ N/2 −1, while negative frequencies −fc < f < 0 correspond to N/2 +1 ≤ n ≤ N −1. The value n = N/2 corresponds to both f = f_c and f = −f_c. f_c is the critical or Nyquist frequency with f_c = 1/(2*T) or half the sampling frequency. The first harmonic X corresponds to the frequency 1/(N*T).
The complex FFT requires the list of values (resolution, or N) to be a power 2. If the input size if not a power of 2, then the input data will be padded with zeros to fit the size of the closest power of 2 upward.
What is Real-Fast Fourier Transform?
Has conditions similar to the complex Fast Fourier Transform value, except that the input data must be purely real. If the time series data has the basic type complex64, only the real parts of the complex numbers are used for the calculation. The imaginary parts are silently discarded.
What is the Real-Fast Fourier Transform?
In many applications, the input data for the DFT are purely real, in which case the outputs satisfy the symmetry
X(N-k)=X(k)
and efficient FFT algorithms have been designed for this situation (see e.g. Sorensen, 1987). One approach consists of taking an ordinary algorithm (e.g. Cooley–Tukey) and removing the redundant parts of the computation, saving roughly a factor of two in time and memory. Alternatively, it is possible to express an even-length real-input DFT as a complex DFT of half the length (whose real and imaginary parts are the even/odd elements of the original real data), followed by O(N) post-processing operations.
It was once believed that real-input DFTs could be more efficiently computed by means of the discrete Hartley transform (DHT), but it was subsequently argued that a specialized real-input DFT algorithm (FFT) can typically be found that requires fewer operations than the corresponding DHT algorithm (FHT) for the same number of inputs. Bruun's algorithm (above) is another method that was initially proposed to take advantage of real inputs, but it has not proved popular.
There are further FFT specializations for the cases of real data that have even/odd symmetry, in which case one can gain another factor of roughly two in time and memory and the DFT becomes the discrete cosine/sine transform(s) (DCT/DST). Instead of directly modifying an FFT algorithm for these cases, DCTs/DSTs can also be computed via FFTs of real data combined with O(N) pre- and post-processing.
What is the Discrete Cosine Transform?
A discrete cosine transform ( DCT ) expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. The DCT , first proposed by Nasir Ahmed in 1972, is a widely used transformation technique in signal processing and data compression. It is used in most digital media, including digital images (such as JPEG and HEIF, where small high-frequency components can be discarded), digital video (such as MPEG and H.26x), digital audio (such as Dolby Digital, MP3 and AAC ), digital television (such as SDTV, HDTV and VOD ), digital radio (such as AAC+ and DAB+), and speech coding (such as AAC-LD, Siren and Opus). DCTs are also important to numerous other applications in science and engineering, such as digital signal processing, telecommunication devices, reducing network bandwidth usage, and spectral methods for the numerical solution of partial differential equations.
The use of cosine rather than sine functions is critical for compression, since it turns out (as described below) that fewer cosine functions are needed to approximate a typical signal, whereas for differential equations the cosines express a particular choice of boundary conditions. In particular, a DCT is a Fourier-related transform similar to the discrete Fourier transform (DFT), but using only real numbers. The DCTs are generally related to Fourier Series coefficients of a periodically and symmetrically extended sequence whereas DFTs are related to Fourier Series coefficients of only periodically extended sequences. DCTs are equivalent to DFTs of roughly twice the length, operating on real data with even symmetry (since the Fourier transform of a real and even function is real and even), whereas in some variants the input and/or output data are shifted by half a sample. There are eight standard DCT variants, of which four are common.
The most common variant of discrete cosine transform is the type-II DCT , which is often called simply "the DCT". This was the original DCT as first proposed by Ahmed. Its inverse, the type-III DCT , is correspondingly often called simply "the inverse DCT" or "the IDCT". Two related transforms are the discrete sine transform ( DST ), which is equivalent to a DFT of real and odd functions, and the modified discrete cosine transform (MDCT), which is based on a DCT of overlapping data. Multidimensional DCTs ( MD DCTs) are developed to extend the concept of DCT to MD signals. There are several algorithms to compute MD DCT . A variety of fast algorithms have been developed to reduce the computational complexity of implementing DCT . One of these is the integer DCT (IntDCT), an integer approximation of the standard DCT ,: ix, xiii, 1, 141–304 used in several ISO /IEC and ITU-T international standards.
What is the Discrete Sine Transform?
In mathematics, the discrete sine transform (DST) is a Fourier-related transform similar to the discrete Fourier transform (DFT), but using a purely real matrix. It is equivalent to the imaginary parts of a DFT of roughly twice the length, operating on real data with odd symmetry (since the Fourier transform of a real and odd function is imaginary and odd), where in some variants the input and/or output data are shifted by half a sample.
A family of transforms composed of sine and sine hyperbolic functions exists. These transforms are made based on the natural vibration of thin square plates with different boundary conditions.
The DST is related to the discrete cosine transform (DCT), which is equivalent to a DFT of real and even functions. See the DCT article for a general discussion of how the boundary conditions relate the various DCT and DST types. Generally, the DST is derived from the DCT by replacing the Neumann condition at x=0 with a Dirichlet condition. Both the DCT and the DST were described by Nasir Ahmed T. Natarajan and K.R. Rao in 1974. The type-I DST (DST-I) was later described by Anil K. Jain in 1976, and the type-II DST (DST-II) was then described by H.B. Kekra and J.K. Solanka in 1978.
Notable settings
windowper = period for calculation, restricted to powers of 2: "16", "32", "64", "128", "256", "512", "1024", "2048", this reason for this is FFT is an algorithm that computes DFT (Discrete Fourier Transform) in a fast way, generally in 𝑂(𝑁⋅log2(𝑁)) instead of 𝑂(𝑁2). To achieve this the input matrix has to be a power of 2 but many FFT algorithm can handle any size of input since the matrix can be zero-padded. For our purposes here, we stick to powers of 2 to keep this fast and neat. read more about this here: Cooley–Tukey FFT algorithm
SS = smoothing count, this smoothing happens after the first FCT regular pass. this zeros out frequencies from the previously calculated values above SS count. the lower this number, the smoother the output, it works opposite from other smoothing periods
Fmin1 = zeroes out frequencies not passing this test for min value
Fmax1 = zeroes out frequencies not passing this test for max value
barsback = moves the window backward
Inverse = whether or not you wish to invert the FFT after first pass calculation
Related indicators
Real-Fast Fourier Transform of Price Oscillator
STD-Stepped Fast Cosine Transform Moving Average
Real-Fast Fourier Transform of Price w/ Linear Regression
Variety RSI of Fast Discrete Cosine Transform
Additional reading
A Fast Computational Algorithm for the Discrete Cosine Transform by Chen et al.
Practical Fast 1-D DCT Algorithms With 11 Multiplications by Loeffler et al.
Cooley–Tukey FFT algorithm
Ahmed, Nasir (January 1991). "How I Came Up With the Discrete Cosine Transform". Digital Signal Processing. 1 (1): 4–5. doi:10.1016/1051-2004(91)90086-Z.
DCT-History - How I Came Up With The Discrete Cosine Transform
Comparative Analysis for Discrete Sine Transform as a suitable method for noise estimation
Helme-Nikias Weighted Burg AR-SE Extra. of Price [Loxx]Helme-Nikias Weighted Burg AR-SE Extra. of Price is an indicator that uses an autoregressive spectral estimation called the Weighted Burg Algorithm, but unlike the usual WB algo, this one uses Helme-Nikias weighting. This method is commonly used in speech modeling and speech prediction engines. This is a linear method of forecasting data. You'll notice that this method uses a different weighting calculation vs Weighted Burg method. This new weighting is the following:
w = math.pow(array.get(x, i - 1), 2), the squared lag of the source parameter
and
w += math.pow(array.get(x, i), 2), the sum of the squared source parameter
This take place of the rectangular, hamming and parabolic weighting used in the Weighted Burg method
Also, this method includes Levinson–Durbin algorithm. as was already discussed previously in the following indicator:
Levinson-Durbin Autocorrelation Extrapolation of Price
What is Helme-Nikias Weighted Burg Autoregressive Spectral Estimate Extrapolation of price?
In this paper a new stable modification of the weighted Burg technique for autoregressive (AR) spectral estimation is introduced based on data-adaptive weights that are proportional to the common power of the forward and backward AR process realizations. It is shown that AR spectra of short length sinusoidal signals generated by the new approach do not exhibit phase dependence or line-splitting. Further, it is demonstrated that improvements in resolution may be so obtained relative to other weighted Burg algorithms. The method suggested here is shown to resolve two closely-spaced peaks of dynamic range 24 dB whereas the modified Burg schemes employing rectangular, Hamming or "optimum" parabolic windows fail.
Data inputs
Source Settings: -Loxx's Expanded Source Types. You typically use "open" since open has already closed on the current active bar
LastBar - bar where to start the prediction
PastBars - how many bars back to model
LPOrder - order of linear prediction model; 0 to 1
FutBars - how many bars you want to forward predict
Things to know
Normally, a simple moving average is calculated on source data. I've expanded this to 38 different averaging methods using Loxx's Moving Avreages.
This indicator repaints
Further reading
A high-resolution modified Burg algorithm for spectral estimation
Related Indicators
Levinson-Durbin Autocorrelation Extrapolation of Price
Weighted Burg AR Spectral Estimate Extrapolation of Price
MIDAS VWAP Jayy his is just a bash together of two MIDAS VWAP scripts particularly AkifTokuz and drshoe.
I added the ability to show more MIDAS curves from the same script.
The algorithm primarily uses the "n" number but the date can be used for the 8th VWAP
I have not converted the script to version 3.
To find bar number go into "Chart Properties" select " "background" then select Indicator Titles and "Indicator values". When you place your cursor over a bar the first number you see adjacent to the script title is the bar number. Put that in the dialogue box midline is MIDAS VWAP . The resistance is a MIDAS VWAP using bar highs. The resistance is MIDAS VWAP using bar lows.
In most case using N will suffice. However, if you are flipping around charts inputting a specific date can be handy. In this way, you can compare the same point in time across multiple instruments eg first trading day of the year or an election date.
Adding dates into the dialogue box is a bit cumbersome so in this version, it is enabled for only one curve. I have called it VWAP and it follows the typical VWAP algorithm. (Does that make a difference? Read below re my opinion on the Difference between MIDAS VWAP and VWAP ).
I have added the ability to start from the bottom or top of the initiating bar.
In theory in a probable uptrend pick a low of a bar for a low pivot and start the MIDAS VWAP there using the support.
For a downtrend use the high pivot bar and select resistance. The way to see is to play with these values.
Difference between MIDAS VWAP and the regular VWAP
MIDAS itself as described by Levine uses a time anchored On-Balance Volume (OBV) plotted on a graph where the horizontal (abscissa) arm of the graph is cumulative volume not time. He called his VWAP curves Support/Resistance VWAP or S/R curves. These S/R curves are often referred to as "MIDAS curves".
These are the main components of the MIDAS chart. A third algorithm called the Top-Bottom Finder was also described. (Separate script).
Additional tools have been described in "MIDAS_Technical_Analysis"
Midas Technical Analysis: A VWAP Approach to Trading and Investing in Today’s Markets by Andrew Coles, David G. Hawkins
Copyright © 2011 by Andrew Coles and David G. Hawkins.
Denoting the different way in which Levine approached the calculation.
The difference between "MIDAS" VWAP and VWAP is, in my opinion, much ado about nothing. The algorithms generate identical curves albeit the MIDAS algorithm launches the curve one bar later than the VWAP algorithm which can be a pain in the neck. All of the algorithms that I looked at on Tradingview step back one bar in time to initiate the MIDAS curve. As such the plotted curves are identical to traditional VWAP assuming the initiation is from the candle/bar midpoint.
How did Levine intend the curves to be drawn?
On a reversal, he suggested the initiation of the Support and Resistance VVWAP (S/R curve) to be started after a reversal.
It is clear in his examples this happens occasionally but in many cases he initiates the so-called MIDAS S/R VWAP right at the reversal point. In any case, the algorithm is problematic if you wish to start a curve on the first bar of an IPO .
You will get nothing. That is a pain. Also in Levine's writings, he describes simply clicking on the point where a
S/R VWAP is to be drawn from. As such, the generally accepted method of initiating the curve at N-1 is a practical and sensible method. The only issue is that you cannot draw the curve from the first bar on any security, as mentioned without resorting to the typical VWAP algorithm. There is another difference. VWAP is launched from the middle of the bar (as per AlphaTrends), You can also launch from the top of the bar or the bottom (or anywhere for that matter). The calculation proceeds using the top or bottom for each new bar.
The potential applications are discussed in the MIDAS Technical Analysis book.
Scalper - Pattern Recognition & Price Action Scalper - Pattern Recognition & Price Action Educational Indicator
**Originality and Educational Innovation**
**Why This Comprehensive Integration Merits a New Publication**
This indicator addresses a specific educational gap in technical analysis learning: **the lack of integrated pattern recognition systems that systematically combine traditional candlestick analysis with modern price action concepts in a unified confluence framework**. While individual components like moving averages, RSI, CCI, and basic candlestick patterns are well-established tools, this indicator's originality lies in its **comprehensive educational methodology** and **systematic multi-signal confluence engine**.
**Original Educational Framework:**
1. **Multi-Layer Confluence System**: Original algorithm that systematically combines 6+ different signal categories with customizable threshold requirements for educational analysis
2. **Modern Price Action Integration**: Educational implementation of Fair Value Gaps (FVG) and Order Block detection integrated with traditional pattern recognition
3. **Dynamic Support/Resistance Education**: Original strength-validated S/R system using statistical touch-count methodology rather than simple pivot points
4. **Comprehensive Pattern Library**: Educational collection combining basic and advanced candlestick patterns with mathematical validation criteria
5. **Customizable Multi-Timeframe Framework**: Educational tool allowing cross-timeframe analysis for understanding trend context
**How the Educational Components Work Together Systematically**
**Educational Layer 1 - Trend Context Understanding**: Multi-timeframe moving averages (customizable SMA/EMA/WMA/VWMA/HMA) establish directional bias for learning trend analysis
**Educational Layer 2 - Pattern Recognition Learning**: 15+ mathematically-defined candlestick patterns from basic engulfing to complex three-soldier formations demonstrate systematic pattern identification
**Educational Layer 3 - Modern Price Action Education**: Fair Value Gaps and Order Blocks teach institutional footprint recognition and market structure analysis
**Educational Layer 4 - Dynamic S/R Framework**: Strength-validated support/resistance levels demonstrate statistical validation methodology
**Educational Layer 5 - Momentum Analysis Education**: RSI and CCI extreme reversal detection teaches momentum exhaustion identification
**Educational Layer 6 - Confluence Analysis Methodology**: Original multi-signal combination system demonstrates how to systematically analyze multiple factors
This integrated educational approach provides a comprehensive framework for learning how different technical analysis concepts work together in real market conditions, addressing the common problem of studying indicators in isolation.
**Detailed Technical Implementation and Educational Methodology**
**Original Multi-Signal Confluence Algorithm**
**Educational Confluence Scoring System:**
The indicator implements an original systematic approach to signal combination:
```
Bullish Signal Categories (Educational Analysis):
- Candlestick Patterns: Strong Engulfing, Morning Star, Hammer, Three White Soldiers
- Momentum Indicators: RSI oversold exit (75→70), CCI extreme reversal (-200→-180)
- Price Action: Volume-confirmed breakouts above resistance levels
Bearish Signal Categories (Educational Analysis):
- Candlestick Patterns: Bearish Engulfing, Evening Star, Hanging Man, Three Black Crows
- Momentum Indicators: RSI overbought exit (25→30), CCI extreme reversal (200→180)
- Price Action: Volume-confirmed breakdowns below support levels
Original Confluence Calculation:
User-configurable minimum threshold (2-6 signals required)
Real-time signal counting with dynamic visual feedback
Educational labels showing current signal strength
```
**Why This Systematic Approach is Original:**
Most indicators show patterns individually without systematic combination methodology. This indicator provides an educational framework for understanding how to weight and combine different types of analysis systematically.
**Advanced Pattern Recognition with Educational Validation**
**Original Pattern Validation Methodology:**
Each pattern includes multiple educational validation criteria:
```
Strong Engulfing Educational Criteria:
- Body size > ATR (volatility filter for market significance)
- Current body > previous body (strength confirmation)
- Complete price engulfment (mathematical validation)
- Volume confirmation (market participation validation)
Morning/Evening Star Educational Framework:
- First candle: Directional (bull/bear confirmation)
- Second candle: Indecision (body < 30% of current body)
- Third candle: Reversal confirmation with penetration validation
Three Soldiers/Crows Educational Requirements:
- Three consecutive candles meeting directional criteria
- Each candle body > ATR * 0.5 (significance filter)
- Progressive price advancement (momentum validation)
```
**Modern Price Action Educational Implementation**
**Original Fair Value Gap Detection Algorithm:**
```
Educational FVG Identification:
Bullish FVG: current_low > high AND close > open AND close < open
Bearish FVG: current_high < low AND close < open AND close > open
Educational Purpose: Understanding institutional inefficiencies
Visual Education: Semi-transparent boxes showing gap zones
Practical Learning: Identifying potential reversal or continuation areas
```
**Original Order Block Educational Detection:**
```
Educational Order Block Criteria:
Bullish: Previous candle bullish AND current close > previous high AND volume > 20-period average
Bearish: Previous candle bearish AND current close < previous low AND volume > 20-period average
Educational Purpose: Recognizing institutional accumulation/distribution
Visual Education: Highlighted zones showing institutional interest
Learning Application: Understanding market structure concepts
```
**Dynamic Support/Resistance Educational System**
**Original Strength-Validation Algorithm:**
```
Educational S/R Methodology:
1. Identify recent swing highs/lows over user-defined period
2. Calculate ATR-based tolerance levels (volatility adjustment)
3. Count historical touches within tolerance (statistical validation)
4. Create levels only when touches ≥ minimum strength requirement
5. Project levels forward for future price interaction analysis
Educational Advantage over Simple Pivots:
- Statistical validation through touch counting
- Volatility-adjusted tolerance (adapts to market conditions)
- Strength-based filtering (reduces noise)
- Forward-looking projection (practical application)
```
**Comprehensive Educational Features and Customization**
**Multi-Timeframe Educational Framework**
- **MA 1**: SMA 34 with customizable timeframe (short-term trend education)
- **MA 2**: SMA 63 with customizable timeframe (medium-term trend education)
- **MA 3**: User-selectable type (SMA/EMA/WMA/VWMA/HMA) with customizable timeframe
- **MA 4**: User-selectable type for long-term trend context
- **Educational Purpose**: Understanding cross-timeframe trend analysis
**Educational Pattern Detection Parameters**
- **ATR Length**: Volatility measurement for pattern significance (default: 14)
- **Volume Validation**: Historical volume comparison for pattern confirmation
- **Mathematical Ratios**: Precise wick/body ratios for pattern classification
- **Strength Filters**: Size and volume thresholds ensuring pattern validity
**Educational Price Action Configuration**
- **FVG Detection**: Three-candle gap analysis with directional confirmation
- **Order Block Settings**: Volume threshold and visual projection length
- **S/R Parameters**: Detection period, minimum touch count, tolerance calculation
- **Educational Visualization**: Clear boxes and labels for learning identification
**Customizable Educational Dashboard**
- **Position Control**: 6 different dashboard positions for optimal viewing
- **Color Customization**: Full color control for text, backgrounds, and signals
- **Real-Time Education**: Current RSI, CCI, ATR values for learning
- **Signal Analysis**: Live bullish/bearish signal counts for confluence education
- **Educational Branding**: Clear identification as learning tool
Educational Applications and Learning Outcomes
**Progressive Learning Structure for Technical Analysis**
**Beginner Level Education:**
- Moving average trend identification across timeframes
- Basic candlestick pattern recognition with mathematical criteria
- Introduction to support/resistance concepts with visual validation
**Intermediate Level Education:**
- Multi-pattern analysis and pattern strength assessment
- RSI and CCI momentum analysis with extreme level identification
- Volume analysis integration with pattern confirmation
**Advanced Level Education:**
- Fair Value Gap theory and practical institutional analysis
- Order Block detection and market structure understanding
- Multi-signal confluence methodology and systematic signal combination
**Practical Educational Workflow**
1. **Setup Phase**: Configure moving averages for chosen timeframes and enable desired patterns
2. **Context Analysis**: Study trend direction using multi-timeframe MA alignment
3. **Pattern Study**: Identify candlestick formations meeting mathematical validation criteria
4. **Price Action Learning**: Analyze FVG and Order Block formations for institutional insight
5. **Confluence Education**: Count and analyze multiple signal types for probability assessment
6. **Real-Time Practice**: Use dashboard for ongoing market analysis and signal tracking
**Educational Risk Management Concepts**
- **Pattern Reliability Understanding**: Learning which patterns have higher success rates
- **Signal Strength Analysis**: Understanding how confluence affects probability
- **Market Context Education**: Learning when patterns are most/least reliable
- **Systematic Analysis**: Developing consistent methodology for market evaluation
**Technical Requirements and Optimization**
**Performance Optimization for Education**
- **Visual Element Limits**: 500 maximum boxes, lines, and labels for stable performance
- **Efficient Calculations**: S/R updates every 10 bars for smooth operation
- **Memory Management**: Proper array management for dynamic level storage
- **Clean Interface**: Organized input groups for easy educational navigation
**Educational Visualization Standards**
- **Color-Coded Learning**: Consistent color scheme for pattern identification
- **Clear Labeling**: Educational text labels for all major patterns and signals
- **Professional Layout**: Organized visual hierarchy for systematic learning
- **Customizable Display**: User control over visual elements and positioning
**Educational Disclaimers and Learning Focus**
**Educational Purpose Statement**
This indicator is designed as a comprehensive educational tool for learning technical analysis concepts. It demonstrates how traditional candlestick analysis, modern price action concepts, and systematic confluence methodology can be integrated for educational purposes.
**Learning Tool Disclaimer**
The indicator provides an educational framework for studying:
- Traditional and modern technical analysis integration
- Systematic pattern recognition methodology
- Multi-signal confluence analysis techniques
- Price action and market structure principles
- Statistical validation approaches for support/resistance
**Risk Education and Understanding**
Technical analysis education requires understanding that:
- Patterns and indicators show historical relationships, not future guarantees
- Confluence analysis increases probability understanding but not certainty
- Educational study should focus on methodology rather than signal generation
- Proper risk management principles must be learned alongside technical analysis
- Real market conditions may differ from educational examples
**Systematic Learning Approach**
This educational tool emphasizes:
- **Methodology over Signals**: Focus on learning systematic analysis approaches
- **Understanding over Automation**: Developing analytical skills rather than relying on automated signals
- **Education over Trading**: Comprehensive learning framework for technical analysis concepts
- **Progressive Development**: Building skills systematically from basic to advanced concepts
**Technical Documentation and Implementation**
**Original Algorithm Documentation**
All custom algorithms are documented for educational transparency:
- Pattern detection mathematics with specific criteria
- Confluence scoring methodology with threshold requirements
- Support/resistance validation with statistical touch counting
- Price action detection with institutional footprint identification
**Educational Code Structure**
- **Comprehensive Comments**: Every section includes educational purpose explanation
- **Version Tracking**: Clear version documentation for educational development
- **Performance Notes**: Optimization techniques explained for learning
- **Customization Guidance**: Clear parameter explanation for educational experimentation
---
**Educational Innovation Summary:**
This implementation represents an original approach to technical analysis education, systematically combining traditional pattern recognition with modern price action concepts in an integrated confluence framework. The educational methodology addresses common learning gaps by providing systematic approaches to multi-signal analysis, statistical validation, and institutional footprint recognition.
**Learning Value:**
The comprehensive educational framework eliminates the need to study multiple separate indicators by providing an integrated learning platform that demonstrates how different technical analysis concepts work together systematically in real market conditions.
**Educational Commitment:**
This indicator prioritizes education and systematic learning over simple signal generation, providing traders with the analytical framework needed to develop comprehensive technical analysis skills through hands-on practice and systematic methodology development.
Sniper Divergence M.AtaogluSNIPER DIVERGENCE PRO - ADVANCED MULTI-TIMEFRAME DIVERGENCE DETECTOR
DESCRIPTION:
Sniper Divergence Pro is a sophisticated technical analysis indicator that combines RSI-based calculations with fractal analysis to detect both regular and hidden divergences across multiple timeframes. This advanced tool provides traders with precise entry and exit signals through its innovative Sniper algorithm and comprehensive visual feedback system.
KEY FEATURES:
1. SNIPER ALGORITHM:
- Custom RSI-based oscillator with fractal peak/valley detection
- Uses Relative Moving Average (RMA) for smooth signal generation
- Calculates momentum changes with mathematical precision
- Provides real-time divergence analysis with minimal lag
2. DIVERGENCE DETECTION:
- Regular Bullish Divergence: Price makes lower lows while indicator makes higher lows
- Regular Bearish Divergence: Price makes higher highs while indicator makes lower highs
- Hidden Bullish Divergence: Price makes higher lows while indicator makes lower lows
- Hidden Bearish Divergence: Price makes lower highs while indicator makes higher highs
- Configurable sensitivity levels for both bullish and bearish signals
3. MULTI-TIMEFRAME ANALYSIS:
- Simultaneous analysis across 6 timeframes: 15m, 45m, 4h, 1D, 1W, 1M
- Real-time signal tracking with "bars ago" information
- Comprehensive signal table showing current status across all timeframes
- Sniper value display for each timeframe for trend confirmation
4. VISUAL ENHANCEMENTS:
- Neon color scheme optimized for dark themes
- Dynamic color-coded Sniper line based on market conditions
- Background fill areas for overbought/oversold zones
- Peak and valley point markers for fractal analysis
- Horizontal reference lines with clear level indicators
5. ALERT SYSTEM:
- Four distinct alert conditions for different signal types
- Real-time notification system for immediate signal detection
- Professional-grade alert messages for trading automation
TECHNICAL SPECIFICATIONS:
CALCULATION METHOD:
The indicator uses a modified RSI calculation with fractal analysis:
- Source: Close price (configurable)
- Period: 21 (default, adjustable 1-1000)
- Algorithm: RMA-based momentum calculation with fractal peak/valley detection
- Divergence Logic: Price vs. indicator comparison using fractal points
SIGNAL LEVELS:
- Super Buy Zone: 0-12 (Strong bullish momentum)
- Strong Buy Zone: 12-20 (Moderate bullish momentum)
- Neutral Lower: 20-30 (Weak bullish to neutral)
- Neutral Upper: 30-40 (Weak bearish to neutral)
- Strong Sell Zone: 40-50 (Moderate bearish momentum)
- Super Sell Zone: 50+ (Strong bearish momentum)
DIVERGENCE SETTINGS:
- Bullish Divergence Level: 12 (Minimum level for detection)
- Bearish Divergence Level: 35 (Maximum level for detection)
- Hidden Divergence: Enabled by default for professional signals
USAGE INSTRUCTIONS:
1. BASIC SETUP:
- Apply to any chart timeframe
- Default settings work well for most markets
- Adjust RSI period for different market conditions
2. SIGNAL INTERPRETATION:
- Green triangles: Bullish divergence signals (buy opportunities)
- Red triangles: Bearish divergence signals (sell opportunities)
- X-cross symbols: Hidden divergence signals (stronger signals)
- Circle markers: Fractal peak/valley points
3. MULTI-TIMEFRAME CONFIRMATION:
- Enable signal table for comprehensive analysis
- Look for signal alignment across multiple timeframes
- Use "NOW" indicators for current signal detection
- Monitor Sniper values for trend confirmation
4. RISK MANAGEMENT:
- Use divergences as confirmation, not standalone signals
- Combine with other technical analysis tools
- Set appropriate stop-loss levels
- Consider market context and volatility
ADVANTAGES:
1. ACCURACY: Fractal-based detection reduces false signals
2. VERSATILITY: Works across all market types and timeframes
3. VISIBILITY: Clear visual feedback with neon color scheme
4. COMPREHENSIVE: Multi-timeframe analysis in single indicator
5. PROFESSIONAL: Advanced algorithms suitable for serious traders
6. CUSTOMIZABLE: Extensive parameter adjustment options
LIMITATIONS:
1. LAG: Higher RSI periods may introduce signal delay
2. FALSE SIGNALS: Market noise can generate occasional false positives
3. CONTEXT DEPENDENT: Requires market condition consideration
4. LEARNING CURVE: Advanced features require understanding
RECOMMENDED MARKETS:
- Forex pairs (all timeframes)
- Cryptocurrencies (4h and daily preferred)
- Stock indices (daily and weekly)
- Commodities (4h and daily)
RISK DISCLAIMER:
This indicator is for educational and informational purposes only. Past performance does not guarantee future results. Always conduct your own analysis and use proper risk management. Trading involves substantial risk of loss and is not suitable for all investors.
TECHNICAL REQUIREMENTS:
- TradingView Pro or higher recommended
- Pine Script v6 compatible
- Stable internet connection for real-time data
- Sufficient chart history for accurate calculations
This indicator represents a significant advancement in divergence detection technology, combining traditional RSI concepts with modern fractal analysis to provide traders with a comprehensive tool for identifying high-probability trading opportunities across multiple timeframes.
Multi-Timeframe Wolfe Wave StrategyThis invite-only strategy implements an advanced multi-timeframe Wolfe Wave pattern recognition system specifically designed for institutional-grade algorithmic trading environments.
**Core Mathematical Framework:**
The strategy employs sophisticated mathematical calculations across 10 distinct timeframes (377, 233, 144, 89, 55, 34, 21, 13, 8, 5 periods), utilizing Elliott Wave ratio theory combined with proprietary algorithmic enhancements. Unlike standard Wolfe Wave implementations that rely on visual pattern recognition, this system uses quantitative analysis to identify precise entry and exit points.
**Technical Implementation:**
• **Pattern Detection Algorithm:** Calculates price relationships using configurable ratio sets including Fibonacci sequences, Elliott Wave ratios, Golden Ratio, Harmonic Patterns, Pi-based calculations, and custom mathematical progressions
• **Multi-Timeframe Confluence:** Simultaneously analyzes patterns across all timeframes to ensure signal reliability and reduce false positives
• **Dynamic Target Calculation:** Employs advanced mathematical modeling to project optimal profit targets based on historical price behavior and pattern completion theory
• **Risk Management Engine:** Implements position-based stop losses calculated as percentages of target profits, with liquidation price monitoring for leveraged positions
**Originality and Innovation:**
This implementation differs significantly from traditional Wolfe Wave indicators through several key innovations:
1. **Algorithmic Pattern Validation:** Uses mathematical confirmation across multiple timeframes rather than subjective visual analysis
2. **Adaptive Ratio Selection:** Offers 24 different ratio calculation methods, allowing optimization for various market conditions
3. **Institutional Integration:** Features comprehensive webhook messaging for automated execution via external trading systems
4. **Advanced Position Management:** Includes sophisticated position sizing controls with maximum concurrent position limits
**Strategy Logic:**
For bullish conditions, the algorithm identifies when price action meets specific mathematical criteria:
- Point validation through ratio analysis between swing highs/lows
- Confluence confirmation across multiple timeframes
- Minimum profit threshold filtering to ensure trade quality
- Dynamic stop-loss positioning based on pattern geometry
The mathematical approach uses proprietary calculations that extend beyond traditional Fibonacci levels, incorporating elements from chaos theory, fractal geometry, and advanced statistical analysis.
**Risk Management Features:**
• Configurable stop-loss percentages relative to profit targets
• Maximum position limits to control portfolio exposure
• Liquidation price monitoring for margin trading
• Time-based filtering options for market session control
• Minimum profit threshold settings to filter low-quality signals
**Intended Markets and Conditions:**
Optimized for cryptocurrency markets with high volatility and sufficient liquidity. Works effectively in trending and ranging market conditions due to its multi-timeframe approach. Best suited for assets with clear swing structure and adequate price movement.
**Performance Characteristics:**
The strategy is designed for active trading with frequent position entries across multiple timeframes. Position holding periods vary from short-term scalping to medium-term swing trading depending on pattern completion timeframes.
**Technical Requirements:**
Requires understanding of advanced pattern recognition theory, risk management principles, and algorithmic trading concepts. Users should be familiar with Wolfe Wave methodology and Elliott Wave theory fundamentals.
Trend Following Strategy with KNN
### 1. Strategy Features
This strategy combines the K-Nearest Neighbors (KNN) algorithm with a trend-following strategy to predict future price movements by analyzing historical price data. Here are the main features of the strategy:
1. **Dynamic Parameter Adjustment**: Uses the KNN algorithm to dynamically adjust parameters of the trend-following strategy, such as moving average length and channel length, to adapt to market changes.
2. **Trend Following**: Captures market trends using moving averages and price channels to generate buy and sell signals.
3. **Multi-Factor Analysis**: Combines the KNN algorithm with moving averages to comprehensively analyze the impact of multiple factors, improving the accuracy of trading signals.
4. **High Adaptability**: Automatically adjusts parameters using the KNN algorithm, allowing the strategy to adapt to different market environments and asset types.
### 2. Simple Introduction to the KNN Algorithm
The K-Nearest Neighbors (KNN) algorithm is a simple and intuitive machine learning algorithm primarily used for classification and regression problems. Here are the basic concepts of the KNN algorithm:
1. **Non-Parametric Model**: KNN is a non-parametric algorithm, meaning it does not make any assumptions about the data distribution. Instead, it directly uses training data for predictions.
2. **Instance-Based Learning**: KNN is an instance-based learning method that uses training data directly for predictions, rather than generating a model through a training process.
3. **Distance Metrics**: The core of the KNN algorithm is calculating the distance between data points. Common distance metrics include Euclidean distance, Manhattan distance, and Minkowski distance.
4. **Neighbor Selection**: For each test data point, the KNN algorithm finds the K nearest neighbors in the training dataset.
5. **Classification and Regression**: In classification problems, KNN determines the class of a test data point through a voting mechanism. In regression problems, KNN predicts the value of a test data point by calculating the average of the K nearest neighbors.
### 3. Applications of the KNN Algorithm in Quantitative Trading Strategies
The KNN algorithm can be applied to various quantitative trading strategies. Here are some common use cases:
1. **Trend-Following Strategies**: KNN can be used to identify market trends, helping traders capture the beginning and end of trends.
2. **Mean Reversion Strategies**: In mean reversion strategies, KNN can be used to identify price deviations from the mean.
3. **Arbitrage Strategies**: In arbitrage strategies, KNN can be used to identify price discrepancies between different markets or assets.
4. **High-Frequency Trading Strategies**: In high-frequency trading strategies, KNN can be used to quickly identify market anomalies, such as price spikes or volume anomalies.
5. **Event-Driven Strategies**: In event-driven strategies, KNN can be used to identify the impact of market events.
6. **Multi-Factor Strategies**: In multi-factor strategies, KNN can be used to comprehensively analyze the impact of multiple factors.
### 4. Final Considerations
1. **Computational Efficiency**: The KNN algorithm may face computational efficiency issues with large datasets, especially in real-time trading. Optimize the code to reduce access to historical data and improve computational efficiency.
2. **Parameter Selection**: The choice of K value significantly affects the performance of the KNN algorithm. Use cross-validation or other methods to select the optimal K value.
3. **Data Standardization**: KNN is sensitive to data standardization and feature selection. Standardize the data to ensure equal weighting of different features.
4. **Noisy Data**: KNN is sensitive to noisy data, which can lead to overfitting. Preprocess the data to remove noise.
5. **Market Environment**: The effectiveness of the KNN algorithm may be influenced by market conditions. Combine it with other technical indicators and fundamental analysis to enhance the robustness of the strategy.
[Pandora] Error Function Treasure Trove - ERF/ERFI/Sigmoids+PRAISE:
At this time, I have to graciously thank the wonderful minds behind the new "Pine Profiler Mode" (PPM). Directly prior to this release, it allowed me to ascertain script performance even more. While I usually write mostly in highly optimized Pine code, PPM visually identified a few bottlenecks that would otherwise be hard to identify. Anyone who contributed to PPMs creation and testing before release... BRAVO!!! I commend all of those who assisted in it's state-of-the-art engineering and inception, well done!
BACKSTORY:
This script is specifically being released in defense of another member, an exceptionally unique PhD. It was brought to my attention that a script-mod-event occurred, regarding the publishing of a measly antiquated error function (ERF) calculation within his script. This sadly resulted in the now former member jumping ship after receiving unmannerly responses amidst his curious inquiries as to why his erf() was modded. To forbid rusty and rudimentary formulations because a mod-on-duty is temporally offended by a non-nefarious release of code, is in MY opinion an injustice to principles of perpetuating open-source code intended to benefit thousands to millions of community members. While Pine is the heart and soul of TV, the mathematical concepts contributed from the minds of members is the inspirational fuel of curiosity that powers it's pertinent reason to exist and evolve.
It is an indisputable fact that most members are not greatly skilled Pine Poets. Many members may be incapable of innovating robust function code in Pine, even if they have one or more PhDs. We ALL come from various disciplines of mathematical comprehension and education. Some mathematicians are not greatly skilled at coding, while some coders are not exceptional at math. So... what am I to do to attempt to resolve this circumstantial challenge??? Those who know me best are aware that I will always side with "the right side of history" in order to accomplish my primary self-defined missions I choose to accept. Serving as an algorithmic advocate, I felt compelled to intercede by compiling numerous error functions into elegant code of very high caliber that any and every TV member may choose to employ, so this ERROR never happens again.
After weeks of contemplation into algorithms I knew little about, I prioritized myself to resolve an unanticipated matter by creating advanced formulas of exquisitely crafted error functions refined to the best of my current abilities. My aversion for unresolved problems motivated me to eviscerate error function insufficiencies with many more rigid formulations beyond what is thought to exist. ERF needed a proper algorithmic exorcism anyways. In my furiosity, I contemplated an array of madMAXimum diplomatic demolition methods, choosing the chain saw massacre technique to slaughter dysfunctionalities I encountered on a battered ERF roadway. This resulted in prolific solutions that should assuredly endure the test of time. Poetically, as you will come to see, I am ripping the lid off of Pandora's box of error functions in this case to correct wrongs into a splendid bundle of rights for members.
INTENTION:
Error function (ERF) enthusiasts... PREPARE FOR GLORY!! The specific purpose of this script is to deprecate classic error functions with the creation of a fierce and formidable army of superior formulations, each having varying attributes of computational complexity with differing absolute error ranges in their results for multiple compute scenarios. This is NOT an indicator... It is intended to allow members to embark on endeavors to advance the profound knowledge base of this growing worldwide community of 60+ million inquisitive minds. For those of you who believe computational mathematics and statistics is near completion at its finest; I am here to inform you, this is ridiculous to ponder. We are no where near statistical excellence that can and will exist eventually. At this time, metaphorically speaking, we are merely scratching microns off of the surface of the skin of a statistical apple Isaac Newton once pondered.
THIS RELEASE:
Following weeks of pondering methodical experiments beyond the ordinary, I am liberating these wild notions of my error function explorations to the entire globe as copyleft code, not just Pine. This Pandora's basket of ERFs is being openly disclosed for the sake of the sanctity of mathematics, empirical science (not the garbage we are told by CONTROLocrats to blindly trust), revolutionary cutting edge engineering, cosmology, physics, information technology, artificial intelligence, and EVERY other mathematical branch of human knowledge being discovered over centuries. I do believe James Glaisher would favor my aims concerning ERF aspirations embracing the "Power of Pine".
The included functions are intended for TV members to use in any way they see fit. This is a gift to ALL members to foster future innovative excellence on this platform. Any attempt to moderate this code without notification of "self-evident clear and just cause" will be considered an irrevocable egregious action. The original foundational PURPOSE of establishing script moderation (I clearly remember) was primarily to maintain active vigilance over a growing community against intentional nefarious actions and/or behaviors in blatant disrespect to other author's works AND also thwart rampant copypasting bandit operations, all while accommodating balanced principles of fairness for an educational community cause via open source publishing that should support future algorithmic inventions well beyond my lifespan.
APPLICATIONS:
The related error functions are used in probability theory, statistics, and numerous and engineering scientific disciplines. Its key characteristics and applications are innumerable in computational realms. Its versatility and significance make it a fundamental tool in arenas of quantitative analysis and scientific research...
Probability Theory - Is widely used in probability theory to calculate probabilities and quantiles of the normal distribution.
Statistics - It's related to the Gaussian integral and plays a crucial role in statistics, especially in hypothesis testing and confidence interval calculations.
Physics - In physics, it arises in the study of diffusion equations, quantum mechanics, and heat conduction problems.
Engineering - Applications exist in engineering disciplines such as signal processing, control theory, and telecommunications.
Error Analysis - It's employed in error analysis and uncertainty quantification.
Numeric Approximations - Due to its lack of a closed-form expression, numerical methods are often employed to approximate erf/erfi().
AI, LLMs, & MACHINE LEARNING:
The error function (ERF) is indispensable to various AI applications, particularly due to its relation to Gaussian distributions and error analysis. It is used in Gaussian processes for regression and classification, probabilistic inference for Bayesian networks, soft margin computation in SVMs, neural networks involving Gaussian activation functions or noise, and clustering algorithms like Gaussian Mixture Models. Improved ERF approximations can enhance precision in these applications, reduce computational complexity, handle outliers and noise better, and improve optimization and convergence, possibly leading to more accurate, efficient, and robust AI systems.
BONUS ALGORITHMS:
While ERFs are versatile, its opposite also exists in the form of inverse error functions (ERFIs). I have also included a modified form of the inverse fisher transform along side MY sigmoid (sigmyod). I am uncertain what sigmyod() may be used for, but it's a culmination of my examinations deep into "sigmoid domains", something I am fascinated by. Whatever implications it may possess, I am unveiling it along with it's cousin functions. For curious minds, this quality of composition seen here is ideally what underlies what I would term "Pandora functionality" that empowers my Pandora indication. I go through hordes of formulations, testing, and inspection to find what appears to be the most beneficial logical/mathematical equation to apply...
SCRIPT OPERATION:
To showcase the characteristics and performance of my ERF/ERFI formulations, I devised a multi-modal script. By using bar_index , I generated a broad sequence of numeric values to input into the first ERF/ERFI parameter. These sequences allow you to inspect the contours of the error function's outputs for both ERF and ERFI. When combined with compute-intensive precision functions (CIPFs), the polynomial function output values can be subtracted from my CIPFs to obtain results of absolute error, displaying the accuracy of the many polynomial estimation functions I tuned in testing for Pine's float environment.
A host of numeric input settings are wildly adjustable to inspect values/curvatures across the range of numeric input sequences. Very large numbers, such as Divisor:100,000,100/Offset:200,000,000 for ERF modes or... Divisor:100,000,100/Offset:100,000,000 for ERFI modes, will display miniscule output values calculated from input values in close proximity to 0.0 for the various estimates, similar to a microscope. ERFI approximations very near in proximity to +/-1.0 will always yield large deviations of absolute error. Dragging/zooming your chart or using the Offset input will aid with visually clipping off those ERFI extremes where float precision functions cannot suffice.
NOTICE:
perf() and perfi() are intended for precision computation (as good as it basically gets) in a float environment. However, they are CPU intensive (especially perfi). I wouldn't recommend these being used in ANY Pine script unless it's an "absolute necessity" to do so to accomplish your goal. I only built them to obtain "absolute error curvatures" of the error functions for the polynomial approximations. These are visible in the accuracy modes in the indicator Settings.
Ocs Ai TraderThis script perform predictive analytics from a virtual trader perspective!
It acts as an AI Trade Assistant that helps you decide the optimal times to buy or sell securities, providing you with precise target prices and stop-loss level to optimise your gains and manage risk effectively.
System Components
The trading system is built on 4 fundamental layers :
Time series Processing layer
Signal Processing layer
Machine Learning
Virtual Trade Emulator
Time series Processing layer
This is first component responsible for handling and processing real-time and historical time series data.
In this layer Signals are extracted from
averages such as : volume price mean, adaptive moving average
Estimates such as : relative strength stochastics estimates on supertrend
Signal Processing layer
This second layer processes signals from previous layer using sensitivity filter comprising of an Probability Distribution Confidence Filter
The main purpose here is to predict the trend of the underlying, by converging price, volume signals and deltas over a dominant cycle as dimensions and generate signals of action.
Key terms
Dominant cycle is a time cycle that has a greater influence on the overall behaviour of a system than other cycles.
The system uses Ehlers method to calculate Dominant Cycle/ Period.
Dominant cycle is used to determine the influencing period for the underlying.
Once the dominant cycle/ period is identified, it is treated as a dynamic length for considering further calculations
Predictive Adaptive Filter to generate Signals and define Targets and Stops
An adaptive filter is a system with a linear filter that has a transfer function controlled by variable parameters and a means to adjust those parameters according to an optimisation algorithm. Because of the complexity of the optimisation algorithms, almost all adaptive filters are digital filters. Thus Helping us classify our intent either long side or short side
The indicator use Adaptive Least mean square algorithm, for convergence of the filtered signals into a category of intents, (either buy or sell)
Machine Learning
The third layer of the System performs classifications using KNN K-Nearest Neighbour is one of the simplest Machine Learning algorithms based on Supervised Learning technique.
K-NN algorithm assumes the similarity between the new case/data and available cases and put the new case into the category that is most similar to the available categories.
K-NN algorithm stores all the available data and classifies a new data point based on the similarity. This means when new data appears then it can be easily classified into a well suite category by using K- NN algorithm. K-NN algorithm can be used for Regression as well as for Classification but mostly it is used for the Classification problems.
Virtual Trade Emulator
In this last and fourth layer a trade assistant is coded using trade emulation techniques and the Lines and Labels for Buy / Sell Signals, Targets and Stop are forecasted!
How to use
The system generates Buy and Sell alerts and plots it on charts
Buy signal
Buy signal constitutes of three targets {namely T1, T2, T3} and one stop level
Sell signal
Sell signal constitutes of three targets {namely T1, T2, T3} and one stop level
What Securities will it work upon ?
Volume Informations must be present for the applied security
The indicator works on every liquid security : stocks, future, forex, crypto, options, commodities
What TimeFrames To Use ?
You can use any Timeframe, The indicator is Adaptive in Nature,
I personally use timeframes such as : 1m, 5m 10m, 15m, ..... 1D, 1W
This Script Uses Tradingview Premium features for working on lower timeframes
In case if you are not a Tradingview premium subscriber you should tell the script that after applying on chart, this can be done by going to settings and unchecking "Is your Tradingview Subscription Premium or Above " Option
How To Get Access ?
You will need to privately message me for access mentioning you want access to "Ocs Ai Trader" Use comment box only for constructive comments. Thanks !