Buy When There's Blood in the Streets StrategyStatistical Analysis of Drawdowns in Stock Markets
Drawdowns, defined as the decline from a peak to a trough in asset prices, are an essential measure of risk and market dynamics. Their statistical properties provide insights into market behavior during extreme stress periods.
Distribution of Drawdowns: Research suggests that drawdowns follow a power-law distribution, implying that large drawdowns, while rare, are more frequent than expected under normal distributions (Sornette et al., 2003).
Impacts of Extreme Drawdowns: During significant drawdowns (e.g., financial crises), the average recovery time is significantly longer, highlighting market inefficiencies and behavioral biases. For example, the 2008 financial crisis led to a 57% drawdown in the S&P 500, requiring years to recover (Cont, 2001).
Using Standard Deviations: Drawdowns exceeding two or three standard deviations from their historical mean are often indicative of market overreaction or capitulation, creating contrarian investment opportunities (Taleb, 2007).
Behavioral Finance Perspective: Investors often exhibit panic-selling during drawdowns, leading to oversold conditions that can be exploited using statistical thresholds like standard deviations (Kahneman, 2011).
Practical Implications: Studies on mean reversion show that extreme drawdowns are frequently followed by periods of recovery, especially in equity markets. This underpins strategies that "buy the dip" under specific, statistically derived conditions (Jegadeesh & Titman, 1993).
References:
Sornette, D., & Johansen, A. (2003). Stock market crashes and endogenous dynamics.
Cont, R. (2001). Empirical properties of asset returns: stylized facts and statistical issues. Quantitative Finance.
Taleb, N. N. (2007). The Black Swan: The Impact of the Highly Improbable.
Kahneman, D. (2011). Thinking, Fast and Slow.
Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency.
Statistics
USDEGP Rate MultipleIndicator shows the ratio between USDEGP rate calculated using CIB GDR and the official rate. In no stress, value should be stable.
London USDEGP priceThis indicator calculates the hypothetical USDEGP price using CIB receipts price in London Stock Exchange and its price in EGX. Values are smoothed.
Tims Smart Money COT-IndexThe **Tims Smart Money COT Index** analyzes the positions of different groups of market participants from the COT report (Commercials, Large Specs, Small Specs). It calculates their net positions and scales them relative to extremes of the last 24 weeks. It indicates bullish and bearish zones to identify market sentiments.
- Commercials (Smart Money)**: Often act against the trend, bullish from 80+.
- Large Specs (Retail Money)**: Trend-following, bullish from 80+.
- Small Specs**: Mostly impulsive, bullish from 80+.
The indicator helps to identify turning points in the market based on the behavior of the players.
COT Commercials Positions Table Der COT Commercials Opposite Positions Table for Forex ist ein umfangreicher TradingView-Indikator, der die Positionen der kommerziellen Marktteilnehmer (Commercials) im Rahmen des Commitments of Traders (COT)-Berichts darstellt. Er zeigt Long-, Short-, und Netto-Positionen sowie deren prozentuale Anteile für ausgewählte Märkte an.
Hauptmerkmale:
Datenquellenwahl: Unterstützt "Futures Only" und "Futures and Options".
Marktabdeckung: Umfasst Währungen, Rohstoffe, Indizes und Kryptowährungen.
Farbkodierung: Dynamische Farbverläufe zur Hervorhebung von Extremen bei Long-/Short-Positionen und Prozentsätzen.
Historische Daten: Zeigt Positionsdaten der letzten 10 Wochen an.
Anpassbare Tabelle: Klar strukturiert mit wichtigen Kennzahlen wie max./min. Positionen und Netto-Positionen.
Der Indikator ist besonders für Trader nützlich, die Marktstimmungen analysieren und Positionierungen großer Marktteilnehmer in ihre Handelsentscheidungen einbeziehen möchten.
Der Indikator ist hauptsächlich für Futures gedacht und funktioniert nur im 1 Woche Chart.
MA Ratio Weighted Trend System I [InvestorUnknown]The MA Ratio Weighted Trend System I combines slow and fast indicators to identify stable trends and capture potential market turning points. By dynamically adjusting the weight of fast indicators based on the Moving Average Ratio (MAR), the system aims to provide timely entry and exit signals while maintaining overall trend stability through slow indicators.
Slow and Fast Indicators with Dynamic Weighting
Slow Indicators: Designed for stable trend identification, these indicators maintain a constant weight in the overall signal calculation. They include:
DMI For Loop (Directional Movement Index)
CCI For Loop (Commodity Channel Index)
Aroon For Loop
Fast Indicators: Aim to detect rapid market changes and potential turning points. Their weights are dynamically adjusted based on the absolute value of the Moving Average Ratio (MAR). Fast indicators include:
ZLEMA For Loop (Zero-Lag Exponential Moving Average)
IIRF For Loop (Infinite Impulse Response Filter)
Dynamic Weighting Mechanism:
Moving Average Ratio (MAR) is calculated as the ratio of the price to its moving average, minus one (for simplicity and visualization).
Weight Calculation
Fast indicator weights are determined based on the absolute value of MAR, possibly with an offset to avoid scenarios where MAR follows rapid price reversals too closely:
// Function to calculate weights based on MAR
f_mar_weights(series float mar, simple int offset, simple float weight_thre) =>
o_mar = math.abs(mar )
float fast_weight = 0
float slow_weight = 1
if o_mar != 0
if weight_thre > 0
if o_mar <= weight_thre
fast_weight := o_mar
else
fast_weight := o_mar
Threshold-Based vs. Continuous Weighting:
Threshold-Based: Fast indicators receive weight only when the absolute MAR exceeds a user-defined threshold (weight_thre).
Continuous: By setting weight_thre to zero, fast indicators always receive some weight, though this may increase false signals.
Offset Mechanism
The offset parameter shifts the MAR used for weighting by a certain number of bars. This helps avoid situations where the MAR follows sudden price movements too closely, preventing fast indicators from failing to provide timely exit signals.
Signal Calculation
The final signal is a weighted average of the slow and fast indicators:
// Calculate Signal (as weighted average)
float sig = math.round(((DMI*slow_w) + (CCI*slow_w) + (Aroon*slow_w) + (ZLEMA*fast_w) + (IIRF*fast_w)) / (3*slow_w + 2*fast_w), 2)
Backtesting and Performance Metrics
Enables users to test the indicator's performance over historical data, comparing it to a buy-and-hold strategy.
Alerts
Set up alerts for when the signal crosses above or below the thresholds.
alertcondition(long_alert, "LONG (MAR Weighted Trend System)", "MAR Weighted Trend System flipped ⬆LONG⬆")
alertcondition(short_alert, "SHORT (MAR Weighted Trend System)", "MAR Weighted Trend System flipped ⬇Short⬇")
Important Notes
Customization: Due to the experimental nature of this indicator, users are strongly encouraged to adjust and calibrate the settings to align with their trading strategies and market conditions.
Default Settings Disclaimer: The default settings are not optimized or recommended for any specific use and serve only as placeholders for the indicator's publication.
Backtest Results Disclaimer: Historical backtest results are not indicative of future performance. Market conditions change, and past results do not guarantee future outcomes.
Sharpe Ratio Z-ScoreThe "Sharpe Ratio Z-Score" indicator is a powerful tool designed to measure risk-adjusted returns in financial assets. This script helps investors evaluate the performance of a security relative to its risk, using a Z-score based modification of the Sharpe Ratio. The indicator is suitable for assessing market environments and understanding periods of underperformance or overperformance relative to historical standards.
Features:
Risk Assessment and Scaling: The indicator calculates a modified version of the Sharpe Ratio
over a user-defined period. By using scaling and mean offset adjustments, it allows for better
fitting to different market conditions.
Customizable Settings:
Period Length: The number of bars used to calculate the Sharpe Ratio.
Mean Adjustment: Offset value to adjust the average return of the calculated Sharpe ratio.
Scale Factor: A multiplier for emphasizing or reducing the calculated score's impact.
Line Color: Easily customize the plot's appearance.
Visual Cues:
Plots horizontal lines and fills specific regions to visually represent significant Z-score levels.
Highlighted zones include risk thresholds, such as overbought (positive Z-scores) and oversold
(negative Z-scores) areas, using intuitive color fills:
Green for areas below -0.5 (potential buy opportunities).
Red for areas above 0.5 (potential sell opportunities).
Yellow for neutral zones between -0.5 and 0.5.
Use Cases:
Risk-Adjusted Decision Making: Understand when returns are favorable compared to risk, especially during volatile market conditions.
Timing Reversion to Mean: Use highlighted zones to identify potential reversion-to-mean scenarios.
Trend Analysis: Identify times when an asset's performance is significantly deviating from its
average risk-adjusted return.
How It Works:
The script computes the daily returns over a set period, calculates the standard deviation of
those returns, and then applies a modified Sharpe Ratio approach. The Z-score transformation
helps to visualize how far an asset's risk-adjusted return deviates from its historical average.
This "Sharpe Ratio Z-Score" indicator is well-suited for investors seeking to combine quantitative metrics with visual cues, enhancing decision-making for long and short positions while maintaining a risk-adjusted perspective.
Conditional Value at Risk (CVaR)This Pine Script implements the Conditional Value at Risk (CVaR), a risk metric that evaluates the potential losses in a financial portfolio beyond a certain confidence level, incorporating both the Value at Risk (VaR) and the expected loss given that the VaR threshold has been breached.
Key Features:
Input Parameters:
length: Defines the observation period in days (default is 252, typically used to represent the number of trading days in a year).
confidence: Specifies the confidence interval for calculating VaR and CVaR, with values between 0.5 and 0.99 (default is 0.95, indicating a 95% confidence level).
Logarithmic Returns Calculation: The script computes the logarithmic returns based on the daily closing prices, a common method to measure financial asset returns, given by:
Log Return=ln(PtPt−1)
Log Return=ln(Pt−1Pt)
where PtPt is the price at time tt, and Pt−1Pt−1 is the price at the previous time point.
VaR Calculation: Value at Risk (VaR) is estimated as the percentile of the returns array corresponding to the given confidence interval. This represents the maximum loss expected over a given time horizon under normal market conditions at the specified confidence level.
CVaR Calculation: The Conditional VaR (CVaR) is calculated as the average of the returns that fall below the VaR threshold. This represents the expected loss given that the loss has exceeded the VaR threshold.
Visualization: The script plots two key risk measures:
VaR: The maximum potential loss at the specified confidence level.
CVaR: The average of the losses beyond the VaR threshold.
The script also includes a neutral line at zero to help visualize the losses and their magnitude.
Source and Scientific Background:
The concept of Value at Risk (VaR) was popularized by J.P. Morgan in the 1990s, and it has since become a widely-used tool for risk management (Jorion, 2007). Conditional Value at Risk (CVaR), also known as Expected Shortfall, addresses the limitation of VaR by considering the severity of losses beyond the VaR threshold (Rockafellar & Uryasev, 2002). CVaR provides a more comprehensive risk measure, especially in extreme tail risk scenarios.
References:
Jorion, P. (2007). Value at Risk: The New Benchmark for Managing Financial Risk. McGraw-Hill Education.
Rockafellar, R.T., & Uryasev, S. (2002). Conditional Value-at-Risk for General Loss Distributions. Journal of Banking & Finance, 26(7), 1443–1471.
Manual Trading Checklist by Afnan TajuddinHey traders! This Trading Checklist indicator like your personal to-do list right on your chart! Here’s what it does:
Easy Tracking: Seven checkboxes to make sure you’ve done all your trading steps.
Colorful Signs: Green "✔" for done stuff and red "✘" for things you need to fix.
Make It Yours: Change where the table is on the chart, pick your favorite colors, and set the text size just how you like it.
Simple Setup: Rename the checklist items and toggle them on or off in the settings.
Clean Look: It stays neat on your chart without messing things up.
Whether you’re just starting out or you’ve been trading for a while, this checklist helps you stay organized and stick to your plan. Perfect for anyone who loves keeping things tidy and on track!
Important to Know: This checklist is not dynamic or automatic and not specific to any symbol. You need to manually check it every time for all the stocks you’re planning to trade. It won’t do the checking for you, so make sure to update it yourself! 🚨
RHR_CANDLELibrary "RHR_CANDLE"
Library for Expansion Contraction Indicator, a zero-lag dual perspective indicator based on Jake Bernstein’s principles of Moving Average Channel system.
calc(shortLookback, longLookback)
Calculates Expansion Contraction values.
Parameters:
shortLookback (int) : Integer for the short lookback calculation, defaults to 8
longLookback (int) : Integer for the long lookback calculation, defaults to 32
@return Returns array of Expansion Contraction values
stdevCalc(positiveShort, negativeShort, positiveLong, negativeLong, stdevLookback)
Calculates standard deviation lines based on Expansion Contraction Long and Short values.
Parameters:
positiveShort (float) : Float for the positive short XC value from calculation
negativeShort (float) : Float for the negative short XC value from calculation
positiveLong (float) : Float for the positive long XC value from calculation
negativeLong (float) : Float for the negative long XC value from calculation
stdevLookback (int) : Integer for the standard deviation lookback, defaults to 500
@return Returns array of standard deviation values
trend(positiveShort, negativeShort, positiveLong, negativeLong)
Determines if trend is strong or weak based on Expansion Contraction values.
Parameters:
positiveShort (float) : Float for the positive short XC value from calculation
negativeShort (float) : Float for the negative short XC value from calculation
positiveLong (float) : Float for the positive long XC value from calculation
negativeLong (float) : Float for the negative long XC value from calculation
@return Returns array of boolean values indicating strength or weakness of trend
COT Report Indicator with Speculator Net PositionsThe COT Report Indicator with Speculator Net Positions is designed to give traders insights into the behavior of large market participants, particularly speculators, based on the Commitment of Traders (COT) report data. This indicator visualizes the long and short positions of non-commercial traders, allowing users to gauge the sentiment and positioning of large speculators in key markets, such as Gold, Silver, Crude Oil, S&P 500, and currency pairs like EURUSD, GBPUSD, and others.
The indicator provides three essential components:
Net Long Position (Green) - Displays the total long positions held by speculators.
Net Short Position (Purple) - Shows the total short positions held by speculators.
Net Difference (Long - Short) (Yellow) - Illustrates the difference between long and short positions, helping users identify whether speculators are more bullish or bearish on the asset.
Recommended Timeframes:
Best Timeframes: Weekly and Monthly
The COT report data is released on a weekly basis, making higher timeframes like the Weekly and Monthly charts ideal for this indicator. These timeframes provide a more accurate reflection of the underlying trends in speculator positioning, avoiding the noise present in lower timeframes.
How to Use:
Market Sentiment: Use this indicator to gauge the sentiment of large speculators, who often drive market trends. A strong net long position can indicate bullish sentiment, while a high net short position might suggest bearish sentiment.
Trend Reversal Signals: Sudden changes in the net difference between long and short positions may indicate potential trend reversals.
Confirmation Tool: Pair this indicator with your existing analysis to confirm the strength of a trend or identify overbought/oversold conditions based on speculator activity.
Supported Symbols:
This indicator currently supports a range of commodities and currency pairs, including:
Gold ( OANDA:XAUUSD )
Silver ( OANDA:XAGUSD )
Crude Oil ( TVC:USOIL )
Natural Gas ( NYMEX:NG1! )
S&P 500 ( SP:SPX )
Dollar Index ( TVC:DXY )
EURUSD ( FX:EURUSD )
GBPUSD ( FX:GBPUSD )
GBPJPY( FX:GBPJPY )
By providing clear insight into the positions of large speculators, this indicator is a powerful tool for traders looking to align with institutional sentiment and enhance their trading strategy.
Financial X-RayThe Financial X-Ray is an advanced indicator designed to provide a thorough analysis of a company's financial health and market performance. Its primary goal is to offer investors and analysts a quick yet comprehensive overview of a company's financial situation by combining various key financial ratios and metrics.
How It Works
Data Collection: The indicator automatically extracts a wide range of financial data for the company, covering aspects such as financial strength, profitability, valuation, growth, and operational efficiency.
Sector-Specific Normalization: A unique feature of this indicator is its ability to normalize metrics based on the company's industry sector. This approach allows for more relevant comparisons between companies within the same sector, taking into account industry-specific characteristics.
Standardized Scoring: Each metric is converted to a score on a scale of 0 to 10, facilitating easy comparison and rapid interpretation of results.
Multidimensional Analysis: The indicator doesn't focus on just one financial dimension but offers an overview by covering several crucial aspects of a company's performance.
Fair Value Calculation: Using financial data and market conditions, the indicator provides an estimate of the company's fair value, offering a reference point for assessing current valuation.
Visual Presentation: Results are displayed directly on the TradingView chart in a tabular format, allowing for quick and efficient reading of key information.
Advantages for Users
Time-Saving: Instead of manually collecting and analyzing numerous financial data points, users get an instant comprehensive overview.
Contextual Analysis: Sector-specific normalization allows for a better understanding of the company's performance relative to its peers.
Flexibility: Users can choose which metrics to display, customizing the analysis to their specific needs.
Objectivity: By relying on quantitative data and standardized calculations, the indicator offers an objective perspective on the company's financial health.
Decision Support: The fair value estimate and normalized scores provide valuable reference points for investment decision-making.
Customization and Evolution
One of the major strengths of this indicator is its open-source nature. Users can modify the code to adjust normalization methods, add new metrics, or adapt the display to their preferences. This flexibility allows the indicator to evolve and continuously improve through community contributions.
In summary, the Financial X-Ray is a powerful tool that combines automation, contextual analysis, and customization to provide investors with a clear and comprehensive view of companies' financial health, facilitating informed decision-making in financial markets.
This Financial X-Ray indicator is provided for informational and educational purposes only. It should not be considered as financial advice or a recommendation to buy or sell any security. The data and calculations used in this indicator may not be accurate or up-to-date. Users should always conduct their own research and consult with a qualified financial advisor before making any investment decisions. The creator of this indicator is not responsible for any losses or damages resulting from its use.
Fed Fund Futures Custom AverageThis indicator helps traders track the expected average interest rate for the upcoming 12 months based on Fed Fund Futures. It calculates the average price of the next 12 monthly futures contracts and also shows the spread against the 1-Year US Treasury yield (US01Y). This can be useful for understanding market expectations regarding interest rate changes and identifying trading opportunities related to interest rate movements.
BarRange StrategyHello,
This is a long-only, volatility-based strategy that analyzes the range of the previous bar (high - low).
If the most recent bar’s range exceeds a threshold based on the last X bars, a trade is initiated.
You can customize the lookback period, threshold value, and exit type.
For exits, you can choose to exit after X bars or when the close price exceeds the previous bar’s high.
The strategy is designed for instruments with a long-term upward-sloping curves, such as ES1! or NQ1!. It may not perform well on other instruments.
Commissions are set to $2.50 per side ($5.00 per round trip).
Recommended timeframes are 1h and higher. With adjustments to the lookback period and threshold, it could potentially achieve similar results on lower timeframes as well.
Z Value AlertZ Value Alert analyzes daily price movements by evaluating fluctuations relative to historical volatility. It calculates the daily percentage change in the closing price, the average of this change over 252 days, and the standard deviation. Using these values, a Z-Score is calculated, indicating how much the current price change deviates from the historical range of fluctuations.
The user can set a threshold in standard deviations (Z-Score). When the absolute Z-Score exceeds this threshold, a significant movement is detected, indicating increased volatility. The Z-Score is visualized as a histogram, and an alert can be triggered when a significant movement occurs.
The number of trading days used to calculate historical volatility is adjustable, allowing the Sigma Move Alert to be tailored to various trading strategies and analysis periods.
Additionally, a dropdown option for the calculation method is available in the input menu, allowing the user to select between:
Normal: Calculates the percentage change in closing prices without using the logarithm.
Logarithmic: Uses the natural logarithm of daily returns. This method is particularly suitable for longer timeframes and scientific analyses, as logarithmic returns are additive.
These comprehensive features allow for precise customization of the Sigma Move Alert to individual needs and specific market conditions.
lib_momentumLibrary "lib_momentum"
This library calculates the momentum, derived from a sample range of prior candles. Depending on set MomentumType it either deduces the momentum from the price, volume, or a product of both. If price/product are selected, you can choose from SampleType if only candle body, full range from high to low or a combination of both (body counts full, wicks half for each direction) should be used. Optional: You can choose to normalize the results, dividing each value by its average (normalization_ma_length, normalization_ma). This will allow comparison between different instruments. For the normalization Moving Average you can choose any currently supported in my lib_no_delay.
get_momentum(momentum_type, sample_type, sample_length, normalization_ma_length, normalization_ma)
Parameters:
momentum_type (series MomentumType) : select one of MomentumType. to sample the price, volume or a product of both
sample_type (series SampleType) : select one of SampleType. to sample the body, total range from high to low or a combination of both (body count full, wicks half for each direction)
sample_length (simple int) : how many candles should be sampled (including the current)
normalization_ma_length (simple int) : if you want to normalize results (momentum / momentum average) this sets the period for the average. (default = 0 => no normalization)
normalization_ma (simple MovingAverage enum from robbatt/lib_no_delay/9) : is the type of moving average to normalize / compare with
Returns: returns the current momentum where the total line is not just (up - down) but also sampled over the sample_length and can therefore be used as trend indicator. If up/down fail to reach total's level it's a sign of decreasing momentum, if up/down exceed total the trend it's a sign of increasing momentum.















