Parabolic SAR Swing strategy GBP JPY Daily timeframeToday I bring you a new strategy thats made of parabolic sar. It has optmized values for GBPJPY Daily timeframe chart.
It also has a time period selection, in order to see how it behave between selected years.
The strategy behind it is simple :
We have an uptrend , (the psar is below our candles) we go long. We exit when our candle crosses the psar value.
The same applies for downtrend(the psar is above our candles), where we go short. We exit when our candle cross the psar value.
Among the basic indicators, it looks like PSAR is one of the best canditates for swing trading.
If you have any questions, please let me know.
"swing trading"に関するスクリプトを検索
Ultimate VWAP Bands- Ultimate VWAP Bands is a script that helps to decide and further clarify areas of oversold and overbought conditions.
- For example, when the price is in the lowest band it is extremely oversold relative to the VWAP . Hence it should be considered a good place to buy with a high risk to reward payoff.
- Each band is set at a fixed offset away from the VWAP . The "VWAP Band Multiplier" adjusts this and is a key part of the script. This allows the indicator to be adjusted based on the assets volatility . For example, with Crypto. A multiplier of 1 would be strongly advised. Whilst a multiplier of 0.1-0.25 would be useful for currency pairs.
- This indicator can be used for all manners of trading. However, it is most effective when used for scalping and swing trading.
[blackcat] L2 Swing Oscillator Swing MeterLevel: 2
Background
Swing trading is a type of trading aimed at making short to medium term profits from a trading pair over a period of a few days to several weeks. Swing traders mainly use technical analysis to look for trading opportunities. In addition to analyzing price trends and patterns, these traders can also use fundamental analysis.
Function
L2 Swing Oscillator Swing Meter is an oscillator based on breakouts. Another important feature of it is the swing meter, which confirms the top or bottom's confidence level with different color candles. The higher of the candles stack up, the higher confidence level is indicated.
Key Signal
absolutebot ---> absolute bottom with very high confidence level
ltbot ---> long term bottom with high confidence level
mtbot ---> middle term bottom with moderate confidence level
stbot ---> short term bottom with low confidence level
absolutetop ---> absolute top with very high confidence level
lttop ---> long term top with high confidence level
mttop ---> middle term top with moderate confidence level
sttop ---> short term top with low confidence level
fastline ---> oscillator fast line
slowline ---> oscillator slow line
Pros and Cons
Pros:
1. reconfigurable swing oscillator based on breakouts
2. swing meter can confirm/validate the bottom and top signal
Cons:
1. not appliable with trading pairs without volume information
2. small time frame may not trigger swing meter function
Remarks
This is a simple but very comprehensive technical indicator
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
L1 Mid-Term Swing Oscillator v1Level: 1
Background
Oscillators are widely used set of technical analysis indicators. They are popular primarily for their ability to alert of a possible trend change before that change manifests itself in price and volume . They should work best in times of sideways markets.
Function
L1 Short-Mid-Long-Term Swing Oscillator puts three terms of oscillators to cover short-term, middle-term and long-term oscillators at the same time. By resonating all these three oscillators, short-term scalping signal and middle term swing signal are disclosed. You can see both short and mid term signal under one indicator which give you more confidence to follow the trend.
Key Signal
I didn't handle the key signals well. I piled up all the useful signals I found, and it is really difficult to classify them one by one. I feel tired when I think about this problem. Therefore, the code of the overall signal is rather confusing, sorry.
Pros and Cons
Pros:
1. Three oscillators are used to cover short, mid, long term oscillations.
2. Short-Mid term resonance can be observed to have higher confidence level.
3. Use single indicator for scalping and swing trading is possible.
Cons:
1. No deep dive into very accurate long and short entries.
2. A trade off between sensitivity and stability may be needed by traders' subjective judge.
Remarks
I enjoyed the fun of put three different oscillator together to cover short, mid, long terms. But how to use them perfectly is really more brainstorming.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Why is it ok to backtest on TradingView from now on!TradingView backtester has bad reputation. For a good reason - it was producing wrong results, and it was clear at first sight how bad they were.
But this has changed. Along with many other improvements in its PineScript coding capabilities, TradingView fixed important bug, which was the main reason for miscalculations. TradingView didn't really speak out about this fix, so let me try :)
Have a look at this short code of a swing trading strategy (PLEASE DON'T FOCUS ON BACKTEST RESULTS ATTACHED HERE - THEY DO NOT MATTER). Sometimes entry condition happens together with closing condition for the already ongoing trade. Example: the condition to close Long entry is the same as a condition to enter Short. And when these two aligned, not only a Long was closed and Short was entered (as intended), but also a second Short was entered, too!!! What's even worse, that second short was not controlled with closing conditions inside strategy.exit() function and it very often lead to losses exceeding whatever was declared in "loss=" parameter. This could not have worked well...
But HOORAY!!! - it has been fixed and won't happen anymore. So together with other improvements - TradingView's backtester and PineScript is now ok to work with on standard candlesticks :)
Yep, no need to code strategies and backtest them on other platforms anymore.
----------------
Having said the above, there are still some pitfalls remaining, which you need to be aware of and avoid:
Don't backtest on HeikenAshi, Renko, Kagi candlesticks. They were not invented with backtesting in mind. There are still using wrong price levels for entries and therefore producing always too good backtesting results. Only standard candlesticks are reliable to backtest on.
Don't use Trailing Stop in your code. TradingView operates only on closed candlesticks, not on tick data and because of that, backtester will always assume price has first reached its favourable extreme (so 'high' when you are in Long trade and 'low' when you are in Short trade) before it starts to pull back. Which is rarely the truth in reality. Therefore strategies using Trailing Stop are also producing too good backtesting results. It is especially well visible on higher timeframe strategies - for some reason your strategy manages to make gains on those huge, fat candlesticks :) But that's not reality.
"when=" inside strategy.exit() does not work as you would intuitively expect. If you want to have logical condition to close your trade (for example - crossover(rsi(close,14),20)) you need to place it inside strategy.close() function. And leave StopLoss + TakeProfit conditions inside strategy.exit() function. Just as in attached code.
If you're working with pyramiding, add "process_orders_on_close=ANY" to your strategy() script header. Default setting ("=FIFO") will first close the trade, which was opened first, not the one which was hit by Stop-Loss condidtion.
----------------
That's it, I guess :) If you are noticing other issues with backtester and would like to share, let everyone know in comments. If the issue is indeed a bug, there is a chance TradingView dev team will hear your voice and take it into account when working on other improvements. Just like they heard about the bug I described above.
P.S. I know for a fact that more improvements in the backtesting area are coming. Some will change the game even for non-coding traders. If you want to be notified quickly and with my comment - gimme "follow".
Complete Trend Trading System [Fhenry0331]This system was designed for the beginner trader to make money swing trading. Your losses will be small and your gains will be mostly large. You will show consistent profit. Period.
The system works on any security you like to trade. I used GBPUSD as an example because of the up swing and down swing it had recently. I tried to put as much information of how the system works in the chart. Hope it helps and is not to cluttered.
I will reiterate how the system works here: Everything is based off of closed price.
Legend
Uptrend: Buy
Green bar: initial start of an uptrend or uptrend continuing. Place order above that bar. If the initial bar does not stray too far from the MVWAP , I will place orders above subsequent bars if no filled occurred.
If initial start of the trend is missed, I will wait for the pullback. A pullback is a close below the MVWAP, and a close above the EMA (Low), RSI is above 50. Orders are placed above the pullback bars with plotted char "B" and also plotted green triangle up. Again orders are placed above those bars. the bars do not notate automatic buys. Don't chase anything. You will miss the initial bar on something because of news or earnings and it rocket up. Just wait, it will pullback. If it doesn't, to hell with it, on to the next.
Take profits: In the indicator you will see "T." That notates to take some profits. It is a suggestion. I was always told to take profits into spikes, as well as you can never lose money if you take profits. Up to you if you want to scale out and take the suggested profits or not.
Exit Completely: In an uptrend, close your entire position on bars colored yellow or red. (Again, closed bars)
In uptrend bars colored orange and black, do nothing, they are just pullback bars. Look for the buy pullback signal, then follow pullback buy rules for an uptrend.
Downtrend: Short
Red bar: initial start of a downtrend or downtrend continuing. Place order below the bar. If the initial bar does not stray too far fro the MVWAP, place orders below subsequent bars.
If initial start on the downtrend is missed, wait for the pullback. A pullback is a close above the MVWAP, and close below the EMA(Low). RSI is below 50. Orders are placed below the pullback bars with the plotted char "S" and also plotted red triangle. Again those bars are not automatic shorts, orders are placed below them. Don't chase anything. Wait for price to come into your plan. The idea FOMO is the stupidest thing ever, how can you miss out on something when it is always there. The market is always there and something will come into your zone. Chill.
"T": same as in uptrend, suggestion to take some profits.
Exit Completely: In a downtrend, close your entire position on bars colored orange or green.
In downtrend you will see bars colored yellow and black, do nothing, they are pullback bars. Look for the pullback short signal and follow pullback short rules.
If you have any questions get at me. Take a look at it on what you trade. Flip it through different securities.
Best of luck in all you do.
P.S. You should not take a trade right before earnings. You should also exit a trade right before earnings.
Binque's Multi-Moving Average Binque's Multi-Moving Average - One indicator with four simple moving average and four exponential moving averages, plus as a bonus a Day High moving average and a Day Low Moving Average.
Simple Moving Average or MA(14), MA(50), MA(100) and MA(200) all in one indicator
Exponential Moving Average or EMA(8), EMA(14), EMA(20) and EMA(33) all in one indicator
Day High Moving Average - Tracks the Daily High versus most moving averages track the daily close.
Day Low Moving Average - Tracks the Daily Low versus most moving average track the daily close.
To Disable moving averages, Set the color to the chart background and then set the length to 1 and uncheck.
I Use the Daily High Moving Average to track upward resistance in a stock movement for Swing Trading.
I Use the Daily Low Moving Average to track my trailing stop in a stock movement for Swing Trading.
Big Snapper Alerts R2.0 by JustUncleLThis is a diversified Binary Option or Scalping Alert indicator originally designed for lower Time Frame Trend or Swing trading. Although you will find it a useful tool for higher time frames as well.
The Alerts are generated by the changing direction of the ColouredMA (HullMA by default), you then have the choice of selecting the Directional filtering on these signals or a Bollinger swing reversal filter.
The filters include:
Type 1 - The three MAs (EMAs 21,55,89 by default) in various combinations or by themselves. When only one directional MA selected then direction filter is given by ColouredMA above(up)/below(down) selected MA. If more than one MA selected the direction is given by MAs being in correct order for trend direction.
Type 2 - The SuperTrend direction is used to filter ColouredMA signals.
Type 3 - Bollinger Band Outside In is used to filter ColouredMA for swing reversals.
Type 4 - No directional filtering, all signals from the ColouredMA are shown.
Notes:
Each Type can be combined with another type to form more complex filtration.
Alerts can also be disabled completely if you just want one indicator with one colouredMA and/or 3xMAs and/or Bollinger Bands and/or SuperTrend painted on the chart.
Warning:
Be aware that combining Bollinger OutsideIn swing filter and a directional filter can be counter productive as they are opposites. So careful consideration is needed when combining Bollinger OutsideIn with any of the directional filters.
Hints:
For Binary Options try ColouredMA = HullMA(13) or HullMA(8) with Type 2 or 3 Filter.
When using Trend filters SuperTrend and/or 3xMA Trend, you will find if price reverses and breaks back through the Big Fat Signal line, then this can be a good reversal trade.
Some explanation about the what Hull Moving average and ideas of how the generated in Big Snapper can be used:
tradingsim.com
forextradingstrategies4u.com
Inspiration from @vdubus
Big Snapper's Bollinger OutsideIn Swing filter in Action:
Colored Volume Bars [LazyBear]Edgar Kraut proposed this simple colored volume bars strategy for swing trading.
This is how the colors are determined:
- If today’s closing price and volume are greater than 'n' days ago, color today’s volume bar green.
- If today’s closing price is greater than 'n' days ago but volume is not, color today’s volume bar blue.
- Similarly, if today’s closing price and volume is less than 'n' days ago, color today’s volume bar orange.
- If today’s closing price is less than 'n' days ago but volume is not, color today’s volume bar red.
Buy the green or blue volume bars, use a 1% trailing stop, and stand aside on red or orange bars.
As you see, this is more for entry confirmation. I have not tested this on any instrument.
You may have to tune the lookback period for your instrument. Default is 10.
More info:
"A color-based system for short-term trading" - www.traders.com
List of all my indicators:
Gainz Algo ProEngulfing Pattern Scanner with RSI Filter
This indicator identifies high-probability engulfing patterns using multiple confirmation filters including candle stability, RSI divergence, and price momentum over a specified period.
═══ INDICATOR LOGIC ═══
BUY Signal Generated When:
• Bullish engulfing pattern forms
• Candle stability exceeds threshold (body/wick ratio)
• RSI is below oversold threshold
• Price has decreased over the delta period
• Bar is confirmed (no repainting)
SELL Signal Generated When:
• Bearish engulfing pattern forms
• Candle stability exceeds threshold
• RSI is above overbought threshold
• Price has increased over the delta period
• Bar is confirmed (no repainting)
═══ KEY FEATURES ═══
• Candle Stability Index (0-1): Filters out unstable/noisy candles
• RSI Index (0-100): Confirms momentum conditions
• Candle Delta Length: Defines lookback period for price movement
• Disable Repeating Signals: Removes consecutive same-direction signals
• Multiple visual styles: Text bubbles, triangles, or arrows
• Customizable colors and label sizes
• Built-in alert conditions
═══ INPUT PARAMETERS ═══
Candle Stability Index (0.5 default): Higher values require more decisive candles
RSI Index (50 default): Threshold for overbought/oversold conditions
Candle Delta Length (5 default): Bars to measure price change
Label customization: Size, style, and colors
═══ HOW TO USE ═══
1. Add indicator to chart
2. Adjust technical parameters based on market volatility
3. Set visual preferences for signal display
4. Create alerts using the built-in conditions
5. Higher Candle Stability = fewer but higher quality signals
6. Lower RSI Index = more conservative entry points
═══ BEST PRACTICES ═══
• Use on higher timeframes (4H+) for swing trading
• Combine with support/resistance for confluence
• Test parameters on historical data before live trading
• Consider market conditions when adjusting filters
• All timeframes
SMA 20 50 100A clean and lightweight SMA indicator that plots 20, 50, and 100 simple moving averages with customizable colors and line widths. Includes an optional label showing the latest SMA values for quick reference. Ideal for trend confirmation and swing trading setups.
Simple Moving Averages (20, 50, 100)A clean and lightweight SMA indicator that plots 20, 50, and 100 simple moving averages with customizable colors and line widths. Includes an optional label showing the latest SMA values for quick reference. Ideal for trend confirmation and swing trading setups.
USDJPY Fair Value Gap + Session Strategy🎯 Overview
This strategy combines Fair Value Gaps (FVGs) with session-based order flow analysis, specifically optimized for USDJPY. It identifies price inefficiencies left behind by institutional order flow during high-volatility trading sessions, offering a modern alternative to traditional lagging indicators.
🔬 What Are Fair Value Gaps?
Fair Value Gaps represent areas where aggressive institutional buying or selling created "gaps" in the market structure:
Bullish FVG: Price moves up so aggressively that it leaves unfilled buy orders behind
Bearish FVG: Price moves down so quickly that it leaves unfilled sell orders behind
Research shows approximately 80% of FVGs get "filled" (price returns to the gap) within 20-60 bars, making them highly predictable trading zones.
(see the generated image above)
(see the generated image above)
FVG Detection Logic:
text
// Bullish FVG: Gap between high and current low
bullishFVG = low > high and high > high
// Bearish FVG: Gap between low and current high
bearishFVG = high < low and low < low
🌏 Session-Based Trading
Why Sessions Matter for USDJPY
(see the generated image above)
Tokyo Session (00:00-09:00 UTC)
Highest volatility during first hour (00:00-01:00 UTC)
Average movement: 51-60 pips
Best for breakout strategies
London/NY Overlap (13:00-16:00 UTC)
Maximum liquidity and institutional participation
Tightest spreads and most reliable FVG formations
Optimal for continuation trades
Monday Premium Effect
USDJPY moves 120+ pips on Mondays due to weekend positioning
Enhanced FVG formation during session opens
📊 Strategy Components
(see the generated image above)
1. Fair Value Gap Detection
Identifies bullish and bearish FVGs automatically
Age limit: FVGs expire after 20 bars to avoid stale setups
Size filter: Minimum gap size to filter out noise
2. Session Filtering
Tokyo Open focus: Trades during first hour of Asian session
London/NY Overlap: Captures high-liquidity institutional flows
Weekend gap strategy: Enhanced signals on Monday opens
3. Volume Confirmation
Requires 1.5x average volume spike
Confirms institutional participation
Reduces false signals
4. Trend Alignment
50 EMA filter ensures trades align with higher timeframe trend
Long trades above EMA, short trades below
Prevents costly counter-trend trades
5. Risk Management
2:1 Risk/Reward minimum ensures profitability with 40%+ win rate
Percentage-based stops adapt to USDJPY volatility (0.3% default)
Configurable position sizing
🎯 Entry Conditions
(see the generated image above)
Long Entry (BUY)
✅ Bullish FVG detected in previous bars
✅ Price returns to FVG zone during active trading session
✅ Volume spike above 1.5x average
✅ Price above 50 EMA (trend confirmation)
✅ Bullish candle closes within FVG zone
✅ Trading during Tokyo open OR London/NY overlap
Short Entry (SELL)
✅ Bearish FVG detected in previous bars
✅ Price returns to FVG zone during active trading session
✅ Volume spike above 1.5x average
✅ Price below 50 EMA (trend confirmation)
✅ Bearish candle closes within FVG zone
✅ Trading during Tokyo open OR London/NY overlap
📈 Expected Performance
Backtesting Results (Based on Similar Strategies):
Win Rate: 44-59% (profitable due to high R:R ratio)
Average Winner: 60-90 pips during London/NY sessions
Average Loser: 30-40 pips (tight stops at FVG boundaries)
Risk/Reward: 2:1 minimum, often 3:1 during strong trends
Best Performance: Monday Tokyo opens and Wednesday London/NY overlaps
Why This Works for USDJPY:
90% correlation with US-Japan bond yield spreads
High volatility provides sufficient pip movement
Heavy institutional/central bank participation creates clear FVGs
Consistent volatility patterns across trading sessions
⚙️ Configurable Parameters
Session Settings:
Trade Tokyo Session (Enable/Disable)
Trade London/NY Overlap (Enable/Disable)
FVG Settings:
FVG Minimum Size (Filter small gaps)
Maximum FVG Age (20 bars default)
Show FVG Markers (Visual display)
Volume Settings:
Use Volume Filter (Enable/Disable)
Volume Multiplier (1.5x default)
Volume Average Period (20 bars)
Trend Settings:
Use Trend Filter (Enable/Disable)
Trend EMA Period (50 default)
Risk Management:
Risk/Reward Ratio (2.0 default)
Stop Loss Percentage (0.3% default)
🎨 Visual Indicators
🟡 Yellow Line: 50 EMA trend filter
🟢 Green Triangles: Long entry signals
🔴 Red Triangles: Short entry signals
🟢 Green Dots: Bullish FVG zones
🔴 Red Dots: Bearish FVG zones
🟦 Blue Background: Tokyo open session
🟧 Orange Background: London/NY overlap
📊 Recommended Settings
Optimal Timeframes:
Primary: 5-minute charts (scalping)
Secondary: 15-minute charts (swing trading)
Parameter Optimization:
Conservative: Stop Loss 0.2%, R:R 2:1, Volume 2.0x
Balanced: Stop Loss 0.3%, R:R 2:1, Volume 1.5x (default)
Aggressive: Stop Loss 0.4%, R:R 1.5:1, Volume 1.2x
Risk Management:
Maximum 1-2% of account per trade
Daily loss limit: Stop after 3-5 consecutive losses
Use fixed percentage position sizing
⚠️ Important Considerations
Avoid Trading During:
Major news events (BOJ interventions, NFP, FOMC)
Holiday periods with reduced liquidity
Low volatility Asian afternoon sessions
When US-Japan yield differential narrows sharply
Best Practices:
Limit to 2-3 trades per session maximum
Always respect the 50 EMA trend filter
Never risk more than planned per trade
Paper trade for 2-4 weeks before live implementation
Track performance by session and day of week
🚀 How to Use
Add the script to your USDJPY chart
Set timeframe to 5-minute or 15-minute
Adjust parameters based on your risk tolerance
Enable strategy alerts for automated notifications
Wait for visual signals (triangles) to appear
Enter trades according to your risk management rules
📚 Strategy Foundation
This strategy is based on:
Smart Money Concepts (SMC): Institutional order flow tracking
Market Microstructure: Understanding how FVGs form in electronic trading
Quantified Risk Management: Statistical edge through proper R:R ratios
Session Liquidity Patterns: Exploiting predictable volatility cycles
Dynamic ATR BandsDescription:
The Dynamic ATR Bands indicator visualizes ATR-based stop-loss, take-profit, and trailing levels. Bands can be drawn relative to a fixed entry price or dynamically relative to the current price. It is ideal for trend-following, swing trading, and hybrid strategies, especially on volatile or noisy instruments.
Key Features:
Base ATR Bands:
Plots ATR-based bands above and below a reference price.
Acts as initial stop-loss or target guidance.
Adjustable multiplier (default 1× ATR).
Extra ATR Band:
Add an additional ATR band at a custom multiplier.
Position it above or below the reference price.
Useful for trailing stops or extended profit targets.
Hybrid Entry Mode:
Use Fixed Entry Price: bands are drawn relative to your entry and remain fixed.
Dynamic Mode: bands behave like standard ATR bands, moving with the current price.
Allows visualization of hybrid ATR stop-loss and trailing strategies.
Clean Visuals:
Color-coded bands differentiate base (solid) from extra (semi-transparent).
How to Use:
Set ATR length and multipliers according to your strategy.
Toggle hybrid entry mode and input your entry price, or leave off for dynamic bands.
Set the extra band multiplier and choose its position (upper/lower).
Use the bands as visual guides for stop-loss, take-profit, and trailing levels.
Inputs:
ATR Length: number of periods for ATR calculation
Base ATR Multiplier: distance of base bands from reference price
Extra ATR Multiplier: distance for the additional band
Extra Band Position: choose Upper or Lower
Use Fixed Entry Price: toggle hybrid entry mode
Entry Price: specify entry price if hybrid mode is enabled
Note:
This script is visual only; it does not place trades. It is designed to help plan ATR-based stop-loss, take-profit, and hybrid trade management visually on the chart.
EMAs de JahazielThis indicator displays seven Exponential Moving Averages (EMA 5, 6, 9, 20, 50, 100, and 200) to help identify short-, medium-, and long-term market trends.
When shorter EMAs (5, 6, 9) cross above longer EMAs (50, 100, 200), it suggests increasing bullish momentum and potential uptrend continuation.
Conversely, when shorter EMAs cross below longer EMAs, it indicates potential bearish momentum and a possible downtrend.
📈 The combination of these EMAs helps traders visualize market structure, momentum shifts, and key dynamic support/resistance levels.
🧠 Suitable for scalping, intraday trading, swing trading, or confirming higher time frame trends across any market — Forex, indices, crypto, or commodities.
Cruce EMA 9 y EMA 55 v2EMA 9 and EMA 55 Crossover is a simple and effective indicator based on the crossover of exponential moving averages.
When the EMA 9 crosses above the EMA 55, a buy signal is generated, indicating a potential bullish trend.
When the EMA 9 crosses below the EMA 55, a sell signal is triggered, suggesting a possible bearish trend.
Ideal for spotting trend reversals and momentum changes in any market — Forex, indices, cryptocurrencies, or commodities.
Works perfectly for scalping, day trading, and swing trading strategies.
MTF MACD + Accelerator Oscillator Strategy ※日本語説明は英文の下にあります。
Concept:
This is a multi-timeframe trend-following strategy that combines:
Higher timeframe MACD → determines the major trend direction.
Lower timeframe Accelerator Oscillator (AC) → identifies acceleration in momentum for optimal entry timing.
The strategy enters trades in the direction of the higher timeframe trend when the AC shows a momentum acceleration.
Entry Rules:
Long (Buy):
Higher timeframe MACD line > signal line (uptrend)
AC crosses above zero line on the lower timeframe
Short (Sell):
Higher timeframe MACD line < signal line (downtrend)
AC crosses below zero line on the lower timeframe
Exit Rules:
Take Profit: ATR(14) * 1.5 (configurable)
Stop Loss: ATR(14) * 1.0 (configurable)
Exit on opposite signal or if TP/SL is hit
Plotting:
AC is plotted on the chart (green for positive, red for negative)
Buy/Sell signals are marked with small triangles below/above bars
Customization:
Timeframe, MACD parameters, ATR multipliers can be adjusted in the input settings.
Works for scalping, day trading, or swing trading on various instruments.
---------------------------------------------------------------------
コンセプト:
この戦略はマルチタイムフレームのトレンドフォロー型で、以下を組み合わせています:
上位足MACD → 大きなトレンド方向を確認
下位足Accelerator Oscillator(AC) → モメンタム加速のタイミングを捉え、最適なエントリーを判断
上位足のトレンド方向に沿って、下位足でACが勢いの加速を示したタイミングでエントリーします。
エントリールール:
ロング(買い):
上位足MACDライン > シグナルライン(上昇トレンド)
下位足ACが0ラインを上抜け
ショート(売り):
上位足MACDライン < シグナルライン(下降トレンド)
下位足ACが0ラインを下抜け
エグジットルール:
利確:ATR(14) * 1.5(設定可能)
損切り:ATR(14) * 1.0(設定可能)
逆シグナル発生時やTP/SL到達時にも決済
チャート表示:
ACはチャート上にプロット(正なら緑、負なら赤)
買い/売りシグナルはバーの下/上に小さな三角で表示
カスタマイズ:
時間足、MACDパラメータ、ATR倍率は入力設定で変更可能
スキャルピング、デイトレード、スイングトレードなど幅広く利用可能
RTACoreLibrary "RTACore"
Advanced multi-timeframe technical analysis framework for Pine Script
@author WavesUnchained
@build 2025-10-14 22:41:47
newFloatResult(value, context)
Create a successful Result with float value
Parameters:
value (float)
context (string)
newStringResult(value, context)
Create a successful Result with string value
Parameters:
value (string)
context (string)
newBoolResult(value, context)
Create a successful Result with boolean value
Parameters:
value (bool)
context (string)
newErrorResult(errorCode, errorMessage, floatFallback, stringFallback, boolFallback, context)
Create an error Result with fallback values
Parameters:
errorCode (string)
errorMessage (string)
floatFallback (float)
stringFallback (string)
boolFallback (bool)
context (string)
addResultTag(result, tag)
Add a tag to Result
Parameters:
result (Result)
tag (string)
newSignalResult(signalStrength, signalType)
Create a signal Result with trading-specific tags
Parameters:
signalStrength (float)
signalType (string)
newIndicatorResult(value, indicatorName)
Create an indicator calculation Result with indicator tag
Parameters:
value (float)
indicatorName (string)
newTimeframeResult(value, timeframe, context)
Create a timeframe-specific Result
Parameters:
value (float)
timeframe (string)
context (string)
newConfluenceResult(confluenceScore, confidenceLevel)
Create a confluence Result with confidence level
Parameters:
confluenceScore (float)
confidenceLevel (string)
newValidationResult(context)
Create a new validation result (starts as valid)
Parameters:
context (string)
newValidationSuccess(context)
Create a successful validation result
Parameters:
context (string)
newValidationFailure(errors, context)
Create a failed validation result with errors
Parameters:
errors (array)
context (string)
addValidationError(result, field, error)
Add an error to validation result
Parameters:
result (ValidationResult)
field (string)
error (string)
addValidationWarning(result, field, warning)
Add a warning to validation result
Parameters:
result (ValidationResult)
field (string)
warning (string)
addValidationCorrection(result, correction)
Add a correction to validation result
Parameters:
result (ValidationResult)
correction (string)
setValidationMode(result, mode)
Set validation mode
Parameters:
result (ValidationResult)
mode (string)
getValidationMode(result)
Get validation mode
Parameters:
result (ValidationResult)
incrementValidatedFields(result)
Increment validated fields counter
Parameters:
result (ValidationResult)
setValidationTotalFields(result, total)
Set total fields for validation
Parameters:
result (ValidationResult)
total (int)
calculateValidationScore(result)
Calculate and update validation score based on errors/warnings
Parameters:
result (ValidationResult)
newPerformanceProfile(functionName)
Create a new performance profile
Parameters:
functionName (string)
startTiming(profile)
Start timing a performance profile (simple)
Parameters:
profile (PerformanceProfile)
endTiming(profile, hadError)
End timing and update performance profile
Parameters:
profile (PerformanceProfile)
hadError (bool)
updateMemoryEstimate(profile, arrayElements)
Set estimated memory usage (array elements)
Parameters:
profile (PerformanceProfile)
arrayElements (int)
newHealthyStatus()
Create a new healthy status
setComponentHealth(status, component, isOK, message)
Set component health status
Parameters:
status (HealthStatus)
component (string)
isOK (bool)
message (string)
isHealthyOverall(status)
Quick health check - are all components OK?
Parameters:
status (HealthStatus)
getHealthSummary(status)
Get simple health summary
Parameters:
status (HealthStatus)
hasValidFloat(result)
Check if Result contains a valid float value
Parameters:
result (Result)
hasValidString(result)
Check if Result contains a valid string value
Parameters:
result (Result)
getFloat(result, fallback)
Get float value from Result with fallback
Parameters:
result (Result)
fallback (float)
getString(result, fallback)
Get string value from Result with fallback
Parameters:
result (Result)
fallback (string)
getBool(result, fallback)
Get boolean value from Result with fallback
Parameters:
result (Result)
fallback (bool)
hasResultTag(result, tag)
Check if Result has specific tag
Parameters:
result (Result)
tag (string)
getResultTags(result)
Get all tags from Result
Parameters:
result (Result)
setResultContext(result, context)
Set operation context for Result
Parameters:
result (Result)
context (string)
filterResultsByTag(results, tag)
Filter Results by tag (utility for arrays of Results)
Parameters:
results (array)
tag (string)
getAllResultTags(results)
Get all unique tags from array of Results
Parameters:
results (array)
newDefaultAnalysisConfig()
Create default analysis configuration
newAggressiveAnalysisConfig()
Create aggressive trading configuration
newConservativeAnalysisConfig()
Create conservative trading configuration
newDefaultTimeframeConfig()
Create default timeframe configuration
newIntradayTimeframeConfig()
Create intraday timeframe configuration
newSwingTimeframeConfig()
Create swing trading timeframe configuration
getConfigSummary(config)
Get configuration summary string
Parameters:
config (AnalysisConfig)
cloneAnalysisConfig(source)
Clone analysis configuration
Parameters:
source (AnalysisConfig)
newGenericAnalysis(analysisType, timeframe)
Create a new generic analysis result
Parameters:
analysisType (string)
timeframe (string)
newConsensusData()
Create empty consensus data
newNeutralSignal(reason)
Create a neutral signal result
Parameters:
reason (string)
newBuySignal(score, confidence, reason)
Create a buy signal result
Parameters:
score (float)
confidence (float)
reason (string)
newSellSignal(score, confidence, reason)
Create a sell signal result
Parameters:
score (float)
confidence (float)
reason (string)
newMultiTimeframeResult(config, tfConfig)
Create new multi-timeframe result
Parameters:
config (AnalysisConfig)
tfConfig (TimeframeConfig)
getAnalysisAction(analysis)
Get analysis action string
Parameters:
analysis (GenericAnalysis)
isBullish(analysis)
Check if analysis is bullish
Parameters:
analysis (GenericAnalysis)
isBearish(analysis)
Check if analysis is bearish
Parameters:
analysis (GenericAnalysis)
getSignalSummary(signal)
Get signal summary string
Parameters:
signal (SignalResult)
hasStrongConsensus(consensus)
Check if consensus is strong
Parameters:
consensus (ConsensusData)
getConsensusSummary(consensus)
Get consensus summary
Parameters:
consensus (ConsensusData)
isActionableSignal(signal)
Check if signal is actionable
Parameters:
signal (SignalResult)
getSignalColor(signal)
Get signal color for UI display
Parameters:
signal (SignalResult)
validateAnalysisConfig(config)
Validate analysis configuration
Parameters:
config (AnalysisConfig)
validateTimeframeConfig(config)
Validate timeframe configuration
Parameters:
config (TimeframeConfig)
validatePriceData(prices)
Validate price data array
Parameters:
prices (array)
sanitizeFloat(value, minVal, maxVal, defaultVal)
Sanitize numeric input
Parameters:
value (float)
minVal (float)
maxVal (float)
defaultVal (float)
sanitizeInt(value, minVal, maxVal, defaultVal)
Sanitize integer input
Parameters:
value (int)
minVal (int)
maxVal (int)
defaultVal (int)
sanitizeFloatArray(arr)
Sanitize array by removing invalid values
Parameters:
arr (array)
logError(message)
Log error message
Parameters:
message (string)
logWarning(message)
Log warning message
Parameters:
message (string)
safeExecute(operationName, condition)
Safe execute wrapper
Parameters:
operationName (string)
condition (bool)
shouldAllowOperation(errorCount, maxErrors)
Circuit breaker pattern
Parameters:
errorCount (int)
maxErrors (int)
retryOperation(maxRetries)
Retry mechanism
Parameters:
maxRetries (int)
atrDistance(value1, value2, atr)
Calculate ATR-normalized distance between two values
Parameters:
value1 (float)
value2 (float)
atr (float)
atrDistance(value, reference, atrLength)
Calculate ATR-normalized distance between values
Parameters:
value (float)
reference (float)
atrLength (simple int)
percentDistance(value1, value2)
Calculate percentage-based distance between two values
Parameters:
value1 (float)
value2 (float)
withinATRTolerance(value, reference, atr, multiplier)
Check if value is within ATR-based tolerance of reference
Parameters:
value (float)
reference (float)
atr (float)
multiplier (float)
withinATRTolerance(value, reference, multiplier)
Check if value is within ATR-based tolerance of reference
Parameters:
value (float)
reference (float)
multiplier (float)
withinPercentTolerance(value, reference, percentTolerance)
Check if value is within percentage tolerance of reference
Parameters:
value (float)
reference (float)
percentTolerance (float)
proximityScore(value, reference, maxDistance)
Get proximity score (0-1, where 1 = very close)
Parameters:
value (float)
reference (float)
maxDistance (float)
sortArrayByValue(values, sortOrder)
Efficient array sorting using Pine Script native sort
Note: Replaces inefficient bubble sort implementations found in modules
Parameters:
values (array)
sortOrder (string)
safeArrayAverage(values)
Safe array average with null handling
Parameters:
values (array)
formatTableHeader(title, width)
Create formatted header for display tables
Parameters:
title (string)
width (int)
formatTableRow(key, value, width)
Format table row with key-value pair
Parameters:
key (string)
value (string)
width (int)
formatTableFooter(width)
Close table formatting
Parameters:
width (int)
truncateText(txt, maxLength, suffix)
Truncate text to specified length
Parameters:
txt (string)
maxLength (int)
suffix (string)
padText(txt, width, padChar, align)
Pad text to specified width
Parameters:
txt (string)
width (int)
padChar (string)
align (string)
titleCase(txt)
Convert text to title case
Parameters:
txt (string)
joinStrings(strings, separator)
Join array of strings with separator
Parameters:
strings (array)
separator (string)
formatTimestamp(timestamp, format)
Format timestamp to readable date/time
Parameters:
timestamp (int)
format (string)
evictLRU(cache)
Evict least recently used entry
Parameters:
cache (CacheManager)
newRiskAssessment()
Create a default risk assessment
calculateRiskAssessment(signal, volatility, volumeLevel)
Calculate comprehensive risk assessment
Parameters:
signal (SignalResult)
volatility (float)
volumeLevel (float)
newPositionData()
Create new empty position data
getConservativeStrategy()
Create conservative strategy template
getAggressiveStrategy()
Create aggressive strategy template
newDefaultStrategy()
Create default balanced strategy template
getStandardATR()
Get standard ATR(14) - cached per bar
getATR(length)
Get custom ATR with specified length
Parameters:
length (simple int)
getATRTolerance(multiplier)
Get ATR-based tolerance for distance calculations
Parameters:
multiplier (float)
getStandardVolumeAverage()
Get standard volume average SMA(20) - cached per bar
getVolumeAverage(length)
Get custom volume average
Parameters:
length (int)
getVolumeRatio()
Get volume ratio (current vs average)
getVolumeConfirmation(threshold)
Get volume confirmation (above threshold)
Parameters:
threshold (float)
getStandardEMAs()
Get standard EMAs (21, 50, 200) - cached per bar
getEMA21()
Get individual standard EMAs
getEMA50()
getEMA200()
getEMATrendAlignment()
Get EMA trend alignment score
getStandardRSI()
Get standard RSI(14) - cached per bar
getRSILevels(overbought, oversold)
Get RSI with overbought/oversold levels
Parameters:
overbought (float)
oversold (float)
getStandardMACD()
Get standard MACD (12, 26, 9) - cached per bar
getMACDSignal()
Get MACD trend signal
getMomentumScore()
Get comprehensive momentum score
getTrendStrength()
Get trend strength (0-100)
getIndicatorSummary()
Get indicator calculation summary (for debugging)
newZoneDetectionConfig()
Create default zone configuration
newZoneDetection(upperBoundary, lowerBoundary, creationBar, zoneType)
Create new zone
Parameters:
upperBoundary (float)
lowerBoundary (float)
creationBar (int)
zoneType (string)
calculateZoneOverlap(zone1Upper, zone1Lower, zone2Upper, zone2Lower)
Calculate zone overlap ratio
Parameters:
zone1Upper (float)
zone1Lower (float)
zone2Upper (float)
zone2Lower (float)
isPriceTouchingZone(zone, currentPrice, touchTolerance)
Check if price is touching zone
Parameters:
zone (ZoneDetection)
currentPrice (float)
touchTolerance (float)
getZonesInRange(zones, minPrice, maxPrice)
Get zones within price range
Parameters:
zones (array)
minPrice (float)
maxPrice (float)
getNearestZones(zones, currentPrice)
Get nearest support and resistance zones
Parameters:
zones (array)
currentPrice (float)
processZoneDetection(zones, config)
Complete zone detection and management system
Parameters:
zones (array)
config (ZoneDetectionConfig)
processZoneDetectionEngine(zones, config)
Parameters:
zones (array)
config (ZoneDetectionConfig)
newChannelConfig()
calcKeltnerChannel(config)
Parameters:
config (ChannelConfig)
checkKeltnerTouch(upper, lower)
Parameters:
upper (float)
lower (float)
getKeltnerDepth(basis, upper, lower)
Parameters:
basis (float)
upper (float)
lower (float)
checkKeltnerBreakout(upper, lower)
Parameters:
upper (float)
lower (float)
calcDonchianChannel(config)
Parameters:
config (ChannelConfig)
checkDonchianTouch(upper, lower)
Parameters:
upper (float)
lower (float)
checkDonchianReentry(upper, lower)
Parameters:
upper (float)
lower (float)
getDonchianWidth(upper, lower)
Parameters:
upper (float)
lower (float)
calcBollingerBands(config)
Parameters:
config (ChannelConfig)
calcSqueezeRatio(bbStdev, kcMultiplier, kcAtr)
Parameters:
bbStdev (float)
kcMultiplier (float)
kcAtr (float)
detectSqueezeState(squeezeRatio)
Parameters:
squeezeRatio (float)
detectSqueezeBreak(squeezeRatio, kcUpper, kcLower)
Parameters:
squeezeRatio (float)
kcUpper (float)
kcLower (float)
getSqueezeIntensity(squeezeRatio)
Parameters:
squeezeRatio (float)
processChannelDetection(config)
Parameters:
config (ChannelConfig)
detectChannelSignals(state)
Parameters:
state (ChannelState)
detectQualityZones(state)
Parameters:
state (ChannelState)
getChannelSignalText(state)
Parameters:
state (ChannelState)
analyzeChannelTrend(state)
Parameters:
state (ChannelState)
getChannelConfluence(state)
Parameters:
state (ChannelState)
newVwapConfig()
newVwapAnchors()
calcSessionVwap()
getPreviousSessionVwap(sessionVwap)
Parameters:
sessionVwap (float)
updateVwapAnchors(anchors, config)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
calcAnchoredVwap(anchors, isHigh)
Parameters:
anchors (VwapAnchors)
isHigh (bool)
detectPriceCrosses(sessionVwap)
Parameters:
sessionVwap (float)
detectStructureCrosses(sessionVwap, anchoredHigh, anchoredLow)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
detectVwapCluster(sessionVwap, anchoredHigh, anchoredLow, config)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
config (VwapConfig)
canShowSignal(anchors, config, signalType)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
signalType (string)
updateSignalThrottle(anchors, signalType)
Parameters:
anchors (VwapAnchors)
signalType (string)
calcCrossStrength(sessionVwap, isPriceCross)
Parameters:
sessionVwap (float)
isPriceCross (bool)
calcClusterStrength(vwapsInCluster, priceInCluster, tolerance)
Parameters:
vwapsInCluster (bool)
priceInCluster (bool)
tolerance (float)
calcStructureStrength(sessionVwap, anchoredHigh, anchoredLow)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
analyzeVwapTrend(sessionVwap)
Parameters:
sessionVwap (float)
processVwapDetection(anchors, config)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
generateVwapSignals(state)
Parameters:
state (VwapState)
getVwapBias(state)
Parameters:
state (VwapState)
getVwapConfluence(state)
Parameters:
state (VwapState)
newZoneConfig()
newZoneState()
stringToFloats(s)
Parameters:
s (string)
calculateBias(config)
Parameters:
config (ZoneConfig)
createZone(top, bottom, isBull, isHTF)
Parameters:
top (float)
bottom (float)
isBull (bool)
isHTF (bool)
updateZoneStatus(zone)
Parameters:
zone (Zone)
detectFVGOverlap(zone)
Parameters:
zone (Zone)
scoreZone(zone, config)
Parameters:
zone (Zone)
config (ZoneConfig)
sortAndTrimZones(zones, config)
Parameters:
zones (array)
config (ZoneConfig)
adjustZoneVisibility(zones, config)
Parameters:
zones (array)
config (ZoneConfig)
calculateTargetsATR(base, stepsString, atrLength)
Parameters:
base (float)
stepsString (string)
atrLength (simple int)
calculateTargetsSigma(base, stepsString, sigmaLength)
Parameters:
base (float)
stepsString (string)
sigmaLength (int)
calculateTargetsLiquidity(isLong, config)
Parameters:
isLong (bool)
config (ZoneConfig)
detectZoneSignals(zones, bias, config)
Parameters:
zones (array)
bias (int)
config (ZoneConfig)
processZoneManagement(state, config)
Parameters:
state (ZoneState)
config (ZoneConfig)
findNearestZones(state)
Parameters:
state (ZoneState)
newVolumeConfig()
newVolumeState()
getPriceSource(config)
Parameters:
config (VolumeConfig)
isInSession(config)
Parameters:
config (VolumeConfig)
isNewSession(config)
Parameters:
config (VolumeConfig)
calculateWindow(config)
Parameters:
config (VolumeConfig)
calculateProfile(config, windowStart, windowLength)
Parameters:
config (VolumeConfig)
windowStart (int)
windowLength (int)
detectVolumeNodes(binVolumes, binPrices, totalVolume)
Parameters:
binVolumes (array)
binPrices (array)
totalVolume (float)
calculateVolumeChoppiness(config)
Calculate choppiness index for volume profile
Parameters:
config (VolumeConfig)
detectMarketRegime(state, config)
Detect market regime based on multiple factors
Parameters:
state (VolumeState)
config (VolumeConfig)
calculateAdaptiveParameters(state, config)
Calculate adaptive volume profile parameters
Parameters:
state (VolumeState)
config (VolumeConfig)
updateMarketConditions(state, config)
Update volume state with market conditions
Parameters:
state (VolumeState)
config (VolumeConfig)
applyAdaptiveConfig(config, state)
Apply adaptive parameters to profile calculation
Parameters:
config (VolumeConfig)
state (VolumeState)
getHTFPivots(config)
Parameters:
config (VolumeConfig)
checkPivotConfluence(price, config, pivotHigh1, pivotLow1, pivotHigh2, pivotLow2)
Parameters:
price (float)
config (VolumeConfig)
pivotHigh1 (float)
pivotLow1 (float)
pivotHigh2 (float)
pivotLow2 (float)
calculateMOST()
Calculate MOST (Moving Stop) indicator
calculateTrendFilters(config)
Parameters:
config (VolumeConfig)
findNearestNodes(hvnNodes, lvnNodes)
Parameters:
hvnNodes (array)
lvnNodes (array)
detectVolumeSignals(config, profile, trendBullish, htfConfluence)
Parameters:
config (VolumeConfig)
profile (VolumeProfile)
trendBullish (bool)
htfConfluence (bool)
calculateVolumeScore(profile, trendBullish)
Parameters:
profile (VolumeProfile)
trendBullish (bool)
processVolumeProfile(state, config)
Parameters:
state (VolumeState)
config (VolumeConfig)
newHTFConfig()
newHTFStackState()
getOptimalTimeframes(chartTF)
Parameters:
chartTF (string)
calculateChoppiness(length)
Parameters:
length (int)
detectTrendEMA(length, threshold)
Parameters:
length (simple int)
threshold (float)
detectTrendSupertrend(atrLength, multiplier)
Parameters:
atrLength (simple int)
multiplier (float)
detectTrendMOST(length, multiplier)
Parameters:
length (simple int)
multiplier (float)
analyzeTrendForTF(tf, config)
Parameters:
tf (string)
config (HTFConfig)
calculateStackConfluence(tfData, config)
Parameters:
tfData (array)
config (HTFConfig)
calculateAutoTuningParams(choppiness, stackStrength, config)
Parameters:
choppiness (float)
stackStrength (float)
config (HTFConfig)
detectStackSignals(state, prevState, config)
Parameters:
state (HTFStackState)
prevState (HTFStackState)
config (HTFConfig)
createStackPanel(state, config)
Parameters:
state (HTFStackState)
config (HTFConfig)
processHTFStack(state, config)
Parameters:
state (HTFStackState)
config (HTFConfig)
processHTFStackSignals(state, prevState, config)
Parameters:
state (HTFStackState)
prevState (HTFStackState)
config (HTFConfig)
newRedefiningTechnicalAnalysisCore(analysisConfig, timeframeConfig, strategy)
Initialize RedefiningTechnicalAnalysis Core Library
Note: This function requires valid config objects to be passed in
The configuration module must be used directly to create default configs
Parameters:
analysisConfig (AnalysisConfig)
timeframeConfig (TimeframeConfig)
strategy (StrategyTemplate)
performAnalysis(core, prices, volumes, timestamps)
Perform complete multi-timeframe analysis
Parameters:
core (RedefiningTechnicalAnalysisCore)
prices (array)
volumes (array)
timestamps (array)
generateSignal(core, analysisResult)
Generate trading signal from analysis results
Parameters:
core (RedefiningTechnicalAnalysisCore)
analysisResult (MultiTimeframeResult)
assessRisk(core, signal)
Assess risk for trading decision
Parameters:
core (RedefiningTechnicalAnalysisCore)
signal (SignalResult)
executeFullWorkflow(core)
Execute complete analysis workflow
Parameters:
core (RedefiningTechnicalAnalysisCore)
updateAnalysisConfig(core, newConfig)
Update analysis configuration
Parameters:
core (RedefiningTechnicalAnalysisCore)
newConfig (AnalysisConfig)
updateStrategy(core, newStrategy)
Update strategy template
Parameters:
core (RedefiningTechnicalAnalysisCore)
newStrategy (StrategyTemplate)
checkSystemHealth(core)
Perform system health check
Parameters:
core (RedefiningTechnicalAnalysisCore)
generateStatusReport(core)
Generate comprehensive status report
Parameters:
core (RedefiningTechnicalAnalysisCore)
enableDebugMode(core, enabled)
Enable debug mode
Parameters:
core (RedefiningTechnicalAnalysisCore)
enabled (bool)
setFeatureFlag(core, flag, enabled)
Set feature flag
Parameters:
core (RedefiningTechnicalAnalysisCore)
flag (string)
enabled (bool)
getFeatureFlag(core, flag, defaultValue)
Get feature flag
Parameters:
core (RedefiningTechnicalAnalysisCore)
flag (string)
defaultValue (bool)
resetLibraryState(core)
Reset library state
Parameters:
core (RedefiningTechnicalAnalysisCore)
getLibraryInfo()
Get library version information
quickAnalysis(config, tfConfig, strategy)
Quick analysis - simplified entry point
Parameters:
config (AnalysisConfig)
tfConfig (TimeframeConfig)
strategy (StrategyTemplate)
getQuickStatus(core)
Get quick status string
Parameters:
core (RedefiningTechnicalAnalysisCore)
Result
Generic Result type for safe operations with error handling and fallbacks
Fields:
floatValue (series float)
stringValue (series string)
boolValue (series bool)
intValue (series int)
isSuccess (series bool)
errorCode (series string)
errorMessage (series string)
floatFallback (series float)
stringFallback (series string)
boolFallback (series bool)
intFallback (series int)
operationContext (series string)
timestamp (series int)
tags (array)
ValidationResult
Comprehensive validation result with errors, warnings, and corrections
Fields:
isValid (series bool)
errors (array)
warnings (array)
corrections (array)
suggestions (array)
validationScore (series float)
validationMode (series string)
validatedFields (series int)
totalFields (series int)
validationContext (series string)
validationTime (series int)
PerformanceProfile
Simplified performance profiling for Pine Script limitations
Fields:
executionTimeMs (series float)
averageExecutionMs (series float)
executionCount (series int)
errorCount (series int)
cacheHits (series int)
cacheMisses (series int)
cacheHitRatio (series float)
estimatedArrayElements (series int)
hasHeavyCalculation (series bool)
lastOptimizationHint (series string)
performanceGrade (series string)
performanceScore (series float)
functionName (series string)
profileStartTime (series int)
HealthStatus
Simplified health status for Pine Script limitations
Fields:
isHealthy (series bool)
healthScore (series float)
healthGrade (series string)
issues (array)
warnings (array)
recommendations (array)
dataValidationOK (series bool)
calculationsOK (series bool)
memoryUsageOK (series bool)
errorCountSession (series int)
warningCountSession (series int)
lastHealthCheck (series int)
healthCheckVersion (series string)
AnalysisConfig
Comprehensive analysis configuration with factor weights, thresholds, and extensible options
Fields:
activeFactors (array)
factorWeights (map)
thresholds (map)
features (map)
tradingMode (series string)
consensusMode (series string)
riskProfile (series string)
minConfidence (series float)
signalStrength (series float)
requireConsensus (series bool)
minConsensusCount (series int)
parameters (map)
options (map)
flags (map)
configName (series string)
version (series string)
description (series string)
createdTime (series int)
lastModified (series int)
validation (ValidationResult)
TimeframeConfig
Multi-timeframe configuration with weights and adjustments
Fields:
timeframes (array)
weights (array)
autoDetectChartTF (series bool)
includeHigherTFs (series bool)
tfAdjustments (map)
tfSensitivity (map)
tfFeatures (map)
minTimeframes (series int)
consensusThreshold (series float)
consensusMethod (series string)
normalizeWeights (series bool)
adaptiveBias (series bool)
higherTFBias (series float)
tfConfigName (series string)
configTimestamp (series int)
validation (ValidationResult)
GenericAnalysis
Generic analysis result that all specific analysis types extend
Fields:
totalScore (series float)
confidence (series float)
action (series string)
strength (series string)
riskLevel (series string)
factorScores (map)
factorWeights (map)
factorSignals (map)
factorReasons (map)
analysisType (series string)
timeframeAnalyzed (series string)
analysisTimestamp (series int)
marketCondition (series string)
dataQuality (series float)
performance (PerformanceProfile)
validation (ValidationResult)
numericData (map)
textData (map)
flags (map)
ConsensusData
Multi-timeframe consensus analysis data
Fields:
agreementCount (series int)
totalTimeframes (series int)
agreementPercentage (series float)
hasStrongConsensus (series bool)
hasMajorityConsensus (series bool)
agreeingTimeframes (array)
disagreeingTimeframes (array)
tfScores (map)
tfActions (map)
consensusMode (series string)
consensusScore (series float)
consensusAction (series string)
consensusStrength (series string)
tfWeights (map)
weightedConsensus (series bool)
weightedScore (series float)
consensusQuality (series float)
consensusReliability (series string)
consensusWarnings (array)
SignalResult
Comprehensive trading signal result
Fields:
strongBuy (series bool)
buy (series bool)
neutral (series bool)
sell (series bool)
strongSell (series bool)
overallScore (series float)
confidence (series float)
primaryAction (series string)
signalStrength (series string)
signalReason (series string)
contributingFactors (array)
factorContributions (map)
triggerCondition (series string)
consensus (ConsensusData)
consensusLevel (series string)
hasConsensus (series bool)
riskLevel (series string)
riskRewardRatio (series float)
successProbability (series float)
signalTimestamp (series int)
urgency (series string)
validityPeriod (series int)
marketPhase (series string)
warningFlags (array)
metadata (map)
MultiTimeframeResult
Multi-timeframe analysis result container
Fields:
primaryAnalysis (GenericAnalysis)
tfResults (map)
consensus (ConsensusData)
aggregatedScore (series float)
confidenceScore (series float)
dominantAction (series string)
consensusStrength (series string)
analyzedTimeframes (array)
failedTimeframes (array)
failureReasons (map)
performance (PerformanceProfile)
validation (ValidationResult)
dataQualityScore (series float)
config (AnalysisConfig)
tfConfig (TimeframeConfig)
analysisTimestamp (series int)
DebugLogEntry
Debug log entry
Fields:
timestamp (series int)
level (series string)
module (series string)
function (series string)
message (series string)
context (series string)
data (map)
barIndex (series int)
timeframe (series string)
DebugLogger
Debug logger with configurable levels
Fields:
entries (array)
maxEntries (series int)
currentLevel (series string)
enabled (series bool)
enabledModules (array)
showTimestamp (series bool)
showBarIndex (series bool)
outputFormat (series string)
PerformanceMeasurement
Performance measurement
Fields:
name (series string)
startTime (series int)
endTime (series int)
duration (series float)
iterations (series int)
avgDuration (series float)
status (series string)
context (series string)
TraceEntry
Execution trace entry
Fields:
function (series string)
module (series string)
entryTime (series int)
exitTime (series int)
isEntry (series bool)
parameters (series string)
returnValue (series string)
depth (series int)
ExecutionTracer
Execution tracer
Fields:
traces (array)
currentDepth (series int)
maxDepth (series int)
enabled (series bool)
maxTraces (series int)
CacheEntry
Cache entry
Fields:
key (series string)
data (series string)
timestamp (series int)
ttl (series int)
accessCount (series int)
lastAccess (series int)
CacheManager
Cache manager
Fields:
name (series string)
entries (map)
maxEntries (series int)
defaultTTL (series int)
enabled (series bool)
hits (series int)
misses (series int)
evictions (series int)
RiskAssessment
Core risk assessment result
Fields:
riskLevel (series string)
riskScore (series float)
riskRewardRatio (series float)
successProbability (series float)
maxDrawdownExpected (series float)
positionRisk (series float)
portfolioExposure (series float)
correlationRisk (series float)
concentrationRisk (series float)
volatilityRisk (series float)
liquidityRisk (series float)
timeframeRisk (series float)
newsEventRisk (series float)
supportResistanceRisk (series float)
trendRisk (series float)
momentumRisk (series float)
volumeRisk (series float)
hasHighRisk (series bool)
hasExtremeRisk (series bool)
riskWarnings (array)
riskFactors (array)
recommendedPositionSize (series float)
stopLossDistance (series float)
takeProfitDistance (series float)
shouldAvoidTrade (series bool)
riskMitigationStrategy (series string)
assessmentTimestamp (series int)
assessmentMethod (series string)
performance (PerformanceProfile)
PositionData
Comprehensive position data
Fields:
hasPosition (series bool)
positionSide (series string)
positionSize (series float)
entryPrice (series float)
entryTimestamp (series int)
entryReason (series string)
unrealizedPnL (series float)
realizedPnL (series float)
maxUnrealizedGain (series float)
maxUnrealizedLoss (series float)
totalReturn (series float)
stopLossPrice (series float)
takeProfitPrice (series float)
riskAmount (series float)
riskRewardRatio (series float)
currentRisk (RiskAssessment)
barsInPosition (series int)
maxBarsAllowed (series int)
isTimedOut (series bool)
timeframe (series string)
hasExitSignal (series bool)
exitReason (series string)
exitScore (series float)
shouldExit (series bool)
exitUrgency (series string)
actionHistory (array)
timestampHistory (array)
reasonHistory (array)
sharpeRatio (series float)
maxDrawdown (series float)
winRate (series float)
avgHoldTime (series float)
StrategyTemplate
Base strategy template
Fields:
name (series string)
description (series string)
category (series string)
timeframes (array)
entryThreshold (series float)
entryConfidenceMin (series float)
requiredSignals (array)
excludeConditions (array)
exitThreshold (series float)
stopLossPercent (series float)
takeProfitPercent (series float)
maxBarsInTrade (series int)
maxPositionSize (series float)
basePositionSize (series float)
useVolatilityAdjustment (series bool)
useConfidenceAdjustment (series bool)
maxRiskPerTrade (series float)
maxDailyRisk (series float)
maxDrawdownLimit (series float)
useAdaptiveRisk (series bool)
requireConsensus (series bool)
minConsensusPercent (series float)
avoidNewsEvents (series bool)
requireVolume (series bool)
targetSharpeRatio (series float)
targetWinRate (series float)
targetRiskReward (series float)
parameters (map)
flags (map)
settings (map)
MetricDataPoint
Performance metric data point
Fields:
timestamp (series int)
value (series float)
name (series string)
unit (series string)
labels (map)
source (series string)
MetricStats
Metric statistics
Fields:
min (series float)
max (series float)
avg (series float)
sum (series float)
count (series int)
p50 (series float)
p95 (series float)
p99 (series float)
stdDev (series float)
firstTimestamp (series int)
lastTimestamp (series int)
MetricDataPointArray
Wrapper for array of metric data points (to avoid nested collections)
Fields:
dataPoints (array)
MetricsCollector
Metrics collector
Fields:
metrics (map)
stats (map)
maxDataPoints (series int)
retentionPeriod (series int)
autoCleanup (series bool)
enabled (series bool)
enabledMetrics (array)
lastCleanupTime (series int)
ComponentHealth
Component health status
Fields:
name (series string)
status (series string)
healthScore (series float)
lastCheckTime (series int)
warnings (array)
errors (array)
metrics (map)
lastError (series string)
errorCount (series int)
warningCount (series int)
isOperational (series bool)
SystemHealth
System health overview
Fields:
overallStatus (series string)
overallScore (series float)
healthyComponents (series int)
degradedComponents (series int)
unhealthyComponents (series int)
components (array)
systemWarnings (array)
systemErrors (array)
lastFullCheckTime (series int)
autoHealing (series bool)
healingAttempts (series int)
HealthAlert
Health alert
Fields:
level (series string)
component (series string)
message (series string)
timestamp (series int)
acknowledged (series bool)
category (series string)
ZoneDetection
Advanced zone data structure
Fields:
upper (series float)
lower (series float)
mid (series float)
height (series float)
score (series float)
quality (series string)
touchCount (series int)
lastTouchBar (series int)
creationBar (series int)
role (series int)
zoneType (series string)
isActive (series bool)
isBroken (series bool)
flipBar (series int)
flipRetestCount (series int)
flipBestQuality (series float)
flipScore (series float)
hasFlipped (series bool)
htfOverlap (series bool)
htfTimeframe (series string)
htfConfidence (series float)
retestQuality (series float)
volumeProfile (series float)
volatilityProfile (series float)
freshnessScore (series float)
successfulBounces (series int)
failedBreakouts (series int)
successRate (series float)
avgHoldTime (series float)
zoneBox (series box)
midLine (series line)
zoneLabel (series label)
flipLabel (series label)
ZoneDetectionConfig
Zone analysis configuration
Fields:
pivotPeriod (series int)
atrMultiplier (series float)
atrLength (series int)
maxZones (series int)
mergeThreshold (series float)
minTouchesForSignificance (series int)
weightTouches (series float)
weightFreshness (series float)
weightVolume (series float)
weightHTF (series float)
minWickPercent (series float)
maxBodyPercent (series float)
freshnessHalfLife (series int)
useHTFProjection (series bool)
htfTimeframe (series string)
htfPivotCount (series int)
htfProjectionMultiplier (series float)
ChannelConfig
Fields:
kcEmaLength (series int)
kcAtrLength (series int)
kcMultiplier (series float)
dcLength (series int)
bbLength (series int)
bbMultiplier (series float)
pivotLength (series int)
atrThreshold (series float)
minBarsPerLeg (series int)
minTouchCount (series int)
mergeThreshold (series float)
ChannelState
Fields:
kcUpper (series float)
kcLower (series float)
kcBasis (series float)
kcAtr (series float)
dcUpper (series float)
dcLower (series float)
dcMid (series float)
bbUpper (series float)
bbLower (series float)
bbBasis (series float)
bbStdev (series float)
squeezeRatio (series float)
isSqueezeActive (series bool)
isExpanding (series bool)
touchKcUpper (series bool)
touchKcLower (series bool)
touchDcUpper (series bool)
touchDcLower (series bool)
kcBreakoutUp (series bool)
kcBreakoutDown (series bool)
dcReentryUp (series bool)
dcReentryDown (series bool)
squeezeBreakUp (series bool)
squeezeBreakDown (series bool)
kcDepth (series float)
dcWidth (series float)
squeezeIntensity (series float)
ChannelSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
isQualitySignal (series bool)
VwapConfig
Fields:
pivotLeftBars (series int)
pivotRightBars (series int)
clusterTolerancePercent (series float)
minBarsBetweenSignals (series int)
crossThreshold (series float)
enableThrottling (series bool)
detectClusters (series bool)
VwapState
Fields:
sessionVwap (series float)
sessionVwapPrev (series float)
anchoredVwapHigh (series float)
anchoredVwapLow (series float)
hasAnchoredHigh (series bool)
hasAnchoredLow (series bool)
priceCrossUp (series bool)
priceCrossDown (series bool)
canShowPriceCross (series bool)
structureCrossUp (series bool)
structureCrossDown (series bool)
canShowStructureCross (series bool)
isClusterActive (series bool)
canShowCluster (series bool)
clusterTolerance (series float)
vwapsInCluster (series bool)
priceInCluster (series bool)
priceVwapPosition (series int)
priceVwapDistance (series float)
priceVwapDistancePercent (series float)
crossStrength (series float)
clusterStrength (series float)
structureStrength (series float)
VwapSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
isHighConfidence (series bool)
barIndex (series int)
VwapAnchors
Fields:
cumulativePV (series float)
cumulativeV (series float)
anchorPV_High (series float)
anchorV_High (series float)
hasHighAnchor (series bool)
anchorPV_Low (series float)
anchorV_Low (series float)
hasLowAnchor (series bool)
lastPriceCrossBar (series int)
lastStructureCrossBar (series int)
lastClusterBar (series int)
ZoneConfig
Fields:
htfTimeframe (series string)
useHTF (series bool)
maxZonesPerSide (series int)
rankFavorHTF (series bool)
rankFavorFVG (series bool)
rankFavorFresh (series bool)
showOnlyTopRank (series bool)
alphaTop (series int)
alphaRest (series int)
biasLength (series int)
biasBandMultiplier (series float)
targetMode (series string)
atrLength (series int)
atrSteps (series string)
sigmaLength (series int)
sigmaSteps (series string)
useSSL (series bool)
useFVGFills (series bool)
confirmMidline (series bool)
confirmBreak (series bool)
requireBias (series bool)
lazyTargets (series bool)
nearPercent (series float)
Zone
Fields:
top (series float)
bottom (series float)
mid (series float)
bornTime (series int)
isBull (series bool)
isHTF (series bool)
touched (series bool)
violated (series bool)
hasFVG (series bool)
score (series float)
rank (series int)
zoneBox (series box)
midLine (series line)
isActive (series bool)
ZoneState
Fields:
zonesTF (array)
zonesHTF (array)
bias (series int)
biasScore (series float)
biasRegime (series string)
vwapLevel (series float)
bandUpper (series float)
bandLower (series float)
targetLevels (array)
targetLines (array)
activeBullZones (series int)
activeBearZones (series int)
totalZones (series int)
avgZoneScore (series float)
longSignal (series bool)
shortSignal (series bool)
nearestBullZone (Zone)
nearestBearZone (Zone)
ZoneSignal
Fields:
signalType (series string)
sourceZone (Zone)
strength (series float)
description (series string)
confirmed (series bool)
barIndex (series int)
VolumeConfig
Fields:
profileMode (series string)
fixedLength (series int)
rollingLength (series int)
sessionString (series string)
binCount (series int)
valueAreaPercent (series float)
useHLC3 (series bool)
useHTF1 (series bool)
htfTimeframe1 (series string)
useHTF2 (series bool)
htfTimeframe2 (series string)
pivotLookback (series int)
pivotToleranceATR (series float)
enableAutoTuning (series bool)
vaPct_eff (series float)
epsATR_eff (series float)
adaptiveAlpha (series float)
choppinessLength (series int)
choppyThreshold (series float)
trendingThreshold (series float)
useMarketRegime (series bool)
enableLVNSignals (series bool)
enableVASignals (series bool)
maxRetestDistanceATR (series float)
useEMAFilter (series bool)
useSupertrendFilter (series bool)
useMOSTFilter (series bool)
showPOC (series bool)
showValueArea (series bool)
showNodes (series bool)
showSilhouette (series bool)
silhouetteOffset (series int)
silhouetteWidth (series int)
zoneOpacity (series int)
enableSessionSplits (series bool)
maxSessionCount (series int)
VolumeNode
Fields:
price (series float)
volume (series float)
nodeType (series string)
prominence (series float)
isSignificant (series bool)
VolumeProfile
Fields:
pocPrice (series float)
pocVolume (series float)
valueAreaHigh (series float)
valueAreaLow (series float)
totalVolume (series float)
windowStart (series int)
windowLength (series int)
windowHigh (series float)
windowLow (series float)
binVolumes (array)
binPrices (array)
hvnNodes (array)
lvnNodes (array)
nearestLVN (series float)
nearestHVN (series float)
htfConfluence (series bool)
pocLine (series line)
valueAreaBox (series box)
nodeBoxes (array)
silhouette (series polyline)
VolumeState
Fields:
currentProfile (VolumeProfile)
sessionProfiles (array)
trendBullish (series bool)
emaConfluence (series float)
supertrendBull (series bool)
mostBull (series bool)
choppiness (series float)
isChoppy (series bool)
isTrending (series bool)
marketRegime (series string)
vaPct_current (series float)
epsATR_current (series float)
smoothingFactor (series float)
longLVNSignal (series bool)
shortLVNSignal (series bool)
longVASignal (series bool)
shortVASignal (series bool)
volumeScore (series float)
passFilter (series bool)
inValueArea (series bool)
abovePOC (series bool)
pocRising (series bool)
nearLVN (series bool)
VolumeSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
triggerPrice (series float)
hasConfluence (series bool)
barIndex (series int)
HTFConfig
Fields:
timeframes (array)
tfWeights (array)
autoSelectTFs (series bool)
maxTimeframes (series int)
trendLength (series int)
trendThreshold (series float)
trendMethod (series string)
stackThreshold (series float)
requireAllTFs (series bool)
confluenceBonus (series float)
enableAutoTuning (series bool)
choppinessLength (series int)
choppyThreshold (series float)
trendingThreshold (series float)
showStackPanel (series bool)
panelPosition (series string)
panelRows (series int)
panelCols (series int)
showTooltips (series bool)
HTFTrendData
Fields:
timeframe (series string)
trendStrength (series float)
trendDirection (series string)
confidence (series float)
isValid (series bool)
weight (series float)
trendColor (series color)
HTFStackState
Fields:
tfData (array)
bullConfluence (series float)
bearConfluence (series float)
stackStrength (series float)
stackBias (series string)
choppiness (series float)
isChoppy (series bool)
isTrending (series bool)
marketRegime (series string)
vaPct_eff (series float)
epsATR_eff (series float)
adaptiveAlpha (series float)
bullStackSignal (series bool)
bearStackSignal (series bool)
stackBreakSignal (series bool)
stackTable (series table)
tfLabels (array)
strengthBars (array)
RedefiningTechnicalAnalysisCore
Main library state container
Fields:
analysisConfig (AnalysisConfig)
timeframeConfig (TimeframeConfig)
activeStrategy (StrategyTemplate)
lastAnalysis (MultiTimeframeResult)
lastSignal (SignalResult)
lastRisk (RiskAssessment)
currentPosition (PositionData)
isInitialized (series bool)
lastUpdateTime (series int)
currentTimeframe (series string)
globalPerformance (PerformanceProfile)
systemHealth (SystemHealth)
metricsCollector (MetricsCollector)
analysisCache (CacheManager)
calculationCache (CacheManager)
recentErrors (array)
recentWarnings (array)
errorCount (series int)
warningCount (series int)
debugLogger (DebugLogger)
debugMode (series bool)
extensionData (map)
featureFlags (map)
ATR Adaptive (auto timeframe)This indicator automatically adjusts the Average True Range (ATR) period based on the current chart timeframe, helping traders define dynamic Stop Loss (SL) and Take Profit (TP) levels that adapt to market volatility.
The ATR measures the average range of price movement over a defined number of bars. By using adaptive periods, the indicator ensures that volatility is interpreted consistently across different timeframes — from 1-minute charts to daily or weekly charts.
It plots two main levels on the chart:
🔴 Low – ATR × Multiplier → Suggested Stop Loss (below the candle’s low)
🟢 High + ATR × Multiplier → Suggested Take Profit or trailing level (above the candle’s high)
Optional additional lines show ATR-based TP levels calculated from the current close.
💡 How to use
Select your desired ATR multiplier (e.g., 1.3× for SL, 1.0× for TP).
The script automatically detects the chart timeframe and uses an appropriate ATR length (e.g., ATR(30) on M5, ATR(21) on H1, ATR(14) on Daily).
Use the plotted levels to:
Set Stop Loss just below the red ATR band (for long trades).
Set Take Profit near or slightly below the green ATR band (for short trades, reverse logic).
⚙️ Why it helps
Maintains consistent volatility-based risk across multiple timeframes.
Avoids arbitrary fixed SL/TP values.
Makes the trading strategy more responsive in high-volatility markets and more conservative when volatility contracts.
Particularly useful for intraday and swing trading, where volatility varies significantly between sessions.
Weekly Breakout Screenermencari harga saham yang kuat breakout harga mingguan. potensi swing trading
Dynamic 21 SMA Zone S/R (Weekly and 2-Day)This custom indicator creates a dynamic support and resistance zone based on the 21-period Simple Moving Average (SMA) from the weekly timeframe and the 21-period SMA from the 2-day timeframe. The zone is visible and functional across all chart timeframes, adapting seamlessly to provide multi-timeframe insights.
Color Logic:
Green: When the current price is fully above the upper boundary of the zone, indicating potential bullish strength or a support level.
Gray: When the price is fully below the lower boundary, signaling potential bearish pressure or a resistance level.
Light Blue: When the price is within the zone (between the two SMAs), representing a neutral "no man's land" where the market is indecisive.
As the two SMAs converge or diverge, the zone naturally thins or widens, visually reflecting changes in market momentum—such as a thinning green zone during a potential reversal. Ideal for higher-timeframe swing trading to identify key levels, this indicator is also useful on lower timeframes for gauging the relative position of these SMAs, helping traders align short-term moves with broader trends.
MTRADE ATR SL FINDERAverage True Range Stop Loss Finder (ATR)
This indicator automatically calculates dynamic stop-loss levels based on market volatility using the Average True Range (ATR) formula.
It provides both Long and Short stop levels derived from ATR values and adapts them in real time as volatility changes.
🔍 Features
Adjustable ATR Length (default: 20)
Four smoothing methods: RMA, SMA, EMA, WMA
Configurable Multiplier (default: 1.5× ATR)
Real-time High (Short Stop) and Low (Long Stop) lines on the chart
A clean on-chart table displaying:
ATR value
High stop level (H)
Low stop level (L)
— all shown with 7-decimal precision for accurate readings
⚙️ Use Cases
Volatility-based stop-loss and take-profit placement
Risk management and trailing-stop automation
Intraday and swing trading systems using ATR-driven exits
🧠 Technical Details
Built in Pine Script v5
Supports up to 7 decimal precision (precision=7)
Works as an overlay, displaying ATR bands directly on price action
Fully customizable colors and smoothing logic
by fiyatherseydir
EMA Candle ColorEMA Candle Color - Visual EMA-Based Candle Coloring System
Overview:
This indicator provides a visual approach to trend identification by coloring candles based on their relationship with an Exponential Moving Average (EMA). The script dynamically colors both the candle bars and plots custom candles to give traders an immediate visual representation of price momentum relative to the EMA.
How It Works:
The indicator calculates an EMA based on your chosen source (default: open price) and length (default: 10 periods). It then applies a simple yet effective rule:
When the source price is ABOVE the EMA → Candles turn GREEN (bullish)
When the source price is BELOW the EMA → Candles turn RED (bearish)
This instant visual feedback helps traders quickly identify:
Current trend direction
Potential support/resistance levels (the EMA line itself)
Momentum shifts when candles change color
Key Features:
Customizable EMA Parameters: Adjust the EMA length (1-500) and source (open, close, high, low, hl2, hlc3, ohlc4)
Custom Color Selection: Choose your preferred bullish and bearish colors to match your chart theme
Dual Visualization: Both bar coloring and custom plotcandle for enhanced visibility
Offset Capability: Shift the EMA line forward or backward for advanced analysis
Clean Design: Minimal overlay that doesn't clutter your chart
How to Use:
1. Add the indicator to your chart
2. Adjust the EMA Length based on your trading timeframe:
- Shorter periods (5-20) for day trading and scalping
- Medium periods (20-50) for swing trading
- Longer periods (50-200) for position trading
3. Watch for candle color changes as potential entry/exit signals
4. Combine with other indicators for confirmation
Trading Applications:
Trend Following: Stay in trades while candles remain the same color
Reversal Signals: Watch for color changes as early reversal warnings
Filter System: Only take long positions during green candles, shorts during red
Visual Clarity: Quickly assess market sentiment at a glance
Settings:
Length: EMA calculation period (default: 10)
Source: Price data used for EMA calculation (default: open)
Offset: Shift EMA line on chart (default: 0)
Bullish Color: Color for candles above EMA (default: green)
Bearish Color: Color for candles below EMA (default: red)
Technical Details:
The script uses Pine Script v6 and employs the standard ta.ema() function for smooth, responsive EMA calculations. The candle coloring is achieved through both barcolor() and plotcandle() functions, ensuring visibility across different chart settings.
Note:
This indicator works on all timeframes and instruments. For best results, combine with proper risk management and additional confirmation indicators. The EMA Candle Color system is designed to simplify trend identification, not as a standalone trading system.
Tips:
Use on higher timeframes for more reliable signals
Combine with volume analysis for confirmation
Consider using multiple EMA periods for confluence
Disable default candles if using the plotcandle feature to avoid overlap
This script is open-source. Feel free to use it as a foundation for your own trading system or modify it to suit your specific trading style.