Moving Average Crossover Strategy by AI and Anton ThomasDescription:
Indicator Name: Moving Average Crossover Strategy
Overview:
The "Moving Average Crossover Strategy" is a technical analysis indicator that combines moving averages and the Relative Strength Index (RSI) to identify potential buy and sell signals. It aims to capture trend reversals and momentum shifts in the market.
Key Components:
Moving Averages:
The indicator calculates two moving averages:
Fast Moving Average (10-period SMA): This average reacts more quickly to price changes.
Slow Moving Average (30-period SMA): This average provides a smoother trend indication.
A bullish signal occurs when the fast moving average crosses above the slow moving average (golden cross), indicating a potential uptrend.
A bearish signal occurs when the fast moving average crosses below the slow moving average (death cross), indicating a potential downtrend.
Relative Strength Index (RSI):
The RSI measures the strength and momentum of price movements on a scale of 0 to 100.
A reading above 70 indicates overbought conditions, suggesting a potential reversal to the downside.
A reading below 30 indicates oversold conditions, suggesting a potential reversal to the upside.
Trading Signals:
Buy Signal:
Generated when the fast moving average crosses above the slow moving average (longCondition).
Additionally, a buy signal is identified when the RSI is oversold (below 30) and then crosses above the oversold threshold.
The indicator plots a green triangle above the bar to indicate the buy signal.
Sell Signal:
Generated when the fast moving average crosses below the slow moving average (shortCondition).
Additionally, a sell signal is identified when the RSI is overbought (above 70) and then crosses below the overbought threshold.
The indicator plots a red triangle below the bar to indicate the sell signal.
Additional Features:
Bullish Engulfing Pattern:
Detects bullish engulfing candlestick patterns, indicating potential bullish reversals.
Plots a green triangle below the bar to highlight the bullish engulfing pattern.
Bearish Engulfing Pattern:
Detects bearish engulfing candlestick patterns, indicating potential bearish reversals.
Plots a red triangle above the bar to highlight the bearish engulfing pattern.
Oversold and Overbought Levels:
Plots horizontal dashed lines at 30 (oversold) and 70 (overbought) on the RSI indicator.
Usage:
Traders can use this indicator to identify potential entry and exit points in the market based on moving average crossovers, RSI conditions, and candlestick patterns. It provides a comprehensive view of trend direction and momentum.
Considerations:
Always confirm signals with other technical analysis tools and market conditions.
Implement proper risk management strategies to minimize potential losses.
Example:
A buy signal is generated when the fast moving average crosses above the slow moving average, and the RSI is below 30 but crosses above it.
A sell signal is generated when the fast moving average crosses below the slow moving average, and the RSI is above 70 but crosses below it.
If you find this indicator profitable, please support by gifting some USDT (BSC NETWORK): 0x2c5c2dd39bbcc9453dd1428d881da37dacd9bf47
or just a thank you email at antonthomasfull(at)gmail.com
Komut dosyalarını "ai" için ara
Luxmi AI Directional Option Buying (Long Only)Introduction:
"Option premium charts typically exhibit a predisposition towards bearish sentiment in higher timeframes"
In the dynamic world of options trading, navigating through the complexities of market trends and price movements is essential for making informed decisions. Among the arsenal of tools available to traders, option premium charts stand out as a pivotal source of insight, particularly in higher timeframes. However, their inherent bearish inclination in such timeframes necessitates a keen eye for identifying bullish pullbacks, especially in lower timeframes, to optimize buying strategies effectively.
Understanding the interplay between different data points becomes paramount in this endeavor. Traders embark on a journey of analysis, delving into metrics such as Implementation Shortfall, the performance of underlying index constituents, and bullish trends observed in lower timeframes like the 1-minute and 3-minute charts. These data points serve as guiding beacons, illuminating potential opportunities amidst the market's ever-shifting landscape.
Using this indicator, we will dissect the significance of option premium charts and their nuanced portrayal of market sentiment. Furthermore, we will unveil the art of discerning bullish pullbacks in lower timeframes, leveraging a multifaceted approach that amalgamates quantitative analysis with qualitative insights. Through this holistic perspective, traders can refine their decision-making processes, striving towards efficiency and efficacy in their options trading endeavors.
Major Features:
Implementation Shortfall (IS) Candles:
Working Principle:
TWAP (Time-Weighted Average Price) and EMA (Exponential Moving Average) are both commonly used in calculating Implementation Shortfall, a metric that measures the difference between the actual execution price of a trade and the benchmark price.
TWAP calculates the average price of a security over a specified time period, giving equal weight to each interval. On the other hand, EMA places more weight on recent prices, making it more responsive to current market conditions.
To calculate Implementation Shortfall using TWAP, the difference between the average execution price and the benchmark price is determined over the trading period. Similarly, with EMA, the difference is calculated using the exponential moving average price instead of a simple average.
By employing TWAP and EMA, traders can gauge the effectiveness of their trading strategies and identify areas for improvement in executing trades relative to a benchmark.
Benefits of using Implementation Shortfall:
By visualizing the implementation shortfall and its comparison with the EMA on the chart, traders can quickly assess whether current trading activity is deviating from recent trends.
Green bars suggest potential buying opportunities or bullish sentiment, while red bars suggest potential selling opportunities or bearish sentiment.
Traders can use this visualization to make more informed decisions about their trading strategies, such as adjusting position sizes, entering or exiting trades, or managing risk based on the observed deviations from the moving average.
How to use this feature:
This feature calculates Implementation Shortfall (IS) and visually represents it by coloring the candles in either bullish (green) or bearish (red) hues. This color-coding system provides traders with a quick and intuitive way to assess market sentiment and potential entry points. Specifically, a long entry is signaled when both the candle color and the trend cloud color align as green, indicating a bullish market outlook. This integrated approach enables traders to make informed decisions, leveraging IS insights alongside visual cues for more effective trading strategies.
Micro Trend Candles:
Working Principle:
This feature begins by initializing variables to determine trend channel width and track price movements. Average True Range (ATR) is then calculated to measure market volatility, influencing the channel's size. Highs and lows are identified within a specified range, and trends are assessed based on price breaches, with potential changes signaled accordingly. The price channel is continually updated to adapt to market shifts, and arrows are placed to indicate potential entry points. Colors are assigned to represent bullish and bearish trends, dynamically adjusting based on current market conditions. Finally, candles on the chart are colored to visually depict the identified micro trend, offering traders an intuitive way to interpret market sentiment and potential entry opportunities.
Benefits of using Micro Trend Candles:
Traders can use these identified micro trends to spot potential short-term trading opportunities. For example:
Trend Following: Traders may decide to enter trades aligned with the prevailing micro trend. If the candles are consistently colored in a certain direction, traders may consider entering positions in that direction.
Reversals: Conversely, if the script signals a potential reversal by changing the candle colors, traders may anticipate trend reversals and adjust their trading strategies accordingly. For instance, they might close existing positions or enter new positions in anticipation of a trend reversal.
It's important to note that these micro trends are short-term in nature and may not always align with broader market trends. Therefore, traders utilizing this script should consider their trading timeframes and adjust their strategies accordingly.
How to use this feature:
This feature assigns colors to candles to represent bullish and bearish trends, with adjustments made based on current market conditions. Green candles accompanied by a green trend cloud signal a potential long entry, while red candles suggest caution, indicating a bearish trend. This visual representation allows traders to interpret market sentiment intuitively, identifying optimal entry points and exercising caution during potential downtrends.
Scalping Candles (Inspired by Elliott Wave):
Working Principle:
This feature draws inspiration from the Elliot Wave method, utilizing technical analysis techniques to discern potential market trends and sentiment shifts. It begins by calculating the variance between two Exponential Moving Averages (EMAs) of closing prices, mimicking Elliot Wave's focus on wave and trend analysis. The shorter-term EMA captures immediate price momentum, while the longer-term EMA reflects broader market trends. A smoother Exponential Moving Average (EMA) line, derived from the difference between these EMAs, aids in identifying short-term trend shifts or momentum reversals.
Benefits of using Scalping Candles Inspired by Elliott Wave:
The Elliott Wave principle is a form of technical analysis that attempts to predict future price movements by identifying patterns in market charts. It suggests that markets move in repetitive waves or cycles, and traders can potentially profit by recognizing these patterns.
While this script does not explicitly analyze Elliot Wave patterns, it is inspired by the principle's emphasis on trend analysis and market sentiment. By calculating and visualizing the difference between EMAs and assigning colors to candles based on this analysis, the script aims to provide traders with insights into potential market sentiment shifts, which can align with the broader philosophy of Elliott Wave analysis.
How to use this feature:
Candlestick colors are assigned based on the relationship between the EMA line and the variance. When the variance is below or equal to the EMA line, candles are colored red, suggesting a bearish sentiment. Conversely, when the variance is above the EMA line, candles are tinted green, indicating a bullish outlook. Though not explicitly analyzing Elliot Wave patterns, the script aligns with its principles of trend analysis and market sentiment interpretation. By offering visual cues on sentiment shifts, it provides traders with insights into potential trading opportunities, echoing Elliot Wave's emphasis on pattern recognition and trend analysis.
Volume Candles:
Working Principle:
This feature introduces a custom volume calculation method tailored for bullish and bearish bars, enabling a granular analysis of volume dynamics specific to different price movements. By summing volumes over specified periods for bullish and bearish bars, traders gain insights into the intensity of buying and selling pressures during these periods, facilitating a deeper understanding of market sentiment. Subsequently, the script computes the net volume, revealing the overall balance between buying and selling pressures. Positive net volume signifies prevailing bullish sentiment, while negative net volume indicates bearish sentiment.
Benefits of Using Volume candles:
Enhanced Volume Analysis: Traders gain a deeper understanding of volume dynamics specific to bullish and bearish price movements, allowing them to assess the intensity of buying and selling pressures with greater precision.
Insight into Market Sentiment: By computing net volume and analyzing its relationship with the Exponential Moving Average (EMA), traders obtain valuable insights into prevailing market sentiment. This helps in identifying potential shifts in sentiment and anticipating market movements.
Visual Representation of Sentiment: The color-coded candle bodies based on volume dynamics provide traders with a visual representation of market sentiment. This intuitive visualization helps in quickly interpreting sentiment shifts and making timely trading decisions.
How to use this feature:
This visual representation allows traders to quickly interpret market sentiment based on volume dynamics. Green candles indicate potential bullish sentiment, while red candles suggest bearish sentiment. The color-coded candle bodies help traders identify shifts in market sentiment and make informed trading decisions.
Smart Sentimeter Candles:
Working Principle:
The "Smart Sentimeter Candles" feature is a tool designed for market sentiment analysis using technical indicators. It begins by defining stock symbols from various sectors, allowing traders to select specific indices for sentiment analysis. The script then calculates the difference between two Exponential Moving Averages (EMAs) of the High-Low midpoint, capturing short-term momentum changes in the market. It computes the difference between current and previous values to capture momentum shifts over time.
Additionally, it calculates the Exponential Moving Average (EMA) of this difference to provide a smoothed representation of the prevailing trend in market momentum. Another EMA of this difference is calculated to offer an alternative perspective on longer-term momentum trends. Bar colors are determined based on the difference between current and previous values, with bullish and bearish sentiment represented by custom colors. Finally, sentiment candles are visualized on the chart, providing traders with a clear representation of market sentiment changes.
Benefits of Using Sentimeter Candles:
By analyzing index constituents, traders gain insights into the individual stocks that collectively influence the index's performance. This understanding is crucial for trading options as it helps traders tailor their strategies to specific sectors or stocks within the index.
Sector-Specific Analysis: Traders can focus on specific sectors by selecting relevant indices for sentiment analysis.
Momentum Identification: The script identifies short-term momentum changes in the market, aiding traders in spotting potential trend reversals or continuations.
Clear Visualization: Sentiment candles visually represent market sentiment changes, making it easier for traders to interpret and act upon sentiment trends.
How to use this feature:
Select Indices: Toggle the inputs to choose which indices (e.g., NIFTY, BANKNIFTY, FINNIFTY) to analyze.
Interpret Sentiment Candles: Monitor the color of sentiment candles on the chart. Green candles indicate bullish sentiment, while red candles suggest bearish sentiment.
Observe Momentum Changes: Pay attention to momentum changes identified by the difference between EMAs and their respective EMAs. Increasing bullish momentum may present buying opportunities, while increasing bearish momentum could signal potential sell-offs.
Trend Cloud:
Working Principle:
The script utilizes the Relative Strength Index (RSI) to assess market momentum, identifying bullish and bearish phases based on RSI readings. It calculates two boolean variables, bullmove and bearmove, which signal shifts in momentum direction by considering changes in the Exponential Moving Average (EMA) of the closing price. When RSI indicates bullish momentum and the closing price's EMA exhibits positive changes, bullmove is triggered, signifying the start of a bullish phase. Conversely, when RSI suggests bearish momentum and the closing price's EMA shows negative changes, bearmove is activated, marking the beginning of a bearish phase. This systematic approach helps in understanding the current trend of the price. The script visually emphasizes these phases on the chart using plot shape markers, providing traders with clear indications of trend shifts.
Benefits of Using Trend Cloud:
Comprehensive Momentum Assessment: The script offers a holistic view of market momentum by incorporating RSI readings and changes in the closing price's EMA, enabling traders to identify both bullish and bearish phases effectively.
Structured Trend Recognition: With the calculation of boolean variables, the script provides a structured approach to recognizing shifts in momentum direction, enhancing traders' ability to interpret market dynamics.
Visual Clarity: Plotshape markers visually highlight the start and end of bullish and bearish phases on the chart, facilitating easy identification of trend shifts and helping traders to stay informed.
Prompt Response: Traders can promptly react to changing market conditions as the script triggers alerts when bullish or bearish phases begin, allowing them to seize potential trading opportunities swiftly.
Informed Decision-Making: By integrating various indicators and visual cues, the script enables traders to make well-informed decisions and adapt their strategies according to prevailing market sentiment, ultimately enhancing their trading performance.
How to use this feature:
The most effective way to maximize the benefits of this feature is to use it in conjunction with other key indicators and visual cues. By combining the color-coded clouds, which indicate bullish and bearish sentiment, with other features such as IS candles, microtrend candles, volume candles, and sentimeter candles, traders can gain a comprehensive understanding of market dynamics. For instance, aligning the color of the clouds with the trend direction indicated by IS candles, microtrend candles, and sentimeter candles can provide confirmation of trend strength or potential reversals.
Furthermore, traders can leverage the trend cloud as a trailing stop-loss tool for long entries, enhancing risk management strategies. By adjusting the stop-loss level based on the color of the cloud, traders can trail their positions to capture potential profits while minimizing losses. For long entries, maintaining the position as long as the cloud remains green can help traders stay aligned with the prevailing bullish sentiment. Conversely, a shift in color from green to red serves as a signal to exit the position, indicating a potential reversal in market sentiment and minimizing potential losses. This integration of the trend cloud as a trailing stop-loss mechanism adds an additional layer of risk management to trading strategies, increasing the likelihood of successful trades while reducing exposure to adverse market movements.
Moreover, the red cloud serves as an indicator of decay in option premiums and potential theta effect, particularly relevant for options traders. When the cloud turns red, it suggests a decline in option prices and an increase in theta decay, highlighting the importance of managing options positions accordingly. Traders may consider adjusting their options strategies, such as rolling positions or closing out contracts, to mitigate the impact of theta decay and preserve capital. By incorporating this insight into options pricing dynamics, traders can make more informed decisions about their options trades.
Scalping Opportunities (UpArrow and DownArrow):
Working Principle:
The feature calculates candlestick values based on the open, high, low, and close prices of each bar. By comparing these derived candlestick values, it determines whether the current candlestick is bullish or bearish. Additionally, it signals when there is a change in the color (bullish or bearish) of the derived candlesticks compared to the previous bar, enabling traders to identify potential shifts in market sentiment. This is a long only strategy, hence the signals are plotted only when the Trend Cloud is Green (Bullish).
Benefits of using UpArrow and DownArrow:
Clear Visualization: By employing color-coded candlesticks, the script offers traders a visually intuitive representation of market sentiment, enabling quick interpretation of prevailing conditions.
Signal Identification: Its capability to detect shifts in market sentiment serves as a valuable tool for identifying potential trading opportunities, facilitating timely decision-making and execution.
Long-Only Strategy: The script selectively plots signals only when the trend cloud is green, aligning with a bullish bias and enabling traders to focus on long positions during favorable market conditions.
Up arrows indicate potential long entry points, complementing the bullish bias of the trend cloud. Conversely, down arrows signify an active pullback in progress, signaling caution and prompting traders to refrain from entering long positions during such periods.
How to use this feature:
Confirmation: Confirm bullish market conditions with the Trend Cloud indicator. Ensure alignment between trend cloud signals, candlestick colors, and arrow indicators for confident trading decisions.
Entry Signals: Look for buy signals within a green trend cloud, indicated by bullish candlestick color changes and up arrows, suggesting potential long entry points aligned with the prevailing bullish sentiment.
Wait Signals: Exercise caution when encountering down arrows, which signify wait signals or active pullbacks in progress. Avoid entering long positions during these periods to avoid potential losses.
Exit Strategy: Use trend cloud color changes as signals to exit long positions. When the trend cloud shifts color, consider closing out long positions to lock in profits or minimize losses.
Profit Management: It's important to book or lock in some profits early on in option buying. Consider taking partial profits when the trade is in your favor and trail the remaining position to maximize gains on favorable trades.
Risk Management: Implement stop-loss orders or trailing stops to manage risk effectively. Exit positions promptly if sentiment shifts or if price movements deviate from the established trend, safeguarding capital.
Up and Down Signals:
Working Principle:
This feature calculates Trailing Stoploss (TSL) using the Average True Range (ATR) to dynamically adjust the stop level based on price movements. It generates buy signals when the price crosses above the trailing stop and sell signals when it crosses below. These signals are plotted on the chart and trigger alerts, signaling potential trading opportunities. Additionally, the script selectively plots Up and Down signals only when the Implementation Shortfall Calculation identifies scalp opportunities, independent of the prevailing price trend.
Benefits of using Up and Down Signals:
Trailing Stoploss: The script employs an ATR-based trailing stop, allowing traders to adjust stop levels dynamically in response to changing market conditions, thereby maximizing profit potential and minimizing losses.
Clear Signal Generation: Buy and sell signals are generated based on price interactions with the trailing stop, providing clear indications of entry and exit points for traders to act upon.
Alert Notifications: The script triggers alerts when buy or sell signals are generated, ensuring traders remain informed of potential trading opportunities even when not actively monitoring the charts.
Scalping Opportunities: By incorporating Implementation Shortfall Calculation, the script identifies scalp opportunities, enabling traders to capitalize on short-term price movements irrespective of the prevailing trend.
How to use this feature:
Signal Interpretation: Interpret Up signals as opportunities to enter long positions when the price crosses above the trailing stop, and Down signals as cues to exit.
Alert Monitoring: Pay attention to alert notifications triggered by the script, indicating potential trading opportunities based on signal generation.
Scalping Strategy: When Up and Down signals are plotted alongside scalp opportunities identified by the Implementation Shortfall Calculation, consider scalping trades aligned with these signals for short-term profit-taking, regardless of the overall market trend.
Consideration of Trend Cloud: Remember that this feature does not account for the underlying trend provided by the Trend Cloud feature. Consequently, the take profit levels generated by the trailing stop may be smaller than those derived from trend-following strategies. It's advisable to supplement this feature with additional trend analysis to optimize profit-taking levels and enhance overall trading performance.
Chart Timeframe Support and Resistance:
Working Principle:
This feature serves to identify and visualize support and resistance levels on the chart, primarily based on the chosen Chart Timeframe (CTF). It allows users to specify parameters such as the number of bars considered on the left and right sides of each pivot point, as well as line width and label color. Moreover, users have the option to enable or disable the display of these levels. By utilizing functions to calculate pivot highs and lows within the specified timeframe, the script determines the highest high and lowest low surrounding each pivot point.
Additionally, it defines functions to create lines and labels for each detected support and resistance level. Notably, this feature incorporates a trading method that emphasizes the concept of resistance turning into support after breakouts, thereby providing valuable insights for traders employing such strategies. These lines are drawn on the chart, with colors indicating whether the level is above or below the current close price, aiding traders in visualizing key levels and making informed trading decisions.
Benefits of Chart Timeframe Support and Resistance:
Identification of Price Levels: Support and resistance levels help traders identify significant price levels where buying (support) and selling (resistance) pressure may intensify. These levels are often formed based on historical price movements and are regarded as areas of interest for traders.
Decision Making: Support and resistance levels assist traders in making informed trading decisions. By observing price reactions near these levels, traders can gauge market sentiment and adjust their strategies accordingly. For example, traders may choose to enter or exit positions, set stop-loss orders, or take profit targets based on price behavior around these levels.
Risk Management: Support and resistance levels aid in risk management by providing reference points for setting stop-loss orders. Traders often place stop-loss orders below support levels for long positions and above resistance levels for short positions to limit potential losses if the market moves against them.
How to use this feature:
Planning Long Positions: When considering long positions, it's advantageous to strategize when the price is in proximity to a support level identified by the script. This suggests a potential area of buying interest where traders may expect a bounce or reversal in price. Additionally, confirm the bullish bias by ensuring that the trend cloud is green, indicating favorable market conditions for long trades.
Waiting for Breakout: If long signals are generated near resistance levels detected by the script, exercise patience and wait for a breakout above the resistance. A breakout above resistance signifies potential strength in the upward momentum and may present a more opportune moment to enter long positions. This approach aligns with trading methodologies that emphasize confirmation of bullish momentum before initiating trades.
Settings:
The Index Constituent Analysis setting empowers users to input the constituents of a specific index, facilitating the analysis of market sentiments based on the performance of these individual components. An index serves as a statistical measure of changes in a portfolio of securities representing a particular market or sector, with constituents representing the individual assets or securities comprising the index.
By providing the constituent list, users gain insights into market sentiments by observing how each constituent performs within the broader index. This analysis aids traders and investors in understanding the underlying dynamics driving the index's movements, identifying trends or anomalies, and making informed decisions regarding their investment strategies.
This setting empowers users to customize their analysis based on specific indexes relevant to their trading or investment objectives, whether tracking a benchmark index, sector-specific index, or custom index. Analyzing constituent performance offers a valuable tool for market assessment and decision-making.
Example: BankNifty Index and Its Constituents
Illustratively, the BankNifty index represents the performance of the banking sector in India and includes major banks and financial institutions listed on the National Stock Exchange of India (NSE). Prominent constituents of the BankNifty index include:
State Bank of India (SBIN)
HDFC Bank
ICICI Bank
Kotak Mahindra Bank
Axis Bank
IndusInd Bank
Punjab National Bank (PNB)
Yes Bank
Federal Bank
IDFC First Bank
By utilizing the Index Constituent Analysis setting and inputting these constituent stocks of the BankNifty index, traders and investors can assess the individual performance of these banking stocks within the broader banking sector index. This analysis enables them to gauge market sentiments, identify trends, and make well-informed decisions regarding their trading or investment strategies in the banking sector.
Example: NAS100 Index and Its Constituents
Similarly, the NAS100 index, known as the NASDAQ-100, tracks the performance of the largest non-financial companies listed on the NASDAQ stock exchange. Prominent constituents of the NAS100 index include technology and consumer discretionary stocks such as:
Apple Inc. (AAPL)
Microsoft Corporation (MSFT)
Amazon.com Inc. (AMZN)
Alphabet Inc. (GOOGL)
Facebook Inc. (FB)
Tesla Inc. (TSLA)
NVIDIA Corporation (NVDA)
PayPal Holdings Inc. (PYPL)
Netflix Inc. (NFLX)
Adobe Inc. (ADBE)
By inputting these constituent stocks of the NAS100 index into the Index Constituent Analysis setting, traders and investors can analyze the individual performance of these technology and consumer discretionary stocks within the broader NASDAQ-100 index. This analysis facilitates the evaluation of market sentiments, identification of trends, and informed decision-making regarding trading or investment strategies in the technology and consumer sectors.
Example: FTSE 100 Index and Its Constituents
The FTSE 100 index represents the performance of the 100 largest companies listed on the London Stock Exchange (LSE) by market capitalization. Some notable constituents of the FTSE 100 index include:
HSBC Holdings plc
BP plc
GlaxoSmithKline plc
Unilever plc
Royal Dutch Shell plc
AstraZeneca plc
Diageo plc
Rio Tinto plc
British American Tobacco plc
Reckitt Benckiser Group plc
By inputting these constituent stocks of the FTSE 100 index into the Index Constituent Analysis setting, traders and investors can analyze the individual performance of these diverse companies within the broader UK market index. This analysis facilitates the evaluation of market sentiments, identification of trends, and informed decision-making regarding trading or investment strategies in the UK market.
This comprehensive approach enables users to dissect index performance effectively, providing valuable insights for investors and traders across different markets and sectors.
Index Selection - Index Selection allows traders to specify the index for Sentimeter calculations, enabling customization for Call and Put Option charts corresponding to the chosen index.
Support and Resistance Levels - Set the left and right bars to consider pivot high and low to draw Support and resistance lines. Linewidth setting to help increase the width of the Support and Resistance lines. Label Color to change the color of the labels.
Style Section Colors to allow users to customize the color scheme to their liking.
Crypto Narratives: Relative StrengthThis indicator offers a unique perspective on the crypto market by focusing on the relative strength of different narratives. It aggregates RSI data from multiple tokens associated with each narrative, providing a comprehensive view of the sentiment and momentum behind these themes. You can use it to take profit, find W bottoms or M tops to enter and exit narratives. and generally see what hot at the moment with lots of pretty colours.
This indicator tracks the relative strength of various crypto narratives using the Relative Strength Index (RSI) of representative tokens. It allows users to gauge the momentum and sentiment behind different themes in the cryptocurrency market.
Functionality:
The indicator calculates the average RSI values for the current leading tokens associated with ten different crypto narratives:
- AI (Artificial Intelligence)
- Ordinals
- DeFi (Decentralized Finance)
- Memes
- Gaming
- Level 1 (Layer 1 Protocols)
- Sol Betas (Solana Ecosystem)
- Storage/DePin
- RWA (Real-World Assets)
- ReStaking
he average RSI values for each narrative are calculated by summing the RSI values of the associated tokens and dividing by the number of tokens. The indicator plots the 3-period simple moving average (SMA) of each narrative's RSI using different colors and line styles.
Users can customize the RSI length, line width, and label offset through the input options. If the "Show Labels" option is enabled, the indicator displays labels for each narrative's RSI value on the most recent bar.
The indicator also includes horizontal lines representing overbought and oversold levels, which can be adjusted through the input options. Alerts are triggered when a narrative's RSI crosses above the overbought level or below the oversold level. The alerts include the narrative name, RSI value, and a suggestion to consider selling or buying.
Machine Learning: Multiple Logistic Regression
Multiple Logistic Regression Indicator
The Logistic Regression Indicator for TradingView is a versatile tool that employs multiple logistic regression based on various technical indicators to generate potential buy and sell signals. By utilizing key indicators such as RSI, CCI, DMI, Aroon, EMA, and SuperTrend, the indicator aims to provide a systematic approach to decision-making in financial markets.
How It Works:
Technical Indicators:
The script uses multiple technical indicators such as RSI, CCI, DMI, Aroon, EMA, and SuperTrend as input variables for the logistic regression model.
These indicators are normalized to create categorical variables, providing a consistent scale for the model.
Logistic Regression:
The logistic regression function is applied to the normalized input variables (x1 to x6) with user-defined coefficients (b0 to b6).
The logistic regression model predicts the probability of a binary outcome, with values closer to 1 indicating a bullish signal and values closer to 0 indicating a bearish signal.
Loss Function (Cross-Entropy Loss):
The cross-entropy loss function is calculated to quantify the difference between the predicted probability and the actual outcome.
The goal is to minimize this loss, which essentially measures the model's accuracy.
// Error Function (cross-entropy loss)
loss(y, p) =>
-y * math.log(p) - (1 - y) * math.log(1 - p)
// y - depended variable
// p - multiple logistic regression
Gradient Descent:
Gradient descent is an optimization algorithm used to minimize the loss function by adjusting the weights of the logistic regression model.
The script iteratively updates the weights (b1 to b6) based on the negative gradient of the loss function with respect to each weight.
// Adjusting model weights using gradient descent
b1 -= lr * (p + loss) * x1
b2 -= lr * (p + loss) * x2
b3 -= lr * (p + loss) * x3
b4 -= lr * (p + loss) * x4
b5 -= lr * (p + loss) * x5
b6 -= lr * (p + loss) * x6
// lr - learning rate or step of learning
// p - multiple logistic regression
// x_n - variables
Learning Rate:
The learning rate (lr) determines the step size in the weight adjustment process. It prevents the algorithm from overshooting the minimum of the loss function.
Users can set the learning rate to control the speed and stability of the optimization process.
Visualization:
The script visualizes the output of the logistic regression model by coloring the SMA.
Arrows are plotted at crossover and crossunder points, indicating potential buy and sell signals.
Lables are showing logistic regression values from 1 to 0 above and below bars
Table Display:
A table is displayed on the chart, providing real-time information about the input variables, their values, and the learned coefficients.
This allows traders to monitor the model's interpretation of the technical indicators and observe how the coefficients change over time.
How to Use:
Parameter Adjustment:
Users can adjust the length of technical indicators (rsi_length, cci_length, etc.) and the Z score length based on their preference and market characteristics.
Set the initial values for the regression coefficients (b0 to b6) and the learning rate (lr) according to your trading strategy.
Signal Interpretation:
Buy signals are indicated by an upward arrow (▲), and sell signals are indicated by a downward arrow (▼).
The color-coded SMA provides a visual representation of the logistic regression output by color.
Table Information:
Monitor the table for real-time information on the input variables, their values, and the learned coefficients.
Keep an eye on the learning rate to ensure a balance between model adjustment speed and stability.
Backtesting and Validation:
Before using the script in live trading, conduct thorough backtesting to evaluate its performance under different market conditions.
Validate the model against historical data to ensure its reliability.
TradesAI - Elite (Premium)This is an all-inclusive, premium indicator that focuses mainly on price action analysis, a form of looking at raw price data and market structure to analyze and capture areas of interest where price could react.
This indicator is a perfect trading companion that saves you a lot of time in trading price action. Some of the popular methods that use price action analysis are "Smart Money Concepts (SMC)", "Inner Circle Trader (ICT)", and "Institutional Trading".
🔶 POWERFUL TOOLS
The indicator combines three main tools as a trading suite:
Trendlines
Market Structure Breakouts (MSB)
Order Blocks (OBs) and Reversal Order Blocks (ROBs)
These 3 main tools are interconnected together. Below we go over each, and then explain how and why they are brought in together. Please also note that the indicator's settings have tooltips next to most of them, with more detailed information.
🔶 TRENDLINES
This indicator automatically draws the most relevant Trendlines from pivot high/pivot low (based on the defined settings) as origins, while keeping track of candle closes across these Trendlines to adjust or invalidate accordingly.
The indicator will draw all possible Trendlines up to the maximum allowed by TradingView's PineScript. It uses a bullish pivot high candle to draw downtrends, and a bearish pivot low candle to draw uptrends. The algorithm will draw the most suitable active Trendlines from those origin points.
The indicator takes the origin point as the first point of the Trendline, then starts looking for the immediate next same-type candle (bullish to bullish or bearish to bearish), to draw the Trendline between the origin candle and this newer candle.
An uptrend is a ray connecting two bearish candles, as long as the second candle has a Low higher than the low of the origin (first) candle. A downtrend is a ray connecting two bullish candles, as long as the second candle has a high lower than the high of the origin (first) candle.
Upon drawing, the indicator then starts monitoring and adjusting this Trendline, by keeping the origin always the same but changing the second point. The goal is to keep reducing the slope of the Trendline till it is at 0 degrees (horizontal line). That then makes the Trendline "final". Note that you have the option to keep all Trendlines or just show the final, in the settings.
So, the algorithm has three states for the Trendlines:
Initial: not tested, meaning price hasn't yet broken through it and closed a candle beyond it, to cause a re-adjustment of this Trendline.
Broken: a candle hard closed (opened and closed) across it but still, the direction of the trend is maintained with a new Trendline from the same origin – could be replaced (or kept on the chart as a "backside", which is what we call a broken Trendline to be tested from the opposite side) with a new Trendline from the same origin, to the newest candle that caused the break to happen, as then it becomes the new second point of that Trendline.
Final: a candle hard closed (opened and closed) across it and can't draw a new Trendline from the same origin maintaining the direction of the trend (so an uptrend becomes a downtrend or a downtrend becomes an uptrend at this point, which is not allowed). This marks the end of the Trendline adjustment for that origin.
To summarize the Trendlines algorithm, imagine starting from a candle and drawing the Trendline, then keep re-adjusting it to make its slope less and less, till it becomes a horizontal line. That's the final state.
Here is a step-by-step scenario to demonstrate the algorithm:
Notice how first an Uptrend (green ray) is drawn between point A origin pivot (picked by our smart algorithm) and point B, both marked by green arrows:
Uptrend then turned into backside (where it flips from diagonal support to resistance where liquidity potentially resides):
Then a new uptrend is drawn from the same point A origin pivot to a new point B matching the filters in settings.
Finally, it turns also into a backside and is considered final because no more uptrends could be drawn from the same point A origin point.
Unlike traditional Trendline tools, this indicator takes into account numerous rules for each candlestick to determine valid support and resistance levels, which act as liquidity zones.
Unlike conventional Trendline tools, this indicator allows the user to define the pivot point left and right length to capture the proper ones as origins, then automatically recognizes and extends lines from them as liquidity zones where a reaction is expected. Moreover, the indicator monitors those Trendlines in real-time to switch them from buying to selling zones, and vice-versa, as the price structure changes.
Features
Log vs. Linear scale switch to show different Trendlines accordingly. When updating the Trendlines, or deciding whether Touches/Hard Closes are met, it makes a difference.
Ability to show all forms of Trendlines, final Trendlines or just backside Trendlines.
Why is it used?
For experienced traders, it offers the advantage of time efficiency, while new traders can bypass the steep learning curve of drawing Trendlines manually, which could practically be drawn between any two candlesticks on the chart (many variations).
🔶 MARKET STRUCTURE BREAKOUT (MSB)
The Market Structure Breakouts (MSB) tool is a trading tool that detects specific patterns on trading charts and provides ‘take profit’ regions based on the extended direction of the identified pattern. A breakout is a potential trading opportunity that presents itself when an asset's price moves away from a zone of accumulation (i.e. above a resistance level or below a support level) on increasing volume. The most famous form of market structure breakout is double/triple tops/bottoms, or what is referred to as W or M breakouts.
See this example below of how our MSB smart algorithm picked the local bottom of INDEX:BTCUSD
Here is a step-by-step scenario to demonstrate the algorithm:
First, the algorithm picks the pivot points according to our Machine Learning (ML) model, which uses Average True Range (ATR) and Moving Averages of various types to decide. It will then signal a Market Structure Breakout (MSB):
You may either short (sell) this MSB towards the targets (dotted green lines) and/or buy (long) at the targets (dotted green lines). Usually, these targets provide scalp moves, according to our model, but they may also act as strong reversal points on the chart.
Unlike standard indicators, the MSB tool identifies patterns that may not appear in every time frame due to specific conditions that need to be met, including Average True Range (ATR) and Moving Averages at the time of creation. Once these patterns are identified, the tool gives ‘take profit’ regions in the direction of the trading pattern and even allows for trading in the opposite direction (contrarian/counter-trend scalps) once those regions are reached. A confirmed breakout has the potential to drive the price to these specific targets, calculated based on our Machine Learning (ML) model. The Targets are the measured moves placed from the breakout point.
Features
Log vs. Linear scale switch to show different MSBs accordingly based on the ratios.
Detects trading patterns with specific conditions.
Ability to specify how sensitive the pivot points are for capturing market structure breakouts.
Provides take profit regions in the extended direction of the pattern.
Allows for versatile trading styles by permitting trades in the opposite direction (contrarian or counter-trend) once the take profit region is reached.
Highlights 2 levels of interest for potential trade initiation (or as targets of the MSB move).
🔶 ORDER BLOCK (OB) and REVERSAL ORDER BLOCK (ROB)
Before diving deeper into OBs and ROBs, you may consider the following chart for a general understanding of price ladders, and how they break. This is a bearish price ladder leaving Lower Lows and Lower Highs after an initial Low and High (L->H->LL->LH). Bullish ladders are the opposite (H->L->HH->HL).
In this bearish ladder case, notice the numbers representing the highs made (being lower). While this is a clean structure, markets don't always create such clean ladders, but you may switch to a higher timeframe to see it in a clearer form (usually, you will be able to spot it there).
In SMC or ICT concepts, the "Break Of Structure (BOS)" is pretty much creating a new lower low (LL) for the bearish ladder (and the creation of a higher high (HH) for the bullish ladder). By doing so, markets are grabbing liquidity below these levels and could either continue the ladder or stop/flip it. This gives you the context of how the ladder prints.
Price usually ends the ladder with a "Change of Character (CHoCH)", which represents a BOS (to grab liquidity) followed by an aggressive move in the opposite direction, which could lead the market to close the gaps and balance out. It is considered a good practice to then target liquidity in the opposite direction when a CHoCH happens, meaning for a bearish ladder you may target the pivots marked by 3, 2 and 1 at the top (start of the ladder).
Now we move to Order Blocks (OBs) and Reversal Order Blocks (ROBs). Think of them as sniper zones or micro ladders inside the bigger ladder/structure.
Order Blocks are usually used as zones of support and resistance on a trading chart where liquidity is present, or what some traders call "potential institutional interest zones". Order Blocks can be observed at the beginning of these strong moves of BOS or the CHoCH, leaving behind a zone (one or more candles) to be revisited later to balance the market. Therefore, these are interesting levels to place Limit/Market orders (sell the peaks or buy the valleys) instead of doing so at the swing highs or swing lows of the ladder (where BOS or CHoCH happened). The idea here is that the price could go deep into the ladder's step (peak or valley), and by doing so, it usually goes to these zones.
A bullish Order Block (Valley-OB) is the last bearish candle of a downtrend before a sequence of bullish candles (thus forming a "Valley"). A bearish Order Block (Peak-OB) is the last bullish candle of an uptrend before a sequence of bearish candles (thus forming a "Peak"). Our indicator captures the full range zones of the OB meaning not only the last candle but the sequence of same-type candles immediately next to it, which creates a zone, thus the name "OB/ROB Zone". Not only does the tool mark those levels on the chart, but it also has a smart tracking algorithm to remove the appropriate levels dynamically. It will monitor, candle by candle, what is happening to all the OBs/ROBs, and update them according to how they are being tested/visited (eg. weak testing being a touch, and strong testing being a touch of the same colour candle).
Bullish Valley-OB:
Bearish Peak-OB:
The indicator follows our concept of "Zone Activation" to determine whether to mark zones with dashed or solid lines.
If we take a bearish Peak-OB as an example, notice how it first gets drawn with a dashed red line (as the algorithm monitors how far the price moved away from the zone):
As price moves away (distance based on our Machin Learning (ML) model), it turns into solid lines:
Some people prefer to enter market orders or limit (pending) orders close to the zone, while others wait for it to hit. You may wait for these zones to turn into solid lines (meaning that the price made a decent move away from it before revisiting it). It depends on your trading strategy.
When Order Block (OB) zones break instead of holding the ladder, they turn into what we call Reversal Order Blocks (ROB); our algorithm of flipping these zones where price could react from the other side of the OB. Our algorithm monitor and highlight the most suitable ones to trade, based on +30 conditions and variables by our Machine Learning (ML) models. Examples of ROBs in the SMC or ICT trading community are a "Breaker Block", a "Mitigation Block" or a "Unicorn Setup". However, our algorithm filters the zones based on many factors such as ratios of price movement before, inside and after these zones, along with many other factors.
The algorithm monitors the ratios of how price moved into and away from the OB/ROB, as well as the type of move happening, to then filter the ones that are considered of high probability to break/not do a reaction.
A bullish Valley-OB (green) turns into a bearish Valley-ROB (neon red) where you may short (sell), while a bearish Peak-OB (red) turns into a bullish Peak-ROB (neon green) where you may long (buy).
Example of a bullish Valley-OB that turned into a bearish Valley-ROB:
Features
Log vs. Linear scale switch to show OBs/ROBs accordingly based on the ratios and the price action around these zones (before and after creation).
Uses our Machine Learning (ML) model to determine relevant Order Blocks (OBs) to show or hide based on price action.
Considers distribution and accumulation candles to find relevant Order Blocks.
Various types of triggers to mark those Order Blocks and their zones: breakout, close, hard close (open and close) or full close (low, high, open and close).
Monitors the 1:1 expansion of price from key areas of interest, which would change the importance of the zones through our concept of “Zone Activation”.
Allows for customization in the settings to display different types of Order Blocks (e.g., tested or untested).
Marking and invalidating levels based on many variables, including single or multiple candle zones, touching/closing beyond specific levels, weak/strong testing criteria, price tolerance % (near a level), and many more.
Provides color-coded visual representation for easier interpretation.
Why is it used?
Order Blocks (OB) and Reversal Order Blocks (ROB) represent the building blocks of price ladders, in conjunction with Swing Highs and Swing Lows. By identifying where liquidity is potentially present, they become common targets for big market players. Additionally, they provide clear invalidation points based on various types of candle closes, such as hard closes or simply a candle close.
One strategy that could be used is to open positions at these OB or ROB Levels as long as the chart maintains the trend (ladder), for a potentially higher win rate (or against it for a quick scalp). Be mindful of the breaking of a ladder or the building of a new one. A ladder breaks with a hard close (open and close) of a candle across the closest two levels; a ladder builds by not breaking back down across the levels it has tested. By definition, strong ladders will have a few untested levels and come back to wick them but still retain the structure of the laddering direction (trending with Lower Lows + Lower Highs or Higher Lows + Higher Highs).
🔶 COMBINING ALL TOOLS
In summary, Trendlines could be great tools to give you a general context of whether the price is laddering up or down. Once you spot the ladder, your goal is to either trade in its direction (not to go against the trend) or to counter-trend trade (contrarian). To do so, you could use the MSB tool to spot these BOS/CHoCH. And to give you more precise entries, you may rely on the OB/ROB zones which usually mesh over the ladder, to provide a sniper entry!
🔶 RISK DISCLAIMER
Trading is risky, and most day traders lose money. The risk of loss in trading can be substantial. Decisions to buy, sell, hold or trade in securities, commodities and other investments involve risk and are best made based on the advice of qualified financial professionals. Past performance does not guarantee future results. All content is to be considered hypothetical, selected after the fact, in order to demonstrate our product and should not be construed as financial advice. You should therefore carefully consider whether such trading is suitable for you in light of your financial condition.
Trendlines [TradesAI]What is it?
This indicator allows the user to pick any Candle (preferably a Pivot, for better results) to draw the most relevant Trendlines from it as Origin, while keeping track of candle closes across these Trendlines to adjust or invalidate accordingly.
It allows for up to 2 Origins to be picked on chart. Remember to pick a Bullish candle to draw Downtrends, and a Bearish candle to draw Uptrends. The algorithm will draw the most suitable Active Trendlines from those Origin points.
How does it do it?
The indicator takes the Origin point as the first point of the Trendline, then starts looking for the immediate next same-type candle (Bullish to Bullish or Bearish to Bearish), to draw the Trendline between the Origin candle and this newer candle.
An Uptrend is a ray connecting two Bearish candles, as long as the second candle has a Low higher than the Low of the Origin (first) candle. A Downtrend is a ray connecting two Bullish candles, as long as the second candle has a High lower than the High of the Origin (first) candle.
Upon drawing, the indicator then starts monitoring and adjusting this Trendline, by keeping the Origin always the same, but changing the second point. The goal is to keep reducing the slope of the Trendline till it is at 0 degrees (horizontal line). That then makes the Trendline "Final".
So, the algorithm has 3 States for the Trendlines:
Initial: not tested, meaning price hasn't yet broken through it and closed a candle beyond it, to cause a re-adjustment of this Trendline.
Broken: candle Hard Closed (its Open and Close) across it but still the direction of the Trend is maintained with a new Trendline from the same Origin – could be replaced (or kept on chart as "Backside", which is what we call a Broken Trendline to be tested from the opposite side) with a new Trendline from the same Origin, to the newest candle that caused the break to happen, as then it becomes the new second point of that trendline.
Final: candle Hard Closed across it and can't draw a new Trendline from the same Origin maintaining the direction of the Trend (so an uptrend becomes a downtrend or a downtrend becomes an uptrend at this point, which is not allowed). This marks the end of Trendline adjustment for that Origin.
To summarize the algorithm, imagine starting from a candle and drawing the trendline, then keep re-adjusting it to make its slope less and less, till it becomes a horizontal line. That's the final state.
Unlike traditional trendline tools, this indicator takes into account numerous rules for each candlestick to determine valid support and resistance levels, which act as Liquidity Zones.
What does it do differently?
Unlike conventional trendline tools, this indicator allows the user to pick the Pivot point as Origin, then automatically recognizes and extends lines from them as Liquidity Zones where a reaction is expected. Moreover, the indicator monitors those trendlines in real-time to switch them from Buying to Selling zones, and vice-versa, as price structure changes.
Features
Log vs. Linear scale switch to show different trendlines accordingly. When updating the Trendlines, or deciding whether Touches/Hard Closes are met, it makes a difference.
Ability to show all forms of Trendlines, Final Trendlines or just Backside Trendlines.
Why is it used?
For experienced traders, it offers the advantage of time-efficiency, while new traders can bypass the steep learning curve of drawing trendlines manually, which could practically be drawn between any two candlesticks on the chart (unlimited variations).
Defensive Nexus ShieldIndicator: Defensive Nexus Shield , capturing profits in the breakout trend.
Defensive Nexus Shield is a trend signal and support resistance display. Identify the short-term bullish and bearish defensive area through the effective extreme value of bulls and bears, and trigger trading opportunities when there are characteristics of breaking through the defensive area.
Usage:
Signal direction: "B" means that the bulls attacked and the bears failed, and entered a bullish trend. "S" means that the bears attacked and the bulls failed, entering a bearish trend.
Defense point of bulls and bears: "Blue line" represents the bearish defense line. The "green line" represents the bullish defensive line. The "purple line" represents the junction of bulls and bears.
Tip I:
Trend signal. When the signal "B" appears, it means that the bulls are attacking, and the market is bullish. Please refer to the signal for corresponding operations.
Tip II:
Breakout signal. After the trend signal appears, if the trend is confirmed, it will continue to enter the breakthrough signal.
Take the bull signal as an example. When B appears, the price continues to rise and breaks through the blue line, the bearish defense line, which triggers the bullish breakthrough signal. At this time, the bulls will strengthen. Provide signal reference for traders who do short-term breakthrough transactions.
*The signals in the indicators are for reference only and not intended as investment advice. Past performance of a strategy is not indicative of future earnings results.
Update - 2023.09.05
Optimize the alarm function. If you need to monitor the "B" or "S" signal, when creating an alarm, set the condition bar to:
Defensive Nexus Shield --> "B" or "S" --> Crossing Up --> value -> 0.5
KD Momentum MatrixI believe many traders think that fluctuation is very troublesome. The money earned in the trends is easily lost in the fluctuation. Because it is hard to find the high and low points of range.
Indicator: KD Momentum Matrix is the best choice for analyzing fluctuation, with potential volatility reminder.
KD Momentum Matrix is not only a momentum indicator, but also a short-term indicator. It divides the movement of the candle into long and short term trends, as well as bullish and bearish momentum. It identifies the points where the bullish and bearish momentum increases and weakens, and effectively capture profits.
💠Usage:
Potential volatility reminder:
"strong" represents an increase in potential volatility, indicating that the fluctuation of the candles may increase in the future.
"weak" represents a decrease in potential volatility, indicating that the fluctuation of the candles may decrease in the future.
Momentum column:
·The short-term momentum column, the "green and red columns", represents the short-term bullish and bearish momentum, and is the main reference feature of this indicator.
·Long term momentum columns, known as "dark green and purple columns", represent long-term bullish and bearish momentum and serve as auxiliary reference feature.
Note: Long and short term momentum columns usually have the same direction, and in rare cases, they may deviate. Sometimes there may be overlapping long and short term columns. The reference bullish and bearish directions are consistent regardless of the long and short term.
🎈Tip I:
When there is a potential volatility reminder: "weak" or "strong", it is important to note that there may be something different on amplitude of fluctuation in the future. If you have a position, you need to think new about the direction of your position.
🎈Tip II:
Taking the main reference feature - the short-term momentum column as an example, when the momentum column changes from red to green, it indicates short-term bullishness, and there may be a small upward trend. If the price happens to be near the bottom of the visible range at this time, consider executing a round of opening long positions or closing short positions.
When holding a long position, the bearish signal indicated by the momentum bar is used for departure, i.e. the momentum bar changes from green to red.
🎈Advanced tip I:
Deviation. The long and short term momentum columns are mostly consistent, but occasionally there may be deviations, indicating intense competition between bulls and bears. In the short term, it is recommended not to engage in trading because of its high uncertainty.
🎈Advanced tip II:
Volatility indicators can also be used in trends, but it is important to remember the idea of following the trend. For example, when there is a callback during an upward trend, we choose to buy or add a long position when the momentum bar becomes a long signal.
*The signals in the indicators are for reference only and not intended as investment advice. Past performance of a strategy is not indicative of future earnings results.
Update -
Optimize the alarm function. If you need to monitor the "strong " or "weak" signal, when creating an alarm, set the condition bar to:
KD Momentum Matrix --> "strong " or "weak" --> Crossing Up --> value -> 1
Machine Learning: STDEV Oscillator [YinYangAlgorithms]This Indicator aims to fill a gap within traditional Standard Deviation Analysis. Rather than its usual applications, this Indicator focuses on applying Standard Deviation within an Oscillator and likewise applying a Machine Learning approach to it. By doing so, we may hope to achieve an Adaptive Oscillator which can help display when the price is deviating from its standard movement. This Indicator may help display both when the price is Overbought or Underbought, and likewise, where the price may face Support and Resistance. The reason for this is that rather than simply plotting a Machine Learning Standard Deviation (STDEV), we instead create a High and a Low variant of STDEV, and then use its Highest and Lowest values calculated within another Deviation to create Deviation Zones. These zones may help to display these Support and Resistance locations; and likewise may help to show if the price is Overbought or Oversold based on its placement within these zones. This Oscillator may also help display Momentum when the High and/or Low STDEV crosses the midline (0). Lastly, this Oscillator may also be useful for seeing the spacing between the High and Low of the STDEV; large spacing may represent volatility within the STDEV which may be helpful for seeing when there is Momentum in the form of volatility.
Tutorial:
Above is an example of how this Indicator looks on BTC/USDT 1 Day. As you may see, when the price has parabolic movement, so does the STDEV. This is due to this price movement deviating from the mean of the data. Therefore when these parabolic movements occur, we create the Deviation Zones accordingly, in hopes that it may help to project future Support and Resistance locations as well as helping to display when the price is Overbought and Oversold.
If we zoom in a little bit, you may notice that the Support Zone (Blue) is smaller than the Resistance Zone (Orange). This is simply because during the last Bull Market there was more parabolic price deviation than there was during the Bear Market. You may see this if you refer to their values; the Resistance Zone goes to ~18k whereas the Support Zone is ~10.5k. This is completely normal and the way it is supposed to work. Due to the nature of how STDEV works, this Oscillator doesn’t use a 1:1 ratio and instead can develop and expand as exponential price action occurs.
The Neutral (0) line may also act as a Support and Resistance location. In the example above we can see how when the STDEV is below it, it acts as Resistance; and when it’s above it, it acts as Support.
This Neutral line may also provide us with insight as towards the momentum within the market and when it has shifted. When the STDEV is below the Neutral line, the market may be considered Bearish. When the STDEV is above the Neutral line, the market may be considered Bullish.
The Red Line represents the STDEV’s High and the Green Line represents the STDEV’s Low. When the STDEV’s High and Low get tight and close together, this may represent there is currently Low Volatility in the market. Low Volatility may cause consolidation to occur, however it also leaves room for expansion.
However, when the STDEV’s High and Low are quite spaced apart, this may represent High levels of Volatility in the market. This may mean the market is more prone to parabolic movements and expansion.
We will conclude our Tutorial here. Hopefully this has given you some insight into how applying Machine Learning to a High and Low STDEV then creating Deviation Zones based on it may help project when the Momentum of the Market is Bullish or Bearish; likewise when the price is Overbought or Oversold; and lastly where the price may face Support and Resistance in the form of STDEV.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Machine Learning: Optimal Length [YinYangAlgorithms]This Indicator aims to solve an issue that most others face; static lengths. This Indicator will scan lengths from the Min to Max setting (1 - 400 by default) to calculate which is the most Optimal Length in the current market condition. Almost every Indicator uses a length in some part of their calculation, and this length is usually adjustable via the Settings; however it is generally a static fixed length. Static non changing lengths may not always produce optimal results. As market conditions change generally the optimal length will too. For this reason we have created this indicator.
This Indicator will create a Neutral (Min - Max Length), Fast (Min - Mid Length ((Max - Min) / 2)) and Slow (Mid Length ((Max - Min) / 2) - Max Length). This allows you to understand which the Optimal Fast, Slow and Neutral lengths are within the given Mix and Max length settings.
This Indicator then plots these Optimal Lengths as an Oscillator which can then be used within ANOTHER Indicator as a Source within its Settings. Stand alone this Indicator may not prove all that useful, however when its Lengths are inputted into another Indicator it may prove very useful. This allows other Indicators to use the Optimal Length within its calculations from the Settings rather than relying on simply a fixed length. Unfortunately this results in users needing to manually plug the Optimal Length plots into the second Indicator; but it also allows for endless possibilities with applying Machine Learning Optimal Lengths within both Traditional and Non-Traditional Indicators and may give other Pine Coders an easy and effective way to add Machine Learning auto adjustable lengths within their already created Indicators.
The beautiful part about this Indicator is that aside from inputting the Optimal Length Plot into another Indicator, there is no manual updating needed. When the Optimal Length changes, the change will automatically reflect in the other Indicator without the need for you to manually adjust its length. This may be very useful with both time preservation, as well as if there is an automated strategy based upon said Indicator that now won’t need manual intervention.
Tutorial:
By default this is what the Machine Learning: Optimal Length Indicator looks like. It is simply a way of both Displaying and Plotting our current Optimal Length so that we may then use it as a source within ANOTHER Indicator. This will allow the automation of an Optimal Length to be updated, rather than needing any manual input from yourself (aside from set up).
For instance if you set the start length to 1 and the end length to 400 (default settings), it will scan to find the optimal Length setting between 1 and 400. This features 3 types of lengths:
Fast (Green Line): 1-199 (from start length to half way of total)
Slow (Red Line): 200 - 400 (mid way to end length)
Neutral (Blue Line): 1 - 400 (start to end length)
By breaking down the Optimal Length detection into these 3 different types, we can see how the Optimal Length compares and changes based on the lengths allotted to them and how performance changes.
For instance, you may notice that both the Fast and Slow Optimal Length didn’t change much in the example above; however the Neutral Optimal Length changed quite a bit. This is due to the fact that the Neutral is inclusive of all lengths available and may be considered the more accurate due to that. However, this doesn’t mean the Fast and Slow lengths aren’t important and should be used. They may be useful for seeing how something fairs in a Fast and Slow standpoint.
If you change your TimeFrame from 15 minute to 1 Day, you’ll notice that the Optimal Lengths gravitate towards their upper bounds:
199 is max for Fast, it’s at 195
400 is max for Slow, its at 393
400 is max for Neutral, its at 399
The Optimal Length may move up to its upper bounds on Higher Time Frames because there is a lot of price action and long term data being displayed. This may lead to higher lengths performing better in a profitability standpoint since its data is based on so far back and such drastic price movements.
Below we’re going to go through a few examples, including the code so you may reproduce the example and have an understanding of how versatile Inputting an Optimal Length as a source may be within Traditional Indicators.
Adding the Machine Learning: Optimal Length to another Indicator:
You may add the Optimal Length to another Indicator as shown in the example above. In the example we are adding the ‘Machine Learning: Optimal Length - Neutral’ to our Neutral Length within the Settings. The external Indicator needs to have the ability to input the Optimal Length as a Source, this way it can automatically change within the external Indicator when the Optimal Length Indicator changes its Optimal Length.
Please note you may get an error within an external Indicator that accepts the Length as a Source if you don’t select the Machine Learning: Optimal Length. For instance, if you use ‘Close’ within BTC/USDT the length used would be ~36,000. This length is too long and will throw an error.
For this reason, we will ensure the Max Length that may be used is 1000.
Please note, on lower Time Frames you may need to adjust the Max Length. For instance if 20k bar data is used, the Max Length ‘may’ fail to load when going by default Min: 1 and Max: 400. Generally with most pairs it will load if your TradingView subscription is Premium or greater; however if it is less there is a chance it may fail. If it fails for you too often please lower the Max Length Amount; or send us a message we can look into a fix for this.
*** If it fails to load, please try removing the external Indicator and re-adding it and adding the Lengths back as a Source within the Settings. Sometimes it fails, but re-adding may fix it. If it keeps failing afterwards, reduce the Max Length Amount as mentioned above. ***
Simple Moving Average:
In this example above have the Fast, Slow and Neutral Optimal Length formatted as a Slow Moving Average. The first example is on the 15 minute Time Frame and the second is on the 1 Day Time Frame, demonstrating how the length changes based on the Time Frame and the effects it may have.
Here is the code for the example Indicator shown above. This example shows how you may use the Optimal Length as a Source and then use that Optimal Length and plot it as a Simple Moving Average:
//@version=5
indicator("Optimal Length - Backtesting - MA", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
plot(showNeutral ? optimalMA : na, color=color.blue)
plot(showFast ? optimalMA_fast : na, color=color.green)
plot(showSlow ? optimalMA_slow : na, color=color.red)
Bollinger Bands:
In the two examples above for Bollinger Bands we have first the 15 Minute Time Frame and then the 1 Day Time Frame. As described above in ‘Adding the Machine Learning: Optimal Length to another Indicator’ sometimes it may fail to load, for this reason in the 15 Minute it was reduced to a max of 300 Length.
Bollinger Bands are a way to see a Simple Moving Average (SMA) that then uses Standard Deviation to identify how much deviation has occurred. This Deviation is than Added and Subtracted from the SMA to create the Bollinger Bands which help Identify possible movement zones that are ‘within range’. This may mean that the price may face Support / Resistance when it reaches the Outer / Inner bounds of the Bollinger Bands. Likewise, it may mean the Price is ‘Overbought’ when outside and above or ‘Underbought’ when outside and below the Bollinger Bands.
By applying All 3 different types of Optimal Lengths towards a Traditional Bollinger Band calculation we may hope to see different ranges of Bollinger Bands and how different lookback lengths may imply possible movement ranges on both a Short Term, Long Term and Neutral perspective. By seeing these possible ranges you may have the ability to identify more levels of Support and Resistance over different lengths and Trading Styles.
Below is the code for the Bollinger Bands example above:
//@version=5
indicator("Optimal Length - Backtesting - Bollinger Bands", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
mult = 2.0
src = close
neutralColor = color.blue
slowColor = color.red
fastColor = color.green
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
//Neutral Bollinger Bands
dev = mult * ta.stdev(src, math.round(optimalLength))
upper = optimalMA + dev
lower = optimalMA - dev
plot(showNeutral ? optimalMA : na, "Neutral Basis", color=color.new(neutralColor, 0))
p1 = plot(showNeutral ? upper : na, "Neutral Upper", color=color.new(neutralColor, 50))
p2 = plot(showNeutral ? lower : na, "Neutral Lower", color=color.new(neutralColor, 50))
fill(p1, p2, title = "Neutral Background", color=color.new(neutralColor, 96))
//Slow Bollinger Bands
dev_slow = mult * ta.stdev(src, math.round(optimalLength_slow))
upper_slow = optimalMA_slow + dev_slow
lower_slow = optimalMA_slow - dev_slow
plot(showFast ? optimalMA_slow : na, "Slow Basis", color=color.new(slowColor, 0))
p1_slow = plot(showFast ? upper_slow : na, "Slow Upper", color=color.new(slowColor, 50))
p2_slow = plot(showFast ? lower_slow : na, "Slow Lower", color=color.new(slowColor, 50))
fill(p1_slow, p2_slow, title = "Slow Background", color=color.new(slowColor, 96))
//Fast Bollinger Bands
dev_fast = mult * ta.stdev(src, math.round(optimalLength_fast))
upper_fast = optimalMA_fast + dev_fast
lower_fast = optimalMA_fast - dev_fast
plot(showSlow ? optimalMA_fast : na, "Fast Basis", color=color.new(fastColor, 0))
p1_fast = plot(showSlow ? upper_fast : na, "Fast Upper", color=color.new(fastColor, 50))
p2_fast = plot(showSlow ? lower_fast : na, "Fast Lower", color=color.new(fastColor, 50))
fill(p1_fast, p2_fast, title = "Fast Background", color=color.new(fastColor, 96))
Donchian Channels:
Above you’ll see two examples of Machine Learning: Optimal Length applied to Donchian Channels. These are displayed with both the 15 Minute Time Frame and the 1 Day Time Frame.
Donchian Channels are a way of seeing potential Support and Resistance within a given lookback length. They are a way of withholding the High’s and Low’s of a specific lookback length and looking for deviation within this length. By applying our Fast, Slow and Neutral Machine Learning: Optimal Length to these Donchian Channels way may hope to achieve a viable range of High’s and Low’s that one may use to Identify Support and Resistance locations for different ranges of Optimal Lengths and likewise potentially different Trading Strategies.
The code to reproduce these Donchian Channels as displayed above is so:
//@version=5
indicator("Optimal Length - Backtesting - Donchian Channels", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
mult = 2.0
src = close
neutralColor = color.blue
slowColor = color.red
fastColor = color.green
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
//Neutral Donchian Channels
lower_dc = ta.lowest(optimalLength)
upper_dc = ta.highest(optimalLength)
basis_dc = math.avg(upper_dc, lower_dc)
plot(showNeutral ? basis_dc : na, "Donchain Channel - Neutral Basis", color=color.new(neutralColor, 0))
u = plot(showNeutral ? upper_dc : na, "Donchain Channel - Neutral Upper", color=color.new(neutralColor, 50))
l = plot(showNeutral ? lower_dc : na, "Donchain Channel - Neutral Lower", color=color.new(neutralColor, 50))
fill(u, l, color=color.new(neutralColor, 96), title = "Donchain Channel - Neutral Background")
//Fast Donchian Channels
lower_dc_fast = ta.lowest(optimalLength_fast)
upper_dc_fast = ta.highest(optimalLength_fast)
basis_dc_fast = math.avg(upper_dc_fast, lower_dc_fast)
plot(showFast ? basis_dc_fast : na, "Donchain Channel - Fast Neutral Basis", color=color.new(fastColor, 0))
u_fast = plot(showFast ? upper_dc_fast : na, "Donchain Channel - Fast Upper", color=color.new(fastColor, 50))
l_fast = plot(showFast ? lower_dc_fast : na, "Donchain Channel - Fast Lower", color=color.new(fastColor, 50))
fill(u_fast, l_fast, color=color.new(fastColor, 96), title = "Donchain Channel - Fast Background")
//Slow Donchian Channels
lower_dc_slow = ta.lowest(optimalLength_slow)
upper_dc_slow = ta.highest(optimalLength_slow)
basis_dc_slow = math.avg(upper_dc_slow, lower_dc_slow)
plot(showSlow ? basis_dc_slow : na, "Donchain Channel - Slow Neutral Basis", color=color.new(slowColor, 0))
u_slow = plot(showSlow ? upper_dc_slow : na, "Donchain Channel - Slow Upper", color=color.new(slowColor, 50))
l_slow = plot(showSlow ? lower_dc_slow : na, "Donchain Channel - Slow Lower", color=color.new(slowColor, 50))
fill(u_slow, l_slow, color=color.new(slowColor, 96), title = "Donchain Channel - Slow Background")
Envelopes / Envelopes Adjusted:
Envelopes are an interesting one in the sense that they both may be perceived as useful; however we deem that with the use of an ‘Optimal Length’ that the ‘Envelopes Adjusted’ may work best. We will start with examples of the Traditional Envelope then showcase the Adjusted version.
Envelopes:
As you may see, a Traditional form of Envelopes even produced with our Machine Learning: Optimal Length may not produce optimal results. Unfortunately this may occur with some Traditional Indicators and they may need some adjustments as you’ll notice with the ‘Envelopes Adjusted’ version. However, even without the adjustments, these Envelopes may be useful for seeing ‘Overbought’ and ‘Oversold’ locations within a Machine Learning: Optimal Length standpoint.
Envelopes Adjusted:
By adding an adjustment to these Envelopes, we may hope to better reflect out Optimal Length within it. This is caused by adding a ratio reflection towards the current length of the Optimal Length and the max Length used. This allows for the Fast and Neutral (and potentially Slow if Neutral is greater) to achieve a potentially more accurate result.
Envelopes, much like Bollinger Bands are a way of seeing potential movement zones along with potential Support and Resistance. However, unlike Bollinger Bands which are based on Standard Deviation, Envelopes are based on percentages +/- from the Simple Moving Average.
The code used to reproduce the example above is as follows:
//@version=5
indicator("Optimal Length - Backtesting - Envelopes", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
displayType = input.string("Envelope Adjusted", "Display Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
mult = 2.0
src = close
neutralColor = color.blue
slowColor = color.red
fastColor = color.green
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
percent = 10.0
maxAmount = math.max(optimalLength, optimalLength_fast, optimalLength_slow)
//Neutral
k = displayType == "Envelope" ? percent/100.0 : (percent/100.0) / (optimalLength / maxAmount)
upper_env = optimalMA * (1 + k)
lower_env = optimalMA * (1 - k)
plot(showNeutral ? optimalMA : na, "Envelope - Neutral Basis", color=color.new(neutralColor, 0))
u_env = plot(showNeutral ? upper_env : na, "Envelope - Neutral Upper", color=color.new(neutralColor, 50))
l_env = plot(showNeutral ? lower_env : na, "Envelope - Neutral Lower", color=color.new(neutralColor, 50))
fill(u_env, l_env, color=color.new(neutralColor, 96), title = "Envelope - Neutral Background")
//Fast
k_fast = displayType == "Envelope" ? percent/100.0 : (percent/100.0) / (optimalLength_fast / maxAmount)
upper_env_fast = optimalMA_fast * (1 + k_fast)
lower_env_fast = optimalMA_fast * (1 - k_fast)
plot(showFast ? optimalMA_fast : na, "Envelope - Fast Basis", color=color.new(fastColor, 0))
u_env_fast = plot(showFast ? upper_env_fast : na, "Envelope - Fast Upper", color=color.new(fastColor, 50))
l_env_fast = plot(showFast ? lower_env_fast : na, "Envelope - Fast Lower", color=color.new(fastColor, 50))
fill(u_env_fast, l_env_fast, color=color.new(fastColor, 96), title = "Envelope - Fast Background")
//Slow
k_slow = displayType == "Envelope" ? percent/100.0 : (percent/100.0) / (optimalLength_slow / maxAmount)
upper_env_slow = optimalMA_slow * (1 + k_slow)
lower_env_slow = optimalMA_slow * (1 - k_slow)
plot(showSlow ? optimalMA_slow : na, "Envelope - Slow Basis", color=color.new(slowColor, 0))
u_env_slow = plot(showSlow ? upper_env_slow : na, "Envelope - Slow Upper", color=color.new(slowColor, 50))
l_env_slow = plot(showSlow ? lower_env_slow : na, "Envelope - Slow Lower", color=color.new(slowColor, 50))
fill(u_env_slow, l_env_slow, color=color.new(slowColor, 96), title = "Envelope - Slow Background")
Hopefully these examples, including reproducing code, have given you some insight as to how useful this Machine Learning: Optimal Length may be and how another Indicator may easily modify their existing code to incorporate the usage of such Machine Learning: Optimal Length. We likewise will publish a Backtesting Indicator which incorporates all of the concepts we’ve gone over within here; in case you wish to take advantage of the Traditional Indicators mentioned above that allow the input of Machine Learning: Optimal Length and don’t wish to code them.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Machine Learning: Anchored Gaussian Process Regression [LuxAlgo]Machine Learning: Anchored Gaussian Process Regression is an anchored version of Machine Learning: Gaussian Process Regression .
It implements Gaussian Process Regression (GPR), a popular machine-learning method capable of estimating underlying trends in prices as well as forecasting them. Users can set a Training Window by choosing 2 points. GPR will be calculated for the data between these 2 points.
Do remember that forecasting trends in the market is challenging, do not use this tool as a standalone for your trading decisions.
🔶 USAGE
When adding the indicator to the chart, users will be prompted to select a starting and ending point for the calculations, click on your chart to select those points.
Start & end point are named 'Anchor 1' & 'Anchor 2', the Training Window is located between these 2 points. Once both points are positioned, the Training Window is set, whereafter the Gaussian Process Regression (GPR) is calculated using data between both Anchors .
The blue line is the GPR fit, the red line is the GPR prediction, derived from data between the Training Window .
Two user settings controlling the trend estimate are available, Smooth and Sigma.
Smooth determines the smoothness of our estimate, with higher values returning smoother results suitable for longer-term trend estimates.
Sigma controls the amplitude of the forecast, with values closer to 0 returning results with a higher amplitude.
One of the advantages of the anchoring process is the ability for the user to evaluate the accuracy of forecasts and further understand how settings affect their accuracy.
The publication also shows the mean average (faint silver line), which indicates the average of the prices within the calculation window (between the anchors). This can be used as a reference point for the forecast, seeing how it deviates from the training window average.
🔶 DETAILS
🔹 Limited Training Window
The Training Window is limited due to matrix.new() limitations in size.
When the 2 points are too far from each other (as in the latter example), the line will end at the maximum limit, without giving a size error.
The red forecasted line is always given priority.
🔹 Positioning Anchors
Typically Anchor 1 is located further in history than Anchor 2 , however, placing Anchor 2 before Anchor 1 is perfectly possibly, and won't give issues.
🔶 SETTINGS
Anchor 1 / Anchor 2: both points will form the Training Window .
Forecasting Length: Forecasting horizon, determines how many bars in the 'future' are forecasted.
Smooth: Controls the degree of smoothness of the model fit.
Sigma: Noise variance. Controls the amplitude of the forecast, lower values will make it more sensitive to outliers.
Machine Learning: VWAP [YinYangAlgorithms]Machine Learning: VWAP aims to use Machine Learning to Identify the best location to Anchor the VWAP at. Rather than using a traditional fixed length or simply adjusting based on a Date / Time; by applying Machine Learning we may hope to identify crucial areas which make sense to reset the VWAP and start anew. VWAP’s may act similar to a Bollinger Band in the sense that they help to identify both Overbought and Oversold Price locations based on previous movements and help to identify how far the price may move within the current Trend. However, unlike Bollinger Bands, VWAPs have the ability to parabolically get quite spaced out and also reset. For this reason, the price may never actually go from the Lower to the Upper and vice versa (when very spaced out; when the Upper and Lower zones are narrow, it may bounce between the two). The reason for this is due to how the anchor location is calculated and in this specific Indicator, how it changes anchors based on price movement calculated within Machine Learning.
This Indicator changes the anchor if the Low < Lowest Low of a length of X and likewise if the High > Highest High of a length of X. This logic is applied within a Machine Learning standpoint that likewise amplifies this Lookback Length by adding a Machine Learning Length to it and increasing the lookback length even further.
Due to how the anchor for this VWAP changes, you may notice that the Basis Line (Orange) may act as a Trend Identifier. When the Price is above the basis line, it may represent a bullish trend; and likewise it may represent a bearish trend when below it. You may also notice what may happen is when the trend occurs, it may push all the way to the Upper or Lower levels of this VWAP. It may then proceed to move horizontally until the VWAP expands more and it may gain more movement; or it may correct back to the Basis Line. If it corrects back to the basis line, what may happen is it either uses the Basis Line as a Support and continues in its current direction, or it will change the VWAP anchor and start anew.
Tutorial:
If we zoom in on the most recent VWAP we can see how it expands. Expansion may be caused by time but generally it may be caused by price movement and volume. Exponential Price movement causes the VWAP to expand, even if there are corrections to it. However, please note Volume adds a large weighted factor to the calculation; hence Volume Weighted Average Price (VWAP).
If you refer to the white circle in the example above; you’ll be able to see that the VWAP expanded even while the price was correcting to the Basis line. This happens due to exponential movement which holds high volume. If you look at the volume below the white circle, you’ll notice it was very large; however even though there was exponential price movement after the white circle, since the volume was low, the VWAP didn’t expand much more than it already had.
There may be times where both Volume and Price movement isn’t significant enough to cause much of an expansion. During this time it may be considered to be in a state of consolidation. While looking at this example, you may also notice the color switch from red to green to red. The color of the VWAP is related to the movement of the Basis line (Orange middle line). When the current basis is > the basis of the previous bar the color of the VWAP is green, and when the current basis is < the basis of the previous bar, the color of the VWAP is red. The color may help you gauge the current directional movement the price is facing within the VWAP.
You may have noticed there are signals within this Indicator. These signals are composed of Green and Red Triangles which represent potential Bullish and Bearish momentum changes. The Momentum changes happen when the Signal Type:
The High/Low or Close (You pick in settings)
Crosses one of the locations within the VWAP.
Bullish Momentum change signals occur when :
Signal Type crosses OVER the Basis
Signal Type crosses OVER the lower level
Bearish Momentum change signals occur when:
Signal Type crosses UNDER the Basis
Signal Type Crosses UNDER the upper level
These signals may represent locations where momentum may occur in the direction of these signals. For these reasons there are also alerts available to be set up for them.
If you refer to the two circles within the example above, you may see that when the close goes above the basis line, how it mat represents bullish momentum. Likewise if it corrects back to the basis and the basis acts as a support, it may continue its bullish momentum back to the upper levels again. However, if you refer to the red circle, you’ll see if the basis fails to act as a support, it may then start to correct all the way to the lower levels, or depending on how expanded the VWAP is, it may just reset its anchor due to such drastic movement.
You also have the ability to disable Machine Learning by setting ‘Machine Learning Type’ to ‘None’. If this is done, it will go off whether you have it set to:
Bullish
Bearish
Neutral
For the type of VWAP you want to see. In this example above we have it set to ‘Bullish’. Non Machine Learning VWAP are still calculated using the same logic of if low < lowest low over length of X and if high > highest high over length of X.
Non Machine Learning VWAP’s change much quicker but may also allow the price to correct from one side to the other without changing VWAP Anchor. They may be useful for breaking up a trend into smaller pieces after momentum may have changed.
Above is an example of how the Non Machine Learning VWAP looks like when in Bearish. As you can see based on if it is Bullish or Bearish is how it favors the trend to be and may likewise dictate when it changes the Anchor.
When set to neutral however, the Anchor may change quite quickly. This results in a still useful VWAP to help dictate possible zones that the price may move within, but they’re also much tighter zones that may not expand the same way.
We will conclude this Tutorial here, hopefully this gives you some insight as to why and how Machine Learning VWAPs may be useful; as well as how to use them.
Settings:
VWAP:
VWAP Type: Type of VWAP. You can favor specific direction changes or let it be Neutral where there is even weight to both. Please note, these do not apply to the Machine Learning VWAP.
Source: VWAP Source. By default VWAP usually uses HLC3; however OHLC4 may help by providing more data.
Lookback Length: The Length of this VWAP when it comes to seeing if the current High > Highest of this length; or if the current Low is < Lowest of this length.
Standard VWAP Multiplier: This multiplier is applied only to the Standard VWMA. This is when 'Machine Learning Type' is set to 'None'.
Machine Learning:
Use Rational Quadratics: Rationalizing our source may be beneficial for usage within ML calculations.
Signal Type: Bullish and Bearish Signals are when the price crosses over/under the basis, as well as the Upper and Lower levels. These may act as indicators to where price movement may occur.
Machine Learning Type: Are we using a Simple ML Average, KNN Mean Average, KNN Exponential Average or None?
KNN Distance Type: We need to check if distance is within the KNN Min/Max distance, which distance checks are we using.
Machine Learning Length: How far back is our Machine Learning going to keep data for.
k-Nearest Neighbour (KNN) Length: How many k-Nearest Neighbours will we account for?
Fast ML Data Length: What is our Fast ML Length? This is used with our Slow Length to create our KNN Distance.
Slow ML Data Length: What is our Slow ML Length? This is used with our Fast Length to create our KNN Distance.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Machine Learning: Optimal RSI [YinYangAlgorithms]This Indicator, will rate multiple different lengths of RSIs to determine which RSI to RSI MA cross produced the highest profit within the lookback span. This ‘Optimal RSI’ is then passed back, and if toggled will then be thrown into a Machine Learning calculation. You have the option to Filter RSI and RSI MA’s within the Machine Learning calculation. What this does is, only other Optimal RSI’s which are in the same bullish or bearish direction (is the RSI above or below the RSI MA) will be added to the calculation.
You can either (by default) use a Simple Average; which is essentially just a Mean of all the Optimal RSI’s with a length of Machine Learning. Or, you can opt to use a k-Nearest Neighbour (KNN) calculation which takes a Fast and Slow Speed. We essentially turn the Optimal RSI into a MA with different lengths and then compare the distance between the two within our KNN Function.
RSI may very well be one of the most used Indicators for identifying crucial Overbought and Oversold locations. Not only that but when it crosses its Moving Average (MA) line it may also indicate good locations to Buy and Sell. Many traders simply use the RSI with the standard length (14), however, does that mean this is the best length?
By using the length of the top performing RSI and then applying some Machine Learning logic to it, we hope to create what may be a more accurate, smooth, optimal, RSI.
Tutorial:
This is a pretty zoomed out Perspective of what the Indicator looks like with its default settings (except with Bollinger Bands and Signals disabled). If you look at the Tables above, you’ll notice, currently the Top Performing RSI Length is 13 with an Optimal Profit % of: 1.00054973. On its default settings, what it does is Scan X amount of RSI Lengths and checks for when the RSI and RSI MA cross each other. It then records the profitability of each cross to identify which length produced the overall highest crossing profitability. Whichever length produces the highest profit is then the RSI length that is used in the plots, until another length takes its place. This may result in what we deem to be the ‘Optimal RSI’ as it is an adaptive RSI which changes based on performance.
In our next example, we changed the ‘Optimal RSI Type’ from ‘All Crossings’ to ‘Extremity Crossings’. If you compare the last two examples to each other, you’ll notice some similarities, but overall they’re quite different. The reason why is, the Optimal RSI is calculated differently. When using ‘All Crossings’ everytime the RSI and RSI MA cross, we evaluate it for profit (short and long). However, with ‘Extremity Crossings’, we only evaluate it when the RSI crosses over the RSI MA and RSI <= 40 or RSI crosses under the RSI MA and RSI >= 60. We conclude the crossing when it crosses back on its opposite of the extremity, and that is how it finds its Optimal RSI.
The way we determine the Optimal RSI is crucial to calculating which length is currently optimal.
In this next example we have zoomed in a bit, and have the full default settings on. Now we have signals (which you can set alerts for), for when the RSI and RSI MA cross (green is bullish and red is bearish). We also have our Optimal RSI Bollinger Bands enabled here too. These bands allow you to see where there may be Support and Resistance within the RSI at levels that aren’t static; such as 30 and 70. The length the RSI Bollinger Bands use is the Optimal RSI Length, allowing it to likewise change in correlation to the Optimal RSI.
In the example above, we’ve zoomed out as far as the Optimal RSI Bollinger Bands go. You’ll notice, the Bollinger Bands may act as Support and Resistance locations within and outside of the RSI Mid zone (30-70). In the next example we will highlight these areas so they may be easier to see.
Circled above, you may see how many times the Optimal RSI faced Support and Resistance locations on the Bollinger Bands. These Bollinger Bands may give a second location for Support and Resistance. The key Support and Resistance may still be the 30/50/70, however the Bollinger Bands allows us to have a more adaptive, moving form of Support and Resistance. This helps to show where it may ‘bounce’ if it surpasses any of the static levels (30/50/70).
Due to the fact that this Indicator may take a long time to execute and it can throw errors for such, we have added a Setting called: Adjust Optimal RSI Lookback and RSI Count. This settings will automatically modify the Optimal RSI Lookback Length and the RSI Count based on the Time Frame you are on and the Bar Indexes that are within. For instance, if we switch to the 1 Hour Time Frame, it will adjust the length from 200->90 and RSI Count from 30->20. If this wasn’t adjusted, the Indicator would Timeout.
You may however, change the Setting ‘Adjust Optimal RSI Lookback and RSI Count’ to ‘Manual’ from ‘Auto’. This will give you control over the ‘Optimal RSI Lookback Length’ and ‘RSI Count’ within the Settings. Please note, it will likely take some “fine tuning” to find working settings without the Indicator timing out, but there are definitely times you can find better settings than our ‘Auto’ will create; especially on higher Time Frames. The Minimum our ‘Auto’ will create is:
Optimal RSI Lookback Length: 90
RSI Count: 20
The Maximum it will create is:
Optimal RSI Lookback Length: 200
RSI Count: 30
If there isn’t much bar index history, for instance, if you’re on the 1 Day and the pair is BTC/USDT you’ll get < 4000 Bar Indexes worth of data. For this reason it is possible to manually increase the settings to say:
Optimal RSI Lookback Length: 500
RSI Count: 50
But, please note, if you make it too high, it may also lead to inaccuracies.
We will conclude our Tutorial here, hopefully this has given you some insight as to how calculating our Optimal RSI and then using it within Machine Learning may create a more adaptive RSI.
Settings:
Optimal RSI:
Show Crossing Signals: Display signals where the RSI and RSI Cross.
Show Tables: Display Information Tables to show information like, Optimal RSI Length, Best Profit, New Optimal RSI Lookback Length and New RSI Count.
Show Bollinger Bands: Show RSI Bollinger Bands. These bands work like the TDI Indicator, except its length changes as it uses the current RSI Optimal Length.
Optimal RSI Type: This is how we calculate our Optimal RSI. Do we use all RSI and RSI MA Crossings or just when it crosses within the Extremities.
Adjust Optimal RSI Lookback and RSI Count: Auto means the script will automatically adjust the Optimal RSI Lookback Length and RSI Count based on the current Time Frame and Bar Index's on chart. This will attempt to stop the script from 'Taking too long to Execute'. Manual means you have full control of the Optimal RSI Lookback Length and RSI Count.
Optimal RSI Lookback Length: How far back are we looking to see which RSI length is optimal? Please note the more bars the lower this needs to be. For instance with BTC/USDT you can use 500 here on 1D but only 200 for 15 Minutes; otherwise it will timeout.
RSI Count: How many lengths are we checking? For instance, if our 'RSI Minimum Length' is 4 and this is 30, the valid RSI lengths we check is 4-34.
RSI Minimum Length: What is the RSI length we start our scans at? We are capped with RSI Count otherwise it will cause the Indicator to timeout, so we don't want to waste any processing power on irrelevant lengths.
RSI MA Length: What length are we using to calculate the optimal RSI cross' and likewise plot our RSI MA with?
Extremity Crossings RSI Backup Length: When there is no Optimal RSI (if using Extremity Crossings), which RSI should we use instead?
Machine Learning:
Use Rational Quadratics: Rationalizing our Close may be beneficial for usage within ML calculations.
Filter RSI and RSI MA: Should we filter the RSI's before usage in ML calculations? Essentially should we only use RSI data that are of the same type as our Optimal RSI? For instance if our Optimal RSI is Bullish (RSI > RSI MA), should we only use ML RSI's that are likewise bullish?
Machine Learning Type: Are we using a Simple ML Average, KNN Mean Average, KNN Exponential Average or None?
KNN Distance Type: We need to check if distance is within the KNN Min/Max distance, which distance checks are we using.
Machine Learning Length: How far back is our Machine Learning going to keep data for.
k-Nearest Neighbour (KNN) Length: How many k-Nearest Neighbours will we account for?
Fast ML Data Length: What is our Fast ML Length? This is used with our Slow Length to create our KNN Distance.
Slow ML Data Length: What is our Slow ML Length? This is used with our Fast Length to create our KNN Distance.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Machine Learning using Neural Networks | EducationalThe script provided is a comprehensive illustration of how to implement and execute a simplistic Neural Network (NN) on TradingView using PineScript.
It encompasses the entire workflow from data input, weight initialization, implicit neuron calculation, feedforward computation, backpropagation for weight adjustments, generating predictions, to visualizing the Mean Squared Error (MSE) Loss Curve for monitoring the training phase.
In the visual example above, you can see that the prediction is not aligned with the actual value. This is intentional for demonstrative purposes, and by incrementing the Epochs or Learning Rate, you will see these two values converge as the accuracy increases.
Hyperparameters:
Learning Rate, Epochs, and the choice between Simple Backpropagation and a verbose version are declared as script inputs, allowing users to tailor the training process.
Initialization:
Random initialization of weight matrices (w1, w2) is performed to ensure asymmetry, promoting effective gradient updates. A seed is added for reproducibility.
Utility Functions:
Functions for matrix randomization, sigmoid activation, MSE loss calculation, data normalization, and standardization are defined to streamline the computation process.
Neural Network Computation:
The feedforward function computes the hidden and output layer values given the input.
Two variants of the backpropagation function are provided for weight adjustment, with one offering a more verbose step-by-step computation of gradients.
A wrapper train_nn function iterates through epochs, performing feedforward, loss computation, and backpropagation in each epoch while logging and collecting loss values.
Training Invocation:
The input data is prepared by normalizing it to a value between 0 and 1 using the maximum standardized value, and the training process is invoked only on the last confirmed bar to preserve computational resources.
Output Forecasting and Visualization:
Post training, the NN's output (predicted price) is computed, standardized and visualized alongside the actual price on the chart.
The MSE loss between the predicted and actual prices is visualized, providing insight into the prediction accuracy.
Optionally, the MSE Loss Curve is plotted on the chart, illustrating the loss trajectory through epochs, assisting in understanding the training performance.
Customizable Visualization:
Various inputs control visualization aspects like Chart Scaling, Chart Horizontal Offset, and Chart Vertical Offset, allowing users to adapt the visualization to their preference.
-------------------------------------------------------
The following is this Neural Network structure, consisting of one hidden layer, with two hidden neurons.
Through understanding the steps outlined in my code, one should be able to scale the NN in any way they like, such as changing the input / output data and layers to fit their strategy ideas.
Additionally, one could forgo the backpropagation function, and load their own trained weights into the w1 and w2 matrices, to have this code run purely for inference.
-------------------------------------------------------
While this demonstration does create a “prediction”, it is on historical data. The purpose here is educational, rather than providing a ready tool for non-programmer consumers.
Normally in Machine Learning projects, the training process would be split into two segments, the Training and the Validation parts. For the purpose of conveying the core concept in a concise and non-repetitive way, I have foregone the Validation part. However, it is merely the application of your trained network on new data (feedforward), and monitoring the loss curve.
Essentially, checking the accuracy on “unseen” data, while training it on “seen” data.
-------------------------------------------------------
I hope that this code will help developers create interesting machine learning applications within the Tradingview ecosystem.
Machine Learning: Trend Lines [YinYangAlgorithms]Trend lines have always been a key indicator that may help predict many different types of price movements. They have been well known to create different types of formations such as: Pennants, Channels, Flags and Wedges. The type of formation they create is based on how the formation was created and the angle it was created. For instance, if there was a strong price increase and then there is a Wedge where both end points meet, this is considered a Bull Pennant. The formations Trend Lines create may be powerful tools that can help predict current Support and Resistance and also Future Momentum changes. However, not all Trend Lines will create formations, and alone they may stand as strong Support and Resistance locations on the Vertical.
The purpose of this Indicator is to apply Machine Learning logic to a Traditional Trend Line Calculation, and therefore allowing a new approach to a modern indicator of high usage. The results of such are quite interesting and goes to show the impacts a simple KNN Machine Learning model can have on Traditional Indicators.
Tutorial:
There are a few different settings within this Indicator. Many will greatly impact the results and if any are changed, lots will need ‘Fine Tuning’. So let's discuss the main toggles that have great effects and what they do before discussing the lengths. Currently in this example above we have the Indicator at its Default Settings. In this example, you can see how the Trend Lines act as key Support and Resistance locations. Due note, Support and Resistance are a relative term, as is their color. What starts off as Support or Resistance may change when the price crosses over / under them.
In the example above we have zoomed in and circled locations that exhibited markers of Support and Resistance along the Trend Lines. These Trend Lines are all created using the Default Settings. As you can see from the example above; just because it is a Green Upwards Trend Line, doesn’t mean it’s a Support Line. Support and Resistance is always shifting on Trend Lines based on the prices location relative to them.
We won’t go through all the Formations Trend Lines make, but the example above, we can see the Trend Lines formed a Downward Channel. Channels are when there are two parallel downwards Trend Lines that are at a relatively similar angle. This means that they won’t ever meet. What may happen when the price is within these channels, is it may bounce between the upper and lower bounds. These Channels may drive the price upwards or downwards, depending on if it is in an Upwards or Downwards Channel.
If you refer to the example above, you’ll notice that the Trend Lines are formed like traditional Trend Lines. They don’t stem from current Highs and Lows but rather Machine Learning Highs and Lows. More often than not, the Machine Learning approach to Trend Lines cause their start point and angle to be quite different than a Traditional Trend Line. Due to this, it may help predict Support and Resistance locations at are more uncommon and therefore can be quite useful.
In the example above we have turned off the toggle in Settings ‘Use Exponential Data Average’. This Settings uses a custom Exponential Data Average of the KNN rather than simply averaging the KNN. By Default it is enabled, but as you can see when it is disabled it may create some pretty strong lasting Trend Lines. This is why we advise you ZOOM OUT AS FAR AS YOU CAN. Trend Lines are only displayed when you’ve zoomed out far enough that their Start Point is visible.
As you can see in this example above, there were 3 major Upward Trend Lines created in 2020 that have had a major impact on Support and Resistance Locations within the last year. Lets zoom in and get a closer look.
We have zoomed in for this example above, and circled some of the major Support and Resistance locations that these Upward Trend Lines may have had a major impact on.
Please note, these Machine Learning Trend Lines aren’t a ‘One Size Fits All’ kind of thing. They are completely customizable within the Settings, so that you can get a tailored experience based on what Pair and Time Frame you are trading on.
When any values are changed within the Settings, you’ll likely need to ‘Fine Tune’ the rest of the settings until your desired result is met. By default the modifiable lengths within the Settings are:
Machine Learning Length: 50
KNN Length:5
Fast ML Data Length: 5
Slow ML Data Length: 30
For example, let's toggle ‘Use Exponential Data Averages’ back on and change ‘Fast ML Data Length’ from 5 to 20 and ‘Slow ML Data Length’ from 30 to 50.
As you can in the example above, all of the lines have changed. Although there are still some strong Support Locations created by the Upwards Trend Lines.
We will conclude our Tutorial here. Hopefully you’ve learned how to use Machine Learning Trend Lines and will be able to now see some more unorthodox Support and Resistance locations on the Vertical.
Settings:
Use Machine Learning Sources: If disabled Traditional Trend line sources (High and Low) will be used rather than Rational Quadratics.
Use KNN Distance Sorting: You can disable this if you wish to not have the Machine Learning Data sorted using KNN. If disabled trend line logic will be Traditional.
Use Exponential Data Average: This Settings uses a custom Exponential Data Average of the KNN rather than simply averaging the KNN.
Machine Learning Length: How strong is our Machine Learning Memory? Please note, when this value is too high the data is almost 'too' much and can lead to poor results.
K-Nearest Neighbour (KNN) Length: How many K-Nearest Neighbours are allowed with our Distance Clustering? Please note, too high or too low may lead to poor results.
Fast ML Data Length: Fast and Slow speed needs to be adjusted properly to see results. 3/5/7 all seem to work well for Fast.
Slow ML Data Length: Fast and Slow speed needs to be adjusted properly to see results. 20 - 50 all seem to work well for Slow.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Machine Learning: MFI Heat Map [YinYangAlgorithms]Overview:
MFI Heat Maps are a visually appealing way to display the values of 29 different MFIs at the same time while being able to make sense of it. Each plot within the Indicator represents a different MFI value. The higher you get up, the longer the length that was used for this MFI. This Indicator also features the use of Machine Learning to help balance the MFI levels. It doesn’t solely rely upon Machine Learning but instead incorporates a growing length MFI averaged with the Machine Learning MFI at any given index.
For instance, say we are calculating the 10th plot from the bottom, the MFI would be an average of:
MFI(source, 11)
Machine Learning MFI at Index of 10
We do it this way as they both help smooth each other out without relying solely on just one calculation method.
Due to plot limitations, you are capped at 28 Plot Amounts within this indicator, but that is still quite a bit of information you can glean from a Heat Map.
The Machine Learning used in this indicator is of the K-Nearest Neighbor (KNN). It uses a Fast and Slow MFI calculation then sorts through them over Machine Learning Length and calculates the differences between them. It then slices off KNN length to create our Max/Min Distances allotted. It adds the average between Fast and Slow MFIs to a Viable Distances array if their distances are within the KNN Min/Max distance. It then averages all distances in the Viable Distances array and returns the result.
The result of the KNN Function is saved to another ML Data array whose length is that of Plot Amount (Heat Map Size). This way each Index of the ML Data array can be indexed according to the Heat Map Size.
The Average of the ML Data array is the MFI line (white) that you’ll see plotted on the Indicator. There is also the SMA of the MFI Average (orange) which is likewise plotted. These plots allow you to visualize where the ML MFI is sitting and can potentially be useful for seeing when the MFI Average and SMA cross over and under each other.
We’ve heard many people talk highly of RSI, but sadly not too many even refer to MFI. MFI oftentimes may be overlooked, especially with new traders who may not even know what it is. Essentially MFI is an RSI but it also incorporates Volume into its calculations, which in our opinion leads to a more accurate reading; afterall, what is price movement without Volume.
Tutorial:
You may be thinking, this Indicator looks appealing to the eye, but how do I benefit from it trading wise?
Before we get into our visual examples, let's talk briefly about what makes Heat Maps in general a useful tool for trading. Heat Maps give us the ability to visualize and understand lots of data while removing the clutter. We can understand the data of 29 different MFIs without having to look at and decipher 29 different MFI plots. When you overlay too many MFI lines on top of each other, they can be very difficult to read and oftentimes end up actually hindering your Technical Analysis. For this reason, we have a simple solution to this problem; Heat Maps. This MFI Heat Map allows you to easily know (in a relative %) what the MFI level is for varying lengths. For Instance, the First (bottom) plot indexes an MFI of (K(0) (loop of Plot Amount) + Smoothing Length (default 1)) = 1. Since this is indexing (usually) a very low length, it will change much quicker. Whereas the Last (top) plot indexes an MFI of (K(27) (loop of Plot Amount) + Smoothing Length (default 1)) = 28. This is indexing a much higher length of MFI which results in the MFI the higher you go up in the Heat Map to move much slower.
Heat Maps give us the ability to see changes happening over multiple MFIs at the same time, which can be very useful for seeing shifts in MFI / Momentum. Remember, MFI incorporates Volume, so even if the price goes up a lot, if there was low volume, the MFI won’t move as much as an RSI would. However, likewise, if there is high volume but low price movement, the MFI will move slightly more than the RSI.
Heat Maps change color based on their MFI level. If the MFI is >= 90 it is HOT (red), if the MFI <= 9 it is COLD (teal, think of ICE). Green represents an MFI of 50-59 and Dark Blue represents an MFI of 40-49. Green and Dark blue are the most common colors as all the others are more ‘Extreme’ MFI levels.
Okay, time to get to the Examples :
Since there is so much going on in Heat Maps, we’ve decided to focus this tutorial to this specific area and talk about individual locations before talking about it as a whole.
If you refer to the example above where there are 2 white circles; these white circles are highlighting a key location you’ll be wanting to identify within your Heat Maps, many things are happening here:
The MFI crossed over the SMA (bullish).
The Heat Map started changing from mid/dark Blue (30-50 MFI) to Green (50-59 MFI) around the midline (the 50% dashed like).
The Lower levels of the Heat Map are turning Yellow/Orange/Red (60-100 MFI).
The Upper Levels of the Heat Map are still Light Blue - Green (10-50 MFI).
The 4 Key points above, all point towards potential Bullish Momentum changes. You’re likely wondering, but why? Let's discuss about each one in more specific detail:
1. The MFI crossed over the SMA (bullish): What this tells us is that the current MFI Average is now greater than its average over the last (default) 16 bars. This means there's been a large amount of Money Flow (Price and Volume) recently (subjectively based on the last (default) 16 average). This is one of the leading Bullish / Bearish signals you will see within this Indicator. You can enable Signals within the Settings and/or even add Alerts for when these crossings occur.
2. The Heat Map started changing from mid/dark Blue (30-50 MFI) to Green (50-59 MFI) around the midline (the 50% dashed like): This shows us that the index’s in the mid (if using all 28 heat map plots it would be at 14) has already received some of this momentum change. If you look at the second white circle (right), you’ll also notice the higher MFI plot indexes are also green. This is because since their length is long they still have some momentum and strength from the first white circle (left). Just because the first white circle failed in its bullish push, doesn’t mean it didn’t achieve momentum that would later on help to push the price up.
3. The Lower levels of the Heat Map are turning Yellow/Orange/Red (60-100 MFI): It occurred somewhat in the left white circle, but mainly in the right white circle. This shows us the MFI is very high on the lower lengths, this may lead to the current, middle and higher length MFIs following suit soon. Remember it has to work its way up, the higher levels can’t go red unless the lower levels go red first and the higher levels can also lag quite a bit behind and take awhile to catch up, this is normal, expected and meant to happen. Vice versa is also true with getting higher levels to go cold (light teal (think of ICE)).
4. The Upper Levels of the Heat Map are still Light Blue - Green (10-50 MFI): You might think at first that this is a bad thing, but it's not! Remember you want to be Fearful when others are Greedy and Greedy when others are Fearful! You don’t want to buy when the higher levels have a high MFI, you want to buy when you see the momentum pushing up in the lower MFI levels (getting yellow/orange/red in the low levels) while it is still Cold in the higher levels (BLUE OR GREEN, nothing higher than green as it is already slightly too high). There will be many times that it is Yellow or possibly Orange in the high levels and the bullish push still happens, but this is much more risky! The key to trading is to minimize risks while maximizing potential.
Hopefully now you’re getting an idea of how to spot potential bullish momentum changes, but what about bearish momentum changes? Technically they are the exact opposite, so we don’t need to go into as much detail, but lets still take a look at a few examples:
In the example above we marked the 3 times where it was displaying overly bullish characteristics. We marked the bullish momentum occurring with arrows. If you look closely at the start of the arrow to where it finishes, you’ll notice how the heat (HOT)(RED) works its way up from the lower levels to the higher levels. We then see the MFI to SMA cross under. In all 3 of these examples the heat made it all the way to the top of the chart. These are all very bearish signals that represent a bearish momentum movement that may occur soon.
Also, please note, the level the MFI is at DOES matter! That line isn’t there simply for you to see when there are crosses over and under. The MFI is considered to be Overbought when it is greater than 70 (the upper white dashed line, it is just formatted to be on a different scale cause there are 28 plots, but it represents 70). The MFI is considered to be Oversold when it is less than 30 (the lower white dashed line).
If we look to the left a little here where a big drop in price occurred shortly after our MFI and SMA crossed, would we have been able to identify it using the Heat Maps? Likely, No. There was some color change in the lower levels a few bars prior that went yellow/orange/red but before this cross happened they all went back to Dark Blue. In the middle section when the cross happened it was only Green and Yellow and in the upper section we are Blue. This would be a very risky trade to go on as the only real Bearish Indication was the MFI to SMA cross under. Remember, you want to reduce risk, you don’t want to simply trade on everytime the MFI and SMA cross each other or you’ll be getting yourself into many risky trades based on false signals.
Based on what you’ve learned above, can you see the signs that are indicating where this white circle may have potential for a bullish momentum change?
Now that we are more zoomed in, you may also be noticing there are colors to the price bars. This can be disabled in the settings, but just so you know what they mean, let’s zoom in a little more and talk about it.
We’ve condensed the Indicator a bit so you can see the bars better here. The colors that are displayed on these bars are the Heat Map value for your MFI (the white line in the Indicator). This way you can better see when the Price is Hot and Cold. As you may see while looking, the colors generally go from cold to hot when bullish momentum is happening and hot to cold when bearish momentum is happening. We don’t recommend solely looking at the bars as indicators to MFI momentum change, as seeing the Heat Map will give you much more data; however it can be nice to see the Heat Map projected on the bars rather than trying to eyeball it yourself or hover over each bar specifically to see their levels.
We will conclude our Tutorial here. Hopefully this has given you some insight to how useful Heat Maps can be and why it works well with a Machine Learning (KNN) Model applied to the MFI.
PLEASE NOTE: You can adjust the line width for the Heat Map within the settings. If you condense the Indicator a lot or have a small screen, likely use a length of 1-2. If you have it stretched out or a large screen, a length of 2-3 will work nice. You just don’t want to have the lines overlapping or it defeats the purpose of a Heat Map. Also, the bigger the linewidth, generally you’ll want to increase the Transparency within the Settings also as it can get quite bright and hurt your eyes over time.
Settings:
MFI:
Show MFI and SMA Crossing Signals: MFI and SMA Crossing is one of the leading Bullish and Bearish Signals in this Indicator. You can also add alerts for these signals.
Plot Amount: How many plots are used in this Heat Map. (2 - 28).
Source: The Source to use in all MFI calculations.
Smooth Initial MFI Length: How much to smooth the Fast and Slow MFI calculation by. 1 = No smoothing.
MFI SMA Length: What length we smooth the MFI Average over to get our MFI SMA.
Machine Learning:
Average MFI data by adding a lookback to the Source: While populating our Heat Map with the MFI's, should use use the Source each MFI Length increase or should we also lookback a Source each MFI Length Increase.
KNN Distance Requirement: To be a valid KNN, it needs to abide by a Distance calculation. Generally only Max is used, but you can change it if it suits your trading style better.
Machine Learning Length: How much ML data should we store? The longer the length generally the smoother the result; which may not be as accurate for something like a Heat Map, so keeping this relatively low may lead to more accurate results.
KNN Length: How many KNN are used in the slice to calculate max/min distance allowed.
Fast Length: Fast MFI length used in KNN to calculate distances by comparing its distance with the Slow MFI Length.
Slow Length: Slow MFI length used in KNN to calculate distances by comparing its distance with the Fast MFI Length.
Smoothing Length: When populating our Heat Map, at what length do we start our MFI calculations with (A Higher value with result in a slower and more smoothed MFI / Heat Map).
Colors:
Change Bar Color: Change bar colors to MFI Avg Color.
Heat Map Transparency: If there isn't any transparency it can be a little hard on the eyes. The Greater the Line Width, generally the more transparency you'll want for your eyes.
Line Width: Set how wide the Heat Map lines are
MFI 90-100 Color: Color when the MFI is between these levels.
MFI 80-89 Color: Color when the MFI is between these levels.
MFI 70-79 Color: Color when the MFI is between these levels.
MFI 60-69 Color: Color when the MFI is between these levels.
MFI 50-59 Color: Color when the MFI is between these levels.
MFI 40-49 Color: Color when the MFI is between these levels.
MFI 30-39 Color: Color when the MFI is between these levels.
MFI 20-29 Color: Color when the MFI is between these levels.
MFI 10-19 Color: Color when the MFI is between these levels.
MFI 0-100 Color: Color when the MFI is between these levels.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
[Excalibur] Ehlers AutoCorrelation Periodogram ModifiedKeep your coins folks, I don't need them, don't want them. If you wish be generous, I do hope that charitable peoples worldwide with surplus food stocks may consider stocking local food banks before stuffing monetary bank vaults, for the crusade of remedying the needs of less than fortunate children, parents, elderly, homeless veterans, and everyone else who deserves nutritional sustenance for the soul.
DEDICATION:
This script is dedicated to the memory of Nikolai Dmitriyevich Kondratiev (Никола́й Дми́триевич Кондра́тьев) as tribute for being a pioneering economist and statistician, paving the way for modern econometrics by advocation of rigorous and empirical methodologies. One of his most substantial contributions to the study of business cycle theory include a revolutionary hypothesis recognizing the existence of dynamic cycle-like phenomenon inherent to economies that are characterized by distinct phases of expansion, stagnation, recession and recovery, what we now know as "Kondratiev Waves" (K-waves). Kondratiev was one of the first economists to recognize the vital significance of applying quantitative analysis on empirical data to evaluate economic dynamics by means of statistical methods. His understanding was that conceptual models alone were insufficient to adequately interpret real-world economic conditions, and that sophisticated analysis was necessary to better comprehend the nature of trending/cycling economic behaviors. Additionally, he recognized prosperous economic cycles were predominantly driven by a combination of technological innovations and infrastructure investments that resulted in profound implications for economic growth and development.
I will mention this... nation's economies MUST be supported and defended to continuously evolve incrementally in order to flourish in perpetuity OR suffer through eras with lasting ramifications of societal stagnation and implosion.
Analogous to the realm of economics, aperiodic cycles/frequencies, both enduring and ephemeral, do exist in all facets of life, every second of every day. To name a few that any blind man can naturally see are: heartbeat (cardiac cycles), respiration rates, circadian rhythms of sleep, powerful magnetic solar cycles, seasonal cycles, lunar cycles, weather patterns, vegetative growth cycles, and ocean waves. Do not pretend for one second that these basic aforementioned examples do not affect business cycle fluctuations in minuscule and monumental ways hour to hour, day to day, season to season, year to year, and decade to decade in every nation on the planet. Kondratiev's original seminal theories in macroeconomics from nearly a century ago have proven remarkably prescient with many of his antiquated elementary observations/notions/hypotheses in macroeconomics being scholastically studied and topically researched further. Therefore, I am compelled to honor and recognize his statistical insight and foresight.
If only.. Kondratiev could hold a pocket sized computer in the cup of both hands bearing the TradingView logo and platform services, I truly believe he would be amazed in marvelous delight with a GARGANTUAN smile on his face.
INTRODUCTION:
Firstly, this is NOT technically speaking an indicator like most others. I would describe it as an advanced cycle period detector to obtain market data spectral estimates with low latency and moderate frequency resolution. Developers can take advantage of this detector by creating scripts that utilize a "Dominant Cycle Source" input to adaptively govern algorithms. Be forewarned, I would only recommend this for advanced developers, not novice code dabbling. Although, there is some Pine wizardry introduced here for novice Pine enthusiasts to witness and learn from. AI did describe the code into one super-crunched sentence as, "a rare feat of exceptionally formatted code masterfully balancing visual clarity, precision, and complexity to provide immense educational value for both programming newcomers and expert Pine coders alike."
Understand all of the above aforementioned? Buckle up and proceed for a lengthy read of verbose complexity...
This is my enhanced and heavily modified version of autocorrelation periodogram (ACP) for Pine Script v5.0. It was originally devised by the mathemagician John Ehlers for detecting dominant cycles (frequencies) in an asset's price action. I have been sitting on code similar to this for a long time, but I decided to unleash the advanced code with my fashion. Originally Ehlers released this with multiple versions, one in a 2016 TASC article and the other in his last published 2013 book "Cycle Analytics for Traders", chapter 8. He wasn't joking about "concepts of advanced technical trading" and ACP is nowhere near to his most intimidating and ingenious calculations in code. I will say the book goes into many finer details about the original periodogram, so if you wish to delve into even more elaborate info regarding Ehlers' original ACP form AND how you may adapt algorithms, you'll have to obtain one. Note to reader, comparing Ehlers' original code to my chimeric code embracing the "Power of Pine", you will notice they have little resemblance.
What you see is a new species of autocorrelation periodogram combining Ehlers' innovation with my fascinations of what ACP could be in a Pine package. One other intention of this script's code is to pay homage to Ehlers' lifelong works. Like Kondratiev, Ehlers is also a hardcore cycle enthusiast. I intend to carry on the fire Ehlers envisioned and I believe that is literally displayed here as a pleasant "fiery" example endowed with Pine. With that said, I tried to make the code as computationally efficient as possible, without going into dozens of more crazy lines of code to speed things up even more. There's also a few creative modifications I made by making alterations to the originating formulas that I felt were improvements, one of them being lag reduction. By recently questioning every single thing I thought I knew about ACP, combined with the accumulation of my current knowledge base, this is the innovative revision I came up with. I could have improved it more but decided not to mind thrash too many TV members, maybe later...
I am now confident Pine should have adequate overhead left over to attach various indicators to the dominant cycle via input.source(). TV, I apologize in advance if in the future a server cluster combusts into a raging inferno... Coders, be fully prepared to build entire algorithms from pure raw code, because not all of the built-in Pine functions fully support dynamic periods (e.g. length=ANYTHING). Many of them do, as this was requested and granted a while ago, but some functions are just inherently finicky due to implementation combinations and MUST be emulated via raw code. I would imagine some comprehensive library or numerous authored scripts have portions of raw code for Pine built-ins some where on TV if you look diligently enough.
Notice: Unfortunately, I will not provide any integration support into member's projects at all. I have my own projects that require way too much of my day already. While I was refactoring my life (forgoing many other "important" endeavors) in the early half of 2023, I primarily focused on this code over and over in my surplus time. During that same time I was working on other innovations that are far above and beyond what this code is. I hope you understand.
The best way programmatically may be to incorporate this code into your private Pine project directly, after brutal testing of course, but that may be too challenging for many in early development. Being able to see the periodogram is also beneficial, so input sourcing may be the "better" avenue to tether portions of the dominant cycle to algorithms. Unique indication being able to utilize the dominantCycle may be advantageous when tethering this script to those algorithms. The easiest way is to manually set your indicators to what ACP recognizes as the dominant cycle, but that's actually not considered dynamic real time adaption of an indicator. Different indicators may need a proportion of the dominantCycle, say half it's value, while others may need the full value of it. That's up to you to figure that out in practice. Sourcing one or more custom indicators dynamically to one detector's dominantCycle may require code like this: `int sourceDC = int(math.max(6, math.min(49, input.source(close, "Dominant Cycle Source"))))`. Keep in mind, some algos can use a float, while algos with a for loop require an integer.
I have witnessed a few attempts by talented TV members for a Pine based autocorrelation periodogram, but not in this caliber. Trust me, coding ACP is no ordinary task to accomplish in Pine and modifying it blessed with applicable improvements is even more challenging. For over 4 years, I have been slowly improving this code here and there randomly. It is beautiful just like a real flame, but... this one can still burn you! My mind was fried to charcoal black a few times wrestling with it in the distant past. My very first attempt at translating ACP was a month long endeavor because PSv3 simply didn't have arrays back then. Anyways, this is ACP with a newer engine, I hope you enjoy it. Any TV subscriber can utilize this code as they please. If you are capable of sufficiently using it properly, please use it wisely with intended good will. That is all I beg of you.
Lastly, you now see how I have rasterized my Pine with Ehlers' swami-like tech. Yep, this whole time I have been using hline() since PSv3, not plot(). Evidently, plot() still has a deficiency limited to only 32 plots when it comes to creating intense eye candy indicators, the last I checked. The use of hline() is the optimal choice for rasterizing Ehlers styled heatmaps. This does only contain two color schemes of the many I have formerly created, but that's all that is essentially needed for this gizmo. Anything else is generally for a spectacle or seeing how brutal Pine can be color treated. The real hurdle is being able to manipulate colors dynamically with Merlin like capabilities from multiple algo results. That's the true challenging part of these heatmap contraptions to obtain multi-colored "predator vision" level indication. You now have basic hline() food for thought empowerment to wield as you can imaginatively dream in Pine projects.
PERIODOGRAM UTILITY IN REAL WORLD SCENARIOS:
This code is a testament to the abilities that have yet to be fully realized with indication advancements. Periodograms, spectrograms, and heatmaps are a powerful tool with real-world applications in various fields such as financial markets, electrical engineering, astronomy, seismology, and neuro/medical applications. For instance, among these diverse fields, it may help traders and investors identify market cycles/periodicities in financial markets, support engineers in optimizing electrical or acoustic systems, aid astronomers in understanding celestial object attributes, assist seismologists with predicting earthquake risks, help medical researchers with neurological disorder identification, and detection of asymptomatic cardiovascular clotting in the vaxxed via full body thermography. In either field of study, technologies in likeness to periodograms may very well provide us with a better sliver of analysis beyond what was ever formerly invented. Periodograms can identify dominant cycles and frequency components in data, which may provide valuable insights and possibly provide better-informed decisions. By utilizing periodograms within aspects of market analytics, individuals and organizations can potentially refrain from making blinded decisions and leverage data-driven insights instead.
PERIODOGRAM INTERPRETATION:
The periodogram renders the power spectrum of a signal, with the y-axis representing the periodicity (frequencies/wavelengths) and the x-axis representing time. The y-axis is divided into periods, with each elevation representing a period. In this periodogram, the y-axis ranges from 6 at the very bottom to 49 at the top, with intermediate values in between, all indicating the power of the corresponding frequency component by color. The higher the position occurs on the y-axis, the longer the period or lower the frequency. The x-axis of the periodogram represents time and is divided into equal intervals, with each vertical column on the axis corresponding to the time interval when the signal was measured. The most recent values/colors are on the right side.
The intensity of the colors on the periodogram indicate the power level of the corresponding frequency or period. The fire color scheme is distinctly like the heat intensity from any casual flame witnessed in a small fire from a lighter, match, or camp fire. The most intense power would be indicated by the brightest of yellow, while the lowest power would be indicated by the darkest shade of red or just black. By analyzing the pattern of colors across different periods, one may gain insights into the dominant frequency components of the signal and visually identify recurring cycles/patterns of periodicity.
SETTINGS CONFIGURATIONS BRIEFLY EXPLAINED:
Source Options: These settings allow you to choose the data source for the analysis. Using the `Source` selection, you may tether to additional data streams (e.g. close, hlcc4, hl2), which also may include samples from any other indicator. For example, this could be my "Chirped Sine Wave Generator" script found in my member profile. By using the `SineWave` selection, you may analyze a theoretical sinusoidal wave with a user-defined period, something already incorporated into the code. The `SineWave` will be displayed over top of the periodogram.
Roofing Filter Options: These inputs control the range of the passband for ACP to analyze. Ehlers had two versions of his highpass filters for his releases, so I included an option for you to see the obvious difference when performing a comparison of both. You may choose between 1st and 2nd order high-pass filters.
Spectral Controls: These settings control the core functionality of the spectral analysis results. You can adjust the autocorrelation lag, adjust the level of smoothing for Fourier coefficients, and control the contrast/behavior of the heatmap displaying the power spectra. I provided two color schemes by checking or unchecking a checkbox.
Dominant Cycle Options: These settings allow you to customize the various types of dominant cycle values. You can choose between floating-point and integer values, and select the rounding method used to derive the final dominantCycle values. Also, you may control the level of smoothing applied to the dominant cycle values.
DOMINANT CYCLE VALUE SELECTIONS:
External to the acs() function, the code takes a dominant cycle value returned from acs() and changes its numeric form based on a specified type and form chosen within the indicator settings. The dominant cycle value can be represented as an integer or a decimal number, depending on the attached algorithm's requirements. For example, FIR filters will require an integer while many IIR filters can use a float. The float forms can be either rounded, smoothed, or floored. If the resulting value is desired to be an integer, it can be rounded up/down or just be in an integer form, depending on how your algorithm may utilize it.
AUTOCORRELATION SPECTRUM FUNCTION BASICALLY EXPLAINED:
In the beginning of the acs() code, the population of caches for precalculated angular frequency factors and smoothing coefficients occur. By precalculating these factors/coefs only once and then storing them in an array, the indicator can save time and computational resources when performing subsequent calculations that require them later.
In the following code block, the "Calculate AutoCorrelations" is calculated for each period within the passband width. The calculation involves numerous summations of values extracted from the roofing filter. Finally, a correlation values array is populated with the resulting values, which are normalized correlation coefficients.
Moving on to the next block of code, labeled "Decompose Fourier Components", Fourier decomposition is performed on the autocorrelation coefficients. It iterates this time through the applicable period range of 6 to 49, calculating the real and imaginary parts of the Fourier components. Frequencies 6 to 49 are the primary focus of interest for this periodogram. Using the precalculated angular frequency factors, the resulting real and imaginary parts are then utilized to calculate the spectral Fourier components, which are stored in an array for later use.
The next section of code smooths the noise ridden Fourier components between the periods of 6 and 49 with a selected filter. This species also employs numerous SuperSmoothers to condition noisy Fourier components. One of the big differences is Ehlers' versions used basic EMAs in this section of code. I decided to add SuperSmoothers.
The final sections of the acs() code determines the peak power component for normalization and then computes the dominant cycle period from the smoothed Fourier components. It first identifies a single spectral component with the highest power value and then assigns it as the peak power. Next, it normalizes the spectral components using the peak power value as a denominator. It then calculates the average dominant cycle period from the normalized spectral components using Ehlers' "Center of Gravity" calculation. Finally, the function returns the dominant cycle period along with the normalized spectral components for later external use to plot the periodogram.
POST SCRIPT:
Concluding, I have to acknowledge a newly found analyst for assistance that I couldn't receive from anywhere else. For one, Claude doesn't know much about Pine, is unfortunately color blind, and can't even see the Pine reference, but it was able to intuitively shred my code with laser precise realizations. Not only that, formulating and reformulating my description needed crucial finesse applied to it, and I couldn't have provided what you have read here without that artificial insight. Finding the right order of words to convey the complexity of ACP and the elaborate accompanying content was a daunting task. No code in my life has ever absorbed so much time and hard fricking work, than what you witness here, an ACP gem cut pristinely. I'm unveiling my version of ACP for an empowering cause, in the hopes a future global army of code wielders will tether it to highly functional computational contraptions they might possess. Here is ACP fully blessed poetically with the "Power of Pine" in sublime code. ENJOY!
Whale Trend AnalysisLarge entity and whales are always smart, they hide in the market to make money. Learning how they operate, we will become smarter. How to distinguish the structure of participants, find the large entities or giant whales, this is a difficult problem.
Indicators: Whale Trend Analysis , using AI algorithms to find them.
⏩Principle overview:
The core of Whale Trend Analysis is trading volume. By subdividing the cumulative value of trading volume in different periods and price, algorithm-weighted splitting is performed on ultra-large trading volume, large trading volume, medium trading volume and small trading volume to distinguish each magnitude is subdivided from the four dimensions of large entities, whales, large investors, and retail investors, effectively exploring the main trading entities.
⏩Usage:
4 characters:
· "Light blue column": represents the trading volume of large entities.
· "Red column": represents the trading volume of whales.
· "Green column": represents the trading volume of large investors.
· "Gray column": represents the trading volume of retail investors.
🧿Tip I:
Identify upside willingness. When the market is rising and the column representing large entities and whales appear, it means that the willingness to buy is strong, and the market is rising healthily at this time.
However, when the market continues to rise,but large entities and whales disappear, and only retail investors are trading intensively. At this time, we need to be vigilant. Large entities and whales may be quietly leaving the market, so don’t be cut off.
🧿Tip II:
Recognize bottom-buying sentiment. Most retail investors stop loss and leave the market at the end of the decline, which is the favorite scene of large entities and whales, because they can pick up a lot of cheap chips.
When falling, pay attention to their movements. If the blue and red column that represent large entities and whales appear frequently, it means that they are actively buying. It is possible that the downward momentum will weaken and usher in a short-term bottom.
🧿Tip III:
This indicator is an open indicator that describes the trading methods and participation time of participants at all levels. There are different forms of expression in fluctuation, trends, rises, and falls. It cannot be generalized, and must be analyzed with reference to the market sentiment at that time.
*The signals in the indicators are for reference only and not intended as investment advice. Past performance of a strategy is not indicative of future earnings results.
Advanced Optimized VSA - 15 MinThis script is written in Pine Script and is designed to be run on the TradingView trading platform. It is an advanced technical analysis indicator that utilizes various methods and indicators to generate trading signals based on a Volume Spread Analysis (VSA) approach.
Here's a detailed breakdown of its functionalities:
### Customizable Parameters:
1. `scoreLabel` and `TDLabel`: Customizable labels for score and trend direction.
2. `labelColorScore` and `labelColorTD`: Colors for the score and trend direction labels.
### Base Indicators and Variables:
1. `spread`: Calculates the difference between the high and low of a candle.
2. `emaVolume`: Exponential moving average of volume over a 21-period range.
3. `rsi14`: Relative Strength Index (RSI) over a 14-period range.
4. `sma200` and `ema50`: Simple moving average over a 200-period range and exponential moving average over a 50-period range, respectively.
5. `volatility`: Calculates the 14-period Average True Range (ATR) to determine volatility.
6. `trendDirection`: Establishes the trend direction based on the SMA200.
### Risk Management:
1. `atrValue`: Calculates the value of the ATR.
2. `stopLoss` and `takeProfit`: Calculates the stop-loss and take-profit levels based on the ATR.
### MACD:
Computes the MACD line, signal line, and histogram.
### Volume Analysis:
1. `weightedVol`: Weighted volume.
2. `forceFactor`: Measures the strength of price movement in relation to volume.
### Support and Resistance:
1. `support` and `resistance`: Calculates support and resistance levels based on the most recent 50 periods.
### Liquidity Check:
1. `isLiquid`: Checks if an asset is sufficiently liquid.
### Score Calculation:
Evaluates various factors such as price position relative to support/resistance levels, RSI, MACD, strength of movement, and volatility to generate a score.
### Criteria for Final Signals:
1. `isBullSpread` and `isBearSpread`: Generates a bullish or bearish signal based on various factors, including the score, trend direction, and liquidity.
### Notifications:
Generates alert conditions for bullish and bearish signals.
### Graphical Elements:
Displays various indicators and signals on the chart, including stop-loss, take-profit, SMA200, EMA50, and support and resistance lines.
### Debugging Labels:
Shows labels on the chart for score and trend direction.
The goal is to provide a comprehensive picture of the current asset, taking into consideration various factors and generating potentially profitable trading signals.
################################################################### ITALIANO ########################################################################################
##############################################################################################################################################################################################
Questo script è scritto in Pine Script e progettato per essere eseguito sulla piattaforma di trading TradingView. È un indicatore di analisi tecnica avanzata che utilizza diversi metodi e indicatori per generare segnali di trading basati su un approccio Volume Spread Analysis (VSA).
Ecco un riepilogo dettagliato delle funzionalità:
### Parametri personalizzabili:
1. `scoreLabel` e `TDLabel`: Etichette personalizzabili per i punteggi e la direzione del trend.
2. `labelColorScore` e `labelColorTD`: Colori delle etichette per punteggio e direzione del trend.
### Indicatori e variabili base:
1. `spread`: Calcola la differenza tra il massimo e il minimo di una candela.
2. `emaVolume`: Media mobile esponenziale del volume con un periodo di 21.
3. `rsi14`: RSI (Relative Strength Index) con un periodo di 14.
4. `sma200` e `ema50`: Media mobile semplice con un periodo di 200 e media mobile esponenziale con un periodo di 50, rispettivamente.
5. `volatility`: Calcola l'Average True Range (ATR) con un periodo di 14 per determinare la volatilità.
6. `trendDirection`: Stabilisce la direzione del trend basata sulla SMA200.
### Gestione del rischio:
1. `atrValue`: Calcola il valore dell'ATR.
2. `stopLoss` e `takeProfit`: Calcola i livelli di stop-loss e take-profit basati sull'ATR.
### MACD:
Calcola le linee MACD, segnale e l'istogramma.
### Analisi del volume:
1. `weightedVol`: Volume ponderato.
2. `forceFactor`: Misura la forza del movimento del prezzo in relazione al volume.
### Supporto e resistenza:
1. `support` e `resistance`: Calcola i livelli di supporto e resistenza basati sui 50 periodi più recenti.
### Verifica della liquidità:
1. `isLiquid`: Verifica se un asset è sufficientemente liquido.
### Calcolo del punteggio:
Valuta diversi fattori come la posizione del prezzo rispetto ai livelli di supporto/resistenza, RSI, MACD, forza del movimento e volatilità per generare un punteggio.
### Criteri per i segnali finali:
1. `isBullSpread` e `isBearSpread`: Genera un segnale rialzista o ribassista basato su vari fattori, incluso il punteggio, la direzione del trend e la liquidità.
### Notifiche:
Genera condizioni di allarme per segnali rialzisti e ribassisti.
### Elementi grafici:
Visualizza diversi indicatori e segnali sul grafico, inclusi stop-loss, take-profit, SMA200, EMA50, e linee di supporto e resistenza.
### Etichette di debug:
Mostra etichette sul grafico per il punteggio e la direzione del trend.
L'obiettivo è fornire un quadro completo dell'asset corrente, prendendo in considerazione diversi fattori e generando segnali di trading potenzialmente profittevoli.
Machine Learning Regression Trend [LuxAlgo]The Machine Learning Regression Trend tool uses random sample consensus (RANSAC) to fit and extrapolate a linear model by discarding potential outliers, resulting in a more robust fit.
🔶 USAGE
The proposed tool can be used like a regular linear regression, providing support/resistance as well as forecasting an estimated underlying trend.
Using RANSAC allows filtering out outliers from the input data of our final fit, by outliers we are referring to values deviating from the underlying trend whose influence on a fitted model is undesired. For financial prices and under the assumptions of segmented linear trends, these outliers can be caused by volatile moves and/or periodic variations within an underlying trend.
Adjusting the "Allowed Error" numerical setting will determine how sensitive the model is to outliers, with higher values returning a more sensitive model. The blue margin displayed shows the allowed error area.
The number of outliers in the calculation window (represented by red dots) can also be indicative of the amount of noise added to an underlying linear trend in the price, with more outliers suggesting more noise.
Compared to a regular linear regression which does not discriminate against any point in the calculation window, we see that the model using RANSAC is more conservative, giving more importance to detecting a higher number of inliners.
🔶 DETAILS
RANSAC is a general approach to fitting more robust models in the presence of outliers in a dataset and as such does not limit itself to a linear regression model.
This iterative approach can be summarized as follow for the case of our script:
Step 1: Obtain a subset of our dataset by randomly selecting 2 unique samples
Step 2: Fit a linear regression to our subset
Step 3: Get the error between the value within our dataset and the fitted model at time t , if the absolute error is lower than our tolerance threshold then that value is an inlier
Step 4: If the amount of detected inliers is greater than a user-set amount save the model
Repeat steps 1 to 4 until the set number of iterations is reached and use the model that maximizes the number of inliers
🔶 SETTINGS
Length: Calculation window of the linear regression.
Width: Linear regression channel width.
Source: Input data for the linear regression calculation.
🔹 RANSAC
Minimum Inliers: Minimum number of inliers required to return an appropriate model.
Allowed Error: Determine the tolerance threshold used to detect potential inliers. "Auto" will automatically determine the tolerance threshold and will allow the user to multiply it through the numerical input setting at the side. "Fixed" will use the user-set value as the tolerance threshold.
Maximum Iterations Steps: Maximum number of allowed iterations.
Pro Supertrend CalculatorThis indicator is an adapted version of Julien_Eche's 'Pro Momentum Calculator' tailored specifically for TradingView's 'Supertrend indicator'.
The "Pro Supertrend Calculator" indicator has been developed to provide traders with a data-driven perspective on price movements in financial markets. Its primary objective is to analyze historical price data and make probabilistic predictions about the future direction of price movements, specifically in terms of whether the next candlestick will be bullish (green) or bearish (red). Here's a deeper technical insight into how it accomplishes this task:
1. Supertrend Computation:
The indicator initiates by computing the Supertrend indicator, a sophisticated technical analysis tool. This calculation involves two essential parameters:
- ATR Length (Average True Range Length): This parameter determines the sensitivity of the Supertrend to price fluctuations.
- Factor: This multiplier plays a pivotal role in establishing the distance between the Supertrend line and prevailing market prices. A higher factor value results in a more significant separation.
2. Supertrend Visualization:
The Supertrend values derived from the calculation are meticulously plotted on the price chart, manifesting as two distinct lines:
- Green Line: This line represents the Supertrend when it indicates a bullish trend, signifying an anticipation of rising prices.
- Red Line: This line signifies the Supertrend in bearish market conditions, indicating an expectation of falling prices.
3. Consecutive Candle Analysis:
- The core function of the indicator revolves around tracking successive candlestick patterns concerning their relationship with the Supertrend line.
- To be included in the analysis, a candlestick must consistently close either above (green candles) or below (red candles) the Supertrend line for multiple consecutive periods.
4.Labeling and Enumeration:
- To communicate the count of consecutive candles displaying uniform trend behavior, the indicator meticulously applies labels to the price chart.
- The positioning of these labels varies based on the direction of the trend, residing either below (for bullish patterns) or above (for bearish patterns) the candlestick.
- The color scheme employed aligns with the color of the candle, using green labels for bullish candles and red labels for bearish ones.
5. Tabular Data Presentation:
- The indicator augments its graphical analysis with a customizable table prominently displayed on the chart. This table delivers comprehensive statistical insights.
- The tabular data comprises the following key elements for each consecutive period:
a. Consecutive Candles: A tally of the number of consecutive candles displaying identical trend characteristics.
b. Candles Above Supertrend: A count of candles that remained above the Supertrend during the sequential period.
3. Candles Below Supertrend: A count of candles that remained below the Supertrend during the sequential period.
4. Upcoming Green Candle: An estimation of the probability that the next candlestick will be bullish, grounded in historical data.
5. Upcoming Red Candle: An estimation of the probability that the next candlestick will be bearish, based on historical data.
6. Tailored Configuration:
To accommodate diverse trading strategies and preferences, the indicator offers extensive customization options. Traders can fine-tune parameters such as ATR length, factor, label and table placement, and table size to align with their unique trading approaches.
In summation, the "Pro Supertrend Calculator" indicator is an intricately designed tool that leverages the Supertrend indicator in conjunction with historical price data to furnish traders with an informed outlook on potential future price dynamics, with a particular emphasis on the likelihood of specific bullish or bearish candlestick patterns stemming from consecutive price behavior.
Pro Momentum CalculatorThe Pro Momentum Calculator Indicator is a tool for traders seeking to gauge market momentum and predict future price movements. It achieves this by counting consecutive candle periods above or below a chosen Simple Moving Average (SMA) and then providing a percentage-based probability for the direction of the next candle.
Here's how this principle works:
1. Counting Consecutive Periods: The indicator continuously tracks whether the closing prices of candles are either above or below the chosen SMA.
- When closing prices are above the SMA, it counts consecutive periods as "green" or indicating potential upward momentum.
- When closing prices are below the SMA, it counts consecutive periods as "red" or suggesting potential downward momentum.
2. Assessing Momentum: By monitoring these consecutive periods, the indicator assesses the strength and duration of the current market trend.
This is important information for traders looking to understand the market's behavior.
3. Predicting the Next Candle: Based on the historical data of consecutive green and red periods, the indicator calculates a percentage probability for the direction of the next candle:
- If there have been more consecutive green periods, it suggests a higher likelihood of the next candle being green (indicating a potential upward movement).
- If there have been more consecutive red periods, it suggests a higher likelihood of the next candle being red (indicating a potential downward movement).
The Pro Momentum Calculator indicator's versatility makes it suitable for a wide range of financial markets, including stocks, Forex, indices, commodities, cryptocurrencies...
Wick-to-Body Ratio Trend Forecast | Flux ChartsThe Wick-to-Body Ratio Trend Forecast Indicator aims to forecast potential movements following the last closed candle using the wick-to-body ratio. The script identifies those candles within the loopback period with a ratio matching that of the last closed candle and provides an analysis of their trends.
➡️ USAGE
Wick-to-body ratios can be used in many strategies. The most common use in stock trading is to discern bullish or bearish sentiment. This indicator extends candle ratios, revealing previous patterns that follow a candle with a similar ratio. The most basic use of this indicator is the single forecast line.
➡️ FORECASTING SYSTEM
This line displays a compilation of the averages of all the previous trends resulting from those historical candles with a matching ratio. It shows the average movements of the trends as well as the 'strength' of the trend. The 'strength' of the trend is a gradient that is blue when the trend deviates more from the average and red when it deviates less.
Chart: AMEX:SPY 30 min; Indicator Settings: Loopback 700, Previous Trends ON
The color-coded deviation is visible in this image of the indicator with the default settings (except for Forecast Lines > Previous Trends ), and the trend line grows bluer as the past patterns deviate more.
➡️ ADAPTIVE ACCEPTABLE RANGE
The algorithm looks back at every candle within the loopback period to find candles that match the last closed candle. The algorithm adaptively changes the acceptable range to which a candle can differ from the ratio of the last closed candle. The algorithm will never have more than 15 historical points used, as it will lower its sensitivity before it reaches that point.
Chart: BITSTAMP:BTCUSD 5 min; Indicator Settings: Loopback 700
Here is the BTC chart on 7/6/23 with default settings except for the loopback period at 700.
Chart: BITSTAMP:BTCUSD 5 min; Indicator Settings: Loopback 200
Here is the exact same chart with a loopback period of 200. While the first ratio for both is the same, a new ratio is revealed for the chart with a loopback of only 200 because the adaptive range is adjusted in the algorithm to find an acceptable number of reference points. Note the table in the top right however, while the algorithm adapts the acceptable range between the current ratio and historical ones to find reference points, there is a threshold at which candles will be considered too inaccurate to be considered. This prevents meaningless associations between candles due to a particularly rare ratio. This threshold can be adjusted in the settings through "Default Accuracy".