ETH/USDT EMA Crossover Strategy - OptimizedStrategy Name: EMA Crossover Strategy for ETH/USDT
Description:
This trading strategy is designed for the ETH/USDT pair and is based on exponential moving average (EMA) crossovers combined with momentum and volatility indicators. The strategy uses multiple filters to identify high-probability signals in both bullish and bearish trends, making it suitable for traders looking to trade in trending markets.
Strategy Components
EMAs (Exponential Moving Averages):
EMA 200: Used to identify the primary trend. If the price is above the EMA 200, it is considered a bullish trend; if below, a bearish trend.
EMA 50: Acts as an additional filter to confirm the trend.
EMA 20 and EMA 50 Short: These short-term EMAs generate entry signals through crossovers. A bullish crossover (EMA 20 crosses above EMA 50 Short) is a buy signal, while a bearish crossover (EMA 20 crosses below EMA 50 Short) is a sell signal.
RSI (Relative Strength Index):
The RSI is used to avoid overbought or oversold conditions. Long trades are only taken when the RSI is above 30, and short trades when the RSI is below 70.
ATR (Average True Range):
The ATR is used as a volatility filter. Trades are only taken when there is sufficient volatility, helping to avoid false signals in quiet markets.
Volume:
A volume filter is used to confirm sufficient market participation in the price movement. Trades are only taken when volume is above average.
Strategy Logic
Long Trades:
The price must be above the EMA 200 (bullish trend).
The EMA 20 must cross above the EMA 50 Short.
The RSI must be above 30.
The ATR must indicate sufficient volatility.
Volume must be above average.
Short Trades:
The price must be below the EMA 200 (bearish trend).
The EMA 20 must cross below the EMA 50 Short.
The RSI must be below 70.
The ATR must indicate sufficient volatility.
Volume must be above average.
How to Use the Strategy
Setup:
Add the script to your ETH/USDT chart on TradingView.
Adjust the parameters according to your preferences (e.g., EMA periods, RSI, ATR, etc.).
Signals:
Buy and sell signals will be displayed directly on the chart.
Long trades are indicated with an upward arrow, and short trades with a downward arrow.
Risk Management:
Use stop-loss and take-profit orders in all trades.
Consider a risk-reward ratio of at least 1:2.
Backtesting:
Test the strategy on historical data to evaluate its performance before using it live.
Advantages of the Strategy
Trend-focused: The strategy is designed to trade in trending markets, increasing the probability of success.
Multiple filters: The use of RSI, ATR, and volume reduces false signals.
Adaptability: It can be adjusted for different timeframes, although it is recommended to test it on 5-minute and 15-minute charts for ETH/USDT.
Warnings
Sideways markets: The strategy may generate false signals in markets without a clear trend. It is recommended to avoid trading in such conditions.
Optimization: Make sure to optimize the parameters according to the market and timeframe you are using.
Risk management: Never trade without stop-loss and take-profit orders.
Author
Jose J. Sanchez Cuevas
Version
v1.0
Cerca negli script per "TAKE"
ICT Bread and Butter Sell-SetupICT Bread and Butter Sell-Setup – TradingView Strategy
Overview:
The ICT Bread and Butter Sell-Setup is an intraday trading strategy designed to capitalize on bearish market conditions. It follows institutional order flow and exploits liquidity patterns within key trading sessions—London, New York, and Asia—to identify high-probability short entries.
Key Components of the Strategy:
🔹 London Open Setup (2:00 AM – 8:20 AM NY Time)
The London session typically sets the initial directional move of the day.
A short-term high often forms before a downward push, establishing the daily high.
🔹 New York Open Kill Zone (8:20 AM – 10:00 AM NY Time)
The New York Judas Swing (a temporary rally above London’s high) creates an opportunity for short entries.
Traders fade this move, anticipating a sell-off targeting liquidity below previous lows.
🔹 London Close Buy Setup (10:30 AM – 1:00 PM NY Time)
If price reaches a higher timeframe discount array, a retracement higher is expected.
A bullish order block or failure swing signals a possible reversal.
The risk is set just below the day’s low, targeting a 20-30% retracement of the daily range.
🔹 Asia Open Sell Setup (7:00 PM – 2:00 AM NY Time)
If institutional order flow remains bearish, a short entry is taken around the 0-GMT Open.
Expect a 15-20 pip decline as the Asian range forms.
Strategy Rules:
📉 Short Entry Conditions:
✅ New York Judas Swing occurs (price moves above London’s high before reversing).
✅ Short entry is triggered when price closes below the open.
✅ Stop-loss is set 10 pips above the session high.
✅ Take-profit targets liquidity zones on higher timeframes.
📈 Long Entry (London Close Reversal):
✅ Price reaches a higher timeframe discount array between 10:30 AM – 1:00 PM NY Time.
✅ A bullish order block confirms the reversal.
✅ Stop-loss is set 10 pips below the day’s low.
✅ Take-profit targets 20-30% of the daily range retracement.
📉 Asia Open Sell Entry:
✅ Price trades slightly above the 0-GMT Open.
✅ Short entry is taken at resistance, targeting a quick 15-20 pip move.
Why Use This Strategy?
🚀 Institutional Order Flow Tracking – Aligns with smart money concepts.
📊 Precise Session Timing – Uses market structure across London, New York, and Asia.
🎯 High-Probability Entries – Focuses on liquidity grabs and engineered stop hunts.
📉 Optimized Risk Management – Defined stop-loss and take-profit levels.
This strategy is ideal for traders looking to trade with institutions, fade liquidity grabs, and capture high-probability short setups during the trading day. 📉🔥
[TehThomas] - ICT Liquidity sweepsThe ICT Liquidity Sweeps Indicator is designed to track liquidity zones in the market areas where stop-losses and pending orders are typically clustered. This indicator marks buyside liquidity (resistance) and sellside liquidity (support), helping traders identify areas where price is likely to manipulate liquidity before making a significant move.
This tool is based on Inner Circle Trader (ICT) Smart Money Concepts, which emphasize how institutional traders, or “Smart Money,” manipulate liquidity to fuel price movements. By identifying these zones, traders can anticipate liquidity sweeps and position themselves accordingly.
⚙️ How It Works
1️⃣ Detects Key Liquidity Zones
The script automatically identifies significant swing highs and swing lows in price action using a pivot-based method.
A swing high (buyside liquidity) is a peak where price struggles to break higher, forming a resistance level.
A swing low (sellside liquidity) is a valley where price struggles to go lower, creating a support level.
These liquidity points are prime targets for liquidity sweeps before a true trend direction is confirmed.
2️⃣ Draws Liquidity Lines
Once a swing high or low is identified, a horizontal line is drawn at that level.
The lines extend to the right, serving as future liquidity targets until they are broken.
The indicator allows customization in terms of color, line width, and maximum number of liquidity lines displayed at once.
3️⃣ Handles Liquidity Sweeps
When price breaks a liquidity level, the indicator reacts based on the chosen action setting:
Dotted/Dashed: The line remains visible but changes style to indicate a sweep.
Delete: The line is completely removed once price has interacted with it.
This feature ensures that traders can easily spot where liquidity has been taken and determine whether a reversal or continuation is likely.
4️⃣ Prevents Chart Clutter
To maintain a clean chart, the script limits the number of liquidity lines displayed at any given time.
When new liquidity zones are formed, the oldest lines are automatically removed, keeping the focus on the most relevant liquidity zones.
🎯 How to Use the ICT Liquidity Sweeps Indicator
🔍 Identifying Liquidity Grabs
This indicator helps you identify areas where Smart Money is targeting liquidity before making a move.
Buyside Liquidity (BSL) Sweeps:
Occur when price spikes above a resistance level before reversing downward.
Indicate that Smart Money has hunted stop-losses and buy stops before driving price lower.
Sellside Liquidity (SSL) Sweeps:
Occur when price drops below a support level before reversing upward.
Indicate that Smart Money has collected liquidity from stop-losses and sell stops before pushing price higher.
📈 Combining with Market Structure Shifts (MSS)
One of the best ways to use this indicator is in conjunction with our Market Structure Shifts Indicator.
Liquidity sweeps + MSS Confirmation give strong high-probability trade setups:
Wait for a liquidity sweep (price takes out a liquidity level).
Look for an MSS in the opposite direction (e.g., price sweeps a high, then breaks a recent low).
Enter the trade in the new direction with stop-loss above/below the liquidity sweep.
📊 Entry & Exit Strategies
Long Trade Example:
Price sweeps a key sellside liquidity level (SSL) → creates a false breakdown.
MSS confirms a reversal (price breaks structure upwards).
Enter long position after confirmation.
Stop-loss below the liquidity grab to minimize risk.
Short Trade Example:
Price sweeps a key buyside liquidity level (BSL) → takes liquidity above resistance.
MSS confirms a bearish move (price breaks a key support level).
Enter short position after confirmation.
Stop-loss above the liquidity grab.
🚀 Why This Indicator is a Game-Changer
✅ Helps Identify Smart Money Manipulation – Understand where institutions are likely to grab liquidity before the real move happens.
✅ Enhances Market Structure Analysis – When paired with MSS, liquidity sweeps become powerful signals for trend reversals.
✅ Filters Out False Breakouts – Many traders get caught in liquidity grabs. This indicator helps avoid bad entries.
✅ Keeps Your Chart Clean – The auto-limiting feature ensures that only the most relevant liquidity levels remain visible.
✅ Works on Any Timeframe – Whether you’re a scalper, day trader, or swing trader, liquidity concepts apply universally.
📌 Final Thoughts
The ICT Liquidity Sweeps Indicator is a must-have tool for traders who follow Smart Money Concepts. By tracking liquidity levels and highlighting sweeps, it allows traders to enter trades with precision while avoiding false breakouts.
When combined with Market Structure Shifts (MSS), this strategy becomes even more powerful, offering traders an edge in spotting reversals and timing entries effectively.
__________________________________________
Thanks for your support!
If you found this idea helpful or learned something new, drop a like 👍 and leave a comment—I’d love to hear your thoughts! 🚀
Make sure to follow me for more price action insights, free indicators, and trading strategies. Let’s grow and trade smarter together! 📈✨
Hanzo_Wave_Price %Hanzo_Wave_Price % is a custom indicator for the TradingView platform that combines RSI (Relative Strength Index) and Stochastic RSI while also displaying the percentage price change over a specified period. This indicator helps traders identify overbought and oversold conditions, analyze price waves, and forecast potential market movements.
How It Works
1. RSI and Stochastic RSI Calculation
RSI is calculated based on the selected price source (default: close) with a user-defined Main Line period.
Stochastic RSI is then applied and smoothed using a moving average.
The Main Line represents the smoothed Stochastic RSI, serving as a wave indicator to help identify potential entry and exit points.
2. Overbought and Oversold Zones
The 70 and 30 levels indicate overbought and oversold zones, displayed as dashed lines on the chart.
Additional 20% and 10% levels provide a visual reference for historical price changes, aiding in future predictions.
3. Percentage Price Change Calculation
The indicator calculates the percentage price change over a Barsback period (default: 30 candles).
Users can choose a multiplier (100 or 1000) for better visualization (1000 scales the values by dividing by 10).
The data is displayed as a colored area:
Red (Short) → Negative price change.
Green (Buy) → Positive price change.
Settings & Parameters
Multiplier 💪 – Selects the scaling factor (100 or 1000) for percentage values.
Main Line ✈️ – Stochastic smoothing period (smoothK).
Don't touch ✋ – Reserved value (do not modify).
RSI 🔴 – RSI calculation period.
Stochastic 🔵 – Stochastic RSI calculation period.
Source ⚠️ – Price source for calculations (default: close).
Price changes % 🔼🔽 – Enables percentage price change display.
Barsback ↩️ – Number of candles used to calculate price change.
Visual Representation
Gray Line (Takeprofit Line 🎯) – Smoothed Stochastic RSI.
Red Dashed Line (70) – Overbought zone.
Blue Dashed Line (30) – Oversold zone.
Percentage Price Change Display:
Green Fill → Price increase.
Red Fill → Price decrease.
Advantages
✅ Combined Analysis – Uses RSI and Stochastic RSI for more accurate market condition identification.
✅ Flexibility – Customizable parameters allow adaptation for different markets and strategies.
✅ Visual Clarity – Clearly defined zones and dynamic percentage change display.
✅ Additional Market Insights – The percentage price change helps assess market volatility.
Disadvantages
⚠ Lagging Signals – Smoothing may cause delayed response.
⚠ False Breakouts – The 70/30 levels may not always work effectively for all assets.
⚠ IMPORTANT!
This indicator is for informational and educational purposes only. Past performance does not guarantee future profits! Use it in combination with other technical analysis tools. 🚀
Example 1: Identifying a Long Position
📌 Scenario:
The asset price has dropped significantly (1-hour timeframe), and the Main Line (gray line) crosses below the 30 level. This signals oversold conditions, which may indicate a potential reversal or upward correction.
✅ How to Use:
1️⃣ Identifying the Entry Zone:
If the Main Line is below 30, consider looking for a long entry point.
2️⃣ Confirming the Signal:
Place a vertical line at the moment when the Main Line crosses the 30 level from below.
3️⃣ Confirmation on a Lower Timeframe:
Switch to a 30-minute timeframe and wait for the Main Line to cross above the 70 level.
Enter a long position at this point.
4️⃣ Analyzing Percentage Price Change:
Check the historical indicator behavior:
If a similar past movement resulted in a ~10% price increase (green fill), this may indicate potential upward momentum.
5️⃣ Setting Take-Profit:
Set a take-profit level at 10%, based on previous price movements.
Also, monitor when the Main Line crosses the 70 level, as this may signal a potential profit-taking point.
📊 Conclusion:
This method helps to precisely determine entry points by confirming signals across multiple timeframes and analyzing the historical volatility of the asset. 🚀
Example 2: Analyzing Percentage Price Change
📌 Scenario:
You have set the Barsback parameter to 30, and the indicator shows +3.5%. This means that over the last 30 candles, the price has increased by 3.5%.
However, such small changes might be visually difficult to notice. To improve visibility, you can enable the multiplier (1000), which will scale the displayed percentage change to 35%. This is purely for visual convenience—the actual price movement remains 3.5%.
✅ How to Use:
1️⃣ Identifying Trend Direction:
If the percentage change is positive (green area) → Uptrend.
If the percentage change is negative (red area) → Downtrend.
2️⃣ Analyzing Movement Strength:
Compare the current percentage change with previous waves to evaluate the strength of the movement.
For example:
If previous waves reached 10% or more, a current wave of 3.5% might indicate a weak trend or a local correction.
3️⃣ Additional Filtering with the Main Line (Gray Line):
Use the Main Line to confirm the trend.
If the percentage change shows an increase, but the Main Line is still below 30, further upward movement can be expected.
If the percentage change indicates a decline, but the Main Line is above 70, there is a higher probability of a downward reversal.
"It's unfortunate that TradingView restricts adding images to indicator descriptions unless you have a paid subscription. This makes it harder to share free tools effectively."
Enhanced Bollinger Bands Strategy with SL/TP// Title: Enhanced Bollinger Bands Strategy with SL/TP
// Description:
// This strategy is based on the classic Bollinger Bands indicator and incorporates Stop Loss (SL) and Take Profit (TP) levels for automated trading. It identifies potential long and short entry points based on price crossing the lower and upper Bollinger Bands, respectively. The strategy allows users to customize several parameters to suit different market conditions and risk tolerances.
// Key Features:
// * **Bollinger Bands:** Uses Simple Moving Average (SMA) as the basis and calculates upper and lower bands based on a user-defined standard deviation multiplier.
// * **Customizable Parameters:** Offers extensive customization, including SMA length, standard deviation multiplier, Stop Loss (SL) in pips, and Take Profit (TP) in pips.
// * **Long/Short Position Control:** Allows users to independently enable or disable long and short positions.
// * **Stop Loss and Take Profit:** Implements Stop Loss and Take Profit levels based on pip values to manage risk and secure profits. Entry prices are set to the band levels on signals.
// * **Visualizations:** Provides options to display Bollinger Bands and entry signals on the chart for easy analysis.
// Strategy Logic:
// 1. **Bollinger Bands Calculation:** The strategy calculates the Bollinger Bands using the specified SMA length and standard deviation multiplier.
// 2. **Entry Conditions:**
// * **Long Entry:** Enters a long position when the closing price crosses above the lower Bollinger Band and the `Enable Long Positions` setting is enabled.
// * **Short Entry:** Enters a short position when the closing price crosses below the upper Bollinger Band and the `Enable Short Positions` setting is enabled.
// 3. **Exit Conditions:**
// * **Stop Loss:** Exits the position if the price reaches the Stop Loss level, calculated based on the input `Stop Loss (Pips)`.
// * **Take Profit:** Exits the position if the price reaches the Take Profit level, calculated based on the input `Take Profit (Pips)`.
// Input Parameters:
// * **SMA Length (length):** The length of the Simple Moving Average used to calculate the Bollinger Bands (default: 20).
// * **Standard Deviation Multiplier (mult):** The multiplier applied to the standard deviation to determine the width of the Bollinger Bands (default: 2.0).
// * **Enable Long Positions (enableLong):** A boolean value to enable or disable long positions (default: true).
// * **Enable Short Positions (enableShort):** A boolean value to enable or disable short positions (default: true).
// * **Pip Value (pipValue):** The value of a pip for the traded instrument. This is crucial for accurate Stop Loss and Take Profit calculations (default: 0.0001 for most currency pairs). **Important: Adjust this value to match the specific instrument you are trading.**
// * **Stop Loss (Pips) (slPips):** The Stop Loss level in pips (default: 10).
// * **Take Profit (Pips) (tpPips):** The Take Profit level in pips (default: 20).
// * **Show Bollinger Bands (showBands):** A boolean value to show or hide the Bollinger Bands on the chart (default: true).
// * **Show Entry Signals (showSignals):** A boolean value to show or hide entry signals on the chart (default: true).
// How to Use:
// 1. Add the strategy to your TradingView chart.
// 2. Adjust the input parameters to optimize the strategy for your chosen instrument and timeframe. Pay close attention to the `Pip Value`.
// 3. Backtest the strategy over different periods to evaluate its performance.
// 4. Use the `Enable Long Positions` and `Enable Short Positions` settings to customize the strategy for specific market conditions (e.g., only long positions in an uptrend).
// Important Notes and Disclaimers:
// * **Backtesting Results:** Past performance is not indicative of future results. Backtesting results can be affected by various factors, including market volatility, slippage, and transaction costs.
// * **Risk Management:** This strategy is provided for informational and educational purposes only and should not be considered financial advice. Always use proper risk management techniques when trading. Adjust Stop Loss and Take Profit levels according to your risk tolerance.
// * **Slippage:** The strategy takes into account slippage by specifying a slippage parameter on the `strategy` declaration. However, real-world slippage may vary.
// * **Market Conditions:** The performance of this strategy can vary significantly depending on market conditions. It may perform well in trending markets but poorly in ranging or choppy markets.
// * **Pip Value Accuracy:** **Ensure the `Pip Value` is correctly set for the specific instrument you are trading. Incorrect pip value will result in incorrect stop loss and take profit placement.** This is critical.
// * **Broker Compatibility:** The strategy's performance may vary depending on your broker's execution policies and fees.
// * **Disclaimer:** I am not a financial advisor, and this script is not financial advice. Use this strategy at your own risk. I am not responsible for any losses incurred while using this strategy.
Trend Strength/DirectionThis is a really good, though complex indicator, so I will add two different explanations so to appease both the laymen and those who take the time to read thoroughly.
Simple Explanation
This indicator utilizes 6HMA's to display their angles
The greater the angle ---> the stronger the trend
If more angles are positive, then trend is very strong
If more are negative, then very negative
Comprehensive Explanation
6 angles, each of a different time frame are used to represent direction and trend strength. Angles are used because they intrinsically represent momentum and speed. An angle of 45 represents a perfect balance between something that can cover the furthest distance without compensating for speed. 1 of the 6 angles is intended(though customizable) to represent the 5 hma's angle. This is because the 5hma is very good at representing very near term price action.
Angle Levels
Its important to understand what the angle levels mean for the underlying hma's. The 0 level represents a hma that is horizontal. This is important because this is the point at which it decides to be bullish or bearish. +/- 45, as noted before, represent bullishness/bearishness that represent strong trends without compensating for speed. A continuous increase/decrease and or a cross of these levels generally indicate significant change in sentiment, of which trades may be taken.
Strategy
You should weigh your decision by those angles that represent the longer time frame. If more angles represent a certain sentiment, it is obviously unwise to fight against that long term sentiment. The purpose of this indicator was to provide a proper representation of trend direction and strength, but also solve the problem of when you should 'dip' buy.
For an example: if all angles are increase or decreasing, then you may use the 5hma's angle to find the proper points at which you will enter a position.
***NOTE: I dont think the +/- 45 bands should indicate 'overbought' or 'oversold' zones that some might assume. Instead you should wait for a crossing of this zone.
Percentage price changeThis indicator marks bars whose values increase or decrease by an amount greater than or equal to the value of the specified parameter as a percentage. Bars that meet the condition are marked with labels, boxes and colors. In addition to the standard method of calculating the percentage change at the closing price of the current and previous bars, the indicator allows you to choose non-standard calculation methods (at the prices of opening and closing the current bar, as well as at the prices of the maximum at the minimum of the current bar). You can choose to display the percentage changes of individual bars as well as a series of bars. You can select the number of bars in a series of bars. You can also apply filters by the direction of the bars in the series or by the percentage of individual bars in the series.
It is important to remember that in version 5 of Pine Script™, the maximum possible number of labels and the maximum possible number of boxes cannot exceed 500!
There are several main parameters that can be changed in section PARAMETERS FOR CALCULATION:
1. 'Bars count' - The number of bars for which the percentage rise or fall is calculated.
2. ‘Percentage change’ - sets the price change as a percentage. Bars with a price range above or equal to the specified value will be marked on the chart.
3. ‘First and second points of calculation’ - the first and second points for calculating the percentage change. Here you can set several different values for the calculation:
- 'Cl.pr., Close' - Closing price of the previous bar and closing price of the current bar (or a series of bars) (these values are used for the standard calculation of the percentage change on the chart).
- 'Open, Close' - Opening and closing prices of the current bar (or a series of bars).
- 'High|Low' - Highest and lowest price of the current bar (or a series of bars).
- 'Cl.pr.|High|Low' - Highest or lowest price of the current bar (or a series of bars) (depending on whether the bar is going up or down) or closing price of the previous bar for first point (one of these values is automatically selected, which gives a larger result, depending on whether there is a gap between these values). Highest or lowest price of the current bar for second point.
In the LIMITS section, you can set the following parameters.
1. ‘Only for the last bar’ - If this option is selected, the indicator will be applied only for the last bar (or series of bars).
2. 'Only bars in one direction' - A condition that takes into account sequences from the selected number of bars going in only one direction. If at least one bar has a different direction from the other bars, then such a sequence will not be taken into account. This only works if the 'Bars count' is > 1.
3. "Cut off higher values" - This field cuts off higher values. Bars with a price range above or equal to the specified value will not be marked on the chart. This can be used in some cases to make the chart less loaded with data and more visual. Of course, you can also use this option however you want.
4. ‘Min percent in series of bars’ - If the value 'Number of bars' is > 1, then a series of bars is taken into account, in which the percentage change of individual bars is greater than or equal to the set value.
In the DATE RANGE section, you can set the limits of the time and date range in which the calculation will be performed. In some cases, this can be used in order not to exceed the limit on the number of labels or boxes, which cannot exceed 500. Of course, you can also use this option however you want. By default, the date range is unlimited.
'Timezone offset, hours' - It is used only for the correct display of the limits of the date range in the parameter table.
In the PRICE INCREASE LABELS and PRICE REDUCTION LABELS section, you can define the design of labels bars and boxes, such as colors, shapes, sizes, and location. You can set the colors of the bars separately on the Style tab. On the Style tab, you can also turn on/off the display of frames, labels and color markings of bars.
The PARAMETER TABLE section is designed to adjust the display of the table for a more visual display of the selected values of all parameters on the Arguments tab. Depending on which values have been set and which parameters have been enabled or disabled, the table will change its appearance, display or hide some rows. A single line 'Total found' will be displayed all the time. It shows the count of bars that meet the condition and count of labels or boxes used in the diagram. Since the bars are labeled with labels or boxes, their number cannot exceed 500 for Pine script version 5.
1. 'Pos.' - sets the main position of the table on the screen.
2. 'X off.', 'Y off.' - You can set the offset of the table along the X and Y axes. This option can be useful to avoid overlapping multiple tables if you want to use two or more instances of this indicator on your chart. The minimum value is -30, the maximum is 30. Positive values shift the table to the right on the X axis and up on the Y axis. Negative values shift the table to the left on the X axis and down on the Y axis.
3. 'Font color' - The font color in the table.
'Warn. font color', 'Warn. backgr. color' - The font and background colors in the 'Total found' row in the table. If the number of labels or boxes exceeds 500, the font and background will be colored in these colors.
4. ‘Font size’ – Sets the font size in the table.
5. 'Show hours and minutes in date/time range' - changes the date and time format of time range from {yyyy.MM.dd HH:mm} to {yyyy.MM.dd}.
6. 'View all params' - used to display all parameters, even those duplicated in the main line of the indicator.
7. ‘Title’ – If desired, you can make a header for the table.
The last row of the table shows the number of bars found that meet the conditions. Since these bars are marked with labels (in the case of one bar) or boxes (in the case of series of bars), the limit that can be marked on the chart is 500. Exceeding this value will be displayed in the table and additionally highlighted in red font. This will signal that not all bars found are displayed on the chart.
On the Style tab, you can turn the table display on/off.
US 30 Daily Breakout Strategy The US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown) is a trading approach for the US 30 (Dow Jones Industrial Average) that aims to capture breakout or breakdown moves based on the previous day’s high and low levels. The strategy includes mechanisms to take only one trade per breakout (or breakdown) each day and ensures that each trade is executed only when no other trade is open.
Entry Conditions:
Long Trade (Breakout): The strategy initiates a long position if the current candle closes above the previous day's high, indicating an upward breakout. Only one breakout trade can occur per day, regardless of whether the price remains above the previous high.
Short Trade (Breakdown): The strategy initiates a short position if the current candle closes below the previous day's low, indicating a downward breakdown. Similarly, only one breakdown trade can occur per day.
Risk Management:
Take Profit and Stop Loss: Each trade has a take profit and stop loss of 50 points, aiming to cap profit and limit loss effectively for each position.
Daily Reset Mechanism:
At the start of each new day (based on New York time), the strategy resets its flags, allowing it to look for new breakout or breakdown trades. This reset ensures that only one trade can be taken per breakout or breakdown level each day.
Execution Logic
Flags for Trade Limitation: Flags (breakout_traded and breakdown_traded) are used to ensure only one breakout or breakdown trade is taken per day. These flags reset daily.
Dynamic Plotting: The previous day’s high and low are plotted on the chart, providing a visual reference for potential breakout or breakdown levels.
Overall Objective
This strategy is designed to capture single-directional daily moves by identifying significant breakouts or breakdowns beyond the previous day’s range. The fixed profit and loss limits ensure the trades are managed with controlled risk, while the daily reset feature prevents overtrading and limits each trade opportunity to one breakout and one breakdown attempt per day.
Quick scan for cycles🙏🏻
The followup for
As I told before, ML based algorading is all about detecting any kind of non-randomness & exploiting it (cuz allegedly u cant trade randomness), and cycles are legit patterns that can be leveraged
But bro would u really apply Fourier / Wavelets / 'whatever else heavy' on every update of thousands of datasets, esp in real time on HFT / nearly HFT data? That's why this metric. It works much faster & eats hell of a less electicity, will do initial rough filtering of time series that might contain any kind of cyclic behaviour. And then, only on these filtered datasets u gonna put Periodograms / Autocorrelograms and see what's going there for real. Better to do it 10x times less a day on 10x less datasets, right?
I ended up with 2 methods / formulas, I called em 'type 0' and 'type 1':
- type 0: takes sum of abs deviations from drift line, scales it by max abs deviation from the same drift line;
- type 1: takes sum of abs deviations from drift line, scales it by range of non-abs deviations from the same drift line.
Finnaly I've chosen type 0 , both logically (sum of abs dev divided by max abs dev makes more sense) and experimentally. About that actually, here are both formulas put on sine waves with uniform noise:
^^ generated sine wave with uniform noise
^^ both formulas on that wave
^^ both formulas on real data
As you can see type 0 is less affected by noise and shows higher values on synthetic data, but I decided to put type 1 inside as well, in case my analysis was not complete and on real data type 1 can actually be better since it has a lil higher info gain / info content (still not sure). But I can assure u that out of all other ways I've designed & tested for quite a time I tell you, these 2 are really the only ones who got there.
Now about dem thresholds and how to use it.
Both type 0 and type 1 can be modelled with Beta distribution, and based on it and on some obvious & tho non mainstream statistical modelling techniques, I got these thresholds, so these are not optimized overfitted values, but natural ones. Each type has 3 thresholds (from lowest to highest):
- typical value (turned off by default). aka basis ;
- typical deviation from typical value, aka deviation ;
- maximum modelled deviation from typical value (idk whow to call it properly for now, this is my own R&D), aka extension .
So when the metric is above one of these thresholds (which one is up to you, you'll read about it in a sec), it means that there might be a strong enough periodic signal inside the data, and the data got to be put through proper spectral analysis tools to confirm / deny it.
If you look at the pictures above again, you'll see gray signal, that's uniform noise. Take a look at it and see where does it sit comparing to the thresholds. Now you just undertand that picking up a threshold is all about the amount of false positives you care to withstand.
If you take basis as threshold, you'll get tons of false positives (that's why it's even turned off by default), but you'll almost never miss a true positive. If you take deviation as threshold, it's gonna be kinda balanced approach. If you take extension as threshold, you gonna miss some cycles, and gonna get only the strongest ones.
More true positives -> more false positives, less false positives -> less true positives, can't go around that mane
Just to be clear again, I am not completely sure yet, but I def lean towards type 0 as metric, and deviation as threshold.
Live Long and Prosper
P.S.: That was actually the main R&D of the last month, that script I've released earlier came out as derivative.
P.S.: These 2 are the first R&Ds made completely in " art-space", St. Petersburg. Come and see me, say wassup🤘🏻
Unlock the Power of Seasonality: Monthly Performance StrategyThe Monthly Performance Strategy leverages the power of seasonality—those cyclical patterns that emerge in financial markets at specific times of the year. From tax deadlines to industry-specific events and global holidays, historical data shows that certain months can offer strong opportunities for trading. This strategy was designed to help traders capture those opportunities and take advantage of recurring market patterns through an automated and highly customizable approach.
The Inspiration Behind the Strategy:
This strategy began with the idea that market performance is often influenced by seasonal factors. Historically, certain months outperform others due to a variety of reasons, like earnings reports, holiday shopping, or fiscal year-end events. By identifying these periods, traders can better time their market entries and exits, giving them an advantage over those who solely rely on technical indicators or news events.
The Monthly Performance Strategy was built to take this concept and automate it. Instead of manually analyzing market data for each month, this strategy enables you to select which months you want to focus on and then executes trades based on predefined rules, saving you time and optimizing the performance of your trades.
Key Features:
Customizable Month Selection: The strategy allows traders to choose specific months to test or trade on. You can select any combination of months—for example, January, July, and December—to focus on based on historical trends. Whether you’re targeting the historically strong months like December (often driven by the 'Santa Rally') or analyzing quieter months for low volatility trades, this strategy gives you full control.
Automated Monthly Entries and Exits: The strategy automatically enters a long position on the first day of your selected month(s) and exits the trade at the beginning of the next month. This makes it perfect for traders who want to benefit from seasonal patterns without manually monitoring the market. It ensures precision in entering and exiting trades based on pre-set timeframes.
Re-entry on Stop Loss or Take Profit: One of the standout features of this strategy is its ability to re-enter a trade if a position hits the stop loss (SL) or take profit (TP) level during the selected month. If your trade reaches either a SL or TP before the month ends, the strategy will automatically re-enter a new trade the next trading day. This feature ensures that you capture multiple trading opportunities within the same month, instead of exiting entirely after a successful or unsuccessful trade. Essentially, it keeps your capital working for you throughout the entire month, not just when conditions align perfectly at the beginning.
Built-in Risk Management: Risk management is a vital part of this strategy. It incorporates an Average True Range (ATR)-based stop loss and take profit system. The ATR helps set dynamic levels based on the market’s volatility, ensuring that your stops and targets adjust to changing market conditions. This not only helps limit potential losses but also maximizes profit potential by adapting to market behavior.
Historical Performance Testing: You can backtest this strategy on any period by setting the start year. This allows traders to analyze past market data and optimize their strategy based on historical performance. You can fine-tune which months to trade based on years of data, helping you identify trends and patterns that provide the best trading results.
Versatility Across Asset Classes: While this strategy can be particularly effective for stock market indices and sector rotation, it’s versatile enough to apply to other asset classes like forex, commodities, and even cryptocurrencies. Each asset class may exhibit different seasonal behaviors, allowing you to explore opportunities across various markets with this strategy.
How It Works:
The trader selects which months to test or trade, for example, January, April, and October.
The strategy will automatically open a long position on the first trading day of each selected month.
If the trade hits either the take profit or stop loss within the month, the strategy will close the current position and re-enter a new trade on the next trading day, provided the month has not yet ended. This ensures that the strategy continues to capture any potential gains throughout the month, rather than stopping after one successful trade.
At the start of the next month, the position is closed, and if the next month is also selected, a new trade is initiated following the same process.
Risk Management and Dynamic Adjustments:
Incorporating risk management with this strategy is as easy as turning on the ATR-based system. The strategy will automatically calculate stop loss and take profit levels based on the market’s current volatility, adjusting dynamically to the conditions. This ensures that the risk is controlled while allowing for flexibility in capturing profits during both high and low volatility periods.
Maximizing the Seasonal Edge:
By automating entries and exits based on specific months and combining that with dynamic risk management, the Ultimate Monthly Performance Strategy takes advantage of seasonal patterns without requiring constant monitoring. The added re-entry feature after hitting a stop loss or take profit ensures that you are always in the game, maximizing your chances to capture profitable trades during favorable seasonal periods.
Who Can Benefit from This Strategy?
This strategy is perfect for traders who:
Want to exploit the predictable, recurring patterns that occur during specific months of the year.
Prefer a hands-off, automated trading approach that allows them to focus on other aspects of their portfolio or life.
Seek to manage risk effectively with ATR-based stop losses and take profits that adjust to market conditions.
Appreciate the ability to re-enter trades when a take profit or stop loss is hit within the month, ensuring that they don't miss out on multiple opportunities during a favorable period.
In summary, the Ultimate Monthly Performance Strategy provides traders with a comprehensive tool to capitalize on seasonal trends, optimize their trading opportunities throughout the year, and manage risk effectively. The built-in re-entry system ensures you continue to benefit from the market even after hitting targets within the same month, making it a robust strategy for traders looking to maximize their edge in any market.
Risk Disclaimer:
Trading financial markets involves significant risk and may not be suitable for all investors. The Monthly Performance Strategy is designed to help traders identify seasonal trends, but past performance does not guarantee future results. It is important to carefully consider your risk tolerance, financial situation, and trading goals before using any strategy. Always use appropriate risk management and consult with a professional financial advisor if necessary. The use of this strategy does not eliminate the risk of losses, and traders should be prepared for the possibility of losing their entire investment. Be sure to test the strategy on a demo account before applying it in live markets.
E9 Shark-32 Pattern Strategy The E9 Shark-32 Pattern is a powerful trading tool designed to capitalize on the Shark-32 pattern—a specific Candlestick pattern.
The Shark-32 Pattern: What Is It?
The Shark-32 pattern is a technical formation that occurs when the following conditions are met:
Higher Highs and Lower Lows: The low of two bars ago is lower than the previous bar, and the previous bar's low is lower than the current bar. At the same time, the high of two bars ago is higher than the previous bar, and the previous bar’s high is higher than the current bar.
This unique setup forms the "Shark-32" pattern, which signals potential volume squeezes and trend changes in the market.
How Does the Strategy Work?
The E9 Shark-32 Pattern Strategy builds upon this pattern by defining clear entry and exit rules based on the pattern's confirmation. Here's a breakdown of how the strategy operates:
1. Identifying the Shark-32 Pattern
When the Shark-32 pattern is confirmed, the strategy "locks" the high and low prices from the initial bar of the pattern. These locked prices serve as key levels for future trade entries and exits.
2. Entry Conditions
The strategy waits for the price to cross the pattern's locked high or low, signaling potential market direction.
Long Entry: A long trade is triggered when the closing price crosses above the locked pattern high (green line).
Short Entry: A short trade is triggered when the closing price crosses below the locked pattern low (red line).
The strategy ensures that only one trade is taken for each Shark-32 pattern, preventing overtrading and allowing traders to focus on high-probability setups.
3. Stop Loss and Take Profit Levels
The strategy has built-in risk management through stop-loss and take-profit levels, which are visually represented by the lines on the chart:
Stop Loss:
Stop loss can be adjusted in settings.
Take Profit:
For long trades: The take-profit target is set at the upper white dotted line, which is projected above the pattern high.
For short trades: The take-profit target is set at the lower white dotted line, which is projected below the pattern low.
These clearly defined levels help traders to manage risk effectively while maximizing potential returns.
4. Visual Cues
To make trading decisions even easier, the strategy provides helpful visual cues:
Green Line (Pattern High): This line represents the high of the Shark-32 pattern and serves as a resistance level and short entry signal.
Red Line (Pattern Low): This line represents the low of the Shark-32 pattern and serves as a support level and long entry signal.
White Dotted Lines: These lines represent potential profit targets, projected both above and below the pattern. They help traders define where the market might go next.
Additionally, the strategy highlights the pattern formation with color-coded bars and background shading to draw attention to the Shark-32 pattern when it is confirmed. This adds a layer of visual confirmation, making it easier to spot opportunities in real-time.
5. No Repeated Trades
An important aspect of the strategy is that once a trade is taken (either long or short), no additional trades are executed until a new Shark-32 pattern is identified. This ensures that only valid and confirmed setups are acted upon.
StyleLibraryLibrary "StyleLibrary"
A small library of Pine Script functions that return built-in style variables.
method sizeStyle(size)
Takes a `string` that returns the corresponding built-in size style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
size (string) : A `string` representing a built-in size style: `"Tiny"`, `"Small"`, `"Normal"`, `"Large"`,
`"Huge"`, `"Auto"`.
Returns: The respective built-in size style variable.
method sizeStyle(size)
Takes a `sizeStyle` that returns the corresponding built-in size style variable.
Namespace types: series sizeStyle
Parameters:
size (series sizeStyle) : A `sizeStyle` representing a built-in size style variable.
Returns: The respective built-in size style variable.
method lineStyle(style)
Takes a `string` that returns the corresponding built-in line style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
style (string) : A `string` representing a built-in line style: `"Dashed"`, `"Dotted"`, `"Solid"`.
Returns: The respective built-in line style variable.
method lineStyle(style)
Takes a `lineStyle` that returns the corresponding built-in line style variable.
Namespace types: series lineStyle
Parameters:
style (series lineStyle) : A `lineStyle` representing a built-in line style variable.
Returns: The respective built-in line style variable.
method labelStyle(style)
Takes a `string` that returns the corresponding built-in label style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
style (string) : A `string` representing a built-in label style:
`"Arrow Down"`, `"Arrow Up"`, `"Circle"`, `"Cross"`, `"Diamond"`, `"Flag"`,
`"Label Center"`, `"Label Down"`, `"Label Left"`, `"Label Lower Left"`,
`"Label Lower Right"`, `"Label Right"`, `"Label Up"`, `"Label Upper Left"`,
`"Label Upper Right"`, `"None"`, `"Square"`, `"Text Outline"`, `"Triangle Down"`,
`"Triangle Up"`, `"XCross"`.
Returns: The respective built-in label style variable.
method labelStyle(style)
Takes a `labelStyle` that returns the corresponding built-in label style variable.
Namespace types: series labelStyle
Parameters:
style (series labelStyle) : A `labelStyle` representing a built-in label style variable.
Returns: The respective built-in label style variable.
method fontStyle(font)
Takes a `string` that returns the corresponding built-in font style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
font (string) : A `string` representing a built-in font style: `"Default"`, `"Monospace"`.
Returns: The respective built-in font style variable.
method positionStyle(position)
Takes a `string` that returns the corresponding built-in position style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
position (string) : A `string` representing a built-in position style:
`"Bottom Center", `"Bottom Left", `"Bottom Right", `"Middle Center", `"Middle Left",
`"Middle Right", `"Top Center", `"Top Left", `"Top Right".
Returns: The respective built-in position style variable.
method displayStyle(display)
Takes a `simple string` that returns the corresponding built-in display style variable.
Namespace types: simple string, input string, const string
Parameters:
display (simple string) : A `simple string` representing a built-in display style: `"All"`, `"Data Window"`,
`"None"`, `"Pane"`, `"Price Scale"`, `"Status Line"`.
Returns: The respective built-in display style variable.
Daily Bias Engine | PDH/PDL Range This program is designed to track the previous day range and interactions with the mean threshold on the following day.
The bias strategy is simple:
If you create new range highs over a PDH, you will lean towards calls.
If you create new range lows over a PDL, you will learn towards puts.
If neither event happens, no bias can be determined and therefore no trades taken.
If by 12:00pm there still is no bias determined, it will show moderate strength based on the trend.
Remember, use this strategy to outline your bias and find a cheap entry model to take advantage of.
Multi-Factor StrategyThis trading strategy combines multiple technical indicators to create a systematic approach for entering and exiting trades. The goal is to capture trends by aligning several key indicators to confirm the direction and strength of a potential trade. Below is a detailed description of how the strategy works:
Indicators Used
MACD (Moving Average Convergence Divergence):
MACD Line: The difference between the 12-period and 26-period Exponential Moving Averages (EMAs).
Signal Line: A 9-period EMA of the MACD line.
Usage: The strategy looks for crossovers between the MACD line and the Signal line as entry signals. A bullish crossover (MACD line crossing above the Signal line) indicates a potential upward movement, while a bearish crossover (MACD line crossing below the Signal line) signals a potential downward movement.
RSI (Relative Strength Index):
Usage: RSI is used to gauge the momentum of the price movement. The strategy uses specific thresholds: below 70 for long positions to avoid overbought conditions and above 30 for short positions to avoid oversold conditions.
ATR (Average True Range):
Usage: ATR measures market volatility and is used to set dynamic stop-loss and take-profit levels. A stop loss is set at 2 times the ATR, and a take profit at 3 times the ATR, ensuring that risk is managed relative to market conditions.
Simple Moving Averages (SMA):
50-day SMA: A short-term trend indicator.
200-day SMA: A long-term trend indicator.
Usage: The strategy uses the relationship between the 50-day and 200-day SMAs to determine the overall market trend. Long positions are taken when the price is above the 50-day SMA and the 50-day SMA is above the 200-day SMA, indicating an uptrend. Conversely, short positions are taken when the price is below the 50-day SMA and the 50-day SMA is below the 200-day SMA, indicating a downtrend.
Entry Conditions
Long Position:
-MACD Crossover: The MACD line crosses above the Signal line.
-RSI Confirmation: RSI is below 70, ensuring the asset is not overbought.
-SMA Confirmation: The price is above the 50-day SMA, and the 50-day SMA is above the 200-day SMA, indicating a strong uptrend.
Short Position:
MACD Crossunder: The MACD line crosses below the Signal line.
RSI Confirmation: RSI is above 30, ensuring the asset is not oversold.
SMA Confirmation: The price is below the 50-day SMA, and the 50-day SMA is below the 200-day SMA, indicating a strong downtrend.
Opposite conditions for shorts
Exit Strategy
Stop Loss: Set at 2 times the ATR from the entry price. This dynamically adjusts to market volatility, allowing for wider stops in volatile markets and tighter stops in calmer markets.
Take Profit: Set at 3 times the ATR from the entry price. This ensures a favorable risk-reward ratio of 1:1.5, aiming for higher rewards on successful trades.
Visualization
SMAs: The 50-day and 200-day SMAs are plotted on the chart to visualize the trend direction.
MACD Crossovers: Bullish and bearish MACD crossovers are highlighted on the chart to identify potential entry points.
Summary
This strategy is designed to align multiple indicators to increase the probability of successful trades by confirming trends and momentum before entering a position. It systematically manages risk with ATR-based stop loss and take profit levels, ensuring that trades are exited based on market conditions rather than arbitrary points. The combination of trend indicators (SMAs) with momentum and volatility indicators (MACD, RSI, ATR) creates a robust approach to trading in various market environments.
Partial Profit Calculator [TFO]This indicator was built to help calculate the outcome of trades that utilize multiple profit targets and/or multiple entries.
In its simplest form, we can have a single entry and a single profit target. As shown below in this long trade example, the indicator will draw risk and reward boxes (red and green, respectively) with several annotations. On the left-hand side, all entries will be displayed (in this case there is only one entry, "E1"). On the bottom, the "SL" label indicates the trade's stop loss placement. On the top, all target prices are displayed (in this case there is only one target, "TP1"). Lastly, on the right-hand side a label will display the total R that is to be expected from a winning trade, where R is one's unit of risk.
In the following example, we have two target prices - one at 18600 and one at 18700. You can input as many target prices as you'd like, separated by commas, i.e. "18600,18700" in this example. Make sure the values are separated by commas only, and not spaces, new lines, etc. As a result, we can see that the indicator draws where our profit targets would be with respect to our entry, E1. The indicator assumes that equal parts of the trade position are taken off at each target price. In this example on Nasdaq futures (NQ1!), since we have 2 target prices, this would be equivalent to assuming that we take exactly half the trade position off at TP1, and the remaining half of the position at TP2.
If we wanted to take more of the position off at a certain target, we could simply duplicate the target price. Here I set the target prices to "18600,18600,18700" to enforce that two thirds of the position be taken off at TP1 and TP2, while the remaining third gets taken off at TP3.
We can also show outcome annotations to describe how much R is generated from each possible trade outcome. Using the below chart as an example, the stop loss indicates a -1R loss. The total R from this trade criteria is 1.33 R, and each target price shows how much R is being generated if one were to take off an equal part of the position at said target prices. In this case, we would generate 0.17 R from taking one third of the position off at TP1, another 0.5 R from taking one third of the position off at TP2, and another 0.67 R from taking the remaining one third of the position off at TP3, all adding up to the total R indicated on the right-hand side label.
Using multiple entries works the same way as using multiple target prices, where the input should indicate each entry price separated by commas. In this example I've used "18550,18450" to achieve an average price of 18500, as indicated by the "E_avg" label that appears when more than one entry price is utilized. We can also opt to display risk as dollars instead of R values, where you can input your desired risk per trade, and all values are shown as dollar amounts instead of R multiples, as shown below with a risk per trade of $100.
This is meant to be an educational tool for trades that utilize multiple profit targets and/or entries. Hope you like it!
Liquidity Swings & SweepsThis Pine script indicator is designed to create a visual representation liquidity as identified by swing Highs/Lows along with an indication of the liquidity level that was swept, optionally rating the strength of the sweep based on time & price.
Relevance:
Liquidity levels & sweeps are crucial for many SMC/ICT setups and can indicate a point at which the price changes direction or may re-trace in an opposite direction to provide additional liquidity for continued move in the original direction. Additionally, liquidity levels may provide targets for setups, as price action will often seek to take out those levels as they main contain many buy/sell stops.
How It Works:
The indicator tracks all swing points, as identified using user-defined strength of the swing. Once a swing is formed that meets the criteria, it is represented by a horizontal line starting at the price of the current swing until the last bar on the chart. While the swing is valid, this line will continue to be extended until the swing is invalid or a new swing is formed. Upon identifying a new swing, the indicator then scans the earlier swings in the same direction looking for a point of greatest liquidity that was taken by the current swing. This level is then denoted by dashed horizontal line, connecting earlier swing point to the current. At the same time any liquidity zones between the two swings are automatically removed from the chart if they had previously been rendered on the chart. If the setting to enable scan for maximum liquidity is enabled, then while looking back, the indicator will look for lowest low or highest high that was taken by the current swing point, which may not be a swing itself, however, is a lowest/highest price point taken (mitigated) by the current swing, which in many cases will be better price then then the one represented by previous swing. If the option to render sweep label is enabled, the sweep line will also be completed by a label, that will score the sweep and a tooltip showing the details of the level swept and the time it took to sweep it. The score explained further in configurability section ranks the strength of the sweep based on time and is complemented by price (difference in price between the two liquidity levels).
Configurability:
A user may configure the strength of the swing using both left/right strength (number of bars) as well as optionally instruct the indicator to seek the lowest/highest price point which may not be previous swing that was taken out by newly formed swing.
From appearance perspective liquidity level colors & line width presenting the liquidity/swing can be configured. There is also an option to render the liquidity sweep label that will generate an icon-based rating of the liquidity sweep and a tooltip that provides details on the scope of the swing, which includes liquidity level swept and when it was formed along with the time it took to sweep the liquidity.
Rating is of sweeps is primarily based on time with a secondary reference to price
💥- Best rating, very strong sweep with an hourly or better liquidity sweep
🔥- Second rating, strong sweep with 15 – 59 minute liquidity sweep, or 5+ minute sweep of 10+ points
✅- Third rating, ok sweep with 5 - 15 minute liquidity sweep, or lower-time-frame sweep of 10+ points
❄️ - Weakest sweep, with liquidity of 5 or less minutes swept
What makes this indicator different:
Designed with high performance in mind, to reduce impact on chart render time.
Only keeps valid liquidity levels & sweeps on the chart
Automatically removes previously taken liquidity levels
Ranks liquidity sweeps to indicate strength of the sweep
Order Blocks Indicator [TradingFinder] Lightning|CHOCH |OB | BOS🔵 Introduction
In "Price Action," an "Order Block" is essentially an area on the price chart where significant players such as institutional traders have executed their moves by placing noteworthy orders. These points often indicate areas where price either attempts to break through (resistance) or returns when it reaches there (support).
Therefore, when discussing the identification of order blocks, we typically refer to finding points where the price has stalled for a while and has accumulated strength before making a significant move in one direction.
Essentially, order blocks assist traders in understanding where large players with "smart money" have likely placed their bulk orders in the market. Traders use these order blocks as part of their overall analysis to identify probable levels where price may change direction.
This version of the order block indicator is designed for traders, adding many indicators to their charts. The minimal design helps minimize disruptions to user focus.
🔵 Identification of Order Blocks
To identify order blocks, first, a "Level Break" must occur. To identify a "Demand Zone," a "High Level Break" is required, and to identify a "Supply Zone," a "Low Level Break" is needed.
Demand Zone :
Supply Zone :
🔵 "Change of Character" or "Market Shift Structure"
"ChoCh" or "MSS" is the "Break Level" that is contrary to the previous trend. For example, if a "Bearish Level" is established in the market and consecutive "Low Levels" are being broken, the price turns upward, breaking a "High Level." This break is called "ChoCh" or "MSS."
🔵 "Break of Structure"
"Break of Structure," or "BoS" for short, is the "Break Level" in the direction of the current trend. For example, if a "Bullish Level" is established in the market, when the price breaks a "High Level," a "BoS" has occurred.
🔵 Features
🟣 Major Level
This feature helps you easily identify major levels. These levels form when the price breaks another major level.
🟣 Refine Order Block
The "Refinement" feature allows you to adjust the width of the order block based on your strategy. There are two modes, "Aggressive" and "Defensive," in Order Block Refine. The difference between "Aggressive" and "Defensive" lies in the width of the order block. For "Risk Averse" traders, the "Defensive" mode is suitable because it provides smaller stop losses and larger reward-to-risk ratios. For "Risk Taker" traders, the "Aggressive" mode is more suitable. These traders prefer to enter trades at higher prices and this mode, where the width of the order block is greater, is more suitable for this group of individuals.
🔵 How to Use
After adding the indicator to your chart, you will see a visual similar to the image below. Green order blocks are "Demand Zones" and red order blocks are "Supply Zones." The midpoint of the order blocks also indicates 50% of it.
Refine Order Block is defaulted to On and refines the order blocks. If you want the order blocks to remain original, you should set it to Off.
Refine is defaulted to "Defensive" mode. If you want it to be in "Aggressive" mode, you should change its mode through Refine Type.
Displaying "Major Levels" is turned off by default and to display them, you should set "Show High Level" and "Show Low Level" to "Yes." You can use these lines to identify liquidity or determine stop loss and take profit levels.
VWAP 8EMA Crossover Scalping IndicatorWhy?
Everybody, especially in Indian context, from 9:15 AM to 3:30 PM, wants to trade in BankNifty.
And even 15m is Too Big timeframe for The Great Indian Options buyers. Everyone knows how potentially BankNifty (& FinNifty on Tuesday and Sensex on Friday) can show dance within 15m.
So there always been an overarching longing among traders to have something in shorter timeframes. And this 5m timeframe, looks like a universally (sic) accepted Standard Timeframe for Indian Options traders.
So here is this.
What?
The time we are publishing this public indicator Indian market (Nifty) is in ATH at ~22200.
In any such super trending market it's always good to wait for a dip and then in suitable time, enter the trade in the direction of the larger trend. The reversal trading systems, in such a situation, proves to be ineffective.
Of course there are time when market is sideways and keeps on oscillating between +/2 standard deviation of the 20 SMA. In such a situation the reversal play works perfectly. But not so in such a trending market.
So the question comes up - after a dip what's the right point to enter.
Hence comes the importance of such a crossover based trading system.
In this indicator, it's a well-known technique (nothing originally from ours, it's taken from social media, exact one we forgot) to find out the 8EMA and VWAP crossover.
So we learned from social media, practice in our daily trading a bit, actuate it and now publishing it.
A few salient points
It does not make sense to jump into the trade just on the crossover (or crossunder).
So we added some more sugar to it, e.g. we check the color the candle. Also the next candle if crosses and closes above (or below) the breakout candle's high/low.
The polarity (color) of both the alert (breakout/breakdown) and confirmation candle to be same (green for crossover, red from crossunder).
Of course, it does provider BUY and SELL alerts separately.
These all we have found out doing backtesting and forward testing with 1/2 lots and saw this sort of approaches works.
Hence all of these are added to this script.
Nomenclature
Here green line is the 8EMA and the red line is the VWAP.
Also there is a black dotted line. That's 50 EMA. It's to show you the trend.
The recent trade is shown in the top right of the chart as green (for buy) or red (for sell) with SL and 1:1 target.
How to trade using this system?
This is roughly we have found the best possible use of this indicator.
Lets explain with a bullish BUY positive crossover (means 8EMA is crossing over the daily VWAP)
Keep timeframe as 5m
Check the direction/slope of the black dotted line (50 EMA). If it's upwards, only take bullish positions.
Open the chart which has the VWAP. (e.g. FinNifty spot or MidcapNifty spot does not have vwap). So in those cases Future is the way to go.
Wait for a breakout crossover and let the indicator gives a green, triangular UP arrow.
Draw a horizontal line to the close of that candle for next few (say 6 candles i.e. 30m) candles.
Wait for the price first to retest the 8EMA or even better the VWAP (or near to the 8EMA, VWAP)
Let the price moves and closes above the horizontal line drawn in the 4th step.
Take a bullish trade, keeping VWAP as the SL and 1:1 as the target.
Additionally, Options buyer can consult ADX also to see if the ADX is more than 25 and moving up for the bullish trade. (This has to be added seperately in the chart, it's not a part of the indicator).
Mention
The concept we have taken from some social media. Forget exactly where we heard this first time. We just coded it with some additional steps.
Statutory Disclaimer
There is no silver bullet / holy grail in trading. Nothing works 100% time. One has to be careful about the loss (s)he can bear in case of the trade goes against.
We, as the author of this script, is not responsible for any trading or position decision one is taken based on the outcome of this.
It is our sole discretion to change, add, delete the portion or withdraw the whole script without any prior notice or intimation.
In Indian Context: We are not SEBI registered.
ORB Algo | Flux Charts💎 GENERAL OVERVIEW
Introducing our new ORB Algo indicator! ORB stands for "Opening Range Breakout" which is a common trading strategy. The indicator can analyze the market trend in the current session and give "Buy / Sell", "Take Profit" and "Stop Loss" signals. For more information about the analyzing process of the indicator, you can read "How Does It Work ?" section of the description.
Features of the new ORB Algo indicator :
Buy & Sell Signals
Up To 3 Take Profit Signals
Stop-Loss Signals
Alerts for Buy / Sell, Take-Profit and Stop-Loss
Customizable Algoritm
Session Dashboard
Backtesting Dashboard
📌 HOW DOES IT WORK ?
This indicator works best in 1-minute timeframe. The idea is that the trend of the current session can be forecasted by analyzing the market for a while after the session starts. However, each market has it's own dynamics and the algorithm will need fine-tuning to get the best performance possible. So, we've implemented a "Backtesting Dashboard" that shows the past performance of the algorithm in the current ticker with your current settings. Always keep in mind that past performance does not guarantee future results.
Here are the steps of the algorithm explained briefly :
1. The algorithm follows and analyzes the first 30 minutes (can be adjusted) of the session.
2. Then, algorithm checks for breakouts of the opening range's high or low.
3. If a breakout happens in a bullish or a bearish direction, the algorithm will now check for retests of the breakout. Depending on the sensitivity setting, there must be 0 / 1 / 2 / 3 failed retests for the breakout to be considered as reliable.
4. If the breakout is reliable, the algorithm will give an entry signal.
5. After the position entry, algorithm will now wait for Take-Profit or Stop-Loss zones and signal if any of them occur.
If you wonder how does the indicator find Take-Profit & Stop-Loss zones, you can check the "Settings" section of the description.
🚩UNIQUENESS
While there are indicators that show the opening range of the session, they come short with features like indicating breakouts, entries, and Take-Profit & Stop-Loss zones. We are also aware of that different stock markets have different dynamics, and tuning the algorithm for different markets is really important for better results, so we decided to make the algorithm fully customizable. Besides all that, our indicator contains a detailed backtesting dashboard, so you can see past performance of the algorithm in the current ticker. While past performance does not yield any guarantee for future results, we believe that a backtesting dashboard is necessary for tuning the algorithm. Another strength of this indicator is that there are multiple options for detection of Take-Profit and Stop-Loss zones, which the trader can select one of their liking.
⚙️SETTINGS
Keep in mind that best chart timeframe for this indicator to work is the 1-minute timeframe.
TP = Take-Profit
SL = Stop-Loss
EMA = Exponential Moving Average
OR = Opening Range
ATR = Average True Range
1. Algorithm
ORB Timeframe -> This setting determines the timeframe that the algorithm will analyze the market after a new session begins before giving any signals. It's important to experiment with this setting and find the best option that suits the current ticker for the best performance. More volatile stocks will often require this setting to be larger, while more stabilized stocks may have this setting shorter.
Sensitivity -> This setting determines how much failed retests are needed to take a position entry. Higher senstivity means that less retests are needed to consider the breakout as reliable. If you think that the current ticker makes strong movements in a bullish & bearish direction after a breakout, you should set this setting higher. If you think the opposite, meaning that the ticker does not decide the trend right after a breakout, this setting show be lower.
(High = 0 Retests, Medium = 1 Retest, Low = 2 Retests, Lowest = 3 Retests)
Breakout Condition -> The condition for the algorithm to detect breakouts.
Close = Bar needs to close higher than the OR High Line in a bullish breakout, or lower than the OR Low Line in a bearish breakout. EMA = The EMA of the bar must be higher / lower than OR Lines instead of the close price.
TP Method -> The method for the algorithm to use when determining TP zones.
Dynamic = This TP method essentially tries to find the bar that price starts declining the current trend and going to the other direction, and puts a TP zone there. To achieve this, it uses an EMA line, and when the close price of a bar crosses the EMA line, It's a TP spot.
ATR = In this TP method, instead of a dynamic approach the TP zones are pre-determined using the ATR of the entry bar. This option is generally for traders who just want to know their TP spots beforehand while trading. Selecting this option will also show TP zones at the ORB Dashboard.
"Dynamic" option generally performs better, while the "ATR" method is safer to use.
EMA Length -> This setting determines the length of the EMA line used in "Dynamic TP method" and "EMA Breakout Condition". This is completely up to the trader's choice, though the default option should generally perform well. You might want to experiment with this setting and find the optimal length for the current ticker.
Stop-Loss -> Algorithm will place the Stop-Loss zone using setting.
Safer = The SL zone will be placed closer to the OR High for a bullish entry, and closer to the OR Low for a bearish entry.
Balanced = The SL zone will be placed in the center of OR High & OR Low
Risky = The SL zone will be placed closer to the OR Low for a bullish entry, and closer to the OR High for a bearish entry.
Adaptive SL -> This option only takes effect if the first TP zone is hit.
Enabled = After the 1st TP zone is hit, the SL zone will be moved to the entry price, essentially making the position risk-free.
Disabled = The SL zone will never change.
2. ORB Dashboard
ORB Dashboard shows the information about the current session.
3. ORB Backtesting
ORB Backtesting Dashboard allows you to see past performance of the algorithm in the current ticker with current settings.
Total amount of days that can be backtested depends on your TV subscription.
Backtesting Exit Ratios -> You can select how much of percent your entry will be closed at any TP zone while backtesting. For example, %90, %5, %5 means that %90 of the position will be closed at the first TP zone, %5 of it will be closed at the 2nd TP zone, and %5 of it will be closed at the last TP zone.
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!
Statistical Package for the Trading Sciences [SS]
This is SPTS.
It stands for Statistical Package for the Trading Sciences.
Its a play on SPSS (Statistical Package for the Social Sciences) by IBM (software that, prior to Pinescript, I would use on a daily basis for trading).
Let's preface this indicator first:
This isn't so much an indicator as it is a project. A passion project really.
This has been in the works for months and I still feel like its incomplete. But the plan here is to continue to add functionality to it and actually have the Pinecoding and Tradingview community contribute to it.
As a math based trader, I relied on Excel, SPSS and R constantly to plan my trades. Since learning a functional amount of Pinescript and coding a lot of what I do and what I relied on SPSS, Excel and R for, I use it perhaps maybe a few times a week.
This indicator, or package, has some of the key things I used Excel and SPSS for on a daily and weekly basis. This also adds a lot of, I would say, fairly complex math functionality to Pinescript. Because this is adding functionality not necessarily native to Pinescript, I have placed most, if not all, of the functionality into actual exportable functions. I have also set it up as a kind of library, with explanations and tips on how other coders can take these functions and implement them into other scripts.
The hope here is that other coders will take it, build upon it, improve it and hopefully share additional functionality that can be added into this package. Hence why I call it a project. Okay, let's get into an overview:
Current Functions of SPTS:
SPTS currently has the following functionality (further explanations will be offered below):
Ability to Perform a One-Tailed, Two-Tailed and Paired Sample T-Test, with corresponding P value.
Standard Pearson Correlation (with functionality to be able to calculate the Pearson Correlation between 2 arrays).
Quadratic (or Curvlinear) correlation assessments.
R squared Assessments.
Standard Linear Regression.
Multiple Regression of 2 independent variables.
Tests of Normality (with Kurtosis and Skewness) and recognition of up to 7 Different Distributions.
ARIMA Modeller (Sort of, more details below)
Okay, so let's go over each of them!
T-Tests
So traditionally, most correlation assessments on Pinescript are done with a generic Pearson Correlation using the "ta.correlation" argument. However, this is not always the best test to be used for correlations and determine effects. One approach to correlation assessments used frequently in economics is the T-Test assessment.
The t-test is a statistical hypothesis test used to determine if there is a significant difference between the means of two groups. It assesses whether the sample means are likely to have come from populations with the same mean. The test produces a t-statistic, which is then compared to a critical value from the t-distribution to determine statistical significance. Lower p-values indicate stronger evidence against the null hypothesis of equal means.
A significant t-test result, indicating the rejection of the null hypothesis, suggests that there is statistical evidence to support that there is a significant difference between the means of the two groups being compared. In practical terms, it means that the observed difference in sample means is unlikely to have occurred by random chance alone. Researchers typically interpret this as evidence that there is a real, meaningful difference between the groups being studied.
Some uses of the T-Test in finance include:
Risk Assessment: The t-test can be used to compare the risk profiles of different financial assets or portfolios. It helps investors assess whether the differences in returns or volatility are statistically significant.
Pairs Trading: Traders often apply the t-test when engaging in pairs trading, a strategy that involves trading two correlated securities. It helps determine when the price spread between the two assets is statistically significant and may revert to the mean.
Volatility Analysis: Traders and risk managers use t-tests to compare the volatility of different assets or portfolios, assessing whether one is significantly more or less volatile than another.
Market Efficiency Tests: Financial researchers use t-tests to test the Efficient Market Hypothesis by assessing whether stock price movements follow a random walk or if there are statistically significant deviations from it.
Value at Risk (VaR) Calculation: Risk managers use t-tests to calculate VaR, a measure of potential losses in a portfolio. It helps assess whether a portfolio's value is likely to fall below a certain threshold.
There are many other applications, but these are a few of the highlights. SPTS permits 3 different types of T-Test analyses, these being the One Tailed T-Test (if you want to test a single direction), two tailed T-Test (if you are unsure of which direction is significant) and a paired sample t-test.
Which T is the Right T?
Generally, a one-tailed t-test is used to determine if a sample mean is significantly greater than or less than a specified population mean, whereas a two-tailed t-test assesses if the sample mean is significantly different (either greater or less) from the population mean. In contrast, a paired sample t-test compares two sets of paired observations (e.g., before and after treatment) to assess if there's a significant difference in their means, typically used when the data points in each pair are related or dependent.
So which do you use? Well, it depends on what you want to know. As a general rule a one tailed t-test is sufficient and will help you pinpoint directionality of the relationship (that one ticker or economic indicator has a significant affect on another in a linear way).
A two tailed is more broad and looks for significance in either direction.
A paired sample t-test usually looks at identical groups to see if one group has a statistically different outcome. This is usually used in clinical trials to compare treatment interventions in identical groups. It's use in finance is somewhat limited, but it is invaluable when you want to compare equities that track the same thing (for example SPX vs SPY vs ES1!) or you want to test a hypothesis about an index and a leveraged share (for example, the relationship between FNGU and, say, MSFT or NVDA).
Statistical Significance
In general, with a t-test you would need to reference a T-Table to determine the statistical significance of the degree of Freedom and the T-Statistic.
However, because I wanted Pinescript to full fledge replace SPSS and Excel, I went ahead and threw the T-Table into an array, so that Pinescript can make the determination itself of the actual P value for a t-test, no cross referencing required :-).
Left tail (Significant):
Both tails (Significant):
Distributed throughout (insignificant):
As you can see in the images above, the t-test will also display a bell-curve analysis of where the significance falls (left tail, both tails or insignificant, distributed throughout).
That said, I have not included this function for the paired sample t-test because that is a bit more nuanced. But for the one and two tailed assessments, the indicator will provide you the P value.
Pearson Correlation Assessment
I don't think I need to go into too much detail on this one.
I have put in functionality to quickly calculate the Pearson Correlation of two array's, which is not currently possible with the "ta.correlation" function.
Quadratic (Curvlinear) Correlation
Not everything in life is linear, sometimes things are curved!
The Pearson Correlation is great for linear assessments, but tends to under-estimate the degree of the relationship in curved relationships. There currently is no native function to t-test for quadratic/curvlinear relationships, so I went ahead and created one.
You can see an example of how Quadratic and Pearson Correlations vary when you look at CME_MINI:ES1! against AMEX:DIA for the past 10 ish months:
Pearson Correlation:
Quadratic Correlation:
One or the other is not always the best, so it is important to check both!
R-Squared Assessments:
The R-squared value, or the square of the Pearson correlation coefficient (r), is used to measure the proportion of variance in one variable that can be explained by the linear relationship with another variable. It represents the goodness-of-fit of a linear regression model with a single predictor variable.
R-Squared is offered in 3 separate forms within this indicator. First, there is the generic R squared which is taking the square root of a Pearson Correlation assessment to assess the variance.
The next is the R-Squared which is calculated from an actual linear regression model done within the indicator.
The first is the R-Squared which is calculated from a multiple regression model done within the indicator.
Regardless of which R-Squared value you are using, the meaning is the same. R-Square assesses the variance between the variables under assessment and can offer an insight into the goodness of fit and the ability of the model to account for the degree of variance.
Here is the R Squared assessment of the SPX against the US Money Supply:
Standard Linear Regression
The indicator contains the ability to do a standard linear regression model. You can convert one ticker or economic indicator into a stock, ticker or other economic indicator. The indicator will provide you with all of the expected information from a linear regression model, including the coefficients, intercept, error assessments, correlation and R2 value.
Here is AAPL and MSFT as an example:
Multiple Regression
Oh man, this was something I really wanted in Pinescript, and now we have it!
I have created a function for multiple regression, which, if you export the function, will permit you to perform multiple regression on any variables available in Pinescript!
Using this functionality in the indicator, you will need to select 2, dependent variables and a single independent variable.
Here is an example of multiple regression for NASDAQ:AAPL using NASDAQ:MSFT and NASDAQ:NVDA :
And an example of SPX using the US Money Supply (M2) and AMEX:GLD :
Tests of Normality:
Many indicators perform a lot of functions on the assumption of normality, yet there are no indicators that actually test that assumption!
So, I have inputted a function to assess for normality. It uses the Kurtosis and Skewness to determine up to 7 different distribution types and it will explain the implication of the distribution. Here is an example of SP:SPX on the Monthly Perspective since 2010:
And NYSE:BA since the 60s:
And NVDA since 2015:
ARIMA Modeller
Okay, so let me disclose, this isn't a full fledge ARIMA modeller. I took some shortcuts.
True ARIMA modelling would involve decomposing the seasonality from the trend. I omitted this step for simplicity sake. Instead, you can select between using an EMA or SMA based approach, and it will perform an autogressive type analysis on the EMA or SMA.
I have tested it on lookback with results provided by SPSS and this actually works better than SPSS' ARIMA function. So I am actually kind of impressed.
You will need to input your parameters for the ARIMA model, I usually would do a 14, 21 and 50 day EMA of the close price, and it will forecast out that range over the length of the EMA.
So for example, if you select the EMA 50 on the daily, it will plot out the forecast for the next 50 days based on an autoregressive model created on the EMA 50. Here is how it looks on AMEX:SPY :
You can also elect to plot the upper and lower confidence bands:
Closing Remarks
So that is the indicator/package.
I do hope to continue expanding its functionality, but as of now, it does already have quite a lot of functionality.
I really hope you enjoy it and find it helpful. This. Has. Taken. AGES! No joke. Between referencing my old statistics textbooks, trying to remember how to calculate some of these things, and wanting to throw my computer against the wall because of errors in the code, this was a task, that's for sure. So I really hope you find some usefulness in it all and enjoy the ability to be able to do functions that previously could really only be done in external software.
As always, leave your comments, suggestions and feedback below!
Take care!
Filtered Volume Profile [ChartPrime]The "Filtered Volume Profile" is a powerful tool that offers insights into market activity. It's a technical analysis tool used to understand the behavior of financial markets. It uses a fixed range volume profile to provide a histogram representing how much volume occurred at distinct price levels.
Profile in action with various significant levels displayed
How to Use
The script is designed to analyze cumulative trading volumes in different price bins over a certain period, also known as `'lookback'`. This lookback period can be defined by the user and it represents the number of bars to look back for calculating levels of support and resistance.
The `'Smoothing'` input determines the degree to which the output is smoothed. Higher values lead to smoother results but may impede the responsiveness of the indicator to rapid changes in volatility.
The `'Peak Sensitivity'` input is used to adjust the sensitivity of the script's peak detection algorithm. Setting this to a lower value makes the algorithm more sensitive to local changes in trading volume and may result in "noisier" outputs.
The `'Peak Threshold'` input specifies the number of bins that the peak detection mechanism should account for. Larger numbers imply that more volume bins are taken into account, and the resultant peaks are based on wider intervals.
The `'Mean Score Length'` input is used for scaling the mean score range. This is particularly important in defining the length of lookback bars that will be used to calculate the average close price.
Sinc Filter
The application of the sinc-filter to the Filtered Volume Profile reduces the risk of viewing artefacts that may misrepresent the underlying market behavior. Sinc filtering is a high-quality and sharp filter that doesn't manifest any ringing effects, making it an optimal choice for such volume profiling.
Histogram
On the histogram, the volume profile is colored based on the balance of bullish to bearish volume. If a particular bar is more intense in color, it represents a larger than usual volume during a single price bar. This is a clear signal of a strong buying or selling pressure at a particular price level.
Threshold for Peaks
The `peak_thresh` input determines the number of bins the algorithm takes in account for the peak detection feature. The 'peak' represents the level where a significant amount of volume trading has occurred, and usually is of interest as an indicative of support or resistance level.
By increasing the `peak_thresh`, you're raising the bar for what the algorithm perceives as a peak. This could result in fewer, but more significant peaks being identified.
History of Volume Profiles and Evolution into Sinc Filtering
Volume profiling has a rich history in market analysis, dating back to the 1950s when Richard D. Wyckoff, a legendary trader, introduced the concept of volume studies. He understood the critical significance of volume and its relationship with market price movement. The core of Wyckoff's technical analysis suite was the relationship between prices and volume, often termed as "Effort vs Results".
Moving forward, in the early 1800s, the esteemed mathematician J. R. Carson made key improvements to the sinc function, which formed the basis for sinc filtering application in time series data. Following these contributions, trading studies continued to create and integrate more advanced statistical measures into market analysis.
This culminated in the 1980s with J. Peter Steidlmayer’s introduction of Market Profile. He suggested that markets were a function of continuous two-way auction processes thus introducing the concept of viewing markets in price/time continuum and price distribution forms. Steidlmayer's Market Profile was the first wide-scale operation of organized volume and price data.
However, despite the introduction of such features, challenges in the analysis persisted, especially due to noise that could misinform trading decisions. This gap has given rise to the need for smoothing functions to help eliminate the noise and better interpret the data. Among such techniques, the sinc filter has become widely recognized within the trading community.
The sinc filter, because of its properties of constructing a smooth passing through all data points precisely and its ability to eliminate high-frequency noise, has been considered a natural transition in the evolution of volume profile strategies. The superior ability of the sinc filter to reduce noise and shield against over-fitting makes it an ideal choice for smoothing purposes in trading scripts, particularly where volume profiling forms the crux of the market analysis strategy, such as in Filtered Volume Profile.
Moving ahead, the use of volume-based studies seems likely to remain a core part of technical analysis. As long as markets operate based on supply and demand principles, understanding volume will remain key to discerning the intent behind price movements. And with the incorporation of advanced methods like sinc filtering, the accuracy and insight provided by these methodologies will only improve.
Mean Score
The mean score in the Filtered Volume Profile script plays an important role in probabilistic inferences regarding future price direction. This score essentially characterizes the statistical likelihood of price trends based on historical data.
The mean score is calculated over a configurable `'Mean Score Length'`. This variable sets the window or the timeframe for calculation of the mean score of the closing prices.
Statistically, this score takes advantage of the concept of z-scores and probabilities associated with the t-distribution (a type of probability distribution that is symmetric and bell-shaped, just like the standard normal distribution, but has heavier tails).
The z-score represents how many standard deviations an element is from the mean. In this case, the "element" is the price level (Point of Control).
The mean score section of the script calculates standard errors for the root mean squared error (RMSE) and addresses the uncertainty in the prediction of the future value of a random variable.
The RMSE of a model prediction concerning observed values is used to measure the differences between values predicted by a model and the values observed.
The lower the RMSE, the better the model is able to predict. A zero RMSE means a perfect fit to the data. In essence, it's a measure of how concentrated the data is around the line of best fit.
Through the mean score, the script effectively predicts the likelihood of the future close price being above or below our identified price level.
Summary
Filtered Volume Profile is a comprehensive trading view indicator which utilizes volume profiling, peak detection, mean score computations, and sinc-filter smoothing, altogether providing the finer details of market behavior.
It offers a customizable look back period, smoothing options, and peak sensitivity setting along with a uniquely set peak threshold. The application of the Sinc Filter ensures a high level of accuracy and noise reduction in volume profiling, making this script a reliable tool for gaining market insights.
Furthermore, the use of mean score calculations provides probabilistic insights into price movements, thus providing traders with a statistically sound foundation for their trading decisions. As trading markets advance, the use of such methodologies plays a pivotal role in formulating effective trading strategies and the Filtered Volume Profile is a successful embodiment of such advancements in the field of market analysis.
Previous Day High Low Strategy only for LongWelcome to the "Previous Day High Low Strategy only for Long"!.
This strategy aims to identify potential long trading opportunities based on the previous day's high and low prices, along with certain market strength conditions.
Key Features:
Entry Conditions: The strategy triggers a long position when the current day's closing price crosses above the previous day's high or low.
Market Strength Filter: The strategy incorporates a market strength filter using the Average Directional Index (ADX). It only takes long positions when the ADX value is above a specific threshold and when there is a predominance of upward movement.
Trade Timing: The strategy operates within a specified trade window, starting at 09:30 and ending at 15:10. Positions are closed at 15:15 if still active.
Risk Management: The strategy employs dynamic stop-loss and profit-taking levels based on a user-defined Max Profit value. It has three profit targets (T1, T2, T3) and a stop-loss level to manage risk effectively.
Rules:
Ensure that the strategy idea is clearly understandable. Provide an easy-to-read title and a thoughtful description explaining the reasoning behind the strategy.
All content should be ad-free. Avoid any form of promotion, advertising, or solicitation.
No fundraising requests or money solicitation is allowed on TradingView.
Publish in the same language as the TradingView subdomain you're on, except for script titles, which must be in English.
Don't plagiarize. Create and share only unique content, and always give credit when using someone else's work.
Be respectful, kind, and constructive when engaging with others.
Zero tolerance for contentious political discourse, defamatory, threatening, or discriminatory remarks.
Avoid sharing harmful, misleading, or inappropriate content.
Respect the moderators' work and address complaints privately.
Use only your original account and avoid creating duplicate or fake accounts.
Do not attempt to manipulate the reputation system or engage in like-for-like schemes.
Explanation of how the strategy works
1. Previous Day's High and Low (HH, LL):
In this strategy, we start by obtaining the high and low prices of the previous day (not the current day) using the request.security function. This function allows us to access historical data for a specific time frame. The high and low prices are stored in the variables HH and LL, respectively.
2. Entry Conditions:
The strategy uses two conditions to trigger a long position:
Condition 1 (Long Condition 1): If the closing price of the current day crosses above the previous day's high (HH), it generates a long signal. This is achieved using the ta.crossover function, which detects when a crossover occurs.
Condition 2 (Long Condition 2): Similarly, if the closing price of the current day crosses above the previous day's low (LL), it also generates a long signal.
Combined Condition: To take long positions, the strategy combines both long conditions using the logical OR operator (or). This means that if either of the two conditions is met, a long position will be initiated.
3. Market Strength Filter:
The strategy also includes a filter based on the Average Directional Index (ADX) to gauge the market's strength before taking long positions. The ADX measures the strength of a trend in the market. The higher the ADX value, the stronger the trend.
Calculation of ADX: The ADX is calculated using the adx function, which takes two parameters: LWdilength (DMI Length) and LWadxlength (ADX period).
Strength Condition (strength_up): The strategy requires that the ADX value should be above a threshold (11 in this case) and that there is a predominance of upward movement (up > down) before initiating a long position. The LWADX value is multiplied by 2.5 and compared to the highest value of LWADX from the last 4 periods using ta.highest(LWADX , 4). If these conditions are met, the variable strength_up is set to true.
Combined Condition: The strength_up condition is then combined with the long conditions using the logical AND operator (and). This means that the strategy will only take a long position if both the long conditions and the market strength condition are met.
4. Trade Timing:
The strategy sets a specific trade window between 09:30 and 15:10. It will only execute trades within this time frame (TradeTime).
5. Risk Management:
The strategy implements dynamic stop-loss (SL) and profit-taking levels (T1, T2, T3) based on a user-defined Max Profit value. The stop-loss is set as a percentage of the Max Profit value. As the position moves in favor of the trader, the profit targets are adjusted accordingly.
6. Position Management:
The strategy uses the strategy.entry function to enter long positions based on the combined entry conditions. Once a position is open, the script uses strategy.exit to define the exit condition when either the profit target or stop-loss level is hit. The strategy.close function is used to close any open position at the end of the trade window (15:15).
7. Plotting:
The strategy uses the plot function to visualize the previous day's high and low prices, as well as the stop-loss (SL) and profit-taking (T1, T2, T3) levels on the chart.
Overall, the "Previous Day High Low Strategy only for Long" aims to identify potential long trading opportunities based on the previous day's price action and market strength conditions. However, as with any trading strategy, it's essential to thoroughly test it and consider risk management before applying it to real-world trading scenarios.
Disclaimer:
The information presented by this strategy is for educational purposes only and should not be considered as investment advice. The strategy is not designed for qualified investors. Always conduct your own research and consult with a financial advisor before making any trading decisions.
Remember, the success of any trading strategy depends on various factors, including market conditions, risk management, and individual trading skills. Past performance is not indicative of future results.






















