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.
Drawdown
Risk Radar ProThe "Risk Radar Pro" indicator is a sophisticated tool designed to help investors and traders assess the risk and performance of their investments over a specified period. This presentation will explain each component of the indicator, how to interpret the results, and the advantages compared to traditional metrics.
The "Risk Radar Pro" indicator includes several key metrics:
● Beta
● Maximum Drawdown
● Compound Annual Growth Rate (CAGR)
● Annualized Volatility
● Dynamic Sharpe Ratio
● Dynamic Sortino Ratio
Each of these metrics is dynamically calculated using data from the entire selected period, providing a more adaptive and accurate measure of performance and risk.
1. Start Date
● Description: The date from which the calculations begin.
● Interpretation: This allows the user to set a specific period for analysis, ensuring that all metrics reflect the performance from this point onward.
2. Beta
● Description: Beta measures the volatility or systematic risk of the instrument relative to a reference index (e.g., SPY).
● Interpretation: A beta of 1 indicates that the instrument moves with the market. A beta greater than 1 indicates more volatility than the market, while a beta less than 1 indicates less volatility.
● Advantages: Unlike classic beta, which typically uses fixed historical intervals, this dynamic beta adjusts to market changes over the entire selected period, providing a more responsive measure.
3. Maximum Drawdown
● Description: The maximum observed loss from a peak to a trough before a new peak is achieved.
● Interpretation: This shows the largest single drop in value during the specified period. It is a critical measure of downside risk.
● Advantages: By tracking the maximum drawdown dynamically, the indicator can provide timely alerts when significant losses occur, allowing for better risk management.
4. Annualized Performance
● Description: The mean annual growth rate of the investment over the specified period.
● Interpretation: The Annualized Performance represents the smoothed annual rate at which the investment would have grown if it had grown at a steady rate.
● Advantages: This dynamic calculation reflects the actual long-term growth trend of the investment rather than relying on a fixed time frame.
5. Annualized Volatility
● Description: Measures the degree of variation in the instrument's returns over time, expressed as a percentage.
● Interpretation: Higher volatility indicates greater risk, as the investment's returns fluctuate more.
● Advantages: Annualized volatility calculated over the entire selected period provides a more accurate measure of risk, as it includes all market conditions encountered during that time.
6. Dynamic Sharpe Ratio
● Description: Measures the risk-adjusted return of an investment relative to its volatility.
● Choice of Risk-Free Rate Ticker: Users can select a ticker symbol to represent the risk-free rate in Sharpe ratio calculations. The default option is US03M, representing the 3-month US Treasury bill.
● Interpretation: A higher Sharpe ratio indicates better risk-adjusted returns. This ratio accounts for the risk-free rate to provide a comparison with risk-free investments.
● Advantages: By using returns and volatility over the entire period, the dynamic Sharpe ratio adjusts to changes in market conditions, offering a more accurate measure than traditional static calculations.
7. Dynamic Sortino Ratio
● Description: Similar to the Sharpe ratio, but focuses only on downside risk.
Interpretation: A higher Sortino ratio indicates better risk-adjusted returns, focusing solely on negative returns, which are more relevant to risk-averse investors.
● Choice of Risk-Free Rate Ticker: Similarly, users can choose a ticker symbol for the risk-free rate in Sortino ratio calculations. By default, this is also set to US03M.
● Advantages: This ratio's dynamic calculation considering the downside deviation over the entire period provides a more accurate measure of risk-adjusted returns in volatile markets.
Comparison with Basic Metrics
● Static vs. Dynamic Calculations: Traditional metrics often use fixed historical intervals, which may not reflect current market conditions. The dynamic calculations in "Risk Radar Pro" adjust to market changes, providing more relevant and timely information.
● Comprehensive Risk Assessment: By including metrics like maximum drawdown, Sharpe ratio, and Sortino ratio, the indicator provides a holistic view of both upside potential and downside risk.
● User Customization: Users can customize the start date, reference index, risk-free rate, and table position, tailoring the indicator to their specific needs and preferences.
Conclusion
The "Risk Radar Pro" indicator is a powerful tool for investors and traders looking to assess and manage risk more effectively. By providing dynamic, comprehensive metrics, it offers a significant advantage over traditional static calculations, ensuring that users have the most accurate and relevant information to make informed decisions.
The "Risk Radar Pro" indicator provides analytical tools and metrics for informational purposes only. It is not intended as financial advice. Users should conduct their own research and consider their individual risk tolerance and investment objectives before making any investment decisions based on the indicator's outputs. Trading and investing involve risks, including the risk of loss. Past performance is not indicative of future results.
Drawdown % (with SMA)This script, titled "Drawdown % (with SMA)" and designed for Pine Script version 5
offers a sophisticated tool for traders to monitor drawdown percentages, a crucial metric in assessing investment risks. The script calculates the drawdown as the percentage decrease from the all-time high value of the selected financial instrument.
Blockunity Drawdown Visualizer (BDV)Monitor the drawdown (value of the drop between the highest and lowest points) of assets and act accordingly to reduce your risk.
Introducing BDV, the incredibly intuitive metric that visualizes asset drawdowns in the most visually appealing manner. With its color gradient display, BDV allows you to instantly grasp the state of retracement from the asset’s highest price level. But that’s not all – you have the option to display the oscillator’s colorization directly on your chart, enhancing your analysis even further.
The Idea
The goal is to provide the community with the best and most complete tool for visualizing the Drawdown of any asset.
How to Use
Very simple to use, the indicator takes the form of an oscillator, with colors ranging from red to green depending on the Drawdown level. A table summarizes several key data points.
Elements
On the oscillator, you'll find a line with a color gradient showing the asset's Drawdown. The flatter line represents the Max Drawdown (the lowest value reached).
In addition, the table summarizes several data:
The asset's All Time High (ATH).
Current Drawdown.
The Max Drawdown that has been reached.
Settings
First of all, you can activate a "Bar Color" in the settings (You must also uncheck "Borders" and "Wick" in your Chart Settings):
You can display Fibonacci levels on the oscillator. You'll see that levels can be relevant to drawdown. The color of the levels is also configurable.
In the calculation parameters, you can first choose between taking the High of the candles or the Close. By default this is Close, but if you change the parameter to High, the indication next to ATH in the table will change, and you'll see that the values in the table will be affected.
The second calculation parameter (Start Date) lets you modify the effective start date of the ATH, which will affect the drawdown level. Here's an example:
How it Works
First, we calculate the ATH:
var bdv_top = bdv_source
bdv_top := na(bdv_top ) ? bdv_source : math.max(bdv_source, bdv_top )
Then the drawdown is calculated as follows:
bdv = ((bdv_source / bdv_top) * 100) - 100
Then the max drawdown :
bdv_max = bdv
bdv_max := na(bdv_max ) ? bdv : math.min(bdv, bdv_max )
ATH Drawdown Indicator by Atilla YurtsevenThe ATH (All-Time High) Drawdown Indicator, developed by Atilla Yurtseven, is an essential tool for traders and investors who seek to understand the current price position in relation to historical peaks. This indicator is especially useful in volatile markets like cryptocurrencies and stocks, offering insights into potential buy or sell opportunities based on historical price action.
This indicator is suitable for long-term investors. It shows the average value loss of a price. However, it's important to remember that this indicator only displays statistics based on past price movements. The price of a stock can remain cheap for many years.
1. Utility of the Indicator:
The ATH Drawdown Indicator provides a clear view of how far the current price is from its all-time high. This is particularly beneficial in assessing the magnitude of a pullback or retracement from peak levels. By understanding these levels, traders can gauge market sentiment and make informed decisions about entry and exit points.
2. Risk Management:
This indicator aids in risk management by highlighting significant drawdowns from the ATH. Traders can use this information to adjust their position sizes or set stop-loss orders more effectively. For instance, entering trades when the price is significantly below the ATH could indicate a higher potential for recovery, while a minimal drawdown from the ATH may suggest caution due to potential overvaluation.
3. Indicator Functionality:
The indicator calculates the percentage drawdown from the ATH for each trading period. It can display this data either as a line graph or overlaid on candles, based on user preference. Horizontal lines at -25%, -50%, -75%, and -100% drawdown levels offer quick visual cues for significant price levels. The color-coding of candles further aids in visualizing bullish or bearish trends in the context of ATH drawdowns.
4. ATH Level Indicator (0 Level):
A unique feature of this indicator is the 0 level, which signifies that the price is currently at its all-time high. This level is a critical reference point for understanding the market's peak performance.
5. Mean Line Indicator:
Additionally, this indicator includes a 'Mean Line', representing the average percentage drawdown from the ATH. This average is calculated over more than a thousand past bars, leveraging the law of large numbers to provide a reliable mean value. This mean line is instrumental in understanding the typical market behavior in relation to the ATH.
Disclaimer:
Please note that this ATH Drawdown Indicator by Atilla Yurtseven is provided as an open-source tool for educational purposes only. It should not be construed as investment advice. Users should conduct their own research and consult a financial advisor before making any investment decisions. The creator of this indicator bears no responsibility for any trading losses incurred using this tool.
Please remember to follow and comment!
Trade smart, stay safe
Atilla Yurtseven
Drawdown Dynamics IndicatorDescription :
The Drawdown Dynamics Indicator is a straightforward tool that offers insights into three critical aspects of an asset’s financial performance: Total Max Drawdown, Rolling Period Max Drawdown, and Current Max Drawdown. Inside of the indicator, you can select to view either the rolling period max drawdown or the all-time max drawdown. This is represented by the gray line. The blue line represents the asset's current drawdown.
Rolling Period Max Drawdown is more about a snapshot view, highlighting the maximum loss from a peak to a trough for an adjustable rolling time frame. This is a feature not available with other indicators that exist on TradingView.
Total Max Drawdown gives a broad view, showcasing the all-time deepest decline in an asset’s value.
Current Max Drawdown offers a live update, focusing on the asset's present phase and how it's performing in real-time.
Practical Uses :
The utility of this indicator becomes evident when you start exploring the risks and performance metrics of assets. A notable use of this indicator is in comparing the drawdowns of a trading strategy against the inherent drawdowns of an asset. It helps in painting a clearer picture of risk and performance of both the asset and the strategy.
Risk Understanding : By comparing the strategy drawdown to the asset drawdown, traders get to understand if the risk they’re taking aligns with the asset’s natural risk behavior.
Evaluating Strategy’s Strength : If a strategy can weather the storms of the asset's natural drawdown phases and come out relatively unscathed, it can speak to its strength.
Performance Comparison : It also acts as a benchmark tool. Traders can pit different strategies against each other, using the asset’s drawdown as a baseline, to see which one manages risks better.
Disclaimer : This is not financial advice. Open-source scripts I publish in the community are largely meant to spark ideas that can be used as building blocks for part of a more robust trade management strategy. If you would like to implement a version of any script, I would recommend making significant additions/modifications to the strategy & risk management functions. If you don’t know how to program in Pine, then hire a Pine-coder. We can help!
TTP QFL OptimiserThis tool is designed to help finding the best take profit and stop loss levels when trading with QFL bases (Quick Fingers Luc).
You can use it to see the average drawdown among all historic bases broken for an asset and then find the drawdowns that are more frequent using the percentile parameters provided.
For example, by knowing that 98% of the bases got broken with a drawdown of up to 5% can become extremely useful for deciding where to place your take profit or stop loss levels.
It supports QFL 1H, 2H and 4H but make sure to set the chart timeframe to a lower timeframe than QFL to obtain valid results.
Two percentiles are provided to be able to evaluate potential TP and SL at the same time.
Steps:
- Load an asset in the 15min TF
- Select the QFL version: 1H more deals / lower quality vs 4H less deals/ better quality
- Find a percentile that triggers enough deals (example: 70) and then another percentile that doesn't get hit too much (example: 98)
- Confirm the values p1 and p2 provided in the table and the white and grey lines for the results of which drawdown percentages correspond to such selection of percentiles
Once having p1 and p2 use your backtesting and forward testing tools to confirm and adjust accordingly.
TTP RSI drawdownThis indicator offers a way to trade the RSI drawdown combined together with its value.
Parameters
- Lookback. How many candles in the past are used to calculate the drawdown of the RSI
- RSI strength and timeframe
- Lower and Upper RSI limits. These are used to colour the drawdown chart, the greener the closed to your specified lower limit and the more red the closer to the upper limit. These limits are also used to confirm that the signal occurs with an RSI value within the given limits.
- Signal threshold. Buy signals will only be triggered when the drawdown of the RSI is higher than the provided value.
Buy signals
The signal will trigger in white color and will plot a 1 to allow backtesting.
TradingView alerts can be set for buy signals.
Buy signals will be trigger only when:
- RSI value is within the provided lower and upper limit values
- RSI drawdown is higher than the provided threshold.
Features
- Back-testable (plots 1 for buy)
- TV alerts
Chart modes
- show RSI
- show highest RSI
- show RSI drawdown
In the short time I've been playing with this new idea I noticed it can be used both for swing trading and for long term analysis like for example finding market bottoms.
Here's an example setup to find BTC past market cycle bottoms:
- load a chart with INDEX:BTCUSD
- set the chart timeframe to daily
- set the chart to logarithmic scale
- zoom out to see the full chart
- add the RSI drawdown indicator
- use the following parameters in the indicator: timeframe: week, gaps: off, show RSI drawdown: on, lookback:30, length:14, lower: 20, upper: 30: threshold: 40
Return & Drawdown
ReDraw script calculates the historical returns and drawdown for the given periods.
By default, the return of the linear regression trends is displayed (can be turned off in settings). In this mode, two linear regression trends are being computed for both long and short periods, and the percent value indicates the "return of the trend" for the corresponding period. Observing the dynamic of the linear regression trends can give a great hint if the trend is slowing down.
When the smoothing method is set to "none" or WMA3/5, the real asset return is shown for both periods, using the formula (LastPrice-FirstPrice)/FirstPrice
The script calculates the maximum drawdown for the long period using the formula (max(Price) - LastPrice) / max(Price).
The white line under the zero is the average maximum drawdown over the long period.
When the mode is set to Compare, ReDraw will display the difference in metrics between the current and selected symbol (SPY by default).
Sig30MALICEHello everyone
Bot is optimalized BINANCE:ALICEUSDTPERP BOT, which select leverage betwen 2x and 4x
TimeFrame : 30min
TP : 80 point
SL : 120 point
the bot works as follows:
the way he opens a position consists of two conditions
1) Moving average (crossovers)
2) RSI
Backtesting is set for counting as 13 contrat, this bot can get more with 50% of equity.
I think this is really solid 30min bot, which is already really important to make something solid on 30min
However keep in mind this is scalper and optimalization scalpers are really hard and have to be set from time to time
This bot is also great for other optimalizations .
.
.
.
.
.
.
Enjoy
trailing_drawdown
Description:
Drawdown was a tool to measure historical risk, derived from measuring current wealth from its previous peak, casually from portfolio construction (weights allocation), will consider to having a minimum drawdown. In this indicator, the drawdown for individual assets is utilized to measure its value or percentage from its trailing peak (default to 1-yr period).
Drawdown:
drawdown = (price/peaks)-1
Feature:
Static: display drawdown as percentage
Dynamic: display drawdown as value
Yearly Percentage ReturnsAn indicator that lets you visualize the historical Yearly Percentage returns of any symbol .
Key Features:
Displays the yearly returns from start to end of each year
Displays a table showing all yearly returns for current symbol
Displays start of each year as a vertical line
Displays up to 5 custom horizontal levels
Table Settings:
Enable table - Show/Hide the table
Size - Sets the size of the table
Position - Sets the position of the table on the screen
Direction - Sets the direction of the table to display the data (Vertically or Horizontally)
Percent Off All-time High (% Off High)Percent Off All-time High tracks the percentage difference between the previous day’s closing price and the All-Time high price of the security’s entire price history.
This metric tells you how far the price has deviated from/converged on the all-time high price.
Simple/Compounded Returns & Drawdowns TableVery excited to bring this script to the public. This is a very useful table that displays the performance of any strategy you give it in a more detailed view. It runs on all timeframes and at any position on the chart with the replay function. It also updates on tick changes. The table consists of three modes: Simple Equity, Compound Equity and Drawdown.
Simple Equity – shows the change in equity for every month and year. It is calculated by finding the difference in initial equity at the beginning of the month/year and the end of the month/year. The table will thus display strategy performance in blocks of time that are not correlated. It is an excellent way to see individual month/year performance from start to finish but it may not represent true change in equity over time. For example, let's assume that 100% of equity is used on every trade for simplicity. If a loss of 50% is made in the first month and a profit of 100% is made in the next month, the strategy will show 50% profit for the year. This aggregate value might be helpful to know for testing purposes, but in reality, the account is actually at break-even for the year (Initial Equity * 0.5 * 2 = Initial Equity).
Compound Equity – shows compounded change in equity for every month and year. It is calculated by finding the difference in starting equity when the strategy is run and equity at the end of the month/year. The table will thus display the true strategy performance – compounded equity at the end of each month/year.
Drawdown – shows max drawdown for every month and year. It is calculated by finding the difference between the highest equity achieved for the month/year and the trough in equity for the same month/year. Notice: strategy tester might have a max drawdown value higher than any of the drawdown values in the table. This is because the strategy tester calculates the difference between the highest and lowest equity for the entire strategy, whereas the table displays drawdowns for months and years only. Sometimes, the max drawdown for the year will also be the max drawdown for the entire strategy; hence the two values will be the same.
To use this table with your own strategy, simply find " PLACE YOUR STRATEGY CODE HERE " at the bottom of the script and place your strategy code there. Special thanks to QuantNomad for the inspiration. As always, please let me know if there are any bugs or if you need some help. Leave a like if you wish!
BCT Buy And Hold w/ Advanced StatisticsThis is a script designed to simulate a buy and hold strategy in the chart that its applied to.
Tradingview backtester is really limited in the statistics it gives you based on equity and information of open trades. For that reason many of the buy and hold scripts suffer from the same problem, a lack of useful statistics about your buy and hold strategy.
This script allows you to filter a specific buy and hold period (or use the whole data available in the tradingivew chart) and get useful statistics based on equity on a bar by bar basis.
Date Range Filtering
This allows you to chose a specific period to test the buy and hold strategy and to visualize the statistics.
We include 3 main tables which offer useful information so you can compare your strategy vs buy and hold strategy.
This 3 tables are:
Draw Downs Table
This table shows the Current P/L, Current Draw Down, Average and Maximum Draw Downs based on the equity of the buy and hold strategy calculated by candle. This can show you how much average and maximum loss or pain you would have to go through in order to stick to the buy and hold strategy.
Custom Statistics Table
This table shows useful advanced statistics to compare the buy and hold strategy to other strategies.
CAGR: Compounded annual growth rate is the industry standard in terms of showing annualized returns for any strategy or investment.
Annualized Return ($)
Trade Duration (Days): Self explanatory, displays how long the buy and hold trade was open or is open counted in days.
Max Stagnation Period (Days): Measures the Maximum time taken between new equity highs.
Average Draw Down : Average value of all draw downs from equity highs over the period (sampled 1 time per candle).
Maximum Draw Down : Largest draw down from equity highs in the whole period.
Return / Avg DrawDown: Advanced Proprietary statistic in which the annualized (non compounding) return is divided by the Average Draw Down (displayed in the Draw Downs Table)
Return / Maximum DrawDown: Advanced statistic in which the annualized (non compounding) return is divided by the Maximum Draw Down (displayed in the Draw Downs Table)
CAGR / Avg DrawDown: Advanced Proprietary statistic in which the CAGR (compounding) is divided by the Average Draw Down (displayed in the Draw Downs Table)
CAGR / Maximum DrawDown: Advanced Proprietary statistic in which the CAGR (compounding) is divided by the Maximum Draw Down (displayed in the Draw Downs Table)
Note: All the advanced statistics show, in slightly different ways, how much a strategy compensates you in relation to the risk taken. In other words you can see this as a way to quantify risk adjusted returns between multiple strategies. We prefer using the CAGR based advanced Statistics as they give a more universal value to compare across multiple strategies and asset classes.
In Sample / Out Of Sample Custom Stats (IS/OOS) Table
This table shows similar statistics as the Custom Statistics Table but is able to break down the backtest period into segments, this is useful when testing strategies as it can be used to test optimization quality. In this Buy and Hold strategy this can be used to visualize the stats of 2 periods at the same time and compare them without need to change settings or use another instance of the script.
All the Stats are the same as in the Custom Statistics Table with the difference of some being removed and the table being constructed in a way that facilitates the comparison of stats between In Sample, Out Of Sample and Full periods
Drawdown strategy indicatorThis indicator uses drawdown and max drawdown to determine good areas to enter or exit the market.
It uses the ratio between those values and two thresholds provided by the user: top and bottom.
These two values will be used to highlight the areas that match the users strategy criteria.
I normally use this indicator on the 4h or higher timeframes.
On BTC using the default parameters it predicts the tops pretty nicely. The areas of accumulation or buy zones are consistent with the ones that follow each halving.
The chart shows:
- Drawdown
- max drawdown
- drawdown average
- drawdown ratio
- buy and sell zones
The study includes alerts for both buy and sell zones.
Drawdown RangeHello death eaters, presenting a unique script which can be used for fundamental analysis or mean reversion based trades.
Process of deriving this table is as below:
Find out ATH for given day
Calculate the drawdown from ATH for the day and drawdown percentage
Based on the drawdown percentage, increment the count of basket which is based on input iNumber of ranges . For example, if number of ranges is 5, then there will be 5 baskets. First basket will fit drawdown percentage 0-20% and each subsequent ones will accommodate next 20% range.
Repeat the process from start to last bar. Once done, table will plot how much percentage of days belong to which basket.
For example, from the below chart of NASDAQ:AAPL
We can deduce following,
Historically stock has traded within 1% drawdown from ATH for 6.59% of time. This is the max amount of time stock has stayed in specific range of drawdown from ATH.
Stock has traded at the drawdown range of 82-83% from ATH for 0.17% of time. This is the least amount of time the stock has stayed in specific range of drawdown from ATH.
At present, stock is trading 2-3% below ATH and this has happened for about 2.46% of total days in trade
Maximum drawdown the stock has suffered is 83%
Lets take another example of NASDAQ:TSLA
Stock is trading at 21-22% below ATH. But, historically the max drawdown range where stock has traded is within 0-1%. Now, if we make this range to show 20 divisions instead of 100, it will look something like this:
Table suggests that stock is trading about 20-25% below ATH - which is right. But, table also suggests that stock has spent most number of days within this drawdown range when we divide it by 20 baskets instad of 100. I would probably wait for price to break out of this range before going long or short. At present, it seems a stage ranging stage. I might think about selling PUTs or covered CALLs outside this range.
Similarly, if you look at AMEX:SPY , 36% of the time, price has stayed within 5% from ATH - makes it a compelling bull case!!
NYSE:BABA is trading at 50-55% below ATH - which is the most it has retraced so far. In general, it is used to be within 15-20% from ATH
NOW, Bit of explanation on input options.
Number of Ranges : Says how many baskets the drawdown map needs to be divided into.
Reference : You can take ATH as reference or chose a time window between which the highest need to be considered for drawdown. This can be useful for megacaps which has gone beyond initial phase of uncertainity. There is no point looking at 80% drawdown AAPL had during 1990s. More approriate to look at it post 2000s where it started making higher impact and growth.
Cumulative Percentage : When this is unchecked, percentage division shows 0-nth percentage instad of percentage ranges. For example this is how it looks on SPY:
We can see that SPY has remained within 6% from ATH for more than 50% of the time.
Hope this is helpful. Happy trading :)
PS: this can be used in conjunction with Drawdown-Price-vs-Fundamentals to pick value stocks at discounted price while also keeping an eye on range tendencies of it.
Thanks to @mattX5 for the ideas and discussion today :)
Drawdown - Price vs FundamentalsIn this study, we are trying to compare drawdown from ATH of price and fundamentals to understand if price drawdown is really justifyable or if this is the buying opportunity.
For example, NYSE:BABA in the chart below shows that price has come down by more than 50%. But, the fundamentals has not changed upto this extent.
This may be viewed as buying opportunity from the eyes of fundamental based trader.
Similarly NYSE:LPX is trading at 15% below ATH whereas fundamentals are at peak. This again can be considered as buying opportunity.
NASDAQ:AAPL on the other hand is trading almost near ATH whereas fundamentals are having higher drawdown.
Well, this is just one factor to consider. I am about to release another script which can demonstrate amount of time (in terms of percentage) instrument trades at certain drawdown range. This looks something like this:
These two scripts can be used in conjunction to define your fundamental based trade.
I can add more funcamentals to the list. But, the higher value of fundamental should correlate to better position. Hence we cannot use things such as PE (which inversely correlates to value). Also need to keep the factor which includes total number of shares in it so that it is not affected by share dilution. Hence, have considered Total Revenue per Share instead of Total Revenue in this script.
Thanks to @mattX5 for suggesting fundamental based ideas in this line :)
Drawdown over Window (in percentage)Unlike other scripts, which compare against the all time high, this allows you to specify the window over which the high should be searched.
If you want to compare against the all time high, just choose a long enough window.
Drawdown VisualisationAn indicator that let's you visualize the current drawdown and maximum drawdown from an All-Time High
Momentum Performance This Indicator displays the momentum (performance) of the symbol in percent.
You can compare the performance with other symbols.
The default benchmarks are the S&P 500, the MSCI World and the FTSE All World EX US.
The default length corresponds to one year in the timeframes monthly, weekly and daily.
In intraday the default length is 200, but you can also set your own setting.
You have also the opportunity to display a average momentum performance of the main symbol.
Max Drawdown Calculating Functions (Optimized)Maximum Drawdown and Maximum Relative Drawdown% calculating functions.
I needed a way to calculate the maxDD% of a serie of datas from an array (the different values of my balance account). I didn't find any builtin pinescript way to do it, so here it is.
There are 2 algorithms to calculate maxDD and relative maxDD%, one non optimized needs n*(n - 1)/2 comparisons for a collection of n datas, the other one only needs n-1 comparisons.
In the example we calculate the maxDDs of the last 10 close values.
There a 2 functions : "maximum_relative_drawdown" and "maximum_dradown" (and "optimized_maximum_relative_drawdown" and "optimized_maximum_drawdown") with names speaking for themselves.
Input : an array of floats of arbitrary size (the values we want the DD of)
Output : an array of 4 values
I added the iteration number just for fun.
Basically my script is the implementation of these 2 algos I found on the net :
var peak = 0;
var n = prices.length
for (var i = 1; i < n; i++){
dif = prices - prices ;
peak = dif < 0 ? i : peak;
maxDrawdown = maxDrawdown > dif ? maxDrawdown : dif;
}
var n = prices.length
for (var i = 0; i < n; i++){
for (var j = i + 1; j < n; j++){
dif = prices - prices ;
maxDrawdown = maxDrawdown > dif ? maxDrawdown : dif;
}
}
Feel free to use it.
@version=4
Price DropsThis script calculates the price drops from today's high.
You can modify the percentages of the price drops yourself.