(MTF) Bollinger Bands + RE RSIs + Hidden Supports & ResistancesI merged some of my previous written indicators, because a combination of multi-timeframe Bollinger Bands, RE RSI and Resistance/Support levels could help a lot.
Don't forget to add my other useful indicator (Classical SnR) to the chart to maximize your profit!
Buscar en scripts para "mtf"
mtf nori spThis is an indicator of nori_nosuke's technique.
If you check the check box of EMA ?, it becomes EMA .
If it is not checked, it is SMA .
Added multi-time flame.
If you put a chuck in the chuck box of 'mtf?', It will be changed to the time displayed below.
MTF Trailing SL Strategy [QuantNomad]This is a Multi-Timeframe version of my Trailing SL Strategy.
Few weeks ago I published Trailing SL Strategy. There I used only basic Trailing SL to enter positions.
It worked pretty well so I tried to work on it a bit. I thought what if you can use the same ATR TSL on different timeframes and combine them into one signal.
In this strategy you can use only ATR stops and choose 3 other higher timeframes in addition to your current timeframe.
You'll see Trailing SL plotted on the chart form all these timeframes.
Entry Long position if all 4 time-frames agree on long signal.
Exit Long positions when at least 2 time-frames disagree on long signal.
Entry to Short position if all 4 time-frames agree on Short signal.
Exit from Short positions when at least 2 time-frames disagree on Short signal.
Here is the link to my basic Trailing SL Strategy:
MTF Candles (Nyzo Style)This script is straight forward.
Just practicing using the security function cause I'm terrified of it.
Thanks, Daveatt for the infopanel function with the color switcher
MTF Bollinger Bands %BMulti Time Frame (MTF) Bollinger Bands %B option:
1. On/ Off Bollinger Bands %B - M15 (15-Minute)
2. On/Off Bollinger Bands %B - H1 (1-Hour)
3. On/Off Bollinger Bands %B - H4 (4 Hour)
4. On/Off Bollinger Bands %B - D1 (Daily)
5. On/Off Bollinger Bands %B - W1 (Weekly)
6. On/Off Bollinger Bands %B - M1 (Monthly)
7. On/Off Panel Info: Color note & %B value
MTF Selection Framework - PineCoders FAQOur MTF Selection Framework allows Pine coders to add multi-timeframe capabilities to their script with the following features:
► Timeframe selection
The higher timeframe can be selected using 3 different ways:
• By steps (60 min., 1D, 3D, 1W, 1M, 1Y).
• As a multiple of the current chart's resolution, which can be fractional, so 3.5 will work.
• Fixed.
► Non-repainting or Repainting mode can be selected.
► Smoothing of the HTF line
Can be turned on/off and a smoothing factor allows the user to select the degree of smoothing he requires.
The framework is used here to create a higher timeframe version of a simple RSI line, but it can be used to access HTF information for almost any signal.
Functions used
f_resInMinutes()
Converts the current timeframe.multiplier plus the TF into minutes of type float.
• In Pine, the timeframe.multiplier is an integer representing the resolution, but a value of 1 can mean one day or one minute. This function converts that information in a standard fractional float minutes format that can then be used by the other functions in the framework.
• If the chart's current resolution is 15 seconds, the function will return 0.25 . If the chart's resolution is one day, it will return 1440 .
f_tfResInMinutes(_resolution)
Returns resolution of _resolution period in minutes.
• This function does the same as f_resInMinutes() , but on the target resolution supplied as a parameter in the timeframe.period string format.
f_resNextStep(_res)
Given a current resolution in fractional float minutes, returns its corresponding stepped HTF in the timeframe.period string format.
• This allows the implementation of the step HTF selection mode.
f_multipleOfRes(_res, _mult)
Given a current resolution in fractional float minutes and a fractional multiplier, returns a multiple of the resolution as a string in "timeframe.period" format usable with "security()".
• A multiple like 3.5 is allowed.
• Note that with seconds resolutions, the result returned is constrained by the discrete seconds resolutions available on TV.
f_htfLabel(_txt, _y, _color)
Used to display a label showing either:
• A warning when the chart's resolution is not lower than the HTF.
• The HTF resolution currently used.
The y position used to position the label will require adaptation to the signal you are using. For use in "overlay = true" mode, a technique that works well is commented out in the code.
Look first. Then leap.
MTF Smoothed Moving Averages x4A set of smoothed moving averages that stay at a fixed timeframe, regardless of the timeframe of the chart but don't have nasty jaggedy lines. Instead, they are smooooooooooooth...
MTF Ichimoku CloudI published it because I could not find a good MTF glance.
なかなか良いMTF一目が見つからないので公開しました。
MTF TRIX - squattterBest setting is 5, with a couple of signal lines set to 7 and 14 for crossovers or bounces.
B3 MTF OHLCB3 M ulti T ime F rame - O pen H igh L ow C lose
For showing a 2nd resolution on one chart; Not much more to say about that :)
[RichG] Easy MTF Strategy v1.1This is a second attempt at an easy to understand multiple time frame strategy. This one uses ATR for exits. If the position is long, and the price closes below the ATR multiplier, it triggers a close. If the position is short, and the price closes above the ATR/multiplier, it triggers a close. This generates a lot of little trades but is useful because it uses multiple time frames along with cutting losses when the ATR disagrees.
MTF Stochastic CCI ALERTWorks good on 5 or 15min set to the 2hr or 4hr time frame.
Set an alarm (Set an alert on each Long/Short "crossing down", 0.8 (or anything below 0.99), "on condition" )
Or just as a visual.
Best to use other factors to confirm but most of the time it does a pretty decent job.
[RichG] Easy MTF StrategyAs we all know, timeframe agreement is a powerful tool. This strategy uses 4 time frames and the Keltner ATR for entries and exits.
MTF MACD 2 By YuthavithiIf you want a good strategy without repaint. This one might be for you. Excellent profitable for BTCUSD3M for OKCoin.
It uses multiple time frame MACD for trading decision. To avoid repaint, set the delay period = 1 for both long term and midterm.
The idea is that, if long term, mid term and current time frame all agree on traidng direction, the trade will take place.
I also uses it in my automated trading bot with good result.
www.tradingview.com
CM MACD Ultimate MTF + SuperTrend Strategy [PickMyTrade]Overview
This strategy is built upon ChrisMoody's legendary "CM_MacD_Ult_MTF" indicator (one of the most popular MACD indicators on TradingView with over 1.7 million views). The PickMyTrade team has converted this powerful indicator into a fully automated trading strategy with an essential SuperTrend filter for improved trade quality.
What Makes This Different?
While ChrisMoody's original MACD indicator provides excellent momentum signals with multi-timeframe analysis and 4-color histogram visualization, our strategy adds a critical enhancement:
SuperTrend Trend Filter – We only take trades when both momentum AND trend agree:
Long trades: MACD crosses above Signal Line AND SuperTrend is bullish (green)
Short trades: MACD crosses below Signal Line AND SuperTrend is bearish (red)
This combination dramatically reduces false signals in choppy markets and keeps you on the right side of the trend.
How It Works
The MACD Calculation
Fast EMA (12) - Slow EMA (26) = MACD Line
Signal Line = 9-period SMA of MACD
Histogram = MACD - Signal (shows momentum strength)
4-Color Histogram Logic (ChrisMoody's Innovation)
The histogram changes color based on direction AND position:
Above Zero Line (Bullish Territory):
Aqua → Histogram rising (strengthening bullish momentum)
Blue → Histogram falling (weakening bullish momentum)
Below Zero Line (Bearish Territory):
Maroon → Histogram rising (weakening bearish momentum)
Red → Histogram falling (strengthening bearish momentum)
SuperTrend Filter
Green background = Bullish trend (SuperTrend below price)
Red background = Bearish trend (SuperTrend above price)
Uses ATR (Average True Range) to adapt to market volatility
Entry Signals
Long Entry (Green Background Flash):
MACD Line crosses above Signal Line
SuperTrend is bullish (green)
Optional: MACD above zero line for extra confirmation
Short Entry (Red Background Flash):
MACD Line crosses below Signal Line
SuperTrend is bearish (red)
Optional: MACD below zero line for extra confirmation
Exit Signals:
Opposite MACD/Signal crossover (configurable)
SuperTrend reversal (configurable)
Stop Loss / Take Profit levels (configurable)
Key Features
Multi-Timeframe Support – Analyze MACD on higher timeframes while trading on lower timeframes
Visual Crossover Dots – Clear markers when MACD crosses Signal Line
4-Color Histogram – Instant visual feedback on momentum strength and direction
SuperTrend Filter – Only trade with the trend, not against it
Flexible Exit Options – Exit on opposite signal, SuperTrend flip, or fixed targets
Risk Management Built-In – Customizable Stop Loss and Take Profit percentages
Prop Firm Friendly – Conservative approach with trend confirmation
Works on All Markets – Stocks, Forex, Crypto, Futures, Indices
No Repainting – All signals are confirmed on bar close
Recommended Settings
For Stocks & Indices:
MACD: 12/26/9 (default)
SuperTrend: ATR Period 10, Multiplier 3.0
Timeframes: 1H, 4H, Daily
Stop Loss: 2%
For Crypto:
MACD: 8/17/9 (faster settings for crypto volatility)
SuperTrend: ATR Period 10, Multiplier 2.0
Timeframes: 15M, 1H, 4H
Stop Loss: 3%
For Forex:
MACD: 12/26/9 (default)
SuperTrend: ATR Period 10, Multiplier 3.0
Timeframes: 4H, Daily
Stop Loss: 1.5%
Input Parameters
Timeframe Settings
Use Current Chart Resolution: Toggle ON for current timeframe, OFF for custom MTF
Custom Timeframe: Select higher timeframe for MACD calculation (e.g., 60 = 1 hour)
MACD Settings
Fast Length (12): Fast EMA period
Slow Length (26): Slow EMA period
Signal Length (9): Signal line smoothing period
Source: Price input (default: close)
SuperTrend Filter
Use SuperTrend Filter: Toggle trend filter ON/OFF
ATR Period (10): Period for ATR calculation
ATR Multiplier (3.0): Sensitivity (lower = more signals, higher = stronger trends)
Display Settings
Show MACD & Signal Line: Toggle line display
Show Dots at Crossovers: Visual markers at crosses
Show Histogram: Toggle histogram display
Change MACD Line Color: Dynamic coloring based on Signal Line cross
MACD Histogram 4 Colors: Enable ChrisMoody's color scheme
Strategy Settings
Allow Short Positions: Enable/disable short trades
Only Trade in Trend Direction: Extra filter (MACD > 0 for longs)
Exit on Opposite Signal: Close position on reverse crossover
Exit on SuperTrend Reversal: Close when trend changes
Risk Management
Use Stop Loss: Enable fixed stop loss
Stop Loss % (2.0): Percentage from entry
Use Take Profit: Enable fixed take profit
Take Profit % (4.0): Percentage from entry
Usage Tips
Entry Tips:
Wait for alignment – Don't force trades. Wait for both MACD cross AND SuperTrend confirmation
Higher timeframe confirmation – Check the trend on a higher timeframe before entering
Avoid low volatility – Best results during active trading sessions
Volume confirmation – Look for above-average volume on entry signals
Exit Tips:
Let winners run – Consider using trailing stops instead of fixed take profits
Cut losers quickly – Respect your stop loss levels
Watch for divergences – If price makes new highs/lows but MACD doesn't, consider exiting
Exit on SuperTrend flip – Strong signal that trend is changing
Optimization Tips:
Backtest thoroughly – Test on at least 6 months of data for your specific market
Adjust for volatility – Lower ATR multiplier in volatile markets, higher in stable markets
Match your timeframe – Shorter timeframes need faster MACD settings
Consider session times – Some markets perform better during specific sessions
Best Practices
DO:
Use on trending markets for best results
Combine with higher timeframe analysis
Test on demo account before going live
Adjust parameters for each market/timeframe
Use proper position sizing (1-2% risk per trade)
DON'T:
Trade during major news events without experience
Use on choppy, range-bound markets
Ignore the SuperTrend background color
Overtrade – quality over quantity
Risk more than you can afford to lose
Performance Notes
The strategy performs best when:
Markets are trending (avoid ranging markets)
Volatility is moderate to high
Volume is above average
Multiple timeframes align
The strategy may underperform when:
Markets are choppy or sideways
During major news events (whipsaw risk)
In extremely low volatility conditions
Against strong macro trends
Credits
Original MACD Indicator: ChrisMoody - "CM_MacD_Ult_MTF" (April 10, 2014)
Special thanks to ChrisMoody for creating one of the most comprehensive and visually intuitive MACD indicators on TradingView. His 4-color histogram and multi-timeframe features are preserved in this strategy.
Strategy Conversion & Enhancement: PickMyTrade Team
Added SuperTrend filter, automated trading logic, and risk management system.
About PickMyTrade
Strategy Automation:
Love this strategy? Automate it with real-time execution!
For Stock, Crypto, Futures & Options Trading:
Visit pickmytrade.io
Supported Brokers: Rithmic, TradeStation, TradeLocker, Interactive Brokers, ProjectX
For Tradovate Futures Trading:
Visit pickmytrade.trade
Transform your TradingView strategies into fully automated trading systems with:
Real-time order execution
Alert-based automation
Multiple broker connectivity
Risk management controls
Portfolio management
24/7 trading (crypto/forex)
Disclaimer
This strategy is for educational and informational purposes only.
Important Risk Disclosure:
Past performance does NOT guarantee future results
Trading involves substantial risk of loss
Never risk more than you can afford to lose
Always test strategies on paper/demo accounts first
This is not financial advice – consult a professional advisor
Results will vary based on market conditions and individual execution
Slippage, commissions, and spread costs will affect real-world performance
Recommended:
Start with small position sizes
Use proper risk management (stop losses)
Backtest thoroughly on your specific market
Paper trade for at least 30 days before live trading
Keep a trading journal to track performance
MACD Momentum Structure & Wedge Sniper [MTF]🚀 MACD Market Structure: The All-in-One System
This tool automates institutional price action analysis by filtering market noise using MACD momentum rather than simple candle wicks.
🔥 Key Features
Noise-Free Structure: Identifies true Swing Highs (SH) and Swing Lows (SL) based on MACD peaks, ignoring fake-outs.
Auto-Trendlines: Automatically draws purple trendlines connecting recent swings to visualize Wedges, Triangles, and Squeezes in real-time.
Smart Zones: On a trend change (CHoCH), it automatically draws the Fixed Range Volume Profile to highlight the "Point of Control" (Institutional Entry Level).
"Sniper" Entries: Signals entries only when price retests a Zone AND momentum confirms it on a lower timeframe (e.g., M1 crossover).
MTF Dashboard: Monitors trends across 4 timeframes simultaneously so you never trade against the higher timeframe.
Multi SMA EMA WMA HMA BB (4x3 MAs Bollinger Bands) Pro MTF - RRBMulti SMA EMA WMA HMA 4x3 Moving Averages with Bollinger Bands Pro MTF by RagingRocketBull 2018
Version 1.0
This indicator shows multiple MAs of any type SMA EMA WMA HMA etc with BB and MTF support, can show MAs as dynamically moving levels.
There are 4 MA groups + 1 BB group. You can assign any type/timeframe combo to a group, for example:
- EMAs 50,100,200 x H1, H4, D1, W1 (4 TFs x 3 MAs x 1 type)
- EMAs 8,13,21,55,100,200 x M15, H1 (2 TFs x 6 MAs x 1 type)
- D1 EMAs and SMAs 12,26,50,100,200,400 (1 TF x 6 MAs x 2 types)
- H1 WMAs 7,77,231; H4 HMAs 50,100,200; D1 EMAs 144,169,233; W1 SMAs 50,100,200 (4 TFs x 3 MAs x 4 types)
- +1 extra MA type/timeframe for BB
compile time: 25-30 sec
full redraw time after parameter change in UI: 3 sec
There are several versions: Simple, MTF, Pro MTF, Advanced MTF and Ultimate MTF. This is the Pro MTF version. The Differences are listed below. All versions have BB
- Simple: you have 2 groups of MAs that can be assigned any type (5+5)
- MTF: +2 custom Timeframes for each group (2x5 MTF)
- Pro MTF: +4 custom Timeframes for each group (4x3 MTF), MA levels and show max bars back options
- Advanced MTF: +2 extra MAs/group (4x5 MTF), custom Ticker/Symbol, backreferences for type, TF and MA lengths in UI
- Ultimate MTF: +individual settings for each MA, custom Ticker/Symbols
Features:
- 4x3 = 12 MAs of any type including Hull Moving Average (HMA)
- 4x MTF groups with step line smoothing
- BB +1 extra TF/type for BB MAs
- 12 MA levels with adjustable group offsets, indents and shift
- show max bars back
- you can show/hide both groups of MAs/levels and individual MAs
Notes:
1. based on 3EmaBB, uses plot*, barssince and security functions
2. you can't set certain constants from input due to Pinescript limitations - change the code as needed, recompile and use as a private version
3. Levels = trackprice implementation
4. Show Max Bars Back = show_last implementation
5. uses timeframe textbox instead of input resolution to allow for 120 240 and other custom TFs. Also supports TFs in hours: 2H or H2
6. swma has a fixed length = 4, alma and linreg have additional offset and smoothing params
7. Smoothing is applied by default for visual aesthetics on MTF. To use exact ma mtf values (lines with stair stepping) - disable it
MTF Notes:
- uses simple timeframe textbox instead of input resolution dropdown to allow for 120, 240 and other custom TFs, also supports timeframes in H: 2H, H2
- Groups that are not assigned a Custom TF will use Current Timeframe (0).
- MTF will work for any MA type assigned to the group
- MTF works both ways: you can display a higher TF MA/BB on a lower TF or a lower TF MA/BB on a higher TF.
- MTF MA values are normally aligned at the boundary of their native timeframe. This produces stair stepping when a higher TF MA is viewed on a lower TF.
Therefore X Y Point Density/Smoothing is applied by default on MA MTF for visual aesthetics. Set both to 0 to disable and see exact ma mtf values (lines with stair stepping and original mtf alignment).
- Smoothing is disabled for BB MTF bands because fill doesn't work with smoothed MAs after duplicate values are replaced with na.
- MTF MA Value fluctuation is possible on the current bar due to default security lookahead
Smoothing:
- X,Y == 0 - X,Y smoothing disabled (stair stepping on high TFs)
- X == 0, Y > 0 - X,Y smoothing applied to all TFs
- Y == 0, X > 0 - X smoothing applied to all TFs < deltaX_max_tf, Y smoothing disabled
- X > 0, Y > 0 - Y smoothing applied to all TFs, then X smoothing applied to all TFs < deltaX_max_tf
X Smoothing with Y == 0 - shows only every deltaX-th point starting from the first bar.
X Smoothing with Y > 0 - shows only every deltaX-th point starting from the last shown Y point, essentially filling huge gaps remaining after Y Smoothing with points and preserving the curve's general shape
X Smoothing on high TFs with already scarce points produces weird curve shapes, it works best only on high density lower TFs
Y Smoothing reduces points on all TFs, removes adjacent points with prices within deltaY, while preserving the smaller curve details.
A combination of X,Y produces the most accurate smoothing. Higher delta value - larger range, more points removed.
Show Max Bars Back:
- can't set plot show_last from input -> implemented using a timenow based range check
- you can't delete/modify history once plotted, so essentially it just sets a start point for plotting (from num_bars bars back) that works only in realtime mode (not in replay)
Levels:
You can plot current MA value using plot trackprice=true or by checking Show Price Line in Style. Problem is:
- you can only change color (not the dashed line style, width), have both ma + price line (not just the line), and it's full screen wide
- you can't set plot trackprice from input => implemented using plotshape/plotchar with fixed text labels serving as levels
- there's no other way of creating a dynamic level: hline, plot, offset - nothing else works.
- you can't plot a text var - all text strings must be constants, so you can't change the style, width and text labels without recompiling.
- from input you can only adjust offset, indent and shift for each level group, and change color
- the dot below each level line is the exact MA value. If you want just the line swap plotshape with plotchar, recompile and save as your private version, adjust Y shift.
To speed up redraw times: reduce last_bars to ~2000, recompile and use as your own private version
Pinescript is a rudimentary language (should be called Painscript instead) that can basically only plot data. You can't do much else. Please see the code for tips and hints.
Certain things just can't be done or require shady workarounds and weeks of testing trying to resolve weird node.js compiler errors.
Feel free to learn from/reuse/change the code as needed and use as your own private version. See comments in code. Good Luck!
FvgCalculations█ OVERVIEW
This library provides the core calculation engine for identifying Fair Value Gaps (FVGs) across different timeframes and for processing their interaction with price. It includes functions to detect FVGs on both the current chart and higher timeframes, as well as to check for their full or partial mitigation.
█ CONCEPTS
The library's primary functions revolve around the concept of Fair Value Gaps and their lifecycle.
Fair Value Gap (FVG) Identification
An FVG, or imbalance, represents a price range where buying or selling pressure was significant enough to cause a rapid price movement, leaving an "inefficiency" in the market. This library identifies FVGs based on three-bar patterns:
Bullish FVG: Forms when the low of the current bar (bar 3) is higher than the high of the bar two periods prior (bar 1). The FVG is the space between the high of bar 1 and the low of bar 3.
Bearish FVG: Forms when the high of the current bar (bar 3) is lower than the low of the bar two periods prior (bar 1). The FVG is the space between the low of bar 1 and the high of bar 3.
The library provides distinct functions for detecting FVGs on the current (Low Timeframe - LTF) and specified higher timeframes (Medium Timeframe - MTF / High Timeframe - HTF).
FVG Mitigation
Mitigation refers to price revisiting an FVG.
Full Mitigation: An FVG is considered fully mitigated when price completely closes the gap. For a bullish FVG, this occurs if the current low price moves below or touches the FVG's bottom. For a bearish FVG, it occurs if the current high price moves above or touches the FVG's top.
Partial Mitigation (Entry/Fill): An FVG is partially mitigated when price enters the FVG's range but does not fully close it. The library tracks the extent of this fill. For a bullish FVG, if the current low price enters the FVG from above, that low becomes the new effective top of the remaining FVG. For a bearish FVG, if the current high price enters the FVG from below, that high becomes the new effective bottom of the remaining FVG.
FVG Interaction
This refers to any instance where the current bar's price range (high to low) touches or crosses into the currently unfilled portion of an active (visible and not fully mitigated) FVG.
Multi-Timeframe Data Acquisition
To detect FVGs on higher timeframes, specific historical bar data (high, low, and time of bars at indices and relative to the higher timeframe's last completed bar) is required. The requestMultiTFBarData function is designed to fetch this data efficiently.
█ CALCULATIONS AND USE
The functions in this library are typically used in a sequence to manage FVGs:
1. Data Retrieval (for MTF/HTF FVGs):
Call requestMultiTFBarData() with the desired higher timeframe string (e.g., "60", "D").
This returns a tuple of htfHigh1, htfLow1, htfTime1, htfHigh3, htfLow3, htfTime3.
2. FVG Detection:
For LTF FVGs: Call detectFvg() on each confirmed bar. It uses high , low, low , and high along with barstate.isconfirmed.
For MTF/HTF FVGs: Call detectMultiTFFvg() using the data obtained from requestMultiTFBarData().
Both detection functions return an fvgObject (defined in FvgTypes) if an FVG is found, otherwise na. They also can classify FVGs as "Large Volume" (LV) if classifyLV is true and the FVG size (top - bottom) relative to the tfAtr (Average True Range of the respective timeframe) meets the lvAtrMultiplier.
3. FVG State Updates (on each new bar for existing FVGs):
First, check for overall price interaction using fvgInteractionCheck(). This function determines if the current bar's high/low has touched or entered the FVG's currentTop or currentBottom.
If interaction occurs and the FVG is not already mitigated:
Call checkMitigation() to determine if the FVG has been fully mitigated by the current bar's currentHigh and currentLow. If true, the FVG's isMitigated status is updated.
If not fully mitigated, call checkPartialMitigation() to see if the price has further entered the FVG. This function returns the newLevel to which the FVG has been filled (e.g., currentLow for a bullish FVG, currentHigh for bearish). This newLevel is then used to update the FVG's currentTop or currentBottom.
The calling script (e.g., fvgMain.c) is responsible for storing and managing the array of fvgObject instances and passing them to these update functions.
█ NOTES
Bar State for LTF Detection: The detectFvg() function relies on barstate.isconfirmed to ensure FVG detection is based on closed bars, preventing FVGs from being detected prematurely on the currently forming bar.
Higher Timeframe Data (lookahead): The requestMultiTFBarData() function uses lookahead = barmerge.lookahead_on. This means it can access historical data from the higher timeframe that corresponds to the current bar on the chart, even if the higher timeframe bar has not officially closed. This is standard for multi-timeframe analysis aiming to plot historical HTF data accurately on a lower timeframe chart.
Parameter Typing: Functions like detectMultiTFFvg and detectFvg infer the type for boolean (classifyLV) and numeric (lvAtrMultiplier) parameters passed from the main script, while explicitly typed series parameters (like htfHigh1, currentAtr) expect series data.
fvgObject Dependency: The FVG detection functions return fvgObject instances, and fvgInteractionCheck takes an fvgObject as a parameter. This UDT is defined in the FvgTypes library, making it a dependency for using FvgCalculations.
ATR for LV Classification: The tfAtr (for MTF/HTF) and currentAtr (for LTF) parameters are expected to be the Average True Range values for the respective timeframes. These are used, if classifyLV is enabled, to determine if an FVG's size qualifies it as a "Large Volume" FVG based on the lvAtrMultiplier.
MTF/HTF FVG Appearance Timing: When displaying FVGs from a higher timeframe (MTF/HTF) on a lower timeframe (LTF) chart, users might observe that the most recent MTF/HTF FVG appears one LTF bar later compared to its appearance on a native MTF/HTF chart. This is an expected behavior due to the detection mechanism in `detectMultiTFFvg`. This function uses historical bar data from the MTF/HTF (specifically, data equivalent to `HTF_bar ` and `HTF_bar `) to identify an FVG. Therefore, all three bars forming the FVG on the MTF/HTF must be fully closed and have shifted into these historical index positions relative to the `request.security` call from the LTF chart before the FVG can be detected and displayed on the LTF. This ensures that the MTF/HTF FVG is identified based on confirmed, closed bars from the higher timeframe.
█ EXPORTED FUNCTIONS
requestMultiTFBarData(timeframe)
Requests historical bar data for specific previous bars from a specified higher timeframe.
It fetches H , L , T (for the bar before last) and H , L , T (for the bar three periods prior)
from the requested timeframe.
This is typically used to identify FVG patterns on MTF/HTF.
Parameters:
timeframe (simple string) : The higher timeframe to request data from (e.g., "60" for 1-hour, "D" for Daily).
Returns: A tuple containing: .
- htfHigh1 (series float): High of the bar at index 1 (one bar before the last completed bar on timeframe).
- htfLow1 (series float): Low of the bar at index 1.
- htfTime1 (series int) : Time of the bar at index 1.
- htfHigh3 (series float): High of the bar at index 3 (three bars before the last completed bar on timeframe).
- htfLow3 (series float): Low of the bar at index 3.
- htfTime3 (series int) : Time of the bar at index 3.
detectMultiTFFvg(htfHigh1, htfLow1, htfTime1, htfHigh3, htfLow3, htfTime3, tfAtr, classifyLV, lvAtrMultiplier, tfType)
Detects a Fair Value Gap (FVG) on a higher timeframe (MTF/HTF) using pre-fetched bar data.
Parameters:
htfHigh1 (float) : High of the first relevant bar (typically high ) from the higher timeframe.
htfLow1 (float) : Low of the first relevant bar (typically low ) from the higher timeframe.
htfTime1 (int) : Time of the first relevant bar (typically time ) from the higher timeframe.
htfHigh3 (float) : High of the third relevant bar (typically high ) from the higher timeframe.
htfLow3 (float) : Low of the third relevant bar (typically low ) from the higher timeframe.
htfTime3 (int) : Time of the third relevant bar (typically time ) from the higher timeframe.
tfAtr (float) : ATR value for the higher timeframe, used for Large Volume (LV) FVG classification.
classifyLV (bool) : If true, FVGs will be assessed to see if they qualify as Large Volume.
lvAtrMultiplier (float) : The ATR multiplier used to define if an FVG is Large Volume.
tfType (series tfType enum from no1x/FvgTypes/1) : The timeframe type (e.g., types.tfType.MTF, types.tfType.HTF) of the FVG being detected.
Returns: An fvgObject instance if an FVG is detected, otherwise na.
detectFvg(classifyLV, lvAtrMultiplier, currentAtr)
Detects a Fair Value Gap (FVG) on the current (LTF - Low Timeframe) chart.
Parameters:
classifyLV (bool) : If true, FVGs will be assessed to see if they qualify as Large Volume.
lvAtrMultiplier (float) : The ATR multiplier used to define if an FVG is Large Volume.
currentAtr (float) : ATR value for the current timeframe, used for LV FVG classification.
Returns: An fvgObject instance if an FVG is detected, otherwise na.
checkMitigation(isBullish, fvgTop, fvgBottom, currentHigh, currentLow)
Checks if an FVG has been fully mitigated by the current bar's price action.
Parameters:
isBullish (bool) : True if the FVG being checked is bullish, false if bearish.
fvgTop (float) : The top price level of the FVG.
fvgBottom (float) : The bottom price level of the FVG.
currentHigh (float) : The high price of the current bar.
currentLow (float) : The low price of the current bar.
Returns: True if the FVG is considered fully mitigated, false otherwise.
checkPartialMitigation(isBullish, currentBoxTop, currentBoxBottom, currentHigh, currentLow)
Checks for partial mitigation of an FVG by the current bar's price action.
It determines if the price has entered the FVG and returns the new fill level.
Parameters:
isBullish (bool) : True if the FVG being checked is bullish, false if bearish.
currentBoxTop (float) : The current top of the FVG box (this might have been adjusted by previous partial fills).
currentBoxBottom (float) : The current bottom of the FVG box (similarly, might be adjusted).
currentHigh (float) : The high price of the current bar.
currentLow (float) : The low price of the current bar.
Returns: The new price level to which the FVG has been filled (e.g., currentLow for a bullish FVG).
Returns na if no new partial fill occurred on this bar.
fvgInteractionCheck(fvg, highVal, lowVal)
Checks if the current bar's price interacts with the given FVG.
Interaction means the price touches or crosses into the FVG's
current (possibly partially filled) range.
Parameters:
fvg (fvgObject type from no1x/FvgTypes/1) : The FVG object to check.
Its isMitigated, isVisible, isBullish, currentTop, and currentBottom fields are used.
highVal (float) : The high price of the current bar.
lowVal (float) : The low price of the current bar.
Returns: True if price interacts with the FVG, false otherwise.






















