D1 High/LowThis indicator automatically plots the previous dayโs high and low (D1) as thin dashed horizontal lines on the chart.
The levels are calculated strictly from yesterdayโs daily candle only.
The lines are anchored directly at the previous dayโs candle and extend to the right, matching institutional-style reference levels.
Visible on Daily (D1) and all lower timeframes (H4, H1, M15, etc.).
The lines reset at the start of each new trading day to reflect the latest completed session.
Designed as a context and liquidity reference, not as a predictive indicator.
Pattern grafici
Alert vdv2Alert Vdv (shoulders and head) in a Strong mommentum for the other Symbol
1. There is a strong wave including many same color bars.
2. There is Vdv pattern inside that wave with the same dirrection.
Alert vdvAlert Vdv (shoulders and head) in a Strong mommentum.
1. There is a strong wave including many same color bars.
2. There is Vdv pattern inside that wave with the same dirrection.
Alert 2d 2Alert 2 Tops/bottoms in a Strong mommentum for other symbols
1. There is a strong wave including many same color bars.
2. There are 2 Tops/bottoms pattern inside that wave with the same dirrection.
Alert 2dAlert 2 Tops/bottoms in a Strong mommentum.
1. There is a strong wave including many same color bars.
2. There are 2 Tops/bottoms pattern inside that wave with the same dirrection.
BPR [TFO] - ModifiedThis is a modified version of the original "BPR " indicator. It plots balanced price ranges the same way as the original indictor did. The only additions are a 50% line in the BPR box and an extend right feature.
ORB + Key Session Levels (QC)Overview
A comprehensive session-based levels indicator that plots Opening Range Breakout (ORB) levels alongside key session highs and lows from Asian, London, and New York trading sessions.
Features
โข Opening Range Breakout (ORB) with configurable duration (5m/15m/30m/1hr/custom)
โข Previous Day High/Low with two modes: RTH Only (9:30-4:00 ET) or Full Session (6pm-5pm ET for futures)
โข Asian, London, NY AM, and NY PM session levels
โข Kill Zones mode (non-overlapping) vs Full Sessions mode
โข Fair Value Gap detection with optional mitigation removal
โข HTF Bias dashboard showing market structure
โข Lines extend from the exact candle where highs/lows occurred
โข Alerts for all level breaks
Kill Zone Defaults (ET)
โข Asian: 8:00 PM - 12:00 AM
โข London: 2:00 AM - 5:00 AM
โข NY AM: 8:30 AM - 11:00 AM
โข NY PM: 1:30 PM - 4:00 PM
How To Use
1. Select Session Mode (Kill Zones or Full Sessions)
2. Choose PDH/PDL Source (RTH for equities, Full Session for futures)
3. Customize session times as needed
4. Set up alerts for level breaks
All times are in Eastern Time (ET) and fully customizable.
This indicator is for educational purposes only. Not financial advice.
Obsidians Gold RevengeMany traders (including institutional desks) track lunar cycles on Gold (XAUUSD) because of the psychological impact on market sentiment. The common theoryโoften attributed to methods like Gann analysisโis:
โ๐ New Moon: Often correlates with Market Bottoms (Buy Signals) or "New Beginnings."
โ๐ Full Moon: Often correlates with Market Tops (Sell Signals) or "Exhaustion."
โHere is a script that mathematically calculates the Moon Phase based on the lunar synodic month (approx. 29.53 days). It will plot these events on your chart so you can visually backtest if Gold respects these cycles.
How to use this for testing
โAdd it to your Chart: Apply it to the XAUUSD (Gold) chart.
โTimeframe: This works best on 4-Hour (4H) or Daily (1D) charts. (On 15m charts, the moon phase covers many candles, so the label will appear on the specific candle where the phase officially "switched").
โWhat to look for:
โLook at the Dark Blue (New Moon) areas. Did price form a bottom or start a rally there?
โLook at the Yellow (Full Moon) areas. Did price peak and reverse downward there?
โNote: Lunar cycles are considered a "timing tool" rather than a directional indicator. They often indicate when a reversal might happen, but you should combine this with your Institutional Candle zones to confirm the direction!
Timeframe Continuity BarsTimeframe Continuity Bars is a script that is extremely simple for good reason
So please, do not remove this post because it seems 'simple'
Now that's over with. Lets dive in to understand what timeframe continuity IS and what this indicator does.
Timeframe continuity is defined by 4 or more timeframes and it is the relationship of the last price traded to those 4 opening prices. Standard timeframe continuity would be using the M,W,D,60min timeframes.
The reason we use MTF analysis is because of the truth of what price is and how it works.
Price movement is SOLELY caused due to aggressive buying / selling. Some may attempt to refute this however at the end of the day. If the price is at 100.00 it is because a buyer is willing to buy there and a seller is willing to sell there. If those market participants did not want to buy or sell at 100.00 price would go up or down to meet the more aggressive participant.
So what does this look like you may ask...
If an aggressive buyer takes the offer we will see prices go up if they were willing to pay more than the last guy who took the offer.
So price may go from 100.00 to 100.01 because you decided to invest in that stock that day at that time with a market order
This same thing occurs when every other institution creates, adds, reduces, or exits a position. They have to buy or sell and they have to either do it aggressively or do it passively by sitting on the bid / ask and waiting.
So since this is true, we know that the relationship to the opening price is extremely important. This is because if price is above it's open that means buyers were willing to take the offer and buy at higher prices. If price is below it's open it means that sellers were willing to sell at the bid and they sold at lower prices.
So any candlestick chart is simply an aggregation of this aggressive buying/selling that is taking place at all times.
By using the timeframe continuity bars indicator we can measure the distance from the current open across 4 or more timeframes.
By doing this we can identify monthly participation groups, weekly participation groups, daily participation groups, and 60min participation groups.
When all those groups align green or red this is considered full timeframe continuity. Where the monthly weekly daily 60min groups are all taking the offer and buying, or all selling at the bid!
When this aligns this is when price is for CERTAIN going in one direction.
However, It is subject to change every 60 minutes as the 60min determines if those monthly weekly daily buyers are present RIGHT NOW.
So if the 60min changes we go into direct conflict against the month/week/day groups.
If we see the 60min and day align we go into direct conflict against the month/week
if the 60min day and week are red we over-take the monthly group for control. At the time of the week day and 60 being red we have ZERO evidence of the previous monthly buyer/seller that was present.
Now that you understand a little bit about continuity.. Check it out on the chart!
P.S Here is some tips
1) it is not about just all timeframes aligning, we want to see long green / red bars!
2) The opens reset on a cyclical basis. Each day, each week, each month... When the new timeframes open we will see timeframes have the SAME open. When the opens are the same price we have LESS evidence versus having all opens seperate.
3) Investors can use the Y Q M W as their 4 timeframes to see when institutional buying is occurring [go do a case study on AMEX:GLD and AMEX:SLV weekly timeframe with these settings]
4) You need to add 4 separate indicators and change the timeframes. It is ideal to then save this layout!
5) The best way to do price analysis is using #TheStrat across all 4 timeframes instead of one timeframe with this indicator. This is soley a tool we use to show changing of control between participation groups!
Market Open, Premarket High, CloseSimple Indicator that places a line at the current day's premarket high, market open and close.
NQ ICT NY Session ChecklistNQ ICT NY Session Checklist
A manual, on-chart checklist indicator designed to enforce ICT execution rules during the New York session on Nasdaq (NQ). The script displays a step-by-step confirmation panel for higher-timeframe bias, liquidity identification, liquidity sweep, market structure shift, fair value gap entry, and risk/reward validation. It helps prevent early entries, FOMO, and overtrading by clearly indicating when all conditions are met and the trader is ready to execute.
First FVG per Session - Big Boss Traders)First FVG per Session - Big Boss Traders)
All persistent variables (fvgTop, fvgBottom, boxes) declared with var at the top.
No assignment to na without var โ compiles error-free.
FVG boxes and levels are dark orange.
First FVG per session is drawn and prolonged dynamically.
Background colors per session remain.
BTCUSD 1D Trend Strategy [Gemini]1Dchart
100% of equity per trade
0.1% commission
1 tick slippage
please convert this indicator to a trading strategy as you see fit
find attached the date of the chart and the indicator on BTCUSD 1D chart so you can make a better decision when to buy and sell
avoid forward looking and repainting at all costs.
Don't add tables to the chart
don't ever use line breaks in function calls:
long only
2018-2069
1D chart
100% of
Multi-Data Chart-AnalyticsDynamic Sentiment & Contextual Trend Analysis
Function Description
The Multi-Data Chart-Analytics is a comprehensive market context indicator designed to convert complex technical data into a readable, real-time narrative. Unlike traditional visual-only indicators, this script acts as an on-chart "trading assistant" that evaluates price action, momentum, volatility, and institutional volume simultaneously.
Key Technical Features:
Adaptive Trend Engine: Automatically scales its lookback period based on available historical data (up to 200 periods). This ensures accurate analysis for "young" assets or high timeframes (like BTC on Monthly charts) where standard fixed-length EMAs fail.
Momentum & Feel Tracking: Integrates RSI and DMI (ADX) to determine if the market is overextended (expensive) or undervalued (cheap), and whether the trend has sufficient strength.
Volatility Squeeze Detection: Monitors Bollinger Band width to alert users to "coiling" phases, signaling imminent breakouts.
Institutional Volume Filter: Compares current volume against its 20-period moving average to identify "Smart Money" conviction.
Who is this for?
Discretionary Traders: Who want a quick "second opinion" or sanity check before entering a trade.
Beginners: Who find it difficult to read multiple indicators at once; the terminal translates lines into actionable insights.
Systematic Traders: Who need to maintain awareness of higher-timeframe context without cluttering their main chart window.
How to Use It
Look at the Environment: Start by checking the long-term trend status to ensure you aren't trading against the dominant market force.
Verify Momentum: Check "Market Feel" to avoid buying at exhaustion points (Overbought) or selling at bottoms (Oversold).
Prepare for Breakouts: Keep an eye on the "Volatility" section. If it indicates a "Squeeze," tighten your stops or prepare for a large move.
Confirm with Smart Money: Only trust significant moves if the terminal confirms "Institutional Activity" is present.
Customize: Use the settings menu to adjust the box width, colors, and font size to fit your personal chart layout.
Technical Breakdown (Short Form)
Trend: Adaptive EMA/SMA (max 200).
Momentum: RSI (14) + ADX (14).
Volatility: Bollinger Band Width (20).
Volume: SMA (20) based Volume multiplier.
You might want to use this script in combination with our "Range Indicator Golden Pocket" and "Multi Asset & Multi Timeframe Trend Dashoboard" and the "Risk & Reward Position Planner"
Commodity Channel Index// BUY CONDITION
buySignal = direction < 0 and ta.crossover(cci, -100)
// ENTRY PRICE
entryPrice = close
// STOP LOSS AT SUPERTREND
stopLoss = supertrend
// RISK CALCULATION
risk = entryPrice - stopLoss
// TARGET 1:2
target = entryPrice + (risk * 2)
// ALERT
alertcondition(buySignal, title="BUY", message="Supertrend Green + CCI Cross Above -100 | RR 1:2")
// OPTIONAL PLOTS
plotshape(buySignal, title="BUY Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plot(stopLoss, title="Stop Loss", color=color.red)
plot(target, title="Target 1:2", color=color.green)
Gann Octogram - Sacred Geometry Confluence Ver 1.0๐ Gann Octogram - Sacred Geometry Confluence Ver 1.0
Overview
Advanced Gann analysis tool combining W.D. Gann's Square of Nine principles with sacred geometry and multi-factor confluence signals. This indicator automatically detects swing highs/lows and projects octogram grids forward in time and price, identifying high-probability trading opportunities where multiple factors align.
Understanding Gann Octograms
W.D. Gann believed markets move in geometric patterns through time and price. The octogram (8-sided figure) represents the square of nine principle where:
Price divisions (1/8ths) create natural support/resistance
Time cycles mark potential reversal points
Diagonal angles show dynamic price-time relationships
Confluence zones where geometry aligns offer highest probability trades
This indicator makes these complex calculations automatic and visual.
Key Features
๐ฏ Intelligent Auto-Detection
Auto Gann Number Selection: Automatically chooses optimal Gann period (11, 22, 44, 88, 176) based on timeframe and data availability
Adaptive Half-Period Mode: Uses Gann/2 for faster swing detection while validating with full period
Smart Grid Projection: Projects octagrams near current price action for relevance
๐ Sacred Geometry Visualization
Octogram Grids: Complete octagonal geometry with inner square, angled square, and connecting lines
Gann Angles: 1ร1 and 2ร1 diagonal support/resistance angles
Time Cycles: Quarter, half, and three-quarter cycle markers
Price Levels: Automatic 1/8th division levels (0%, 12.5%, 25%, 37.5%, 50%, 62.5%, 75%, 87.5%, 100%)
โก Advanced Confluence System
Adjustable 4-Factor Confluence (Levels 0-4):
Price Level Touch: Precise detection of key support/resistance levels
Time Cycle Alignment: Major (25%, 50%, 75%) and minor (1/8th divisions) cycles
Octogram Geometry: Proximity to vertices and diagonal angles
Price Action: Bullish/bearish candle confirmation
Confluence Levels:
Level 0: Signals on price touch only (most signals)
Level 1: Minimum 1 factor required
Level 2: Minimum 2 factors (โญ recommended - balanced)
Level 3: Minimum 3 factors (strict quality)
Level 4: All 4 factors required (highest quality, fewer signals)
๐ก๏ธ Signal Quality Controls
Max Signals Per Cell: Limit signals to 1-10 per grid cell
Cooldown Period: Minimum bars between consecutive signals
Cell Signal Tracking: Automatic reset when entering new time cells
Adjustable Tolerances: Fine-tune price and geometry sensitivity
How It Works
Swing Detection: Identifies significant market swings using pivot highs/lows
Grid Construction: Builds octogram grid from swing high to swing low
Multi-Grid Projection: Projects multiple cells forward (time) and vertically (price)
Confluence Analysis: Monitors all 4 factors continuously
Signal Generation: Fires BUY/SELL when confluence threshold is met
BUY Signals trigger when:
Price touches LOW zones (0%-50%)
At key time cycle points
Near octogram geometry
Bullish candle forms
SELL Signals trigger when:
Price touches HIGH zones (50%-100%)
At key time cycle points
Near octogram geometry
Bearish candle forms
Settings Guide
Structure Settings
Auto Gann Number: Enable for automatic period selection (recommended)
Manual Gann Number: 11, 22, 44, 88, or 176 bars
Use Half Period: Faster detection using Gann/2 lookback
Grid Stability: Adaptive (1/8th) / Strict (1/4th) / Relaxed (1/16th)
Signal Settings โ๏ธ
Confluence Level: 0-4 (start with 2)
Price Tolerance: 1-8% (default 3%)
Geometry Tolerance: 0.5-5% (default 2.5%)
Min Bars Between Signals: 1-20 (default 3)
Max Signals Per Cell: 1-10 (default 4-6)
Display Options
Toggle grid squares, octagrams, triangles, Gann angles
Customizable colors for all elements
Time cycle visualization
Swing high/low markers
Info panel with swing statistics
Best Practices
For Day Trading (5min-15min charts):
Confluence Level: 2
Auto Gann: ON
Grid Stability: Adaptive
Max Signals Per Cell: 4-6
For Swing Trading (1H-4H charts):
Confluence Level: 3
Auto Gann: ON
Grid Stability: Strict
Max Signals Per Cell: 2-4
For Position Trading (Daily charts):
Confluence Level: 3-4
Manual Gann: 88 or 176
Grid Stability: Strict
Max Signals Per Cell: 2-3
Alert Setup
Built-in alert conditions:
Gann Octogram Buy - Fires on BUY signal
Gann Octogram Sell - Fires on SELL signal
Configure alerts using TradingView's alert system to get notified when confluence zones trigger.
Backtesting Tips
Start with Confluence Level 2 (balanced approach)
Increase level to 3-4 if too many signals
Decrease to 1 if missing opportunities
Adjust tolerances based on asset volatility
Test different Gann numbers for your specific market
Credits & Theory
Based on W.D. Gann's principles:
Square of Nine
Time-Price Geometry
Sacred Geometry (Octograms)
Natural Market Cycles
Developed with modern Pine Script for reliability, efficiency, and user control.
Version History
Ver 1.0 - Initial Release
4-factor confluence system
Auto Gann number selection
Adjustable confluence levels (0-4)
Sacred geometry visualization
Signal quality controls
Support
For questions, suggestions, or issues:
Comment on this indicator
Check the code (open source)
Experiment with settings for your trading style
Happy Trading! ๐
Disclaimer
This indicator is for educational and informational purposes only. Past performance does not guarantee future results. Always practice proper risk management and never risk more than you can afford to lose. Backtest thoroughly before live trading.
Axis-Pro System | Trend Structure + Fibonacci Pullbacks Axis-Pro System is a comprehensive Trend Following strategy designed to trade high-probability pullbacks. Unlike indicators that merely chase price, this system patiently waits for market structure alignment before seeking an entry.
The system is built on the premise of "Quality over Quantity", utilizing volatility and structure filters to avoid choppy markets (ranges) and false breakouts.
๐ง Strategy Logic
The system makes decisions based on a strict 4-step hierarchy:
Higher Timeframe (HTF) Bias:
Analyzes the trend on a higher timeframe to ensure we are trading in the direction of the dominant flow.
Structure & BOS (Break of Structure):
Identifies clear impulses that break previous highs or lows. Once a BOS is confirmed, the system "arms" the trade and waits.
Fibonacci Zone Pullback:
It does not chase the breakout. Instead, it waits for a pullback into the "Discount Zone" (Golden Zone, configurable between 0.382 and 0.618) to improve the Risk/Reward ratio.
Validation & Trigger:
Uses an ATR expansion check to filter out low-volatility periods.
Requires candle confirmation and alignment with fast EMAs before pulling the trigger.
๐ก๏ธ Risk Management
The system incorporates advanced position management using a split execution model (50/50):
Dynamic Stop Loss: Automatically calculated using an ATR multiplier or the recent Swing High/Low (whichever offers better protection).
TP1 (Take Profit 1): Closes 50% of the position at a fixed R-multiple (e.g., 1.5R) to lock in profit and moves the Stop Loss to Break-Even.
TP2 (Runner): The remaining 50% is left to run for higher targets (e.g., 3.0R) or until the trend bends, maximizing gains during strong moves.
Trailing Stop: Optional feature to trail price with a fast EMA once the first target is hit.
โ๏ธ Settings & Features
The script is highly customizable for different assets (Crypto, Forex, Indices):
Date Range Filter: Includes a date selector to perform precise Backtesting on specific periods (e.g., testing specifically during a Bear Market vs. Bull Market).
Auto Trendlines: Automatically draws relevant trendlines for visual support.
Quality Filters: Options to toggle the EMA 200 filter and breakout buffers.
โ ๏ธ Disclaimer
This strategy is a tool for analysis and backtesting purposes. Past performance does not guarantee future results. It is highly recommended to test the strategy on a Demo account first and adjust parameters according to the volatility of the specific asset being traded. Always use responsible risk management.
Levels With Touch Color (Dotted Touch)Engulfing Candles โ Levels with Touch & Liquidity Sweep
This indicator detects bullish and bearish engulfing candlestick patterns and plots support/resistance levels based on these patterns. It also highlights touch points where price interacts with these levels and visualizes liquidity areas for potential buy and sell zones.
Features:
Detects bullish and bearish engulfing patterns
Plots fixed levels at the high or low of the engulfing candle
Pointed touch lines:
Level changes color when price touches the level without breaking it
Green for bullish touches, red for bearish touches
Liquidity visualization:
Buy-side liquidity displayed as a line below the touched bullish level
Sell-side liquidity displayed as a line above the touched bearish level
Clean visual design with no background boxes, keeping the chart uncluttered
Automatic management of historical lines to prevent chart overload
Fully customizable liquidity offset and max number of historical levels
How to use:
Look for engulfing candle levels forming on the chart.
Watch the touch lines (green/red) for potential price reaction areas.
Identify zones where stop-hunts or market liquidity might appear.
Combine with your strategy or price action tools to find entries or exits.
Inputs:
Max history lines โ Limits how many historical levels are kept on the chart
Liquidity offset โ Adjusts distance of liquidity lines from the original level
Notes:
Touch lines turn colored only when price interacts with the level but does not break it.
Liquidity lines extend a few bars forward for visual clarity.
Works on all timeframes.
AI Oversold Swing - Screener//@version=5
indicator("AI Oversold Swing - Screener", overlay=false)
// โโโโโโโโโโโโโโโโโโโโโโโโโ
// USER INPUTS
// โโโโโโโโโโโโโโโโโโโโโโโโโ
maxPrice = input.float(75.0, "Max Price ($)")
rsiLen = input.int(14, "RSI Length")
rsiOversold = input.float(35.0, "RSI Oversold Level")
bbLen = input.int(20, "BB Length")
bbMult = input.float(2.0, "BB StdDev")
supportLen = input.int(20, "Support Lookback (days)")
nearSupportPct = input.float(1.5, "Near Support %")
undercutPct = input.float(0.5, "Allowed Undercut %")
atrLen = input.int(14, "ATR Length")
maxATRfromSup = input.float(1.0, "Max ATR From Support")
minDollarVol = input.float(75000000.0, "Min Dollar Volume", step=1000000)
requireTrigger = input.bool(false, "Require Reversal Trigger")
// โโโโโโโโโโโโโโโโโโโโโโโโโ
// DAILY DATA (screener uses indicator outputs)
// โโโโโโโโโโโโโโโโโโโโโโโโโ
dClose = request.security(syminfo.tickerid, "D", close)
dLow = request.security(syminfo.tickerid, "D", low)
dVol = request.security(syminfo.tickerid, "D", volume)
dPrevC = request.security(syminfo.tickerid, "D", close )
// โโโโโโโโโโโโโโโโโโโโโโโโโ
// INDICATORS
// โโโโโโโโโโโโโโโโโโโโโโโโโ
rsi = ta.rsi(dClose, rsiLen)
basis = ta.sma(dClose, bbLen)
dev = bbMult * ta.stdev(dClose, bbLen)
bbLow = basis - dev
atr = request.security(syminfo.tickerid, "D", ta.atr(atrLen))
support = ta.lowest(dLow, supportLen)
distPct = support > 0 ? (dClose - support) / support * 100.0 : na
distATR = atr > 0 ? (dClose - support) / atr : na
dollarVol = dClose * dVol
// โโโโโโโโโโโโโโโโโโโโโโโโโ
// CONDITIONS
// โโโโโโโโโโโโโโโโโโโโโโโโโ
priceOK = dClose > 0 and dClose <= maxPrice
liqOK = dollarVol >= minDollarVol
oversold = (rsi <= rsiOversold) and (dClose <= bbLow)
nearSup =
support > 0 and
dClose <= support * (1 + nearSupportPct / 100.0) and
dClose >= support * (1 - undercutPct / 100.0) and
distATR <= maxATRfromSup
setup = priceOK and liqOK and oversold and nearSup
// Optional reversal confirmation
rsiReversal = ta.crossover(rsi, rsiOversold)
greenCandle = dClose > dPrevC
trigger = rsiReversal or greenCandle
signal = requireTrigger ? (setup and trigger) : setup
// โโโโโโโโโโโโโโโโโโโโโโโโโ
// SCREENER OUTPUTS
// โโโโโโโโโโโโโโโโโโโโโโโโโ
plot(signal ? 1 : 0, title="Signal (1 = YES)")
plot(rsi, title="RSI (Daily)")
plot(distPct, title="Dist to Support % (Daily)")
plot(distATR, title="Dist to Support ATR (Daily)")
plot(dollarVol, title="Dollar Volume (Daily)")
MFI/RSI Divergence Lowerํ๋จ ์งํ ๊ตฌ์ฑ ๋ฐ ํ์ฉ๋ฒ
MFI (Aqua Line): ๊ฑฐ๋๋์ด ๊ฐ์ค๋ ์๊ธ ํ๋ฆ์
๋๋ค. ์ง์ง์ ๊ทผ์ฒ์์ ์ด ์ ์ด ์ ์ ์ ๋์ด๋ฉด(๋ค์ด๋ฒ์ ์ค) ๊ฐ๋ ฅํ ๋งค์ ์ ํธ์
๋๋ค.
RSI (Yellow Line): ๊ฐ๊ฒฉ์ ์๋์ ๊ฐ๋์
๋๋ค. MFI์ ํจ๊ป ์์ง์์ ๋น๊ตํ์ฌ ๋ณด์กฐ์ ์ผ๋ก ํ์ฉํฉ๋๋ค.
๋ฆฌํ์ธํ
๋ฐฉ์ง ํต์ฌ: offset=-lb_r ์ค์ ์ ํตํด, ์งํ๊ฐ ํ์ ๋๋ ์์ (ํผ๋ฒ ์์ฑ ์์ )์ ์ ํํ ์ ํธ๊ฐ ํ์๋๋๋ก ๊ตฌํํ์ต๋๋ค. ์ด๋ ๊ณผ๊ฑฐ ๋ฐฑํ
์คํธ ๊ฒฐ๊ณผ์ ์ค์๊ฐ ๋งค๋งค ๊ฒฐ๊ณผ๊ฐ ์ผ์นํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ค์ ์์ฉ
์ง์ง/์ ํญ ํํฐ: ์ด ์งํ ๋จ๋
์ผ๋ก ์ฌ์ฉํ๊ธฐ๋ณด๋ค, ์ฐจํธ ์์ ์ฃผ์ ์ง์ง์ ์ ๊ฐ๊ฒฉ์ด ์์นํ์ ๋ ๋ฐ์ํ๋ BULL DIV ์ ํธ๋ง ๊ณจ๋ผ ๋งค์ํ๋ฉด ์น๋ฅ ์ด ๊ทน๋ํ๋ฉ๋๋ค.
์์ /์ต์ ์ต์ ํ: ํ์ฌ 1.5% ์์ , 3% ์ต์ ๋ก ์ค์ ๋์ด ์์ต๋๋ค. ์ข
๋ชฉ์ ๋ณ๋์ฑ(ATR)์ ๋ฐ๋ผ group_risk์์ ์์น๋ฅผ ์กฐ์ ํ๋ฉฐ ์ต์ ์ ์์ต ๊ณก์ ์ ์ฐพ์๋ณด์ญ์์ค.
//@version=6
strategy("Hybrid MFI/RSI Divergence Lower",
overlay=false, // ํ๋จ ์งํ ์ค์ ์ ์ํด false
initial_capital=10000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10,
commission_type=strategy.commission.percent,
commission_value=0.05,
slippage=1)
// --- ---
group_date = "1. ๋ฐฑํ
์คํธ ๊ธฐ๊ฐ"
start_time = input.time(timestamp("2024-01-01 00:00:00"), "์์์ผ", group=group_date)
end_time = input.time(timestamp("2026-12-31 23:59:59"), "์ข
๋ฃ์ผ", group=group_date)
within_window() => time >= start_time and time <= end_time
group_osc = "2. ์ค์ค๋ ์ดํฐ ์ค์ "
mfi_len = input.int(14, "MFI ๊ธฐ๊ฐ", group=group_osc)
rsi_len = input.int(14, "RSI ๊ธฐ๊ฐ", group=group_osc)
ob_level = input.int(80, "๊ณผ๋งค์ ๊ธฐ์ค", group=group_osc)
os_level = input.int(20, "๊ณผ๋งค๋ ๊ธฐ์ค", group=group_osc)
group_div = "3. ๋ค์ด๋ฒ์ ์ค ๊ฐ๋"
lb_l = input.int(5, "ํผ๋ฒ ์ผ์ชฝ ๋ฒ์", group=group_div)
lb_r = input.int(5, "ํผ๋ฒ ์ค๋ฅธ์ชฝ ๋ฒ์", group=group_div)
group_risk = "4. ๋ฆฌ์คํฌ ๊ด๋ฆฌ"
tp_pct = input.float(3.0, "์ต์ (%)", step=0.1, group=group_risk) / 100
sl_pct = input.float(1.5, "์์ (%)", step=0.1, group=group_risk) / 100
// --- ---
mfi_val = ta.mfi(close, mfi_len)
rsi_val = ta.rsi(close, rsi_len)
avg_val = (mfi_val + rsi_val) / 2 // MFI์ RSI์ ํ๊ท ๊ฐ์ผ๋ก ๋ถ๋๋ฌ์ด ํ๋ฆ ํ์
// --- ---
// ์ ์ ํผ๋ฒ ํ์ง (MFI ๊ธฐ์ค)
pl = ta.pivotlow(mfi_val, lb_l, lb_r)
ph = ta.pivothigh(mfi_val, lb_l, lb_r)
// Bullish Divergence (์์น ๋ค์ด๋ฒ์ ์ค)
var float last_pl_mfi = na
var float last_pl_price = na
bool is_bull_div = false
if not na(pl)
last_pl_mfi := mfi_val
last_pl_price := low
// ์ด์ ์ ์ ํ์
float prev_pl_mfi = ta.valuewhen(not na(pl), mfi_val , 1)
float prev_pl_price = ta.valuewhen(not na(pl), low , 1)
if low < prev_pl_price and mfi_val > prev_pl_mfi
is_bull_div := true
// Bearish Divergence (ํ๋ฝ ๋ค์ด๋ฒ์ ์ค)
var float last_ph_mfi = na
var float last_ph_price = na
bool is_bear_div = false
if not na(ph)
last_ph_mfi := mfi_val
last_ph_price := high
float prev_ph_mfi = ta.valuewhen(not na(ph), mfi_val , 1)
float prev_ph_price = ta.valuewhen(not na(ph), high , 1)
if high > prev_ph_price and mfi_val < prev_ph_mfi
is_bear_div := true
// --- ---
if within_window()
if is_bull_div
strategy.entry("Bull", strategy.long, comment="Bull Div")
if is_bear_div
strategy.entry("Bear", strategy.short, comment="Bear Div")
strategy.exit("ExB", "Bull", limit=strategy.position_avg_price * (1 + tp_pct), stop=strategy.position_avg_price * (1 - sl_pct))
strategy.exit("ExS", "Bear", limit=strategy.position_avg_price * (1 - tp_pct), stop=strategy.position_avg_price * (1 + sl_pct))
// --- ---
// ๋ฐฐ๊ฒฝ ๋ ์ด์์
hline(ob_level, "Overbought", color=color.new(color.red, 50), linestyle=hline.style_dashed)
hline(50, "Middle", color=color.new(color.gray, 70))
hline(os_level, "Oversold", color=color.new(color.green, 50), linestyle=hline.style_dashed)
// ๋ฉ์ธ ์งํ ํ๋กฏ
plot(mfi_val, "MFI (Money Flow)", color=color.new(color.aqua, 0), linewidth=2)
plot(rsi_val, "RSI (Momentum)", color=color.new(color.yellow, 50), linewidth=1)
// ๋ค์ด๋ฒ์ ์ค ๋ฐ์ ์ ํ๋จ ์งํ ์์ญ์ ์ ๊ทธ๋ฆฌ๊ธฐ
plotshape(is_bull_div ? mfi_val : na, "Bull Div Circle", shape.circle, location.absolute, color.green, size=size.tiny, offset=-lb_r)
plotshape(is_bear_div ? mfi_val : na, "Bear Div Circle", shape.circle, location.absolute, color.red, size=size.tiny, offset=-lb_r)
// ๊ณผ๋งค์/๊ณผ๋งค๋ ๋ฐฐ๊ฒฝ์
fill(hline(ob_level), hline(100), color.new(color.red, 90))
fill(hline(0), hline(os_level), color.new(color.green, 90))
MFI-RSI Convergence Strategy๊ฑฐ๋๋(Volume)๊ณผ ๊ฐ๊ฒฉ ๋ชจ๋ฉํ
์ ๋์์ ๊ณ ๋ คํ๋ **MFI(Money Flow Index)**๋ ์ง์ง์ ์์์ '์ง์ง ๋ฐ๋ฑ'์ ํฌ์ฐฉํ๋ ๋ฐ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๋๊ตฌ์
๋๋ค. ์ฌ๊ธฐ์ RSI๋ฅผ ๊ฒฐํฉํ์ฌ ๋ชจ๋ฉํ
์ ๊ฐ๋๊น์ง ํ์ธํ๋ 'Hybrid Volume-Momentum Oscillator' ์ ๋ต์ ์์ฑํด ๋๋ฆฝ๋๋ค.
ํ์ด๋ธ๋ฆฌ๋ ์งํ์ ํต์ฌ ๋ฉ์ปค๋์ฆ
MFI(Money Flow Index)์ ์ญํ :
MFI๋ ๋จ์ํ ๊ฐ๊ฒฉ์ด ๋ฎ์์ก๋๊ฐ๋ง ๋ณด๋ ๊ฒ์ด ์๋๋ผ, **'๋ฎ์ ๊ฐ๊ฒฉ์์ ๊ฑฐ๋๋์ด ํฐ์ก๋๊ฐ'**๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์ง์ง์ ์์ MFI๊ฐ 20 ์ดํ๋ก ๋จ์ด์ง๋ค๋ ๊ฒ์ "์ค๋งํธ ๋จธ๋"๊ฐ ๋งค์ง์ ์ค๋นํ๋ ๋จ๊ณ์ด๊ฑฐ๋, ํฌ๋งค๊ฐ ์ ์ ์ ๋ฌํด ๊ฑฐ๋๋์ด ์ค๋ฆฐ ๋ฐ๋ฑ์ด ์๋ฐํ์์ ๋ปํฉ๋๋ค.
RSI์์ ์ปจ๋ฒ์ ์ค(Convergence):
RSI๋ ๊ฐ๊ฒฉ์ ์๋๋ฅผ ์ธก์ ํฉ๋๋ค. MFI๊ฐ ๊ณผ๋งค๋์ธ๋ฐ RSI๊ฐ ์์ง ๋๋ค๋ฉด, ๊ฑฐ๋๋์ ๋ค์ด์ค์ง๋ง ๊ฐ๊ฒฉ์ ํ๋ฝ ๊ด์ฑ์ด ์ฌ์ ํ ๊ฐํ๋ค๋ ๋ป์
๋๋ค.
์ด ์ฝ๋์ ํต์ฌ์ mfi_val <= mfi_low์ rsi_val <= rsi_low๊ฐ ๋์์ ๋ง์กฑ๋ ๋๋ง ์ง์
ํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฑฐ๋๋ ์ ์
+ ํ๋ฝ ๊ด์ฑ ๋ํ๊ฐ ์ผ์นํ๋ ๊ณ ํ๋ฅ ํ์ ์
๋๋ค.
๋ฆฌํ์ธํ
์ฐจ๋จ ๋ฐ ํ์ค์ ์๋ฎฌ๋ ์ด์
:
ta.mfi์ ta.rsi๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ ๋ด์ ์ข
๊ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐ๋๋ฏ๋ก ๋ฆฌํ์ธํ
์ด ๋ฐ์ํ์ง ์์ต๋๋ค.
commission_value=0.05๋ฅผ ํตํด ๊ฑฐ๋์ ์์๋ฃ๋ฅผ ๋ฐ์ํ์ฌ, ์ฆ์ ๋งค๋งค๋ก ์ธํ ์์ค ๊ฐ๋ฅ์ฑ์ ๋ฏธ๋ฆฌ ํ์ธํ ์ ์๊ฒ ์ค๊ณํ์ต๋๋ค.
//@version=6
strategy("MFI-RSI Convergence Strategy",
overlay=false, // ํ๋จ ์งํ ํํ ํ์ธ์ ์ํด false ์ค์ (์ฐจํธ ์ ์ ํธ๋ ๋ณ๋ plotshape ์ฌ์ฉ)
initial_capital=10000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10,
commission_type=strategy.commission.percent,
commission_value=0.05,
slippage=1)
// --- ---
group_date = "1. ๋ฐฑํ
์คํธ ๊ธฐ๊ฐ"
start_time = input.time(timestamp("2024-01-01 00:00:00"), "์์์ผ", group=group_date)
end_time = input.time(timestamp("2026-12-31 23:59:59"), "์ข
๋ฃ์ผ", group=group_date)
within_window() => time >= start_time and time <= end_time
group_mfi = "2. MFI (Volume) ์ค์ "
mfi_length = input.int(14, "MFI ๊ธฐ๊ฐ", minval=1, group=group_mfi)
mfi_low = input.int(20, "MFI ๊ณผ๋งค๋ (๋งค์์ธ ์ ์
๋๊ธฐ)", group=group_mfi)
mfi_high = input.int(80, "MFI ๊ณผ๋งค์ (๋งค๋์ธ ์ ์
๋๊ธฐ)", group=group_mfi)
group_rsi = "3. RSI (Momentum) ์ค์ "
rsi_length = input.int(14, "RSI ๊ธฐ๊ฐ", minval=1, group=group_rsi)
rsi_low = input.int(30, "RSI ๊ณผ๋งค๋", group=group_rsi)
rsi_high = input.int(70, "RSI ๊ณผ๋งค์", group=group_rsi)
group_risk = "4. ๋ฆฌ์คํฌ ๊ด๋ฆฌ"
tp_pct = input.float(3.0, "์ต์ (%)", step=0.1, group=group_risk) / 100
sl_pct = input.float(1.5, "์์ (%)", step=0.1, group=group_risk) / 100
// --- ---
// MFI (๊ฐ๊ฒฉ + ๊ฑฐ๋๋ ๊ฐ์ค)
mfi_val = ta.mfi(close, mfi_length)
// RSI (๊ฐ๊ฒฉ ๋ณ๋ ๊ฐ๋)
rsi_val = ta.rsi(close, rsi_length)
// --- ---
// ๋งค์ ์กฐ๊ฑด: MFI์ RSI๊ฐ ๋ชจ๋ ๊ณผ๋งค๋ ๊ตฌ๊ฐ์ผ ๋ (๊ฐ๋ ฅํ ๋ฐ๋ฑ ์์ ์ง์ )
long_condition = (mfi_val <= mfi_low) and (rsi_val <= rsi_low)
// ๋งค๋ ์กฐ๊ฑด: MFI์ RSI๊ฐ ๋ชจ๋ ๊ณผ๋งค์ ๊ตฌ๊ฐ์ผ ๋
short_condition = (mfi_val >= mfi_high) and (rsi_val >= rsi_high)
// --- ---
if within_window()
if long_condition
strategy.entry("Long", strategy.long, comment="VLM+MOM Bottom")
if short_condition
strategy.entry("Short", strategy.short, comment="VLM+MOM Top")
// ์ต์ ๋ฐ ์์ ์ค์
strategy.exit("Ex Long", "Long", limit=strategy.position_avg_price * (1 + tp_pct), stop=strategy.position_avg_price * (1 - sl_pct))
strategy.exit("Ex Short", "Short", limit=strategy.position_avg_price * (1 - tp_pct), stop=strategy.position_avg_price * (1 + sl_pct))
// --- ---
// ๋ฐฐ๊ฒฝ ๊ฐ์ด๋๋ผ์ธ
hline(mfi_high, "Upper Boundary", color=color.gray, linestyle=hline.style_dashed)
hline(50, "Middle", color=color.new(color.gray, 50))
hline(mfi_low, "Lower Boundary", color=color.gray, linestyle=hline.style_dashed)
// ์งํ ํ๋กฏ
plot(mfi_val, "MFI (Volume Flow)", color=color.aqua, linewidth=2)
plot(rsi_val, "RSI (Momentum)", color=color.yellow, linewidth=1)
// ์ค์ฒฉ ๊ตฌ๊ฐ ๊ฐ์กฐ (Convergence)
fill_color = (mfi_val <= mfi_low and rsi_val <= rsi_low) ? color.new(color.green, 70) :
(mfi_val >= mfi_high and rsi_val >= rsi_high) ? color.new(color.red, 70) : na
bgcolor(fill_color)
// ์ ํธ ๋ฐ์ ์ ํ๋จ์ ์์ด์ฝ ํ์
plotshape(long_condition, title="Buy Signal", location=location.bottom, color=color.green, style=shape.triangleup, size=size.small)
plotshape(short_condition, title="Sell Signal", location=location.top, color=color.red, style=shape.triangledown, size=size.small)
Clean SMC: Filtered OB + FVGHow does this indicator work?
Fair Value Gaps (FVG): It identifies price imbalances (gaps between the wick of candle 1 and candle 3). They appear as small, light-colored rectangles.
Order Blocks (OB): It marks "Smart Money" candles that precede a strong impulse. These areas are extended to the right because they often act as future support or resistance.
Signals (BUY/SELL): The indicator displays a signal when it detects a confluence (for example, a bullish OB appearing right after an FVG).
Some friendly trading tips:
Timeframe: This indicator works best on higher timeframes (15m, 1h, 4h) to avoid market "noise."
Confirmation: Don't take a "BUY" signal on its own. Check if the overall trend (on a higher timeframe) is also bullish.
Risk management: Always place your Stop Loss just below the identified Order Block.






















