Library CommonLibrary "LibraryCommon"
A collection of custom tools & utility functions commonly used with my scripts
@description TODO: add library description here
getDecimals() Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
truncate(float, float) Truncates (cuts) excess decimal places
Parameters:
float : number The number to truncate
float : decimalPlaces (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(float) Converts pips into whole numbers
Parameters:
float : number The pip number to convert into a whole number
Returns: The converted number
toPips(float) Converts whole numbers back into pips
Parameters:
float : number The whole number to convert into pips
Returns: The converted number
getPctChange(float, float, int) Gets the percentage change between 2 float values over a given lookback period
Parameters:
float : value1 The first value to reference
float : value2 The second value to reference
int : lookback The lookback period to analyze
av_getPositionSize(float, float, float, float) Calculates OANDA forex position size for AutoView based on the given parameters
Parameters:
float : balance The account balance to use
float : risk The risk percentage amount (as a whole number - eg. 1 = 1% risk)
float : stopPoints The stop loss distance in POINTS (not pips)
float : conversionRate The conversion rate of our account balance currency
Returns: The calculated position size (in units - only compatible with OANDA)
bullFib(priceLow, priceHigh, fibRatio) Calculates a bullish fibonacci value
Parameters:
priceLow : The lowest price point
priceHigh : The highest price point
fibRatio : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio) Calculates a bearish fibonacci value
Parameters:
priceLow : The lowest price point
priceHigh : The highest price point
fibRatio : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(int, string) Gets a Moving Average based on type (MUST BE CALLED ON EVERY CALCULATION)
Parameters:
int : length The MA period
string : maType The type of MA
Returns: A moving average with the given parameters
getEAP(float) Performs EAP stop loss size calculation (eg. ATR >= 20.0 and ATR < 30, returns 20)
Parameters:
float : atr The given ATR to base the EAP SL calculation on
Returns: The EAP SL converted ATR size
getEAP2(float) Performs secondary EAP stop loss size calculation (eg. ATR < 40, add 5 pips, ATR between 40-50, add 10 pips etc)
Parameters:
float : atr The given ATR to base the EAP SL calculation on
Returns: The EAP SL converted ATR size
barsAboveMA(int, float) Counts how many candles are above the MA
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(int, float) Counts how many candles are below the MA
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(int, float) Counts how many times the EMA was crossed recently
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA
getPullbackBarCount(int, int) Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
int : lookback The lookback period to look back over
int : direction The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize() Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize() Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize() Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent() Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(float, bool) Checks if the current bar is a hammer candle based on the given parameters
Parameters:
float : fib (default=0.382) The fib to base candle body on
bool : colorMatch (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(float, bool) Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
float : fib (default=0.382) The fib to base candle body on
bool : colorMatch (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(float, bool) Checks if the current bar is a doji candle based on the given parameters
Parameters:
float : wickSize (default=2) The maximum top wick size compared to the bottom (and vice versa)
bool : bodySize (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(float, float, bool) Checks if the current bar is a bullish engulfing candle
Parameters:
float : allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
float : rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
bool : engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(float, float, bool) Checks if the current bar is a bearish engulfing candle
Parameters:
float : allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
float : rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
bool : engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar() Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar() Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(string, bool) Determines if the current price bar falls inside the specified session
Parameters:
string : sess The session to check
bool : useFilter (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(string, bool) Determines if the current price bar falls outside the specified session
Parameters:
string : sess The session to check
bool : useFilter (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(int, int) Determines if this bar's time falls within date filter range
Parameters:
int : startTime The UNIX date timestamp to begin searching from
int : endTime the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(bool, bool, bool, bool, bool, bool, bool) Checks if the current bar's day is in the list of given days to analyze
Parameters:
bool : monday Should the script analyze this day? (true/false)
bool : tuesday Should the script analyze this day? (true/false)
bool : wednesday Should the script analyze this day? (true/false)
bool : thursday Should the script analyze this day? (true/false)
bool : friday Should the script analyze this day? (true/false)
bool : saturday Should the script analyze this day? (true/false)
bool : sunday Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter()
fillCell()
Cari dalam skrip untuk "session"
FULL MA Optimization ScriptHello!
This script measures the performance of 10 moving averages and compares them!
Crossover and crossunders are both tested.
The tested moving averages include: TEMA, DEMA, EMA, SMA, ALMA, HMA, T3 Average, WMA, VWMA, LSMA.
You can select the length of the moving averages and the data source (I.E, close, open, ohlc4, etc.) and the script will calculate your selections!
For instance, if you select a length of 32 and a source of ohlc4 for crossovers, the script will assign the ten moving averages that length and data source and compare the performance for ohlc4 crossovers of the 32TEMA, 32DEMA, 32SMA, 32WMA, etc. If you select crossunder, the script will calculate the performance of ohlc4 crossunders of the same moving average lengths.
Moving average performances are listed in descending order (best to worst) and are categorized by tier: Upper-Tier, Mid-Tier, Lower-Tier. The Upper-Tier displays the three best performing averages relative to the MA length and data source, for the asset on the relevant chart timeframe. The Lower-Tier displays the three worst performing averages. The Mid-Tier displays the moving averages whose performance did not achieve a top three spot or a bottom three spot.
Also calculated is the moving average which achieved the highest cumulative gain/loss and the lowest cumulative gain/loss. Any asset and timeframe can be tested; the script recalculates relative to the chart timeframe. I added a "Benchmark Moving Average" free parameter and a "Custom Moving Average" free parameter. The two operate identically; you can set the length and data source of both for quick and simple comparison between differing average lengths and sources.
If "Crossover" is selected, the "(X Candles)" displayed on the tables reflects the average number of sessions the data source remains above a moving average following a crossover. If "Crossunder" is selected, the "(X Candles)" reflects the average number of sessions the data source remains below the moving average following a crossunder.
If "Crossover" is selected, the listed "X%" reflects the average percentage gain/loss following a source crossover of a moving average up until the source crosses back under the moving average. If "Crossunder" is selected, the listed "X%" reflects the average percentage gain/loss following a source crossunder of a moving average up until the source crosses back over the moving average.
If "Crossover" is selected, the listed "X Crosses" reflects the number of instances in which the source crossed over a moving average. If "Crossunder" is selected, the listed "X Crosses" reflects the number of instances in which the source crossed under a moving average.
Additional tooltips and instructions are included should you access the user input menu.
The moving averages can be plotted as a gradient (highest priced MA to lowest priced MA) alongside the best performing moving average. The moving averages can be plotted in full color, light color alongside the best performing average, or not plotted.
This script improves upon a similar script I have released:
I decided not to update the previous script. The previous script calculates crossovers only and, due to being less code intensive, calculates much quicker. If a user is concerned only with price crossovers, not crossunders, the original script is a better option! It's faster, making it the preferable choice!
This script "FULL MA Optimization" calculates crossovers/crossunders and incorporates additional plot styles. I ran into trouble a few times where the script was too large to run on TV. This script is not "slow", I suppose; however, calculations and parameter modifications take a bit longer than the original script!
Simple FX Market Hours█ OVERVIEW
A simple market session indicator that show you what market is in session according to the timezone you configured. It will draw a table with 4 cells matching 4 market Sydney, Tokyo, London and New York. Whenever market is in session the matching text will change colour.
█ WHAT MAKE THIS DIFFERENT
All other indicator on the market are either bar colouring, background colouring, or some sort of box drawing on the chart which is very messy and cluttered your chart. This indicator is as simple as it gets. The label are positions by default at the top right corner (you can change this in the config). It doesn’t draw anything on your chart so you can get right into your price action without anything blocking you.
Also, these type of indicator on the market are not auto converting the market session time to your your configured timezone, you will have to manually entered in the market session hours in your local time. This indicator does! Or perhaps I didn’t look hard enough. Either way I think there aren’t any indicator that are this simple.
█ HOW IT WORKS
I’m using table function (available to pinescript version 4 and above) to position the market labels and change colour of them according to if the market is in session or not.
For timezone, I have predefined all the market hours in all of the timezone from GMT-12 to GMT+12. When you select your timezone it will convert it to the symbol’s exchange timezone. Feel free to update the timezone if I had it incorrectly.
This script doesn’t take into account the DST because DST doesn’t starts or ends on a fixed date.
I also put in a check for symbol type using: syminfo.type == "forex”. So that it will only display if you are on forex pairs. You don’t need to hide it while you are looking at crypto or other assets. For convenience purposes.
█ NOTES
If you like the script be sure to press the like button it will help shows other people that this is useful. Thank you very much!
Net VolumeNet Volume, or NV in short, is a cumulative volume indicator similar to OBV and A/D. Though it might look similar to these two indicators (especially A/D), rest assured it's better and more accurate than both. What it basically does, is dividing the volume session into buyers and sellers volumes; then subtracts former from the latter and adds the result to previous session's net volume (In the script, these two intermediate volumes are not calculated and only the subtraction is formulated in an integrated form).
Another important difference between NV and A/D indicator, is that it brings price gaps into account. That's why it requires next session's open price to calculate current session's NV. What it actually mean is that the price gap, in either direction, is the result of the traders' efforts in respective direction in previous session, as if the current session closes where next session opens.
CME Equity Futures Price Limits
Breakers for CME's futures contracts. Should work on CST/EST/UTC charts.
CME says it uses the last 30 seconds of the session to grab a reference price, so I took the open of the last session's candle because it's easier.
Out of session breakers: +/-5%
Limit downs: -7%/-13%/-20%
There are some minor nuances for the later part of the NY session but I don't really care to add that in right now.
Options:
- Input a manual reference price to override the selected price for accuracy.
- Show only the current/last session's limits. This breaks the in session limit down lines.
Live prices:
www.cmegroup.com
Month codes:
www.cmegroup.com
Reference:
www.cmegroup.com
It's best to check the last updated reference price to ensure it's correct.
Peterbolic SARThe Peterbolic SAR indicator is based on Peter Brandt's 3 Day Trailing Stop Rule. The yellow triangles indicate setup candles, and the green and red triangles represent trigger candles to buy and sell, respectively.
Sawcruhteez asked me to create the code for this SAR. Gabriel Harber came up with the name for the SAR. Peter Brandt gave his permission to use his name.
For more information, see Sawcruhteez Streamz: Live Coaching Sessionz with Gabriel Harber - Trading Peterbolic SAR
and Peter Brandt's original description of the 3DTSR
TRADING VIEW INDICATOR - PINE TUTORIAL 5After a long gap, I have written the 5th tutorial for the pine script. You can find the others below, if you read through all of these you should be good to do your own writing.
This script mimics the Trading View Indicator . For example this one below.
www.tradingview.com
It shows the net result of the 28 indicator, either as buy or sell. I have worked hard to make sure it matches the trading view results but I am not in hundred percent agreement with tradingView on SMA, EMA and Ichimoku indicator.
There are many commented plots because I needed to check separately if each indicator is working correctly.
Someone else wrote this code but they did not make it public. It took me about 3 weeks to write this and to be honest it could be cleaner and better commented.
If you find any mistake please let me know. I hope it will be useful in your learning.
VWAP forex Yesterday Hi/Low update fix This script is an updte fix of an earlier script that stopped functioning when TradingView updated Pine script. This script plots Forex (24 hour session) VWAP, yesterday's high, low, open and close (HLOC),
the day before's HLOC -
Also plots higher timeframe 20 emas
1 minute 5, 15, 60 period 20 ema
5 minute 15, 60 period 20 ema
15 minute 60, 120 , 240 period 20 ema
60 minute 120, 240 period 20 ema
120 minute 240, D period 20 ema
240 minute D period 20 ema
Also signals inside bars (high is less than or equal to the previous bar's high and the low is greater than or equal to the previous low) the : true inside bars have a maroon triangle below the bar as well as a ">" above the bar.
If subsequest bars are inside the last bar before the last true inside bar they also are marked with an ">"
This is probably a slight variation from the way Leaf_West plots the inside bars.
It appears that he marks all bars that are inside the original bar until one a bar has a high or low
outside the original bar. But I would need to see an example on his charts.
The Time Session Glitch and the Fix FX_IDC, COINBASE and BITSTAMP:
The script will correctly default to 1700 hrs to 1700hrs EDT/EST session for FXCM.
Strangely some securities appear to erroneously start their session at 1200 hrs ie. My guess is that they are somehow tied to GMT+0 instead of New York time (GMT+5). See this for yourself by selecting EURUSD using the FXCM exchange (FX:EURUSD) and then EURUSD from the IDC exchange (FX_IDC:EURUSD). The FX-IDC session opening range starts 5 hours before it actually should at 1700 hrs EDT/EST. To correct for this I have implemented an automatic fix (default) and a user selected "5 hour time shift adjust. ment needed on some securities".
There is also a 4 hour time shift button which might be necessary when New York reverts from Eastern Standard Time to Eastern Daylight Time (1 hour difference) in March (and then back again in November). In the default auto adjust mode you will need to select the 1 hour time shift. That is if this glitch still exists at that time.
I have looked at other scripts, other than my own and where the script is available, that need to use information about the opening bar and all have the same time shift issue
COINBASE and BITSTAMP open at 0000 hours GMT. Since I use lines instead of circles or crosses I had to make a small adjustment to plot the lines correctly.
If it needs work let me know.
Jayy
Crude Roll Trade SimulatorEDIT : The screen cap was unintended with the script publication. The yellow arrow is pointing to a different indicator I wrote. The "Roll Sim" indicator is shown below that one. Yes I could do a different screen cap, but then I'd have to rewrite this and frankly I don't have time. END EDIT
If you have ever wanted to visualize the contango / backwardation pressure of a roll trade, this script will help you approximate it.
I am writing this description in haste so go with me on my rough explanations.
A "roll trade" is one involving futures that are continually rolled over into future months. Popular roll trade instruments are USO (oil futures) and UVXY (volatility futures).
Roll trades suffer hits from contango but get rewarded in periods of backwardation. Use this script to track the contango / backwardation pressure on what you are trading.
That involves identifying and providing both the underlying indexes and derivatives for both the front and back month of the roll trade. What does that mean? Well the defaults simulate (crudely) the UVXY roll trade: The folks at Proshares buy futures that expire 60 days away and then sell those 30 days later as short term futures (again, this is a crude description - see the prospectus) and we simulate that by providing the Roll Sim indicator the symbols VIX and VXV along with VIXY and VIXM. We also provide the days between the purchase and sale of the rolled futures contract (in sessions, which is 22 days by my reckoning).
The script performs ema smoothing and plots both the index lines (VIX and VXV as solid lines in our case) and the derivatives (VIXY and VIXM as dotted lines in our case) with the line graphs offset by the number of sessions between the buy and sell. The gap you see represents the contango / backwardation the derivative roll trades are experiencing and gives you an idea how much movement has to happen for that gap to widen, contract or even invert. The background gets painted red in periods of backwardation (when the longer term futures cost less than when sold as short term futures).
Fortunately indexes are calibrated to the same underlying factors, so their values relative to each other are meaningful (ie VXV of 18 and VIX of 15 are based on the same calculation on premiums for S&P500 symbols, with VXV being normally higher for time value). That means the indexes graph well without and adjustments needed. Unfortunately derivatives suffer contango / backwardation at different rates so the value of VIXY vs VIXM isn't really meaningful (VIXY may take a reverse split one year while VIXM doesn't) ... what is meaningful is their relative change in value day to day. So I have included a "front month multiplier" which can be used to get the front month line "moved up or down" on the screen so it can be compared to the back month.
As a practical matter, I have come to hide the lines for the derivatives (like VIXY and VIXM) and just focus on the gap changes between the indexes which gives me an idea of what is going on in the market and what contango/backwardation pressure is likely to exist next week.
Hope it is useful to you.
Opening Range Breakout with 2 Profit Targets.Opening Range Breakout with 2 Profit Targets.
Updated Indicator now works on all Symbols with Many Different Session Options.
***Known PineScript Issue…While the Opening Range is being Formed the lines only adjust for that individual bar. Just reset Indicator after Opening Range Completes.
***All Times are Based on New York Time
Session Options Forex U.S. Banks Open (8:00), Gold U.S. Open (8:20), Oil U.S. Open (9:00), U.S. Cash Session - Stocks (9:30), NY Forex Open (17:00) , Europe Open (02:00), or if you choose Setting 0 the Session Runs from 00:00 to 00:00 (Midnight to Midnight).
***Ability to use 60 minute Opening Range, 30 minute, 15 minute, and many other options.
***However you can manually change the times in the Inputs Tab to adjust for any session you prefer. This is useful for Day Light Savings Adjustments. Also the default times work if your charts are set to EST Time. If you use A different time zone in your settings you need to Adjust the times in the inputs tab.
Initially Opening Range High and Low plot as Yellow Lines. If Price Goes Above Opening Range then Line Turns Green. If Price Goes Below Opening Range Line Turns Red.
By default the First Profit Target is 1/2 the Width of the Opening Range and the 2nd Profit Target is 1 Times the Opening Range. However these are Adjustable in the Inputs Tab.
By Default the Opening Range Length is 1 Hour. However, you can Change the Opening Range Length to 15 min, 30 min, 2 hours etc. in the Inputs Tab.
Plots a 1 Above or Below Candle when 1st Profit Target is Achieved, and a 2 when 2nd Profit Target is Achieved.
VWAP Indicator Channel | Multi Timeframe by Osbrah📊 Multi-Timeframe VWAP Indicator (Session / Weekly / Monthly)
This powerful indicator plots the Volume Weighted Average Price (VWAP) across multiple timeframes: intraday session, weekly, and monthly. It's designed to give traders a clear understanding of the market’s fair value over different horizons.
Key Features:
* Display Session VWAP (resets daily)
* Enable Weekly and Monthly VWAPs for broader market context
* Customize colors, styles, and visibility for each VWAP
* Toggle between standard VWAP or anchored to session opens
Use Cases:
* Identify value zones where price tends to gravitate
* Spot institutional levels of interest and potential reversal points
* Align entries with VWAP bounces or breaks
* Combine with EMAs or price action for high-probability setups
Perfect for day traders, swing traders, and institutional-style strategies, this VWAP tool helps you stay aligned with volume-based price dynamics across all market phases.
Overnight Bias: Net Long/Short with PercentOvernight bias can assist with NY session gap fades or gap and go trading once the NY session is open.
Some general gap rules are:
1. Gap Direction Aligned with Overnight Bias
Rule: If the NY session gaps up and the overnight bias is Net Long (e.g., >60% of bars above the overnight open), favor longs.
Confirmation: Look for price to hold above overnight open or VWAP.
Invalidation: If price re-enters the overnight range, reassess.
2. Gap Opposing Overnight Bias (Contrarian Setup)
Rule: If the NY opens opposite the overnight bias, expect potential gap fill or reversal.
Trade Bias: Look for retracement back toward the overnight open or VWAP.
Example: Overnight was Net Long, but NY gaps down → wait for reclaim of VWAP to go long, else fade strength.
3. Gap Into Prior Day Value Area (VAH to VAL)
Rule: If the NY session gaps into the prior day value area:
It implies mean reversion behavior.
Expect price to rotate toward the POC (point of control).
Trade Bias: Fade toward POC if overnight bias is balanced or opposite the gap direction.
4. Gap Outside Prior Day Value Area
Rule: A gap above VAH or below VAL suggests potential breakout or new trend day.
Trade Bias: If overnight bias aligns (e.g., gap above VAH + Net Long overnight), consider trend continuation.
Invalidation: If price breaks back inside the prior day value area, watch for failed breakout → fade trade possible.
5. Gap Above Prior Day High / Below Prior Day Low
Rule: This is a true breakout gap.
Above Prior High + Net Long Bias: Look for continuation.
Below Prior Low + Net Short Bias: Look for sell pressure continuation.
Trade Bias: Use pullbacks to the prior high/low or overnight open for continuation setups.
6. Gap Within Prior Day Range
Rule: If the NY open is within the prior day’s high and low, expect chop or balanced conditions.
Trade Bias: Use overnight VWAP and prior POC as decision zones. Be cautious unless a breakout occurs.
7. Failed Gap and Re-entry into Prior Day Range
Rule: If price gaps above prior high but re-enters the prior range, it's a failed breakout.
Trade Bias: Look for a fade back to VAH or POC.
Confirmation: Watch for breakdown below overnight VWAP or failure to hold overnight open.
8. Gap + Overnight VWAP Divergence
Rule: If price gaps opposite the direction of VWAP (e.g., VWAP rising, gap down), wait for confirmation.
Trade Bias: Be cautious with early trades. Bias may flip if VWAP is reclaimed.
9. Gap + Overnight Open Test
Rule: If price opens with a gap and then retests the overnight open, that level becomes a decision zone.
Trade Bias:
Hold above = trend continuation.
Rejection = gap fill or reversal.
10. Unfilled Gap = Trend Bias
Rule: If the gap remains unfilled for the first 30–60 minutes, it increases the odds of a trend day.
Trade Bias: Trade pullbacks in the direction of the gap and overnight bias.
Should anyone have suggestion to add please do so.
Open - CSC Bars - 33 CSC Bars – Early Session Price Action Filter
This script detects when the first three bars of the RTH (Regular Trading Hours) session all move in the same direction — either all bullish or all bearish.
It’s a tool for price action traders who want to develop structured opening strategies by observing clean directional agreement at the session start. The indicator highlights the third bar when the sequence confirms directional bias.
🔍 How It Works:
Monitors the first three bars after the RTH session begins.
If all three bars are bullish, it highlights the third bar (same for bearish sequences).
No projections, signals, or entries—purely a visual tool to observe and study opening behavior.
🎯 Use Case:
This script is designed to help traders build and test opening-based frameworks by identifying potential trend bias early in the day.
Note: This is an open-source utility script with a simple function. It does not generate signals or predictions and is intended to assist with observation and discretionary strategy building.
ICT Turtle Soup Ultimate V2📜 ICT Turtle Soup Ultimate V2 — Advanced Liquidity Reversal System
Overview:
The ICT Turtle Soup Ultimate V2 is a next-generation liquidity reversal indicator built on the principles of smart money concepts (SMC) and the classic ICT Turtle Soup setup. It is designed to detect false breakouts (liquidity grabs) at key swing points, enhanced by proprietary logic that filters out low-quality signals using a combination of trend context, kill zone timing, candle wick behavior, and multi-timeframe imbalance zones.
This tool is ideal for intraday traders seeking high-probability entry signals near liquidity pools and imbalance zones — where smart money makes its move.
🔍 What This Script Does
🧠 Liquidity Grab Detection (Turtle Soup Core Logic)
The script scans for recent swing highs/lows using a user-defined lookback.
A signal is generated when price breaks above/below a previous swing level but closes back inside — indicating a liquidity run and likely reversal.
A special Wick Trap Mode enhances this logic by detecting long-wick fakeouts — where the wick grabs stops but the candle body closes opposite the breakout direction.
📉 Trend Filter with ATR Buffer
Optional trend filter uses a simple moving average (SMA) to gauge market direction.
Instead of hard filtering, it applies an ATR-based buffer to allow for entries near the trend line, reducing signal suppression from micro-fluctuations.
🕰️ Kill Zone Session Filtering
Only show signals during institutional trading hours:
London Session
New York AM
Or any custom user-defined session
Helps traders avoid low-volume hours and focus on where stop hunts and price expansions typically occur.
🧱 Multi-Timeframe FVG Confluence (Optional)
Signal validation is strengthened by checking if price is within a higher timeframe Fair Value Gap — commonly used to identify imbalances or inefficiencies.
Filters out setups that lack underlying displacement or order flow justification.
🎨 Visual Feedback
Plots 🔺 bullish and 🔻 bearish markers at signal candles.
Optionally displays:
Swing High/Low Labels (SH / SL)
Reversal distance labels
Background color shading on valid signals
Includes built-in alerts for automated trade notification.
🔑 Unique Benefits
Wick Trap Detection: A proprietary approach to detecting stop hunts via wick behavior, not just candle closes.
ATR-based trend filtering: Avoids unnecessary filtering while still maintaining directional bias.
All-in-one system: No need to stack multiple indicators — swing detection, reversal logic, session filtering, and imbalance confirmation are all integrated.
💡 How to Use
Enable Wick Trap Mode to detect stealthy liquidity grabs with strong wicks.
Use Kill Zone filters to trade only when institutions are active.
Optionally enable FVG confluence to improve confidence in reversal zones.
Watch for Bullish signals near SL levels and Bearish signals near SH levels.
Combine with your own execution strategy or other SMC tools for optimal results.
🔗 Best Used With:
Maximize your edge by combining this script with complementary SMC-based tools:
✅ First FVG — Opening Range Fair Value Gap Detector
✅ ICT SMC Liquidity Grabs + OB + Fibonacci OTE Levels
✅ Liquidity Levels — Smart Swing Highs and Lows with horizontal line projections
NY ORB, VWAP & EMAsIndicator is designed to display key technical analysis tools on your Trading View chart. It includes:
One of the key benefits of this indicator is that it allows Basic Trading View users to set VWAP, EMAs, and ORB in a single indicator. This is particularly useful for users who are limited to a single indicator on their Basic plan, as it provides a comprehensive view of market sentiment, trend, and potential breakouts without the need for multiple indicators.
Features
New York Opening Range Breakout (ORB): Plots the high and low of the first 15 minutes (configurable) of the New York trading session.
Volume Weighted Average Price (VWAP): Displays the VWAP line, which can be toggled on or off.
Exponential Moving Averages (EMAs): Plots four EMAs (9, 21, 50, and 200 periods), which can also be toggled on or off.
Customization
ORB Length: Choose from 5 or 15 minutes for the ORB calculation.
Show VWAP and EMAs: Toggle the visibility of the VWAP and EMA lines on or off.
Usage
This indicator is designed to help traders identify key market levels, trends, and potential breakouts during the New York trading session. The ORB can be used to gauge market sentiment, while the VWAP provides a benchmark for average price action. The EMAs offer additional trend analysis and can be used to identify potential support and resistance levels.
NY First Candle Break and RetestStrategy Overview
Session and Time Parameters:
The strategy focuses on the New York trading session, starting at 9:30 AM and lasting for a predefined session length, typically 3 to 4 hours. This timing captures the most active market hours, providing ample trading opportunities.
Strategy Parameters:
Utilizes the Average True Range (ATR) to set dynamic stop-loss levels, ensuring risk is managed according to market volatility.
Employs a reward-to-risk ratio to determine take profit levels, aiming for a balanced approach between potential gains and losses.
Strategy Settings:
Incorporates simple moving averages (EMA) and the Volume Weighted Average Price (VWAP) to identify trend direction and price levels.
Volume confirmation is used to validate breakouts, ensuring trades are based on significant market activity.
Trade Management:
Features a trailing stop mechanism to lock in profits as the trade moves in favor, with multiple take profit levels to secure gains incrementally.
The strategy is designed to handle both long and short positions, adapting to market conditions.
Alert Settings:
Provides alerts for key events such as session start, breakout, retest, and entry signals, helping traders stay informed and act promptly.
Visual cues on the chart highlight entry and exit points, making it easier for beginners to follow the strategy.
This strategy is particularly suited for the current volatile market environment, where simplicity and clear guidelines can help beginner traders navigate the complexities of trading. It emphasizes risk management and uses straightforward indicators to make informed trading decisions.
I put together this Trading View scalping strategy for futures markets with some help from Claude AI. Shoutout to everyone who gave me advice along the way—I really appreciate it! I’m sure there’s room for improvement, so feel free to share your thoughts… just go easy on me. :)