[Sextan] Hull MA BacktestLevel: 1
NOTE: This is a request by @babaa to backtest Hull suite by InSilico with my Sextan framework. You can backtest many of my indicators in minutes now! Of course,you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
Courtesy of InSilico for his Hull suite indicator
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
ค้นหาในสคริปต์สำหรับ "backtest"
[Sextan] Fisher Transform BacktestLevel: 1
NOTE: This is a request by @Uni_ve12se to backtest Ehlers Fisher Transform by cheatcountry with my Sextan framework. I ONLY take 5 minutes to perform it and how much time would you cost for this work? You can backtest many of my indicators in minutes now! Of course,you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
Courtesy of cheatcountry for his Ehlers Fisher Transform indicator
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
[Sextan] M-Oscillator BacktestLevel: 1
NOTE: This is a request by @scantor516 to backtest M-Oscillator by Mango2Juice with my Sextan framework. I ONLY take 5 minutes to perform it and how much time would you cost for this work?
Courtesy of Mango2Juice for M-Oscillator script.
You can backtest many of my indicators in minutes now! Of course,you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
[Sextan] KAMA BacktestLevel: 1
NOTE: This is ONLY an EXAMPLE on HOW-TO produce a customized "{Sextan} PINEv4 Sextans Backtest Framework" with intput signal source as my "{blackcat} L2 Perry Kaufman Adaptive MA (KAMA)" quickly and drawing on main chart. You can backtest many of my indicators in minutes now!
Of course,you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
[Sextan] Your Indicator SourceLevel: 1
NOTE: This is ONLY an EXAMPLE on HOW-TO produce a customized "{Sextan} PINEv4 Sextans Backtest Framework" intput signal source, you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
I use two simple moving average crossings to produce long and short entry signal with SMA3 and SMA8 in the example.
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
Unicorn X-AlgoUnicorn X-Algo is a multifunctional trading indicator. It is designed to help traders make real-time decisions using quantitative models.
Its core is a trend trading strategy based on our enhanced Trailing Stop-Loss algorithm. This strategy provides the user with position entry and exit signals. It is customizable and has a built-in instant backtesting feature.
For those who have difficulty with finding the good settings the indicator has the Automatic Mode. In this mode, there is no need for the user to adjust any settings. The indicator calculates optimized trading signals automatically.
In addition, the indicator provides a number of useful tools that aim to provide additional confirmation to the trading signals. They include: support and resistance levels forecast, price range prediction and institutional activity detection.
The script can send real-time alerts to the user’s Email and to the cell phone via notifications in the TradingView app.
The indicator can be used for various types of trend and swing trading, including positional trading, day trading and scalping.
Unicorn X-Algo allows users to:
forecast direction of trends with BUY and SELL signals;
determine the right time to close a position;
detect institutional activity in the market;
forecast key support and resistance levels;
predict the future price range for any market;
customize any settings and do a backtest with one click;
see historical trades on the chart;
use the fully Automatic Mode where the algorithm optimizes all its settings itself.
When using this script, keep in mind that past results do not necessarily reflect future results and that many factors influence trading results.
FEATURES
Trading signals
The feature calculates trend or swing entry and exit signals. The underlying strategy does not use fixed Take-Profit levels. It trails the price with a Trailing Stop-Loss to get as many pips as possible from price movements.
The feature is based on our custom Volatility Stop algorithm. It uses linear regressions instead of averaging. As our practice shows, this helps to reduce signal lag while keeping the number of false signals low.
Trading signals are customizable with Sensitivity and Trade Length parameters which determine the trading signals frequency and width of the Trailing-Stop levels, respectively.
Automatic Mode
The Trading Signals function has an automatic mode. When it is turned on, you do not need to adjust the trading signals settings. The algorithm tries to calculate the best settings automatically using an optimization algorithm.
In this mode, Buy and Sell signals are displayed as green and red triangles respectively. There are two types of exit signals displayed as circles and crosses. A circle signal means that a price reversal is expected and you can partially close the position. A cross signal means that a trading signal in the opposite direction is expected soon and you can partially or completely close your position.
Support and Resistance Levels
Support/Resistance levels forecasting model. The forecasted levels are non-repainting. Once calculated for a specified period in the future (day, week, month, etc.), they don't change during this period.
The feature allows the trader to plan trades and use the forecasted levels as entry levels and targets for opening and closing positions. Both intraday and higher timeframes are supported.
The forecasting model analyses the distribution of the price time series to find clusters in the data. These clusters are then used to make the key price levels forecast.
Big Money Activity detection
The Big Money Activity tool identifies areas on the price chart associated with instructional traders' activity in the market.
Institutional activity in a trending market can be a leading signal for upcoming reversal. Institutions could be fixing their profit, causing the price to move against the current trend.
Institutional activity in a sideways market can be due to positions accumulation and signal a new trend formation.
The algorithm uses tick volume, volume, and volatility data to forecast activity of institutional investors. The method develops the idea described in the Daigler & Wiley (2015) and Shalen (1993) works. It says that when institutional traders actively open or close their positions in the market, a divergence between volume and volatility time-series arises. It can be due to their use of position-splitting algorithms that reduce the impact of their positions on the market.
Trading Range Forecast
Trading Range Forecast feature predicts the price range of an asset for a selected period of time in the future, called Forecast Horizon. It can be the next day or 12-hour trading session. This function works if your chart timeframe is intraday (i.e. the timeframe below "D"). It shows the upper and lower bounds between which the price is going to stay in the upcoming Forecast Horizon period.
Instant Backtesting
After changing any settings, you can immediately see the performance of the strategy on the Instant Backtesting panel. Two metrics are displayed there - the percentage of profitable trades and the total return. This information, as well as the historical trades shown on the chart, will help you quickly and easily evaluate any settings you make.
SETTINGS
TRADING SIGNALS
Trade Length - defines the length of the trades the algorithm tries to make. Recommended values are from 1.0 to 6.0.
Sensitivity - controls the sensitivity of the trading signals algorithm. The sensitivity determines the density of trading signals and how close the trailing-stop levels follow the price. The higher the value of this parameter is, the less sensitive the algorithm is. High values of the Sensitivity parameters (100-500) can help to withstand large price swings to stay in longer price moves. Lower values (10-100) work well for short- and medium-term trades.
TRADING TOOLS
Big Money Activity - turns on and off the identification of the areas associated with institutional traders activity.
SUPPORТ AND RESISTANCЕ LEVELS
Show Support And Resistance Levels - turns on and off support and resistance levels calculation.
TRADING RANGE FORECAST
Show Trading Range Forecast - turns on/off trading range forecasting
Forecast Horizon - sets the period for which the trading range forecast is made
Forecasting Method - allows to choose a forecasting algorithm for the trading range forecast.
BACKTESTING
Use Starting Date - turns on/off the starting date for the strategy and backtests. When off, all available historical data is used.
Starting Date - sets the starting date for the strategy and backtests.
Show Instant Backtesting Dashboard - turns on/off a dashboard that shows the current strategy performance: the percentage of profitable trades and total return.
Leverage - sets the leverage that the strategy uses.
Session candles & reversals / quantifytools— Overview
Like traditional candles, session based candles are a visualization of open, high, low and close values, but based on session time periods instead of typical timeframes such as daily or weekly. Session candles are formed by fetching price at session start (open), highest price during session (high), lowest price during session (low) and price at session end (close). On top of candles, session based moving average is formed and session reversals detected. Session reversals are also backtested, using win rate and magnitude metrics to better understand what to expect from session reversals and which ones have historically performed the best.
By default, following session time periods are used:
Session #1: London (08:00 - 17:00, UTC)
Session #2: New York (13:00 - 22:00, UTC)
Session #3: Sydney (21:00 - 06:00, UTC)
Session #4: Tokyo (00:00 - 09:00, UTC)
Session time periods can be changed via input menu.
— Reversals
Session reversals are patterns that show a rapid change in direction during session. These formations are more familiarly known as wicks or engulfing candles. Following criteria must be met to qualify as a session reversal:
Wick up:
Lower high, lower low, close >= 65% of session range (0% being the very low, 100% being the very high) and open >= 40% of session range.
Wick down:
Higher high, higher low, close <= 35% of session range and open <= 60% of session range.
Engulfing up:
Higher high, lower low, close >= 65% of session range.
Engulfing down:
Higher high, lower low, close <= 35% of session range.
Session reversals are always based on prior corresponding session , e.g. to qualify as a NY session engulfing up, NY session must have a higher high and lower low relative to prior NY session , not just any session that has taken place in between. Session reversals should be viewed the same way wicks/engulfing formations are viewed on traditional timeframe based candles. Essentially, wick reversals (light green/red labels) tell you most of the motion during session was reversed. Engulfing reversals (dark green/red labels) on the other hand tell you all of the motion was reversed and new direction set.
— Backtesting
Session reversals are backtested using win rate and magnitude metrics. A session reversal is considered successful when next corresponding session closes higher/lower than session reversal close . Win rate is formed by dividing successful session reversal count with total reversal count, e.g. 5 successful reversals up / 10 reversals up total = 50% win rate. Win rate tells us what are the odds (historically) of session reversal producing a clean supporting move that was persistent enough to close that way too.
When a session reversal is successful, its magnitude is measured using percentage increase/decrease from session reversal close to next corresponding session high/low . If NY session closes higher than prior NY session that was a reversal up, the percentage increase from prior session close (reversal close) to current session high is measured. If NY session closes lower than prior NY session that was a reversal down, the percentage decrease from prior session close to current session low is measured.
Average magnitude is formed by dividing all percentage increases/decreases with total reversal count, e.g. 10 total reversals up with 1% increase each -> 10% net increase from all reversals -> 10% total increase / 10 total reversals up = 1% average magnitude. Magnitude metric supports win rate by indicating the depth of successful session reversal moves.
To better understand the backtesting calculations and more importantly to verify their validity, backtesting visuals for each session can be plotted on the chart:
All backtesting results are shown in the backtesting panel on top right corner, with highest win rates and magnitude metrics for both reversals up and down marked separately. Note that past performance is not a guarantee of future performance and session reversals as they are should not be viewed as a complete strategy for long/short plays. Always make sure reversal count is sufficient to draw reliable conclusions of performance.
— Session moving average
Users can form a session based moving average with their preferred smoothing method (SMA , EMA , HMA , WMA , RMA) and length, as well as choose which sessions to include in the moving average. For example, a moving average based on New York and Tokyo sessions can be formed, leaving London and Sydney completely out of the calculation.
— Visuals
By default, script hides your candles/bars, although in the case of candles borders will still be visible. Switching to bars/line will make your regular chart visuals 100% hidden. This setting can be turned off via input menu. As some sessions overlap, each session candle can be separately offsetted forward, clearing the overlaps. Users can also choose which session candles to show/hide.
Session periods can be highlighted on the chart as a background color, applicable to only session candles that are activated. By default, session reversals are referred to as L (London), N (New York), S (Sydney) and T (Tokyo) in both reversal labels and backtesting table. By toggling on "Numerize sessions", these will be replaced with 1, 2, 3 and 4. This will be helpful when using a custom session that isn't any of the above.
Visual settings example:
Session candles are plotted in two formats, using boxes and lines as well as plotcandle() function. Session candles constructed using boxes and lines will be clear and much easier on the eyes, but will apply only to first 500 bars due to Tradingview related limitations. Rest of the session candles go back indefinitely, but won't be as clean:
All colors can be customized via input menu.
— Timeframe & session time period considerations
As a rule of thumb, session candles should be used on timeframes at or below 1H, as higher timeframes might not match with session period start/end, leading to incorrect plots. Using 1 hour timeframe will bring optimal results as greatest amount historical data is available without sacrificing accuracy of OHLC values. If you are using a custom session that is not based on hourly period (e.g. 08:00 - 15:00 vs. 08.00 - 15.15) make sure you are using a timeframe that allows correct plots.
Session time periods applied by default are rough estimates and might be out of bounds on some charts, like NYSE listed equities. This is rarely a problem on assets that have extensive trading hours, like futures or cryptocurrency. If a session is out of bounds (asset isn't traded during the set session time period) the script won't plot given session candle and its backtesting metrics will be NA. This can be fixed by changing the session time periods to match with given asset trading hours, although you will have to consider whether or not this defeats the purpose of having candles based on sessions.
— Practical guide
Whether based on traditional timeframes or sessions, reversals should always be considered as only one piece of evidence of price turning. Never react to them without considering other factors that might support the thesis, such as levels and multi-timeframe analysis. In short, same basic charting principles apply with session candles that apply with normal candles. Use discretion.
Example #1 : Focusing efforts on session reversals at distinct support/resistance levels
A reversal against a level holds more value than a reversal by itself, as you know it's a placement where liquidity can be expected. A reversal serves as a confirming reaction for this expectation.
Example #2 : Focusing efforts on highest performing reversals and avoiding poorly performing ones
As you have data backed evidence of session reversal performance, it makes sense to focus your efforts on the ones that perform best. If some session reversal is clearly performing poorly, you would want to avoid it, since there's nothing backing up its validity.
Example #3 : Reversal clusters
Two is better than one, three is better than two and so on. If there are rapid changes in direction within multiple sessions consecutively, there's heavier evidence of a dynamic shift in price. In such case, it makes sense to hold more confidence in price halting/turning.
Interest Rate Trading (Manually Added Rate Decisions) [TANHEF]Interest Rate Trading: How Interest Rates Can Guide Your Next Move.
How were interest rate decisions added?
All interest rate decision dates were manually retrieved from the 'Record of Policy Actions' and 'Minutes of Actions' on the Federal Reserve's website due to inconsistent dates from other sources. These were manually added as Pine Script currently only identifies rate changes, not pauses.
█ Simple Explanation:
This script is designed for analyzing and backtesting trading strategies based on U.S. interest rate decisions which occur during Federal Open Market Committee (FOMC) meetings, to make trading decisions. No trading strategy is perfect, and it's important to understand that expectations won't always play out. The script leverages historical interest rate changes, including increases, decreases, and pauses, across multiple economic time periods from 1971 to the present. The tool integrates two key data sources for interest rates—USINTR and FEDFUNDS—to support decision-making around rate-based trades. The focus is on identifying opportunities and tracking trades driven by interest rate movements.
█ Interest Rate Decision Sources:
As noted above, each decision date has been manually added from the 'Record of Policy Actions' and 'Minutes of Actions' documents on the Federal Reserve's website. This includes +50 years of more than 600 rate decisions.
█ Interest Rate Data Sources:
USINTR: Reflects broader U.S. interest rate trends, including Treasury yields and various benchmarks. This is the preferred option as it corresponds well to the rate decision dates.
FEDFUNDS: Tracks the Federal Funds Rate, which is a more specific rate targeted by the Federal Reserve. This does not change on the exact same days as the rate decisions that occur at FOMC meetings.
█ Trade Criteria:
A variety of trading conditions are predefined to suit different trading strategies. These conditions include:
Increase/Decrease: Standard rate increases or decreases.
Double/Triple Increase/Decrease: A series of consecutive changes.
Aggressive Increase/Decrease: Rate changes that exceed recent movements.
Pause: Identification of no changes (pauses) between rate decisions, including double or triple pauses.
Complex Patterns: Combinations of pauses, increases, or decreases, such as "Pause after Increase" or "Pause or Increase."
█ Trade Execution and Exit:
The script allows automated trade execution based on selected criteria:
Auto-Entry: Option to enter trades automatically at the first valid period.
Max Trade Duration: Optional exit of trades after a specified number of bars (candles).
Pause Days: Minimum duration (in days) to validate rate pauses as entry conditions. This is especially useful for earlier periods (prior to the 2000s), where rate decisions often seemed random compared to the consistency we see today.
█ Visualization:
Several visual elements enhance the backtesting experience:
Time Period Highlighting: Economic time periods are visually segmented on the chart, each with a unique color. These periods include historical phases such as "Stagflation (1971-1982)" and "Post-Pandemic Recovery (2021-Present)".
Trade and Holding Results: Displays the profit and loss of trades and holding results directly on the chart.
Interest Rate Plot: Plots the interest rate movements on the chart, allowing for real-time tracking of rate changes.
Trade Status: Highlights active long or short positions on the chart.
█ Statistics and Criteria Display:
Stats Table: Summarizes trade results, including wins, losses, and draw percentages for both long and short trades.
Criteria Table: Lists the selected entry and exit criteria for both long and short positions.
█ Economic Time Periods:
The script organizes interest rate decisions into well-defined economic periods, allowing traders to backtest strategies specific to historical contexts like:
(1971-1982) Stagflation
(1983-1990) Reaganomics and Deregulation
(1991-1994) Early 1990s (Recession and Recovery)
(1995-2001) Dot-Com Bubble
(2001-2006) Housing Boom
(2007-2009) Global Financial Crisis
(2009-2015) Great Recession Recovery
(2015-2019) Normalization Period
(2019-2021) COVID-19 Pandemic
(2021-Present) Post-Pandemic Recovery
█ User-Configurable Inputs:
Rate Source Selection: Choose between USINTR or FEDFUNDS as the primary interest rate source.
Trade Criteria Customization: Users can select the criteria for long and short trades, specifying when to enter or exit based on changes in the interest rate.
Time Period: Select the time period that you want to isolate testing a strategy with.
Auto-Entry and Pause Settings: Options to automatically enter trades and specify the number of days to confirm a rate pause.
Max Trade Duration: Limits how long trades can remain open, defined by the number of bars.
█ Trade Logic:
The script manages entries and exits for both long and short trades. It calculates the profit or loss percentage based on the entry and exit prices. The script tracks ongoing trades, dynamically updating the profit or loss as price changes.
█ Examples:
One of the most popular opinions is that when rate starts begin you should sell, then buy back in when rate cuts stop dropping. However, this can be easily proven to be a difficult task. Predicting the end of a rate cut is very difficult to do with the the exception that assumes rates will not fall below 0.25%.
2001-2009
Trade Result: +29.85%
Holding Result: -27.74%
1971-2024
Trade Result: +533%
Holding Result: +5901%
█ Backtest and Real-Time Use:
This backtester is useful for historical analysis and real-time trading. By setting up various entry and exit rules tied to interest rate movements, traders can test and refine strategies based on real historical data and rate decision trends.
This powerful tool allows traders to customize strategies, backtest them through different economic periods, and get visual feedback on their trading performance, helping to make more informed decisions based on interest rate dynamics. The main goal of this indicator is to challenge the belief that future events must mirror the 2001 and 2007 rate cuts. If everyone expects something to happen, it usually doesn’t.
DEMA Adjusted Average True Range [BackQuant]The use of the Double Exponential Moving Average (DEMA) within your Adjusted Average True Range (ATR) calculation serves as a cornerstone for enhancing the indicator's responsiveness to market changes. To delve deeper into why DEMA is employed specifically in the context of your ATR calculation, let's explore the inherent qualities of DEMA and its impact on the ATR's performance.
DEMA and Its Advantages
As previously mentioned, DEMA was designed to offer a more responsive alternative to the traditional Exponential Moving Average (EMA). By giving more weight to recent price data, DEMA reduces the lag typically associated with moving averages. This reduction in lag is especially beneficial for short-term traders looking to capitalize on trend reversals and other market movements as swiftly as possible.
The calculation of DEMA involves the following steps:
Calculate EMA1: This is the Exponential Moving Average of the price.
Calculate EMA2: This is the Exponential Moving Average of EMA1, thus it is a smoothing of a smoothing, leading to a greater lag.
Formulate DEMA: The formula
EMA1 = EMA of price
EMA2 = EMA of EMA1
DEMA = (2 x EMA1) - EMA2
effectively doubles the weighting of the most recent data points by subtracting the lagged, double-smoothed EMA2 from twice the single-smoothed EMA1.
This process enhances the moving average's sensitivity to recent price movements, allowing the DEMA to adhere more closely to the price bars than either EMA1 or EMA2 alone.
Integration with ATR
In the context of your ATR calculation, the integration of DEMA plays a crucial role in defining the indicator's core functionality. Here's a detailed explanation of how DEMA affects the ATR calculation:
Initial Determination of DEMA : By applying the DEMA formula to the chosen source data (which can be adjusted to use Heikin Ashi candle close prices for an even smoother analysis), you set a foundation for a more reactive trend-following mechanism within the ATR framework.
Application to ATR Bands : The calculated DEMA serves as the central line from which the ATR bands are derived. The ATR value, multiplied by a user-defined factor, is added to and subtracted from the DEMA to form the upper and lower bands, respectively. This dynamic adjustment not only reflects the volatility based on the ATR but does so in a way that is closely aligned with the most recent price action, thanks to the utilization of DEMA.
Enhanced Signal Quality : The responsiveness of DEMA ensures that the ATR bands adjust more promptly to changes in market conditions. This quality is vital for traders who rely on the ATR bands to identify potential entry and exit points, trend reversals, or to assess market volatility.
By employing DEMA as the core component in calculating the Adjusted Average True Range, your indicator leverages DEMA's reduced lag and increased weight on recent data to provide a more timely and accurate measure of market volatility. This innovative approach enhances the utility of the ATR by making it not only a tool for assessing volatility but also a more reactive indicator for trend analysis and trading signal generation.
The main concept of combining these is to reduce lag, get a more robust signal and still capture clear trends over medium time horizons.
For me, this is best used in confluence with other indicators, it can be made faster in order to get fasters response time, or slower. This is all depending on the needs of you as a trader.
User Inputs:
The script offers several user-configurable inputs, such as the period lengths for DEMA and ATR calculations, the multiplication factor for the ATR, and options to use Heikin Ashi candles or standard price data. Additionally, it allows for the toggling of visual features, like the plotting of the DEMA ATR and its moving average, and the application of color-coded trends on price bars.
Additional Features:
Moving Average Confluence: Traders can opt to display a moving average of the DEMA ATR, choosing from various types (e.g., SMA, EMA, HMA). This feature provides a layer of confluence, aiding in the identification of trend direction and strength.
Trend Identification :
The script employs logical conditions to ascertain the trend direction based on the movement of the DEMA ATR. It assigns colors to represent bullish or bearish trends, which are reflected in the plotted lines and the coloring of price bars.
Alerts :
Customizable alert conditions for trend reversals enhance the utility of the indicator for active trading, notifying users of significant changes in trend direction.
1D Backtests
We include these backtests as a general proxy for how they work.
Please do your own calibrating to suit it to your own needs and backtest.
Past results don't = future results but they can help you understand how it functions.
INDEX:BTCUSD
INDEX:ETHUSD
BINANCE:SOLUSD
TFi Pivot Reversal V3The Pivot Reversal Study uses pivot points to create a support and resistance level; based on this levels the script creates virtual stop-market orders to catch the trend if the price is crossing the pivot lines.
A "Pyramiding" input allows to configure up to 3 entries; the script enters an additional position if the price falls by a configurable percentage amount (long), the reverse to short orders.
A configurable profit-target and stop-loss is being used to exit an open position.
An optional Moving Average filter can be used to enable only long or short positions.
The script renders a status box at the last bar, which shows the current position status and result of the built-in trading simulation results.
It shows the following statistic values:
current position PnL - also background turns green if position is in profit and red if in loss
the percentage distance to the profit-target and stop-loss level
the overall number of wins and losses and the win/loss ratio
the overall profit and loss amount (assuming a quantity of 1)
the net-profit and profit-ratio
For the correct simulation of entry/exit prices, the script contains inputs for a percentage entry and exit slippage.
The study also creates configurable alerts, which follow the exact position of the entry/exit markers. The default alert messages contain trading instruction to execute orders via Alertatron; but the message content can be replaced if configuring the alert in the Tradingview environment.
The script was mainly backtested with crypto-coins, e.g. XBTUSD at 15min timeframe. But the script also works with any other type of security and timeframe.
How to access
This strategy is a "Invite Only" script. You can can subscribe or purchase the strategy; please use the link below or send me a message via Tradingview to obtain access to the strategy and study script.
For enabling the script in your Tradingview chart window, click on "Indicators" and select "Invite-Only Scripts".
Full list of alerts
'Alertatron Exit' ... Exit all open positions.
'Alertatron Enter Long' ... Enter long position, w/o stop-loss being used.
'Alertatron Enter Short' ... Enter short position, w/o stop-loss being used.
'Alertatron Enter Long SL' ... Enter long position, w/ stop-loss being used.
'Alertatron Enter Short SL' ... Enter short position, w/ stop-loss being used.
Full list of parameters
"Pivot Left Bars" ... Number of bars on the left of the pivot point - used for pivot /peak detection.
"Pivot Right Bars" ... Number of bars on the right of the pivot point - used for pivot /peak detection.
"MA Filter Fast" ... Moving Average filter fast period.
"MA Filter Slow" ... Moving Average filter slow period.
"Profit Target Option" ... Configure the profit-target either as a fix percentage value or an ATR.
"Profit Target " ... Fix percentage profit-target.
"Profit ATR Period" ... ATR profit-target period.
"Profit ATR Factor" ... ATR profit-target factor/multiplier.
"Stop Loss Option" ... Configure the stop-loss either as a fix percentage value or disable the stop-loss completely.
"Stop Loss " ... Fix percentage stop-loss.
"Rebuy Loss " ... Percentage loss of the initial position before script enter a nw position in the same direction.
"Pyramiding" ... Maximum number of positions.
"Show MA Plots" ... Show/hide Moving average plots.
"Slippage Entry " ... Percentage slippage for entering a position.
"Slippage Exit " ... Percentage slippage for exiting a position.
"Statistic Label" ... Defines the position of the statistic label relatively to the last bar in the chart.
"Backtest Start" ... Backtest start time; area outside this timeframe will be grayed out.
"Backtest Stop" ... Backtest stop time; area outside this timeframe will be grayed out.
"Backtest Mode" ... Closes the currently opened position if chart switches to last bar; please only enable if backtesting, otherwise it leads to unwanted alerts.
Algorithm Builder (Signal version)Gentlemen traders
As promised, here's the Algorithm Builder (Signal Version) that is an alternative version of that previous indicator : Strategy-Builder-Crypto-Single-Trend-Plots/
This one was quite successful and already 11 person bought for me which is unbelievable. Thank you so much guys for your appreciation of my work
The script of this present post is still invite-only because it required years in the making (it's the fruit of all my errors and trials while trading for the past 7 years and when developing trading bots for traders professionally)
What's the Algorithm Builder?
Simply put, the indicator will detect the confluence/convergence of multiple unrelated indicators and alert you when the ones YOU selected will be in the same direction. (if you didn't understand this it's because I'm french)
For example, let's say you select a MM cross and MACD, whenever the MM cross will be green/bullish AND MACD green/bullish also, you'll get a nice .... wait for it..... green/bullish /diamond. Starting to see what I meant before now :)
Not sure if I should go as far as introducing the other example but let's go for it. Still, in the same spirit, a confluence of red/bearish MM cross and red/bearish MACD will give .... (finish the sentence and you'll get my appreciation. hint: the color of the diamond will be red)
So what's cool about it now ... or I should say even cooler... even more awesome (Barney Stinson, please hive five me for this tool...) is that it can be plugged in a single click to a complete Backtest engine
I inspired myself greatly from the Pinescripters Backtesting-Trading-Engine-PineCoders/ but had to make changes to adapt it to my tool.
It took me a few days of work and I'll share it also tomorrow so please stay tuned and give me a follow so that you'll be updated
In the Backtester itself, I added some features like :
- Stop-loss based on supertrend
- Hard Exit based on indicators used by the Algorithm Builder
I just made it more relevant for my indicator
Performance sir?
The period selected for the screenshot below is the last 3 months
Here's a preview of what you should expect tomorrow as well imgur.com
There isn't a BEST configuration for the tool. I made one that matches my psychology and capital. You'll have to find yours by playing with it or asking me for a bit of help if you're lost
Will require a bit of work but could be very worth it in the end :)
What's next sir?
I'm perfectly aware that the indicator doesn't give a lot of signals and that's because it's an entry-level version of all the Algorithm Builders I'm selling now and will be available on my website by end of August (along with the website itself)
More advanced versions already made allow to :
- get more entries
that one is the best addition, in my opinion, it multiplies the gains (and losses :P) as it allows some orders pyramiding and to reinforce a position if the trend is very strong. You won't have to do anything, just to wait for the alerts by email/sms from TradingView
- multiple take profit levels
- connected to systems like Autoview/ProfitView to automatize even more your trading and send those signals to your broker directly (I will strongly advise starting with a demo account for 1 week or 2 here, I don't want you to burn your capital if any unexpected bad event will happen)
- screener
If you're interested please message me. I can develop your custom indicator/strategy/backtest/automatic system or if you're ready the take the leap of faith and try this indicator or the more advanced versions
And before I get asked, yes this is the tool I use for my own trading as initially, I made it for me. Now sharing a bit of my work (and too much of my life) with the community
PS
____________________________________________________________
Feel free to hit the thumbs up as it shows me that I'm not doing this for nothing and will motivate to deliver more quality content in the future.
- I'm an officially approved PineEditor/LUA/MT4 approved mentor on codementor. You can request a coaching with me if you want and I'll teach you how to build kick-ass indicators and strategies
Jump on a 1 to 1 coaching with me
- You can also hire for a custom dev of your indicator/strategy/bot/chrome extension/python
- if you like my work and wants to buy me some coffee :
- BTC TipJar: 3MKDve7stWTe1io99oFxeQXvP8XB4zCQ8m
- LTC TipJar: MC5oeBAhw9BLqyi65TR3J1Lid8io9uHADw
Profitable Moving Average CrossoverHello friends,
I'm glad to introduce a powerful research and optimization tool that takes the classic moving average crossover concept to a new level. Instead of relying on guesswork or fixed MA types, it lets you objectively discover the most profitable moving average pair for any instrument and timeframe.
🛠 How It Works
Moving average crossovers are among the most popular trading systems. A buy signal occurs when a shorter (faster) moving average crosses above a longer (slower) one, and a sell signal when it crosses below. The system's responsiveness — and the number of generated signals — depend on the chosen MA lengths and types.
This script evaluates 61 moving average types (including Jurik, Kaufman, Ehlers, Apirine, and others) and backtests all possible crossover combinations either across the entire chart history or within a custom backtest window . It then plots continuous profit metric lines for each crossover type and displays the top 5 performers in a results table. Each MA type is color-coded, allowing quick visual identification of which systems have historically delivered the strongest results.
🔥 Key Features
Pine Script V6 — optimized for performance and stability
Tests 61 moving average types , from classic to adaptive designs
Custom Backtest Window — analyze the entire history or a specific date range
Continuous profit curves for every crossover type plotted on chart
Top 5 crossover systems displayed in a compact summary table
Color-coded MA identifiers for fast visual comparison
Supports custom parameters for advanced MAs (JMA, ALMA, McGinley Dynamic, Adaptive Laguerre Filter, etc.)
Works seamlessly across all assets and timeframes
NOTE: Results will vary across different tickers and timeframes. Seeing strong performance in one preview does not imply similar profitability elsewhere — this variability is normal due to differing market structures.
NOTE 2: You can experiment with the tool independently or request a full study, in which case I'll share a spreadsheet of all backtest results with you.
👋 Good luck and happy trading!
สคริปต์แบบชำระเงิน
The Adaptive Pairwise Momentum System [QuantraSystems]The Adaptive Pairwise Momentum System
QuantraSystems guarantees that the information created and published within this document and on the Tradingview platform is fully compliant with applicable regulations, does not constitute investment advice, and is not exclusively intended for qualified investors.
Important Note!
The system equity curve presented here has been generated as part of the process of testing and verifying the methodology behind this script.
Crucially, it was developed after the system was conceptualized, designed, and created, which helps to mitigate the risk of overfitting to historical data. In other words, the system was built for robustness, not for simply optimizing past performance.
This ensures that the system is less likely to degrade in performance over time, compared to hyper-optimized systems that are tailored to past data. No tweaks or optimizations were made to this system post-backtest.
Even More Important Note!!
The nature of markets is that they change quickly and unpredictably. Past performance does not guarantee future results - this is a fundamental rule in trading and investing.
While this system is designed with broad, flexible conditions to adapt quickly to a range of market environments, it is essential to understand that no assumptions should be made about future returns based on historical data. Markets are inherently uncertain, and this system - like all trading systems - cannot predict future outcomes.
Introduction
The Adaptive Pairwise Momentum System is not just an indicator but a comprehensive asset rotation and trend-following system. In short, it aims to find the highest performing asset from the provided range.
The system dynamically optimizes capital allocation across up to four high-performing assets, ensuring that the portfolio adapts swiftly to changing market conditions. The system logic consists of sophisticated quantitative methods, rapid momentum analysis, and robust trend filtering. The overarching goal is to ensure that the portfolio is always invested in the highest-performing asset based on dynamic market conditions, while at the same time managing risk through broader market filters and internal mechanisms like volatility and beta analysis.
Legend
System Equity Curve:
The equity curve displayed in the chart is dynamically colored based on the asset allocation at any given time. This color-coded approach allows traders to immediately identify transitions between assets and the corresponding impact on portfolio performance.
Highlighting of Current Highest Performer:
The current bar in the chart is highlighted based on the confirmed highest performing asset. This is designed to give traders advanced notice of potential shifts in allocation even before a formal position change occurs. The highlighting enables traders to prepare in real time, making it easier to manage positions without lag, particularly in fast-moving markets.
Highlighted Symbols in the Asset Table:
In the table displayed on the right hand side of the screen, the current top-performing symbol is highlighted. This clear signal at a glance provides immediate insight into which asset is currently being favored by the system. This feature enhances clarity and helps traders make informed decisions quickly, without needing to analyze the underlying data manually.
Performance Overview in Tables:
The left table provides insight into both daily and overall system performance from inception, offering traders a detailed view of short-term fluctuations and long-term growth. The right-hand table breaks down essential metrics such as Sharpe ratio, Sortino ratio, Omega ratio, and maximum drawdown for each asset, as well as for the overall system and HODL strategy.
Asset-Specific Signals:
The signals column in the table indicates whether an asset is currently held or being considered for holding based on the system's dynamic rankings. This is a critical visual aid for asset reallocation decisions, signaling when it may be appropriate to either maintain or change the asset of the portfolio.
Core Features and Methodologies
Flexibility in Asset Selection
One of the major advantages of this system is its flexibility. Users can easily modify the number and type of assets included for comparison. You can quickly input different assets and backtest their performance, allowing you to verify how well this system might fit different tokens or market conditions. This flexibility empowers users to adapt the system to a wide range of market environments and tailor it to their unique preferences.
Whole System Risk Mitigation - Macro Trend Filter
One of the features of this script is its integration of a Macro-level Trend Filter for the entire portfolio. The purpose of this filter is to ensure no capital is allocated to any token in the rotation system unless Bitcoin itself is in a positive trend. The logic here is that Bitcoin, as the cryptocurrency market leader, often sets the tone for the entire cryptocurrency market. By using Bitcoins trend direction as a barometer for overall market conditions, we create a system where capital is not allocated during unfavorable or bearish market conditions - significantly reducing exposure to downside risk.
Users have the ability to toggle this filter on and off in the input menu, with five customizable options for the trend filter, including the option to use no filter. These options are:
Nova QSM - a trend aggregate combining the Rolling VWAP, Wave Pendulum Trend, KRO Overlay, and the Pulse Profiler provides the market trend signal confirmation.
Kilonova QSM - a versatile aggregate combining the Rolling VWAP, KRO Overlay, the KRO Base, RSI Volatility Bands, NNTRSI, Regression Smoothed RSI and the RoC Suite.
Quasar QSM - an enhanced version of the original RSI Pulsar. The Quasar QSM refines the trend following approach by utilizing an aggregated methodology.
Pairwise Momentum and Strength Ranking
The backbone of this system is its ability to identify the strongest-performing asset in the selected pool, ensuring that the portfolio is always exposed to the asset showing the highest relative momentum. The system continually ranks these assets against each other and determines the highest performer by measure of past and coincident outperformance. This process occurs rapidly, allowing for swift responses to shifts in market momentum, which ensures capital is always working in the most efficient manner. The speed and precision of this reallocation strategy make the script particularly well-suited for active, momentum-driven portfolios.
Beta-Adjusted Asset Selection as a Tiebreaker
In the circumstance where two (or more) assets exhibit the same relative momentum score, the system introduces another layer of analysis. In the event of a strength ‘tie’ the system will preference maintaining the current position - that is, if the previously strongest asset is now tied, the system will still allocate to the same asset. If this is not the case, the asset with the higher beta is selected. Beta is a measure of an asset’s volatility relative to Bitcoin (BTC).
This ensures that in bullish conditions, the system favors assets with a higher potential for outsized gains due to their inherent volatility. Beta is calculated based on the Average Daily Return of each asset compared to BTC. By doing this, the system ensures that it is dynamically adjusting to risk and reward, allocating to assets with higher risk in favorable conditions and lower risk in less favorable conditions.
Dynamic Asset Reallocation - Opposed to Multi-Asset Fixed Intervals
One of the standout features of this system is its ability to dynamically reallocate capital. Unlike traditional portfolio allocation strategies that may rebalance between a basket of assets monthly or quarterly, this system recalculates and reallocates capital on the next bar close (if required). As soon as a new asset exhibits superior performance relative to others, the system immediately adjusts, closing the previous position and reallocating funds to the top-ranked asset.
This approach is particularly powerful in volatile markets like cryptocurrencies, where trends can shift quickly. By reallocating swiftly, the system maximizes exposure to high-performing assets while minimizing time spent in underperforming ones. Moreover, this process is entirely automated, freeing the trader from manually tracking and measuring individual token strength.
Our research has demonstrated that, from a risk-adjusted return perspective, concentration into the top-performing asset consistently outperforms broad diversification across longer time horizons. By focusing capital on the highest-performing asset, the system captures outsized returns that are not achievable through traditional diversification. However, a more risk-averse investor, or one seeking to reduce drawdowns, may prefer to move the portfolio further left along the theoretical Capital Allocation Line by incorporating a blend of cash, treasury bonds, or other yield-generating assets or even include market neutral strategies alongside the rotation system. This hybrid approach would effectively lower the overall volatility of the portfolio while still maintaining exposure to the system’s outsized returns. In theory, such an investor can reduce risk without sacrificing too much potential upside, creating a more balanced risk-return profile.
Position Changes and Fees/Slippage
Another critical and often overlooked element of this system is its ability to account for fees and slippage. Given the increased speed and frequency of allocation logic compared to the buy-and-hold strategy, it is of vital importance that the system recognises that switching between assets may incur slippage, especially in highly volatile markets. To account for this, the system integrates realistic slippage and fee estimates directly into the equity curve, simulating expected execution costs under typical market conditions and gives users a more realistic view of expected performance.
Number of Position Changes
Understanding the number of position changes in a strategy is critical to assessing its feasibility in real world trading. Frequent position changes can lead to increased costs due to slippage and fees. Monitoring the number of position changes provides insight into the system’s behavior - helping to evaluate how active the strategy is and whether it aligns with the trader's desired time input for position management.
Equity Curve and Performance Calculations
To provide a benchmark, the script also generates a Buy-and-Hold (or "HODL") equity curve that represents an equal split across the four selected assets. This allows users to easily compare the performance of the dynamic rotation system with that of a more traditional investment strategy.
The script tracks key performance metrics for both the dynamic portfolio and the HODL strategy, including:
Sharpe Ratio
The Sharpe Ratio is a key metric that evaluates a portfolio’s risk-adjusted return by comparing its ‘excess’ return to its volatility. Traditionally, the Sharpe Ratio measures returns relative to a risk-free rate. However, in our system’s calculation, we omit the risk-free rate and instead measure returns above a benchmark of 0%. This adjustment provides a more universal comparison, especially in the context of highly volatile assets like cryptocurrencies, where a traditional risk-free benchmark, such as the usual 3-month T-bills, is often irrelevant or too distant from the realities of the crypto market.
By using 0% as the baseline, we focus purely on the strategy's ability to generate raw returns in the face of market risk, which makes it easier to compare performance across different strategies or asset classes. In an environment like cryptocurrency, where volatility can be extreme, the importance of relative return against a highly volatile backdrop outweighs comparisons to a risk-free rate that bears little resemblance to the risk profile of digital assets.
Sortino Ratio
The Sortino Ratio improves upon the Sharpe Ratio by specifically targeting downside risk and leaves the upside potential untouched. In contrast to the Sharpe Ratio (which penalizes both upside and downside volatility), the Sortino Ratio focuses only on negative return deviations. This makes it a more suitable metric for evaluating strategies like the Adaptive Pairwise Momentum Strategy - that aim to minimize drawdowns without restricting upside capture. By measuring returns relative to a 0% baseline, the Sortino ratio provides a clearer assessment of how well the system generates gains while avoiding substantial losses in highly volatile markets like crypto.
Omega Ratio
The Omega Ratio is calculated as the ratio of gains to losses across all return thresholds, providing a more complete view of how the system balances upside and downside risk even compared to the Sortino Ratio. While it achieves a similar outcome to the Sortino Ratio by emphasizing the system's ability to capture gains while limiting losses, it is technically a mathematically superior method. However, we include both the Omega and Sortino ratios in our metric table, as the Sortino Ratio remains more widely recognized and commonly understood by traders and investors of all levels.
Case Study
Notes
For the sake of brevity, the Important Notes section found in the header of this text will not be rewritten. Instead, it will be highlighted that now is the perfect time to reread these notes. Reading this case study in the context of what has been mentioned above is of key importance.
As a second note, it is worth mentioning that certain market periods are referred to as either “Bull” or “Bear” markets - terms I personally find to be vague and undefinable - and therefore unfavorable. They will be used nevertheless, due to their familiarity and ease of understanding in this context. Substitute phrases could be “Macro Uptrend” or “Macro Downtrend.”
Overview
This case study provides an in-depth performance analysis of the Adaptive Pairwise Momentum System , a long-only system that dynamically allocates to outperforming assets and moves into cash during unfavorable conditions.
This backtest includes realistic assumptions for slippage and fees, applying a 0.5% cost for every position change, which includes both asset reallocation and moving to a cash position. Additionally, the system was tested using the top four cryptocurrencies by market capitalization as of the test start date of 01/01/2022 in order to minimize selection bias.
The top tokens on this date (excluding Stablecoins) were:
Bitcoin
Ethereum
Solana
BNB
This decision was made in order to avoid cherry picking assets that might have exhibited exceptional historical performance - minimizing skew in the back test. Furthermore, although this backtest focuses on these specific assets, the system is built to be flexible and adaptable, capable of being applied to a wide range of assets beyond those initially tested.
Any potential lookahead bias or repainting in the calculations has been addressed by implementing the lookback modifier for all repainting sensitive data, including asset ratios, asset scoring, and beta values. This ensures that no future information is inadvertently used in the asset allocation process.
Additionally, a fixed lookback period of one bar is used for the trend filter during allocations - meaning that the trend filter from the prior bar must be positive for an allocation to occur on the current bar. It is also important to note that all the data displayed by the indicator is based on the last confirmed (closed) bar, ensuring that the entire system is repaint-proof.
The study spans the 2022 cryptocurrency bear market through the subsequent bull market of 2023 and 2024. The stress test highlights how the system reacted to one of the most challenging market downturns in crypto history - which includes events such as:
Luna and TerraUSD crash
Three Arrows Capital liquidation
Celsius bankruptcy
Voyager Digital bankruptcy
FTX collapse
Silicon Valley + Signature + Silvergate banking collapses
Subsequent USDC deppegging
And arguably more important, 2022 was characterized by a tightening of monetary policy after the unprecedented monetary easing in response to the Covid pandemic of 2020/2021. This shift undeniably puts downward pressure on asset prices, most probably to the extent that this had a causal role to many of the above events.
By incorporating these real-world challenges, the backtest provides a more accurate and robust performance evaluation that avoids overfitting or excessive optimization for one specific market condition.
The Bear Market of 2022: Stress Test and System Resilience
During the 2022 bear market, where the overall crypto market experienced deep and consistent corrections, the Adaptive Pairwise Momentum System demonstrated its ability to mitigate downside risk effectively.
Dynamic Allocation and Cash Exposure:
The system rotated in and out of cash, as indicated by the gray period on the system equity curve. This allocation to cash during downtrending periods, specifically in late 2022, acted as the systems ‘risk-off’ exposure - the purest form of such an exposure. This prevented the system from experiencing the magnitude of drawdown suffered by the ‘Buy-and-Hold (HODL) investors.
In contrast, a passive HODL strategy would have suffered a staggering 75.32% drawdown, as it remained fully allocated to chosen assets during the market's decline. The active Pairwise Momentum system’s smaller drawdown of 54.35% demonstrates its more effective capital preservation mechanisms.
The Bull Market of 2023 and 2024: Capturing Market Upside
Following the crypto bear market, the system effectively capitalized on the recovery and subsequent bull market of 2023 and 2024.
Maximizing Market Gains:
As trends began turning bullish in early 2023, the system caught the momentum and promptly allocated capital to only the quantified highest performing asset of the time - resulting in a parabolic rise in the system's equity curve. Notably, the curve transitions from gray to purple during this period, indicating that Solana (SOL) was the top-performing asset selected by the system.
This allocation to Solana is particularly striking because, at the time, it was an asset many in the market shunned due to its association with the FTX collapse just months prior. However, this highlights a key advantage of quantitative systems like the one presented here: decisions are driven purely from objective data - free from emotional or subjective biases. Unlike human traders, who are inclined (whether consciously or subconsciously) to avoid assets that are ‘out of favor,’ this system focuses purely on price performance, often uncovering opportunities that are overlooked by discretionary based investors. This ability to make data-driven decisions ensures that the strategy is always positioned to capture the best risk-adjusted returns, even in scenarios where judgment might fail.
Minimizing Volatility and Drawdown in Uptrends
While the system captured substantial returns during the bull market it also did so with lower volatility compared to HODL. The sharpe ratio of 4.05 (versus HODL’s 3.31) reflects the system's superior risk-adjusted performance. The allocation shifts, combined with tactical periods of cash holding during minor corrections, ensured a smoother equity curve growth compared to the buy-and-hold approach.
Final Summary
The percentage returns are mentioned last for a reason - it is important to emphasize that risk-adjusted performance is paramount. In this backtest, the Pairwise Momentum system consistently outperforms due to its ability to dynamically manage risk (as seen in the superior Sharpe, Sortino and Omega ratios). With a smaller drawdown of 54.35% compared to HODL’s 75.32%, the system demonstrates its resilience during market downturns, while also capturing the highest beta on the upside during bullish phases.
The system delivered 266.26% return since the backtest start date of January 1st 2022, compared to HODL’s 10.24%, resulting in a performance delta of 256.02%
While this backtest goes some of the way to verifying the system’s feasibility, it’s important to note that past performance is not indicative of future results - especially in volatile and evolving markets like cryptocurrencies. Market behavior can shift, and in particular, if the market experiences prolonged sideways action, trend following systems such as the Adaptive Pairwise Momentum Strategy WILL face significant challenges.
Candlestick Patterns detection and backtester [TrendX_]INTRODUCTION:
The Candlestick Patterns detection and backtester is designed to empower traders by identifying and analyzing candlestick patterns. Leveraging the robust Pine Script's add-in “All Candlestick Patterns”, this indicator meticulously scans the market for candlestick formations, offering insights into potential market movements. With its backtesting capabilities, we evaluate historical data to present traders with performance metrics such as win rates, net profit, and profit factors for each pattern. This allows traders to make informed decisions based on empirical evidence. The customizable settings, including trend filters and exit conditions, provide a tailored experience, adapting to various trading styles and strategies.
CREDIT:
This indicator is powered by the Pinescript add-in, *All Candlestick Patterns*, which provides a comprehensive library of candlestick formations.
TABLE USAGE:
The indicator features a detailed usage table that presents backtested results of all candlestick patterns. This includes:
Win Rates: The percentage of trades that resulted in a profit.
Net Profit: The total profit after subtracting losses from gains.
Profit Factor: A measure of the indicator’s profitability (gross profit / gross loss).
Total Trades: The total number of trades taken for every candlestick pattern's appearance.
CHART CANDLESTICK USAGE:
The indicator integrates candlestick pattern detections directly into the chart, displaying:
Pattern Detections: Each detected pattern is marked on the chart.
Win Rates: The win rate of each pattern is shown in brackets next to the detection.
CHART SETTINGS:
Users can customize the indicator with a variety of trend filters and settings:
Trend Filters: Apply filters based on SMA50, SMA200, Supertrend, and RSI threshold to refine pattern detections.
Exit Condition: Set an exit condition based on the crossing of a simple moving average of customizable length.
Visibility: Choose to show or hide the candlestick patterns’ detections on the chart.
2nd Day Stats / BACKTESTING TOOL//English version below
## Deutsche Version
Was passiert am 2. Tag, nachdem wir X % am ersten Tag zurückgelegt haben? Genau dies lässt sich sehr gut backtesten und die Erkenntnisse im Markt anwenden. Dieses Tool eignet sich besonders für kleinere Aktien (Small-Caps) oder Aktien, die am Tag der Quartalszahlen große Bewegungen zurückgelegt haben. Backtesting war selten so einfach.
## English version
What happens after a strong day 1 move? Use the custom input to test, what happened after a 10% move on day one. Change the day 1 move % and the number of years to backtest. It's that simple. The tool is especially helpful for small-cap traders and for stocks after earnings.
Daily Backtest Pivots Problem with the built-in Pivot Points Standard indicator in backtesting/replay mode:
The default "Pivot Points Standard" indicator is excellent on live charts, but it becomes completely unusable for proper backtesting or bar-replay because it always calculates and displays the current day’s pivot points (P, R1, R2, S1, S2, etc.) using the high/low/close of the still-forming current day — even when you're replaying historical bars.
Example:
When replaying or backtesting September 8 at 08:00 (Asian session), the indicator already shows the final R1, R2, S1, S2 for the entire September 8 daily candle, even though in real trading at that moment you would have no idea where the day will close or what the final daily range will be. This creates massive look-ahead bias and makes any strategy that uses daily pivots impossible to test realistically.
Desired behavior (historical accuracy):
During backtesting or bar replay, the indicator should only plot:
The previous day’s completed pivot levels (which were actually known at the start of the current day)
NO current-day pivot levels at all (or only plot them after the daily candle is closed)
Many custom pivot scripts already do exactly this (they only show the prior day’s levels throughout the current day), which is why people abandon the built-in indicator for backtesting.
High/Low of week: Stats & Day of Week tendencies// Purpose:
-To show High of Week (HoW) day and Low of week (LoW) day frequencies/percentages for an asset.
-To further analyze Day of Week (DoW) tendencies based on averaged data from all various custom weeks. Giving a more reliable measure of DoW tendencies ('Meta Averages').
-To backtest day-of-week tendencies: across all asset history or across custom user input periods (i.e. consolidation vs trending periods).
-Education: to see how how data from a 'hard-defined-week' may be misleading when seeking statistical evidence of DoW tendencies.
// Notes & Tips:
-Only designed for use on DAILY timeframe.
-Verification table is to make sure HoW / LoW DAY (referencing previous finished week) is printing correctly and therefore the stats table is populating correctly.
-Generally, leaving Timezone input set to "America/New_York" is best, regardless of your asset or your chart timezone. But if misaligned by 1 day =>> tweak this timezone input to correct
-If you want to use manual backtesting period (e.g. for testing consolidation periods vs trending periods): toggle these settings on, then click the indicator display line three dots >> 'Reset Points' to quickly set start & end dates.
// On custom week start days:
-For assets like BTC which trade 7 days a week, this is quite simple. Pick custom start day, use verification table to check all is well. See the start week day & time in said verification table.
-For traditional assets like S&P which trade only 5 days a week and suffer from occasional Holidays, this is a bit more complicated. If the custom start day input is a bank holiday, its custom 'week' will be discounted from the data set. E.g.1: if you choose 'use custom start day' and set it to Monday, then bank holiday Monday weeks will be discounted from the data set. E.g.2: If you choose 'use custom start day' and set it to Thursday, then the Holiday Thursday custom week (e.g Thanksgiving Thursday >> following Weds) would be discounted from the data set.
// On 'Meta Averages':
-The idea is to try and mitigate out the 'continuation bias' that comes from having a fixed week start/end time: i.e. sometimes a market is trending through the week start/end time, so the start/end day stats are over-weighted if one is trying to tease out typical weekly profile tendencies or typical DoW tendencies. You'll notice this if you compare the stats with various custom start days ('bookend' start/end days are always more heavily weighted). I wanted to try to mitigate out this 'bias' by cycling through all the possible new week start/end days and taking an average of the results. i.e. on BTC/USD the 'meta average' for Tuesday would be the average of the Tuesday HoW frequencies from the set of all 7 possible custom weeks(Mon-Sun, Tues-Mon, Weds-Tues, etc etc).
// User Inputs:
~Week Start:
-use custom week start day (default toggled OFF); Choose custom week start day
-show Meta Averages (default toggled ON)
~Verification Table:
-show table, show new week lines, number of new week lines to show
-table formatting options (position, color, size)
-timezone (only for tweaking if printed DoW is misaligned by 1 day)
~Statistics Table:
-show table, table formatting options (position, color, size)
~Manual Backtesting:
-Use start date (default toggled OFF), choose start date, choose vline color
-Use end date (defautl toggled OFF), choose end date, choose vline color
// Demo charts:
NQ1! (Nasdaq), Full History, Traditional week (Mon>>Friday) stats. And Meta Averages. Annotations in purple:
NQ1! (Nasdaq), Full History, Custom week (custom start day = Wednesday). And Meta Averages. Annotations in purple:
CyberFlow [Probabilities] | FractalystWhat's the indicator's purpose and functionality?
CyberFlow quantifies, per chosen higher-timeframe “Period 1/2/3”, what happens after price first taps the midpoint (Mid) of the previous period’s range. Specifically, it estimates P(High first | Mid tap) versus P(Low first | Mid tap): which side (previous High “PH” or previous Low “PL”) is typically reached first after that mid activation.
It extends a previously shared OrderFlow concept that used market structure; here it conditions on higher‑timeframe previous‑period PH/PL with the Mid as the explicit trigger.
Note: It's specifically designed to exports raw probabilistic series for algorithmic/system developers to integrate a probabilistic layer into strategies and to build/backtest ideas directly from those series.
What is “Mid activation”?
The Mid is the average of the previous period’s PH and PL. Activation occurs on the first bar in the current period whose high–low range includes the Mid. The first bar of a new period cannot activate Mid; activation can only start from the second bar of the period onward.
What counts as “first hit” after activation?
After a Mid activation, the script waits for a subsequent bar that touches either the previous High (PH) or previous Low (PL). The first side touched after the activation bar is recorded as that period’s first hit. Once decided, the other side is ignored for first‑hit statistics.
Which periods does it use?
You can select three custom reference timeframes (Period 1/2/3) in the UI (defaults: D/W/M). All logic—PH/PL/Mid, activation, first‑hit stats—runs independently per selected period.
Do the display controls change the calculation?
No. The “Show” selector only controls visuals:
Period 1/2/3: show only that period’s plots/barcolors.
OFF: shows all periods. Statistics and exported series are unaffected by this selector.
What do the bar/line colors mean?
Activation (first Mid tap): yellow bar.
Delivered to previous High after activation: blue
Delivered to previous Low after activation: red
Plots stop showing PH/PL once delivery happens (for that side) within the period.
What do the status symbols in the table mean?
■ Inactive — Mid not tapped this period.
▶ Activated — Mid tapped; awaiting delivery to PH or PL.
● Delivered — PH or PL was hit first after the Mid tap.
How are probabilities computed?
For each period, the script counts samples where the Mid was tapped and one side was hit first. It reports:
P(High first | Mid tap) and P(Low first | Mid tap).
Two‑sided p‑value vs 50% (H0: p = 0.5). These appear in the stats table with detailed tooltips.
What is “Bias” in exports?
Bias is a ternary signal derived from P(High first | Mid tap):
Bias = 1 if > 0.5
Bias = -1 if < 0.5
Bias = 0 if exactly 0.5 or no sample Source can be per period or “Merged” (simple average of available period probabilities).
Note: the UI uses a simple average; no weighted option is exposed.
What is “Entry” in exports?
Entry = 1 on bars where the selected period’s Mid activates (first tap), else 0. “Merged” emits 1 if any of the three periods activates on the bar.
What is “Exit” in exports?
Exit is the previous period’s Mid price (PH/PL average) for the selected period. “Merged” is the average of the three previous‑period Mid prices.
How do I integrate this into strategies? How to use the indicator?
CyberFlow is designed for algorithmic/system developers to add a probabilistic layer for entries and market‑regime detection.
What CyberFlow exports
- Bias (−1, 0, 1): from P(High first | Mid tap) vs 50% per your chosen source (Period 1/2/3 or Merged simple average).
- Entry (0/1): 1 only on the bar where the selected period’s Mid first activates (the “mid tap” bar).
- Exit (price): the previous period’s Mid price (average of previous High/Low) for the selected source.
- These appear in the Data Window as series named Bias, Entry, and Exit.
Connecting from your strategy (input.source)
- Add inputs in your strategy so users can select CyberFlow’s outputs:
- Bias source input: pick the indicator’s Bias.
- Entry source input: pick the indicator’s Entry.
- Exit source input: pick the indicator’s Exit.
In TradingView’s UI, users link these inputs to CyberFlow’s plots via the source picker.
Does this use request.security?
No. CyberFlow reconstructs your selected higher timeframes (Period 1/2/3) directly on the chart without request.security().
It detects new period boundaries via timeframe.change(tf), rolls the last period’s extremes into Previous High/Low (PH/PL), computes their Mid, then waits for a “Mid activation” (a bar after the first bar of the period whose range crosses the Mid).
From activation onward, it records which side (PH or PL) is reached first to build conditional probabilities per period.
Because levels and events are derived locally from the live bar stream, there are no cross-timeframe fetch artifacts or repaint nuances from request.security().
The exported series (Bias −1/0/1, Entry 0/1, Exit price) are produced natively and can be wired into strategies via TradingView’s input.source() for robust, low-latency integration.
What markets and assets does the indicator Extension work best on?
CyberFlow is market- and timeframe‑agnostic: it computes conditional probabilities (which side of the prior range is reached first after a mid tap) directly from price, so it can be applied to crypto, FX, indices, equities, futures, and commodities across intraday to higher timeframes. In practice, robustness depends on liquidity and sample size: higher timeframes usually yield more stable estimates (fewer activations, lower noise), while lower timeframes give more activations but can be noisier (spreads/fees matter more).
Because the study itself provides probabilities—not PnL—assess profitability in your context by integrating the exported series (Bias −1/0/1, Entry 0/1, Exit price) into your strategy via TradingView’s input.source(), then backtest with your fills, costs, and risk model to measure performance efficiency on your specific markets and settings.
What makes this script unique?
Custom higher-timeframes (beyond D/W/M)
You can pick any three reference periods (Period 1/2/3), not just Daily/Weekly/Monthly. The script rebuilds these periods directly on the chart and analyzes each independently.
True conditional probability (why it matters)
It measures P(High first | Mid tap) vs P(Low first | Mid tap) — i.e., “after the previous period’s midpoint is first tapped, which side is typically reached first?”
Conditioning on the mid‑tap event isolates the path that follows a specific trigger. Unconditioned counts (e.g., “how often PH/PL is hit”) mix pre‑ and post‑activation behavior and can be misleading. This conditional framing turns vague hit‑rates into decision‑grade odds tied to a clear setup.
Statistical confidence in‑context (p‑value in tooltips)
Tooltips show a Wilson 95% confidence interval and a two‑sided p‑value versus 50/50. This helps you judge whether an observed edge is likely signal or noise at your chosen periods.
Exports built for algorithmic integration
Three clean outputs in the Data Window for strategies:
Bias (−1/0/1) from the conditional probability versus 50%.
Entry (0/1) on the activation bar (first mid tap).
Exit (price) as the previous period’s Mid.
Hook these into your backtests via TradingView’s input.source(), then evaluate profitability with your own fills, costs, and risk model. This turns the probabilities into measurable performance you can optimize.
Disclaimer
This tool provides statistical estimates only and is not financial advice. Historical probabilities are not guarantees of future results. Always backtest with your own costs, fills, and risk model before using in live trading.
Enhanced Seasonality Trade BacktestEnhanced Seasonality Trade Backtest
Overview
A comprehensive Pine Script indicator that backtests seasonal trading strategies by analyzing historical price performance during specific date ranges. The tool provides detailed statistics, visual markers, and election cycle filtering to identify profitable seasonal patterns.
Key Features
📊 Backtesting Engine
Tests up to 50 years of historical data
Configurable entry/exit dates (day/month)
Automatic holiday/weekend date adjustment
Separate analysis for long and short positions
🗳️ Election Cycle Filter
All Years: Test every year in the lookback period
Election Years: US presidential election years only (2024, 2020, 2016...)
Pre-Election Years: Years before elections (2023, 2019, 2015...)
Post-Election Years: Years after elections (2021, 2017, 2013...)
📈 Comprehensive Statistics
Win rate percentage
Total and average returns
Best/worst performing years
Detailed trade-by-trade breakdown
Years tested vs. years filtered
🎯 Visual Indicators
Entry/exit lines for all historical trades
Future trade date projections
Background highlighting during trade periods
Color-coded performance labels
⚙️ Customization Options
Toggle between long/short analysis
Show/hide price and date details
Adjustable table position
Future trade date visualization
Use Cases
Seasonal Trading: Identify recurring profitable periods (e.g., "Sell in May")
Election Cycle Analysis: Test how political cycles affect market performance
Strategy Validation: Backtest specific date-range strategies
Risk Assessment: Analyze worst-case scenarios and drawdowns
Perfect For
Swing traders looking for seasonal edges
Portfolio managers timing market entries/exits
Researchers studying market cyclicality
Anyone wanting to quantify seasonal market behavior
ONLY WORKS IN 1D TIME FRAME
Golden BOS Strategy - ChecklistA clean, mechanical on-chart checklist designed for multi-timeframe traders using the Golden BOS / Institutional Retracement Framework.
This tool helps you stay disciplined by tracking each requirement of the strategy in real time:
Included Criteria
4H Bias: Bullish or bearish macro structure
1H Structure: Push/pull phase + golden zone retracement
5M Entry Model:
Break of Structure (BOS)
5M golden zone retracement
POI validation (OB/FVG/Breaker)
Final micro BOS or rejection confirmation
Risk Filters:
Session validity (London / NY)
Red news avoidance
Stop-loss placement check
Liquidity-based target confirmation
Purpose
This overlay ensures every trade meets strict criteria before execution, removing emotion and improvisation. Ideal for backtesting, forward testing, and staying consistent during live market conditions.
Golden BOS Strategy — Description
The Golden BOS Strategy is a structured, multi-timeframe trading system designed to capture high-probability continuation moves during London and New York sessions. The strategy combines institutional concepts with Fibonacci-based retracements to identify discounted entry zones aligned with higher-timeframe direction.
Using the 4H timeframe, traders establish the daily macro bias and identify the dominant trend. The 1H chart is then used to confirm the current phase of market structure, distinguishing between impulsive “push” moves and corrective “pullback” phases. A Fibonacci retracement is applied to the most recent 1H impulse leg to define a high-value discount or premium zone where entries become valid.
Execution takes place on the 5-minute chart. Once price reaches the 1H golden zone (61.8–78.6%), a Break of Structure (BOS) is required to confirm a shift in short-term momentum. A second Fibonacci retracement is then drawn on the 5M impulse leg that caused the BOS, and price must retrace back into the 5M golden zone. Traders refine their entry using a confluence point of interest (POI) such as a Fair Value Gap (FVG), Order Block, Breaker Block, or Inverse FVG, ideally accompanied by a final micro BOS or rejection candle.
Risk management is strict and rule-driven. Stop loss is placed beyond the extreme wick of the POI, while take-profit targets are set at logical liquidity pools in the direction of the higher-timeframe trend. The strategy avoids red-folder news and only allows trades during active sessions to ensure optimal volatility and reliability.
The Golden BOS Strategy is designed to impose discipline, reduce discretionary errors, and give traders a repeatable, mechanical framework for navigating trending markets with precision.
Portfolio Strategy TesterThe Portfolio Strategy Tester is an institutional-grade backtesting framework that evaluates the performance of trend-following strategies on multi-asset portfolios. It enables users to construct custom portfolios of up to 30 assets and apply moving average crossover strategies across individual holdings. The model features a clear, color-coded table that provides a side-by-side comparison between the buy-and-hold portfolio and the portfolio using the risk management strategy, offering a comprehensive assessment of both approaches relative to the benchmark.
Portfolios are constructed by entering each ticker symbol in the menu, assigning its respective weight, and reviewing the total sum of individual weights displayed at the top left of the table. For strategy selection, users can choose between Exponential Moving Average (EMA), Simple Moving Average (SMA), Wilder’s Moving Average (RMA), Weighted Moving Average (WMA), Moving Average Convergence Divergence (MACD), and Volume-Weighted Moving Average (VWMA). Moving average lengths are defined in the menu and apply only to strategy-enabled assets.
To accurately replicate real-world portfolio conditions, users can choose between daily, weekly, monthly, or quarterly rebalancing frequencies and decide whether cash is held or redistributed. Daily rebalancing maintains constant portfolio weights, while longer intervals allow natural drift. When cash positions are not allowed, capital from bearish assets is automatically redistributed proportionally among bullish assets, ensuring the portfolio remains fully invested at all times. The table displays a comprehensive set of widely used institutional-grade performance metrics:
CAGR = Compounded annual growth rate of returns.
Volatility = Annualized standard deviation of returns.
Sharpe = CAGR per unit of annualized standard deviation.
Sortino = CAGR per unit of annualized downside deviation.
Calmar = CAGR relative to maximum drawdown.
Max DD = Largest peak-to-trough decline in value.
Beta (β) = Sensitivity of returns relative to benchmark returns.
Alpha (α) = Excess annualized risk-adjusted returns relative to benchmark.
Upside = Ratio of average return to benchmark return on up days.
Downside = Ratio of average return to benchmark return on down days.
Tracking = Annualized standard deviation of returns versus benchmark.
Turnover = Average sum of absolute changes in weights per year.
Cumulative returns are displayed on each label as the total percentage gain from the selected start date, with green indicating positive returns and red indicating negative returns. In the table, baseline metrics serve as the benchmark reference and are always gray. For portfolio metrics, green indicates outperformance relative to the baseline, while red indicates underperformance relative to the baseline. For strategy metrics, green indicates outperformance relative to both the baseline and the portfolio, red indicates underperformance relative to both, and gray indicates underperformance relative to either the baseline or portfolio. Metrics such as Volatility, Tracking Error, and Turnover ratio are always displayed in gray as they serve as descriptive measures.
In summary, the Portfolio Strategy Tester is a comprehensive backtesting tool designed to help investors evaluate different trend-following strategies on custom portfolios. It enables real-world simulation of both active and passive investment approaches and provides a full set of standard institutional-grade performance metrics to support data-driven comparisons. While results are based on historical performance, the model serves as a powerful portfolio management and research framework for developing, validating, and refining systematic investment strategies.
Consecutive count backtester / quantifytools- Overview
Consecutive counting is a simple method to mechanically define trending states to the upside and downside. Consecutive counts are calculated by taking reference price level (e.g. close 4 candles ago) and count closes above/below it up to a maximum count that resets the consecutive count back to 1. This tool provides the means to backtest each count by measuring % change in price after each count (e.g. % gain 2 candles after a given count).
Users can define reference source that starts the consecutive count (e.g. close 4 candles ago), maximum count where counter resets (e.g. after 9th count) and backtesting period (e.g. price change 2 candles after count).
Filters add extra conditions that must be met on the consecutive count to qualify as valid, which are also reflected on the backtest metrics. The counts can be refined using the following filters:
- RSI above/below X
- Price above/below/at moving average of choice
- Relative volume above/below X
Average gain corresponding to each count as they occur can be toggled off for less clutter. Average price change can also be visualized using candle color. Colors, gradient and table/label sizes are fully customizable.
- Practical guide
Example #1: Identify reversal potential
Consecutive counting is a simple yet effective method to for detecting reversals, for which 7-9 counts are traditionally used. Whether that holds true or not can now be put through a test with different variations of the method as well as using additional filters to improve the probability of a turn.
Example #2: Identify trend following potential
Consecutive counts can also have utility value for trend following. When historical short term change is to the downside, expect downside, when to the upside, expect upside.
Smart Money Concept + Strategy Backtesting Toolkit [Shah]This indicator, primarily designed for strategy backtest. It’s important to emphasize that the orders generated by this indicator are in the form of stop-limit orders .
For Long setup , When lower lows and lower highs form, after price moving up from the last higher high, a “change of character” occurs. Entry will takes place in the golden zone.
This the Long setup:
And this is the Long setup Example on chart:
For Short setup , When higher lows and higher highs form after the price moves down from the last higher low, a “change of character” occurs. Entry will take place within the golden zone.
This the Short setup:
And this is the Short setup Example on chart:
Key Features:
Date Period:
Users can customize the date period during which the strategy is tested, allowing for a more granular analysis of performance over specific timeframes.
DCA Entry:
Entry is based on Fibonacci level between the Lower Low and Higher High pivots for Long deals .
Entry is based on Fibonacci level between the Higher High and Lower Low pivots for Short deals .
Allowing a second entry with a specified position size
Entering at a different price based on a Percent or ATR change.
There is a feature that If the risk-to-reward ratio is below the specified input (rr), the trading deal wont initiate, and the signal alert wont be triggered.
Stop Loss:
Adjustable based on Fibonacci levels , Percent and ATR.
The percent and ATR is calculate from LL pivot point for Long and HH pivot point for short (not Entry price)’
Targets:
Adjustable based on Source, Fibonacci levels , Percent and ATR.
Source indicates the maximum (minimum) value between the open and close of the candle where the Higher High (Lower Low) pivot point was formed for Long (Short) deals.
Percent and ATR calculates from Entry 1 Price
There is a feature that closes the part of the position size at Target 1 based on a percentage, leaving the rest to close at Target 2, entry, exit price, or stop loss.
Plots:
The visual representation of the indicator includes the key plots:
Reset Deal Calculation Fibonacci Level
Alert Fire Fibonacci Level
Entry 1
Entry 2
Entry Average
Stop Loss
Target 1
Target 2
Labels:
Displays informative labels upon trade open and close, providing details about each transaction like gain and equity and etc.
Risk Management:
Allows setting initial capital, risk per trade, and commission for each transaction.
Score Table:
Provides statistical information for Regular deals (refers to deals that closed in Target price or Stop loss price) and Exited deals (representing deals that didn’t touch the stop loss or targets.):
Number of trades
Win rate
Profit factor
Average Risk to Reward ratio
Total Profit and Loss (PnL)
Commission paid
Live equity
It should note that Winrate calculated based on closed deals at target or stop loss. (Exited trades doesn’t into account in calculation of Winrate)
Exit Methods :
The goal is to offer users a diverse set of exits before the price touches the target or stop loss.
1. Pending Entry Time-out
cancel pending entry based on candle counting since alert fired. (before deal started)
2. Break Even
If Target 2 is reached, the stop loss automatically adjusts to the entry price.
3. Active Deal Reverse
If a deal (long or short position) is currently open, and the reverse signal is emitted, the script will close the existing deal.
4. Reverse Deal Exit
If a deal (long or short position) is currently open, and the reverse signal is emitted, the script will automatically close the existing deal.
5. Move Exit
With this method, if Entry 2 is triggered, the deal will be closed when the price touches the Entry price.
6. Candle Counting Exit
This exit type is based on the number of candles since the deal started.
7. Profit Zone Shield Exit
Once a deal enters profit, the Exit level moves to the entry level after reaching a Fibonacci level between TP1 and Entry 1.
Deep Backtesting Table:
It includes:
Time period of the backtest
Pair name and timeframe
Count the long and short trades
Win streak and loss streak
Total deal chances and missed chances
Count the deals goes directly from entry 1 to tp1 and entry 2 to tp1
Count the deals that touched entry 2 and entry 2 filled percent
Count the number of each exit type
Other statistics such as CAGR, Sharpe, Kurtosis, Skewness, and Max Drawdown.






















