MA 50/150 Status Light לקראת שנת 2026. בודק האם אנחנו נמצאים מעל ממוצע 150 ו 50 האם בין והאם מתחת
במידה ואנחנו מעל אז מצב המניה חזק
במידה ובין אז סימן אזהרה, החלשות המניה
במידה ומתחת אז מניה חלשה
“Heading into 2026, we check whether the price is above the 50-day and 150-day moving averages, between them, or below them.
If the price is above both, the stock is in a strong condition.
If the price is between them, it is a warning sign — the stock is weakening.
If the price is below both, the stock is weak.”
Indicators and strategies
Trading Dashboard + Daily SMAsThis indicator is an all-in-one workspace overlay designed for futures and intraday traders. It consolidates critical market internals, session statistics, and daily technical levels into a single, highly customizable dashboard.
The goal of this script is to reduce chart clutter by placing essential data into a clean table while overlaying key Daily Moving Averages onto your intraday timeframe.
Key Features:
1. Comprehensive Market Internals Dashboard Monitor the health of the broad market directly from your chart. The dashboard includes real-time data for:
VIX: Volatility Index.
TICK & TRIN: Sentiment and volume flow indicators.
Breadth Data: ADD, ADV, and DECL (Advance/Decline lines and volume).
Multi-Ticker Watch: Monitor 3 additional assets (Defaults: NQ, RTY, YM) with real-time price and % change.
2. Session Statistics & Probabilities Automated calculation of intraday statistics based on a user-defined lookback period (default 100 days):
RTH Data: Tracks Regular Trading Hours Open, Close, and Range.
Contextual ATR: Compares current RTH range to the 14-day ATR.
Probabilities: Displays historical probabilities for "Gap Fill," "Break of Yesterday's High," and "Break of Yesterday's Low."
3. Daily SMAs on Intraday Charts Plot key Daily Simple Moving Averages (21, 50, 200) directly on your lower timeframe charts (1m, 5m, etc.) without switching views.
Fully Customizable: Toggle each SMA on/off individually.
Color Control: Users can change the color of every SMA line to fit their theme.
4. "Dark Mode" Optimized The dashboard features a specific "Very Dark Grey" (#121212) background by default, designed to reduce eye strain and blend seamlessly with dark-themed trading setups.
Settings & Customization:
Session Times: Define your specific RTH start and end times.
Symbols: All ticker symbols (VIX, ADD, NQ, etc.) can be customized in the settings menu to match your data provider.
Visibility: Every element in the table and every SMA line has a toggle switch. You only see what you need.
Visuals: Change table position, text size, and line colors.
Author's Instructions: Configuration Guide
This script relies on specific ticker symbols to pull data for Market Internals (TICK, TRIN, ADD) and the Watchlist. Depending on your data subscription plan (CME, CBOE, etc.), you may need to adjust the default symbols to match what you have access to.
1. How to Change Symbols
Add the indicator to your chart.
Hover over the indicator name in the top-left corner and click the Settings (Gear Icon).
Scroll to the "Symbols" section.
Click inside the text box for the symbol you want to change.
2. Common Symbol Formats If the default symbols show "N/A" or "Error," try these alternatives based on your data feed:
TICK (NYSE Tick)
Default: USI:TICK (Requires specific data)
Alternative: TVC:TICK (General TradingView feed)
Alternative: TICK (Generic)
TRIN (Arms Index)
Default: USI:TRIN
Alternative: TVC:TRIN
Alternative: TRIN
Breadth (ADD/ADV/DECL)
ADD (Advance-Decline Line): Try USI:ADD, TVC:ADD, or ADD
ADV (Advancing Volume): Try USI:ADV, TVC:ADV, or UVOL (Up Volume)
DECL (Declining Volume): Try USI:DECL, TVC:DECL, or DVOL (Down Volume)
VIX
Standard: CBOE:VIX or TVC:VIX
3. Setting Up the Ticker Watchlist (Ticker 1, 2, 3) The script defaults to "Continuous Contracts" (indicated by the 1!), which automatically rolls to the front month.
Nasdaq: CME_MINI:NQ1!
S&P 500: CME_MINI:ES1!
Russell 2000: CME_MINI:RTY1!
Dow Jones: CBOT_MINI:YM1!
Note: If you want to watch a specific contract month (e.g., December 2025), enter the specific code like NQZ2025.
4. Troubleshooting "N/A" Data If a cell in the table is empty or says "N/A":
Verify you are not viewing the chart on a timeframe that excludes the data (though dynamic_requests=true usually handles this).
Ensure you have the correct data permission for that specific symbol.
Market Closed: Some internal data points only populate during the active NYSE session (09:30 - 16:00 ET).
Disclaimer: This tool is for informational purposes only and does not constitute financial advice. Past probabilities do not guarantee future results.
3 EMA with Alerts 2025This indicator plots three key EMAs (20, 50, and 200) directly on the chart, making it easy to track short-, medium-, and long-term trends. A color-coded table is displayed in the top-right corner for quick reference.
The script also includes smart alerts that trigger only when the state changes:
• 🔵 EMA 20 crossing above EMA 50 & EMA 200 → Bullish signal
• 🔴 EMA 20 crossing below EMA 50 & EMA 200 → Bearish signal
This tool is designed for traders who want clean visuals, reliable alerts, and simplified trend recognition in 2025 markets.
Volatility High/Low Projection (PHOD / PLOD)AP Capital – Volatility + High/Low Projection
This indicator is designed to identify high-probability intraday turning points by combining daily range statistics, session behaviour, and volatility context into a single clean framework.
It is built for index, forex, and metals traders who want structure, not noise.
🔹 Core Features
1️⃣ Potential High of Day (PHOD) & Potential Low of Day (PLOD)
The indicator highlights likely intraday extremes based on:
Session timing (Asia, London, New York)
Current day volatility vs historical averages
Prior day expansion or compression behaviour
Each level is displayed with:
A clear label (PHOD / PLOD)
A forward-extending box acting as a live Point of Interest (POI)
Automatic invalidation when price breaks the zone
2️⃣ Volatility & Range Context (Info Panel)
A compact information panel in the top-right corner provides real-time context without cluttering the chart:
20-Day Average Range
% of the average range already used today
Range status (NORMAL / EXHAUSTED)
Average session ranges for:
Asia
London
New York
This allows traders to immediately assess whether price is:
Early in the day with room to trend
Statistically stretched and prone to reversal
Over-extended where breakout chasing is risky
3️⃣ Session-Aware Logic
The model respects how markets behave across the trading day:
Asia favours accumulation and potential lows
London provides expansion
New York often delivers distribution or exhaustion
This prevents random high/low marking and focuses only on structurally meaningful levels.
🧠 How to Use
Use PHOD / PLOD boxes as reaction zones, not blind entries
Combine with your own confirmation (structure break, momentum, volume, EMA reclaim, etc.)
Avoid chasing trades when the Range Status = EXHAUSTED
Particularly effective on 15m – 1h timeframes
⚠️ Important Notes
This indicator does not repaint
It is contextual, not a buy/sell signal generator
Best used as part of a complete trading plan
📈 Suitable Markets
XAUUSD (Gold)
Indices (NASDAQ, S&P 500, DAX)
Major FX pairs
📌 Disclaimer
This indicator is for educational and analytical purposes only.
It does not constitute financial advice. Trading involves risk.
CRS (2 symbols: Ratio or Normalized) + InverseMade for Crosrate comparison By Leo Hanhart
This script is made to do a comparison between two assets under your current chart.
For example if you want to compare SPX over Growth ETF's Below a current asset to find momentum in your stock trading above it
SuperTrend Basit v5 - Agresif//@version=5
indicator("SuperTrend Basit v5 - Agresif", overlay=true)
// === Girdi ayarları ===
factor = input.float(3.0, "ATR Katsayısı")
atrPeriod = input.int(10, "ATR Periyodu")
// === Hesaplamalar ===
= ta.supertrend(factor, atrPeriod)
// === Çizim ===
bodyColor = direction == 1 ? color.new(color.lime, 0) : color.new(color.red, 0)
bgcolor(direction == 1 ? color.new(color.lime, 85) : color.new(color.red, 85))
plot(supertrend, color=bodyColor, linewidth=4, title="SuperTrend Çizgisi") // Kalın çizgi
// === Al/Sat sinyali ===
buySignal = ta.crossover(close, supertrend)
sellSignal = ta.crossunder(close, supertrend)
plotshape(buySignal, title="AL", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.large, text="AL")
plotshape(sellSignal, title="SAT", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large, text="SAT")
SuperTrend BUY SELL Color//@version=6
indicator("SuperTrend by Cell Color", overlay=true, precision=2)
// --- Parametreler ---
atrPeriod = input.int(10, "ATR Periyodu")
factor = input.float(3.0, "Çarpan")
showTrend = input.bool(true, "Trend Renkli Hücreleri Göster")
// --- ATR Hesaplama ---
atr = ta.atr(atrPeriod)
// --- SuperTrend Hesaplama ---
up = hl2 - factor * atr
dn = hl2 + factor * atr
var float trendUp = na
var float trendDown = na
var int trend = 1 // 1 = bullish, -1 = bearish
trendUp := (close > trendUp ? math.max(up, trendUp ) : up)
trendDown := (close < trendDown ? math.min(dn, trendDown ) : dn)
trend := close > trendDown ? 1 : close < trendUp ? -1 : trend
// --- Renkli Hücreler ---
barcolor(showTrend ? (trend == 1 ? color.new(color.green, 0) : color.new(color.red, 0)) : na)
// --- SuperTrend Çizgileri ---
plot(trend == 1 ? trendUp : na, color=color.green, style=plot.style_line, linewidth=2)
plot(trend == -1 ? trendDown : na, color=color.red, style=plot.style_line, linewidth=2)
Renkli EMA_MA CROSS
indicator("Renkli MA Kesişimi + Oklar", overlay=true, precision=2
fastLen = input.int(20, "Hızlı MA (Fast)")
slowLen = input.int(50, "Yavaş MA (Slow)")
maType = input.string("EMA", "MA Tipi", options= )
showArrows = input.bool(true, "Okları Göster")
fastMA = maType == "EMA" ? ta.ema(close, fastLen) : ta.sma(close, fastLen)
slowMA = maType == "EMA" ? ta.ema(close, slowLen) : ta.sma(close, slowLen)
barcolor(fastMA > slowMA ? color.new(color.green, 0) : color.new(color.red, 0))
longSignal = ta.crossover(fastMA, slowMA)
shortSignal = ta.crossunder(fastMA, slowMA)
plotshape(showArrows and longSignal, title="Al", style=shape.labelup, location=location.belowbar, color=color.green, size=size.large, text="AL")
plotshape(showArrows and shortSignal, title="Sat", style=shape.labeldown, location=location.abovebar, color=color.red, size=size.large, text="SAT")
plot(fastMA, color=color.blue, title="Hızlı MA")
plot(slowMA, color=color.orange, title="Yavaş MA")
Renkli EMA Crossover//@version=5
indicator("Renkli EMA Crossover", overlay=true)
// EMA periyotları
fastLength = input.int(9, "Hızlı EMA")
slowLength = input.int(21, "Yavaş EMA")
// EMA hesaplama
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// EMA renkleri
fastColor = fastEMA > fastEMA ? color.green : color.red
slowColor = slowEMA > slowEMA ? color.blue : color.orange
// EMA çizgileri (agresif kalın)
plot(fastEMA, color=fastColor, linewidth=3, title="Hızlı EMA")
plot(slowEMA, color=slowColor, linewidth=3, title="Yavaş EMA")
// Kesişimler
bullCross = ta.crossover(fastEMA, slowEMA)
bearCross = ta.crossunder(fastEMA, slowEMA)
// Oklarla sinyal gösterimi
plotshape(bullCross, title="Al Sinyali", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.large)
plotshape(bearCross, title="Sat Sinyali", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.large)
HA Line + Trend Oklar//@version=5
indicator("HA Line + Trend Oklar", overlay=true)
// Heiken Ashi hesaplamaları
haClose = (open + high + low + close) / 4
var float haOpen = na
haOpen := na(haOpen) ? (open + close) / 2 : (haOpen + haClose ) / 2
haHigh = math.max(high, math.max(haOpen, haClose))
haLow = math.min(low, math.min(haOpen, haClose))
// Trend yönüne göre renk
haColor = haClose >= haClose ? color.green : color.red
// HA kapanış çizgisi
plot(haClose, color=haColor, linewidth=3, title="HA Close Line")
// Agresif oklar ile trend gösterimi
upArrow = ta.crossover(haClose, haClose )
downArrow = ta.crossunder(haClose, haClose )
plotshape(upArrow, title="Up Arrow", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(downArrow, title="Down Arrow", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
ZLSMA Trend + Al/Sat Sinyali/@version=6
indicator("ZLSMA Trend + Al/Sat Sinyali", overlay=true, max_labels_count=500)
length = input.int(25, "ZLSMA Periyodu")
src = input.source(close, "Kaynak")
thickness = input.int(4, "Çizgi Kalınlığı")
colorUp = input.color(color.new(color.lime, 0), "Yükselen Renk")
colorDown = input.color(color.new(color.red, 0), "Düşen Renk")
ema1 = ta.ema(src, length)
ema2 = ta.ema(ema1, length)
zlsma = 2 * ema1 - ema2
trendUp = zlsma > zlsma
trendDown = zlsma < zlsma
zlsmaColor = trendUp ? colorUp : colorDown
plot(zlsma, title="ZLSMA", color=zlsmaColor, linewidth=thickness)
buySignal = ta.crossover(close, zlsma)
sellSignal = ta.crossunder(close, zlsma)
plotshape(buySignal, title="Al", location=location.belowbar, color=color.new(color.lime, 0), style=shape.triangleup, size=size.large, text="AL")
plotshape(sellSignal, title="Sat", location=location.abovebar, color=color.new(color.red, 0), style=shape.triangledown, size=size.large, text="SAT")
bgcolor(trendUp ? color.new(color.lime, 90) : color.new(color.red, 90))
Pops Dividend 7-Day RadarHow traders use it as a strategy anyway 🧠
In real life, this becomes a manual or semi-systematic strategy:
Strategy logic (human-driven):
Scan for highest yield stocks
Filter for ex-date within 7 days
Apply technical rules (trend, EMAs, support)
Enter before ex-date
Exit:
Before ex-date (momentum run-up)
On ex-date
Or after dividend (reversion play)
Indicator’s role:
“Tell me when a stock qualifies so I can decide how to trade it.”
That’s exactly what this tool does.
How we could turn this into a strategy-style framework
Even though Pine won’t let us backtest dividends properly, we can:
Build a rules-based checklist (entry/exit rules)
Create alerts that behave like strategy triggers
Combine with:
EMA trend filters
Volume conditions
ATR-based exits
Label it as:
“Pops Dividend Capture Playbook” (manual execution)
This keeps it honest, legal, and reliable.
Bottom line
🧩 Indicator = what we built
📘 Strategy = how you trade it using the indicator
⚠️ TradingView limitations prevent a true dividend strategy backtest
RSI Divergence & Momentum Color//@version=5
// هذا مؤشر موحد يحدد الدايفرجنس (العادي والمخفي) ويقوم بتلوين الشموع حسب زخم RSI.
indicator(title="RSI Divergence & Momentum Color", shorttitle="RSI Divergence & MOM", overlay=true)
// --- 1. الإعدادات والمتغيرات (Inputs) ---
// إعدادات RSI
rsiLength = input.int(14, title="RSI Length", minval=1)
// إعدادات تحديد القمم والقيعان (Pivots)
pivotLeft = input.int(5, title="Pivot Lookback Left", minval=1)
pivotRight = input.int(5, title="Pivot Lookback Right", minval=1)
// --- 2. حساب مؤشر القوة النسبية (RSI Calculation) ---
rsi = ta.rsi(close, rsiLength)
// --- 3. تلوين الشموع حسب الزخم (RSI Momentum Color) ---
// فحص: هل RSI الحالي أكبر من RSI السابق؟
isRSIUp = rsi > rsi
// تحديد اللون بناءً على الشرط
var color colorRSI = na
// تلوين الشمعة باللون الأخضر إذا كان RSI صاعداً، وبالأحمر إذا كان هابطاً
if isRSIUp
colorRSI := color.new(color.green, 60) // أخضر فاتح
else
colorRSI := color.new(color.red, 60) // أحمر فاتح
// تطبيق تلوين الشمعة على الشارت الرئيسي
barcolor(colorRSI)
// --- 4. تحديد الدايفرجنس (Divergence Detection) ---
// تحديد القمم والقيعان على السعر
price_high_pivot = ta.pivothigh(high, pivotLeft, pivotRight)
price_low_pivot = ta.pivotlow(low, pivotLeft, pivotRight)
// تحديد القمم والقيعان على RSI
rsi_high_pivot = ta.pivothigh(rsi, pivotLeft, pivotRight)
rsi_low_pivot = ta.pivotlow(rsi, pivotLeft, pivotRight)
// *** المنطق المباشر للدايفرجنس (تظهر الإشارة عند القمة/القاع المكتملة) ***
// 🔵 الدايفرجنس العادي الصعودي (Regular Bullish Div)
isRegBull = price_low_pivot and rsi_low_pivot and low < low and rsi > rsi
// 🔴 الدايفرجنس العادي الهبوطي (Regular Bearish Div)
isRegBear = price_high_pivot and rsi_high_pivot and high > high and rsi < rsi
// 🟪 الدايفرجنس المخفي الصعودي (Hidden Bullish Div)
isHiddenBull = price_low_pivot and rsi_low_pivot and low > low and rsi < rsi
// 🟧 الدايفرجنس المخفي الهبوطي (Hidden Bearish Div)
isHiddenBear = price_high_pivot and rsi_high_pivot and high < high and rsi > rsi
// --- 5. رسم إشارات الدايفرجنس على السعر (Plotting Shapes) ---
// رسم الإشارات على الشارت الرئيسي (لتحديد مناطق الانعكاس/الاستمرار)
// 1. عادي صعودي (انعكاس)
plotshape(isRegBull, title="Regular Bullish Div", location=location.belowbar, style=shape.triangleup, color=color.green, size=size.small)
// 2. عادي هبوطي (انعكاس)
plotshape(isRegBear, title="Regular Bearish Div", location=location.abovebar, style=shape.triangledown, color=color.red, size=size.small)
// 3. مخفي صعودي (استمرار)
plotshape(isHiddenBull, title="Hidden Bullish Div", location=location.belowbar, style=shape.diamond, color=color.blue, size=size.small)
// 4. مخفي هبوطي (استمرار)
plotshape(isHiddenBear, title="Hidden Bearish Div", location=location.abovebar, style=shape.diamond, color=color.orange, size=size.small)
// --- 6. عرض مؤشر RSI في نافذة فرعية (Sub-Window) ---
// يجب إضافة مؤشر RSI بشكل منفصل لترى الدايفرجنس على منحنى RSI
// لكي تظهر الخطوط على منحنى RSI، يجب عليك إضافة كود المؤشر السابق (RSI Divergence Detector (Full))
// على نافذة RSI، ولكن هذا يتعارض مع طلبك دمج كل شيء.
// أفضل طريقة هي: قم بإضافة هذا المؤشر إلى الشارت، ثم أضف مؤشر RSI الافتراضي إلى نافذة جديدة.
// أو يمكنك إنشاء مؤشر RSI منفصل خاص بك في نافذة فرعية:
plot(rsi, title="RSI Value", color=color.rgb(100, 150, 200), display=display.none) // لا تعرض في الشارت الرئيسي
// لعرض RSI في نافذة فرعية، قم بإنشاء مؤشر جديد واضبط overlay=false
// أو استخدم المؤشر التالي (بما أن هذا المؤشر يحتوي على overlay=true، لن يرسم RSI أسفل الشارت).
// --- ملاحظة أخيرة: لرسم الخطوط على RSI أسفل الشارت ---
// لتحقيق ذلك بالضبط، يجب كتابة مؤشر ثانٍ بـ (overlay=false)
// يحتوي على نفس منطق الدايفرجنس. لتجنب ذلك، يكتفي هذا الكود برسم الإشارات
// على السعر (overlay=true) وتلوين الشموع.
Swing Trading Indicator: RSI + EMA + MACD + BB Signals**Swing Trading Indicator: Multi-Indicator Confluence Signals**
This indicator identifies high-probability swing trading setups using RSI pullbacks, EMA trend filter, MACD momentum confirmation, and Bollinger Bands for volatility-based entries. Perfect for daily/4H charts on stocks like TSLA or SPY.
**Key Features:**
- **Long Signal (Green ↑ Arrow)**: Uptrend (above 200 EMA) + RSI crosses above oversold (default 30) + MACD bullish crossover + Price at/near BB lower band + Optional squeeze filter.
- **Short Signal (Red ↓ Arrow)**: Mirror for downtrends.
- **Real-Time Dashboard**: Top-right table shows condition status (✓/✗) and "LONG/SHORT READY" alerts.
- **Customizable**: Adjust RSI levels, BB multiplier, enable/disable shorts/squeeze/arrows.
- **Alerts**: Built-in for entry notifications.
**How to Use:**
1. Add to chart (daily timeframe recommended).
2. Watch for arrows + "READY" in dashboard.
3. Manual entry: Risk 1% per trade, target 1:2 reward (e.g., trail stops).
**Backtest Note**: Based on similar setups, ~55-65% win rate in trending markets (test yourself). Not financial advice—trading involves risk. Fork and improve!
#swingtrading #RSI #MACD #BollingerBands #PineScript
VWAP Mean Reversion (RSI + Deviation + ATR Risk)33this is an indicator that relies on other indicators. it relies on volume price action fvgs.OBS. and standard deviations.
VWAP Mean Reversion v2 nice indicator based on volume and price action. it pays attention to RSI ema.VWAP. and many more indicators
S&R Detector by Rakesh SharmaSupport & Resistance Auto-Detector
Automatically identifies key Support and Resistance levels with strength ratings
✨ Key Features:
🎯 Intelligent S/R Detection
Automatically finds Support and Resistance levels based on swing highs/lows
Shows strength rating (Very Strong, Strong, Medium, Weak)
Displays number of touches at each level
📅 Key Time-Based Levels
Previous Day High/Low (PDH/PDL) - Blue lines
Previous Week High/Low (PWH/PWL) - Purple lines
Optional Round Numbers for psychological levels
⚙️ Fully Customizable
Adjust sensitivity (5-20 pivot length)
Filter by minimum touches (1-10)
Control maximum levels displayed (3-20)
Optional S/R zones (shaded areas)
📊 Live Dashboard
Shows nearest Support/Resistance
Distance to key levels
Total S/R levels detected
🔔 Smart Alerts
PDH/PDL breakout signals
Visual markers on chart
Perfect for: Intraday traders, Swing traders, Price action analysis
new takesi_2Step_Screener_MOU_KAKU_FIXED4 (Visible)//@version=5
indicator("MNO_2Step_Screener_MOU_KAKU_FIXED4 (Visible)", overlay=true, max_labels_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)")
emaMLen = input.int(13, "EMA Mid (13)")
emaLLen = input.int(26, "EMA Long (26)")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volLookback = input.int(5, "Volume MA days", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (Breakout/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Pullback route: valid bars after break", minval=1)
// --- Breakout route (押し目なし初動ブレイク) ---
useBreakoutRoute = input.bool(true, "Enable MOU Breakout Route (no pullback)")
breakConfirmPct = input.float(0.3, "Break confirm: close > R*(1+%)", step=0.1)
bigBodyLookback = input.int(20, "Break candle body MA length", minval=5)
bigBodyMult = input.float(1.2, "Break candle: body >= MA*mult", step=0.1)
requireCloseNearHigh = input.bool(true, "Break candle: close near high")
closeNearHighPct = input.float(25.0, "Close near high threshold (% of range)", step=1.0)
allowMACDAboveZeroInstead = input.bool(true, "Breakout route: allow MACD GC above zero instead")
// 表示
showEMA = input.bool(true, "Plot EMAs")
showMou = input.bool(true, "Show MOU label")
showKaku = input.bool(true, "Show KAKU label")
// ★ここを改善:デバッグ表はデフォルトON
showDebugTbl = input.bool(true, "Show debug table (last bar)")
// ★稼働確認ラベル(最終足に必ず出す)
showStatusLbl = input.bool(true, "Show status label (last bar always)")
locChoice = input.string("Below Bar", "Label location", options= )
lblLoc = locChoice == "Below Bar" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2days = close > emaL and close > emaL
// 勝率維持の土台(緩めない)
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2days
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdBreakOK = allowMACDAboveZeroInstead ? (macdMouOK or macdGCAboveZero) : macdMouOK
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf =
close > open and close < open and
close >= open and open <= close
bigBull =
close > open and
open < emaM and close > emaS and
(body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Breakout route (押し目なし初動ブレイク)
// =========================
breakConfirm = close > res * (1.0 + breakConfirmPct / 100.0)
bullBreak = close > open
bodyMA = ta.sma(body, bigBodyLookback)
bigBodyOK = bodyMA > 0 ? (body >= bodyMA * bigBodyMult) : false
rng = math.max(high - low, syminfo.mintick)
closeNearHighOK = not requireCloseNearHigh ? true : ((high - close) / rng * 100.0 <= closeNearHighPct)
mou_breakout =
useBreakoutRoute and
baseTrendOK and
breakConfirm and
bullBreak and
bigBodyOK and
closeNearHighOK and
volumeStrongOK and
macdBreakOK
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou = mou_pullback or mou_breakout
// =========================
// KAKU (Strict): 8条件 + 最終三点
// =========================
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2days
cond4 = macdGCAboveZero
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8_strict = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdGCAboveZero and volumeStrongOK
kaku = all8_strict and final3
// =========================
// Display (猛 / 猛B / 確)
// =========================
showKakuNow = showKaku and kaku
showMouPull = showMou and mou_pullback and not kaku
showMouBrk = showMou and mou_breakout and not kaku
plotshape(showMouPull, title="MOU_PULLBACK", style=shape.labelup, text="猛",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showMouBrk, title="MOU_BREAKOUT", style=shape.labelup, text="猛B",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showKakuNow, title="KAKU", style=shape.labelup, text="確",
color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// ★稼働確認:最終足に必ず出すステータスラベル
// =========================
var label status = na
if showStatusLbl and barstate.islast
label.delete(status)
statusTxt =
"MNO RUNNING " +
"MOU: " + (mou ? "YES" : "no") + " (pull=" + (mou_pullback ? "Y" : "n") + " / brk=" + (mou_breakout ? "Y" : "n") + ") " +
"KAKU: " + (kaku ? "YES" : "no") + " " +
"BaseTrend: " + (baseTrendOK ? "OK" : "NO") + " " +
"MACD(mou): " + (macdMouOK ? "OK" : "NO") + " / MACD(zeroGC): " + (macdGCAboveZero ? "OK" : "NO") + " " +
"Vol: " + (na(volRatio) ? "na" : str.tostring(volRatio, format.mintick)) + " " +
"Pull%: " + (na(pullbackPct) ? "na" : str.tostring(pullbackPct, format.mintick))
status := label.new(bar_index, high, statusTxt, style=label.style_label_left,
textcolor=color.white, color=color.new(color.black, 0))
// =========================
// Alerts
// =========================
alertcondition(mou, title="MNO_MOU", message="MNO: MOU triggered")
alertcondition(mou_breakout, title="MNO_MOU_BREAKOUT", message="MNO: MOU Breakout triggered")
alertcondition(mou_pullback, title="MNO_MOU_PULLBACK", message="MNO: MOU Pullback triggered")
alertcondition(kaku, title="MNO_KAKU", message="MNO: KAKU triggered")
// =========================
// Debug table (optional)
// =========================
var table t = table.new(position.top_right, 2, 14, border_width=1, border_color=color.new(color.white, 60))
fRow(_name, _cond, _r) =>
bg = _cond ? color.new(color.lime, 70) : color.new(color.red, 80)
tx = _cond ? "OK" : "NO"
table.cell(t, 0, _r, _name, text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, _r, tx, text_color=color.white, bgcolor=bg)
if showDebugTbl and barstate.islast
table.cell(t, 0, 0, "MNO Debug", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, 0, "", text_color=color.white, bgcolor=color.new(color.black, 0))
fRow("BaseTrend", baseTrendOK, 1)
fRow("MOU Pullback", mou_pullback, 2)
fRow("MOU Breakout", mou_breakout, 3)
fRow("Break confirm", breakConfirm, 4)
fRow("Break big body", bigBodyOK, 5)
fRow("Break close high", closeNearHighOK, 6)
fRow("Break vol strong", volumeStrongOK, 7)
fRow("Break MACD", macdBreakOK, 8)
fRow("KAKU all8", all8_strict, 9)
fRow("KAKU final3", final3, 10)
fRow("MOU any", mou, 11)
fRow("KAKU", kaku, 12)
Asian Sweep Strat by MindEdgeThe idea with the indicator is to highlight the asian range, so when price goes below or above it during frankfurt and london open overlap, we can trade price to the opposite direction
MACD X SignalsThis is a fundamental signal indicator based on MACD crossovers. It enhances the standard MACD by adding visual labels that classify signals based on their location relative to the Zero Line. This helps identify whether a trend is reversing, continuing, or potentially overextended.
Signal Legend:
B (Reversal): Bullish crossover in the Negative Zone .
B+ (Neutral): Bullish crossover in the Middle Zone .
B- (Trend): Bullish crossover in the Positive Zone
S : MACD crossing down (Bearish signal).
PatternTransitionTablesPatternTransitionTables Library
🌸 Part of GoemonYae Trading System (GYTS) 🌸
🌸 --------- 1. INTRODUCTION --------- 🌸
💮 Overview
This library provides precomputed state transition tables to enable ultra-efficient, O(1) computation of Ordinal Patterns. It is designed specifically to support high-performance indicators calculating Permutation Entropy and related complexity measures.
💮 The Problem & Solution
Calculating Permutation Entropy, as introduced by Bandt and Pompe (2002), typically requires computing ordinal patterns within a sliding window at every time step. The standard successive-pattern method (Equations 2+3 in the paper) requires ≤ 4d-1 operations per update.
Unakafova and Keller (2013) demonstrated that successive ordinal patterns "overlap" significantly. By knowing the current pattern index and the relative rank (position l) of just the single new data point, the next pattern index can be determined via a precomputed look-up table. Computing l still requires d comparisons, but the table lookup itself is O(1), eliminating the need for d multiplications and d additions. This reduces total operations from ≤ 4d-1 to ≤ 2d per update (Table 4). This library contains these precomputed tables for orders d = 2 through d = 5.
🌸 --------- 2. THEORETICAL BACKGROUND --------- 🌸
💮 Permutation Entropy
Bandt, C., & Pompe, B. (2002). Permutation entropy: A natural complexity measure for time series.
doi.org
This concept quantifies the complexity of a system by comparing the order of neighbouring values rather than their magnitudes. It is robust against noise and non-linear distortions, making it ideal for financial time series analysis.
💮 Efficient Computation
Unakafova, V. A., & Keller, K. (2013). Efficiently Measuring Complexity on the Basis of Real-World Data.
doi.org
This library implements the transition function φ_d(n, l) described in Equation 5 of the paper. It maps a current pattern index (n) and the position of the new value (l) to the successor pattern, reducing the complexity of updates to constant time O(1).
🌸 --------- 3. LIBRARY FUNCTIONALITY --------- 🌸
💮 Data Structure
The library stores transition matrices as flattened 1D integer arrays. These tables are mathematically rigorous representations of the factorial number system used to enumerate permutations.
💮 Core Function: get_successor()
This is the primary interface for the library for direct pattern updates.
• Input: The current pattern index and the rank position of the incoming price data.
• Process: Routes the request to the specific transition table for the chosen order (d=2 to d=5).
• Output: The integer index of the next ordinal pattern.
💮 Table Access: get_table()
This function returns the entire flattened transition table for a specified dimension. This enables local caching of the table (e.g. in an indicator's init() method), avoiding the overhead of repeated library calls during the calculation loop.
💮 Supported Orders & Terminology
The parameter d is the order of ordinal patterns (following Bandt & Pompe 2002). Each pattern of order d contains (d+1) data points, yielding (d+1)! unique patterns:
• d=2: 3 points → 6 unique patterns, 3 successor positions
• d=3: 4 points → 24 unique patterns, 4 successor positions
• d=4: 5 points → 120 unique patterns, 5 successor positions
• d=5: 6 points → 720 unique patterns, 6 successor positions
Note: d=6 is not implemented. The resulting code size (approx. 191k tokens) exceeds the Pine Script limit of 100k tokens (as of 2025-12).
VOLUME with DOUBLE MAA volume chart with dual moving averages. If you're looking for a volume chart with dual moving averages, this script is for you. By averaging the volume over two periods, you can discover more subtle relationships between price and volume.






















