DCA Strategy on Steroids for CryptoThis strategy getting only in Long position for Crypto
Using Fast and Slow moving Averages and Stochastic RSI to get in Long position
Fast and Slow moving Averages - cross-under - I Prefer - or opposite for Bull Market
Stochastic RSI cross-over - 5 and Trend Determined by the Fast moving Average
There is no Stop loss is not for one with small tolerance to getting under
Fast and Slow moving Averages and Stochastic RSI Parameters can be adjust
The bot Use Safe Trades and Price Deviation Determined from the User
Max Safe Trades = 10
Take profit Parameters can be adjust in %
Pepe-USDC is just a example What the bot Can do
Dönemler
Intraday Spark Chart [AstrideUnicorn]The Intraday Spark Chart (ISC) is a minimalist yet powerful tool designed to track an asset’s performance relative to its daily opening price. Inspired by Nasdaq's trading-floor analog dashboards, it visualizes intraday percentage changes as a color-coded sparkline, helping traders quickly gauge momentum and session bias.
Ideal for: Day trading, scalping, and multi-asset monitoring.
Best paired with: 1m to 4H timeframes (auto-warns on higher TFs).
Key metrics:
Real-time % change from daily open.
Final daily % change (updated at session close).
Daily open price labels for orientation.
HOW TO USE
Visual Guide
Sparkline Plot:
A green area/line indicates price is above the daily open (bullish).
A red area/line signals price is below the daily open (bearish).
The baseline (0%) represents the daily open price.
Session Markers:
The dotted vertical lines separate trading days.
Gray labels near the baseline show the exact daily open price at the start of each session.
Dynamic Labels:
The labels in the upper left corner of each session range display the current (or final) daily % change. Color matches the trend (green/red) for instant readability.
Practical Use Cases
Opening Range Breakouts: Spot early momentum by observing how price reacts to the daily open.
Multi-Asset Screening: Compare intraday strength across symbols by choosing an asset in the indicator settings panel.
Session Close Prep: Anticipate daily settlement by tracking the final % change (useful for futures/swing traders).
SETTINGS
Asset (Input Symbol) : Defaults to the current chart symbol. Choose any asset to monitor its price action without switching charts - ideal for intermarket analysis or correlation tracking.
GEXStrik BarS EUR USDGEX strike bars on the left side measure the prevailing amount of positive or negative gamma. On the right side, the volume of calls and puts traded in the region.
SMC - Complete AnalysisMC COMPLETE TRADING SYSTEM
📊 OVERVIEW
Professional Smart Money Concepts indicator with automated BUY/SELL signals, Entry/SL/TP prices, and 4-level market analysis for disciplined trading.
🎯 MAIN FEATURES
🟢 BUY/🔴 SELL Signals - Clear entry signals with exact prices
📍 ENTRY/SL/TP - Automated price calculations
🎪 Discipline Mode - High-probability setups only
⚡ Confluence Scoring - 6-factor signal validation
🏗️ 4 ANALYSIS LEVELS
Level 1: Market Structure
BOS/CHoCH/MSS detection
Displacement & Range analysis
Internal structure mapping
Level 2: Time-Based
Kill Zones (Asian/London/NY)
Session tracking
Daily/Weekly levels
Level 3: Entry & Risk
Smart entry triggers
Auto risk calculator
Target projections
Level 4: Advanced Analytics
Auto Fibonacci levels
Trend line detection
Smart money flow analysis
Strength meter
⚙️ SETTINGS
Default (Relaxed for more signals):
Minimum Confluence: 3/6
Kill Zone Required: OFF
Strength Bias Required: OFF
Risk per Trade: 2%
Risk:Reward: 3:1
📈 RECOMMENDED PAIRS
EURUSD (Beginners)
GBPUSD (Experienced)
XAUUSD (Best SMC signals)
EURJPY (Good structure)
⏰ BEST TIMEFRAMES
H1 - Recommended balance
H4 - High quality signals
M30 - More frequent signals
🎯 TRADING RULES
Trade ONLY on BUY/SELL signals
Use exact ENTRY/SL/TP prices
Set orders immediately
Wait for SL HIT or TP HIT
No modifications allowed
🔒 DISCIPLINE MODE
Shows signals only when confluence ≥3/6
All other features hidden by default
Simple status table
Forces disciplined trading
💡 USAGE
Wait for BUY or SELL signal
Note ENTRY/SL/TP prices
Execute trade exactly as shown
Hold until exit signal
Repeat
⚠️ IMPORTANT
No signal = No trading
2% risk maximum per trade
London/NY sessions preferred
Patience is key to success
🚀 Professional SMC system for consistent profitability through disciplined trading!
Transfer Function Filter [theUltimator5]The Transfer Function Filter is an engineering style approach to transform the price action on a chart into a frequency, then filter out unwanted signals using Butterworth-style filter approach.
This indicator allows you to analyze market structure by isolating or removing different frequency components of price movement—similar to how engineers filter signals in control systems and electrical circuits.
🔎 Features
Four Filter Types
1) Low Pass Filter – Smooths price data, highlighting long-term trends while filtering out short-term noise. This filter acts similar to an EMA, removing noisy signals, resulting in a smooth curve that follows the price of the stock relative to the filter cutoff settings.
Real world application for low pass filter - Used in power supplies to provide a clean, stable power level.
2) High Pass Filter – Removes slow-moving trends to emphasize short-term volatility and rapid fluctuations. The high pass filter removes the "DC" level of the chart, removing the average price moves and only outputting volatility.
Real world application for high pass filter - Used in audio equalizers to remove low-frequency noise (like rumble) while allowing higher frequencies to pass through, improving sound clarity.
3) Band Pass Filter – Allows signals to plot only within a band of bar ranges. This filter removes the low pass "DC" level and the high pass "high frequency noise spikes" and shows a signal that is effectively a smoothed volatility curve. This acts like a moving average for volatility.
Real world application for band pass filter - Radio stations only allow certain frequency bands so you can change your radio channel by switching which frequency band your filter is set to.
4) Band Stop Filter – Suppresses specific frequency bands (cycles between two cutoffs). This filter allows through the base price moving average, but keeps the high frequency volatility spikes. It allows you to filter out specific time interval price action.
Real world application for band stop filter - If there is prominent frequency signal in the area which can cause unnecessary noise in your system, a band stop filter can cancel out just that frequency so you get everything else
Configurable Parameters
• Cutoff Periods – Define the cycle lengths (in bars) to filter. This is a bit counter-intuitive with the numbering since the higher the bar count on the low-pass filter, the lower the frequency cutoff is. The opposite holds true for the high pass filter.
• Filter Order – Adjust steepness and responsiveness (higher order = sharper filtering, but with more delay).
• Overlay Option – Display Low Pass & Band Stop outputs directly on the price chart, or in a separate pane. This is enabled by default, plotting the filters that mimic moving averages directly onto the chart.
• Source Selection – Apply filters to close, open, high, low, or custom sources.
Histograms for Comparison
• BS–LP Histogram – Shows distance between Band Stop and Low Pass filters.
• BP–HP Histogram – Highlights differences between Band Pass and High Pass filters.
Histograms give the visualization of a pseudo-MACD style indicator
Visual & Informational Aids
• Customizable colors for each filter line.
• Optional zero-line for histogram reference.
• On-chart info table summarizing active filters, cutoff settings, histograms, and filter order.
📊 Use Cases
Trend Detection – Use the Low Pass filter to smooth noise and follow underlying market direction.
Volatility & Cycle Analysis – Apply High Pass or Band Pass to capture shorter-term patterns.
Noise Suppression – Deploy Band Stop to remove specific choppy frequencies.
Momentum Insight – Watch the histograms to spot divergences and relative filter strength.
Perfect Buy/Sell Entry (SMC) v31. Write a clear title
A title like "Perfect Buy Entry Checklist (SMC) v2" is great because it is descriptive. It tells users exactly what the indicator is designed to do.
2. Start with an overview
Briefly explain the purpose of your script. What problem does it solve? What trading concept is it based on?
Example: "This indicator automates a Smart Money Concepts (SMC) based checklist to find high-probability buy entries. It's designed to help traders identify a series of bullish market conditions in a single view."
3. List key features
Use a bulleted or numbered list to highlight the main components of your script. This makes it easy for users to quickly see what the indicator includes.
Example:
Liquidity Sweep Detection: Identifies a bearish liquidity grab followed by a bullish move.
Momentum Confirmation: Uses MACD and RSI to confirm bullish momentum.
Break of Structure (BOS): Signals when the price closes above a confirmed swing high.
Risk/Reward Calculation: Provides a basic ATR-based risk/reward check.
4. Explain how to use it
Provide simple, actionable steps on how a trader can use your indicator in their own analysis.
Example: "A 'Perfect Buy' signal is generated when all conditions in the checklist are met. You can use this signal as a final confirmation for your own trading ideas. Use it in conjunction with other price action analysis."
Lanzadera)The Lanzadera Indicator is designed to identify market momentum and potential breakout opportunities. It works as a dynamic tool that helps traders detect price acceleration zones, providing clear signals for possible entries and exits. With customizable settings and a user-friendly design, this indicator is suitable for both beginners and experienced traders.
Use it to:
Spot momentum shifts before major price movements.
Enhance your breakout trading strategies.
Gain a clearer view of market dynamics with visual alerts.
This indicator is built for traders who want precision, discipline, and a professional edge in their decision-making process.
Adaptive MVRV & RSI Strategy V6 (Dynamic Thresholds)Strategy Explanation
This is an advanced Dollar-Cost Averaging (DCA) strategy for Bitcoin that aims to adapt to long-term market cycles and changing volatility. Instead of relying on fixed buy/sell signals, it uses a dynamic, weighted approach based on a combination of on-chain data and classic momentum.
Core Components:
Dual-Indicator Signal: The strategy combines two powerful indicators for a more robust signal:
MVRV Ratio: An on-chain metric to identify when Bitcoin is fundamentally over or undervalued relative to its historical cost basis.
Weekly RSI: A classic momentum indicator to gauge long-term market strength and identify overbought/oversold conditions.
Dynamic, Self-Adjusting Thresholds: The core innovation of this strategy is that it avoids fixed thresholds (e.g., "sell when RSI is 70"). Instead, the buy and sell zones are dynamically calculated based on a long-term (2-year) moving average and standard deviation of each indicator. This allows the strategy to automatically adapt to Bitcoin's decreasing volatility and changing market structure over time.
Weighted DCA (Scaling In & Out): The strategy doesn't just buy or sell a fixed amount. The size of its trades is scaled based on conviction:
Buying: As the MVRV and RSI fall deeper into their "undervalued" zones, the percentage of available cash used for each purchase increases.
Selling: As the indicators rise further into "overvalued" territory, the percentage of the current position sold also increases.
This creates an adaptive system that systematically accumulates during periods of fear and distributes during periods of euphoria, with the intensity of its actions directly tied to the extremity of market conditions.
Markov Chain [3D] | FractalystWhat exactly is a Markov Chain?
This indicator uses a Markov Chain model to analyze, quantify, and visualize the transitions between market regimes (Bull, Bear, Neutral) on your chart. It dynamically detects these regimes in real-time, calculates transition probabilities, and displays them as animated 3D spheres and arrows, giving traders intuitive insight into current and future market conditions.
How does a Markov Chain work, and how should I read this spheres-and-arrows diagram?
Think of three weather modes: Sunny, Rainy, Cloudy.
Each sphere is one mode. The loop on a sphere means “stay the same next step” (e.g., Sunny again tomorrow).
The arrows leaving a sphere show where things usually go next if they change (e.g., Sunny moving to Cloudy).
Some paths matter more than others. A more prominent loop means the current mode tends to persist. A more prominent outgoing arrow means a change to that destination is the usual next step.
Direction isn’t symmetric: moving Sunny→Cloudy can behave differently than Cloudy→Sunny.
Now relabel the spheres to markets: Bull, Bear, Neutral.
Spheres: market regimes (uptrend, downtrend, range).
Self‑loop: tendency for the current regime to continue on the next bar.
Arrows: the most common next regime if a switch happens.
How to read: Start at the sphere that matches current bar state. If the loop stands out, expect continuation. If one outgoing path stands out, that switch is the typical next step. Opposite directions can differ (Bear→Neutral doesn’t have to match Neutral→Bear).
What states and transitions are shown?
The three market states visualized are:
Bullish (Bull): Upward or strong-market regime.
Bearish (Bear): Downward or weak-market regime.
Neutral: Sideways or range-bound regime.
Bidirectional animated arrows and probability labels show how likely the market is to move from one regime to another (e.g., Bull → Bear or Neutral → Bull).
How does the regime detection system work?
You can use either built-in price returns (based on adaptive Z-score normalization) or supply three custom indicators (such as volume, oscillators, etc.).
Values are statistically normalized (Z-scored) over a configurable lookback period.
The normalized outputs are classified into Bull, Bear, or Neutral zones.
If using three indicators, their regime signals are averaged and smoothed for robustness.
How are transition probabilities calculated?
On every confirmed bar, the algorithm tracks the sequence of detected market states, then builds a rolling window of transitions.
The code maintains a transition count matrix for all regime pairs (e.g., Bull → Bear).
Transition probabilities are extracted for each possible state change using Laplace smoothing for numerical stability, and frequently updated in real-time.
What is unique about the visualization?
3D animated spheres represent each regime and change visually when active.
Animated, bidirectional arrows reveal transition probabilities and allow you to see both dominant and less likely regime flows.
Particles (moving dots) animate along the arrows, enhancing the perception of regime flow direction and speed.
All elements dynamically update with each new price bar, providing a live market map in an intuitive, engaging format.
Can I use custom indicators for regime classification?
Yes! Enable the "Custom Indicators" switch and select any three chart series as inputs. These will be normalized and combined (each with equal weight), broadening the regime classification beyond just price-based movement.
What does the “Lookback Period” control?
Lookback Period (default: 100) sets how much historical data builds the probability matrix. Shorter periods adapt faster to regime changes but may be noisier. Longer periods are more stable but slower to adapt.
How is this different from a Hidden Markov Model (HMM)?
It sets the window for both regime detection and probability calculations. Lower values make the system more reactive, but potentially noisier. Higher values smooth estimates and make the system more robust.
How is this Markov Chain different from a Hidden Markov Model (HMM)?
Markov Chain (as here): All market regimes (Bull, Bear, Neutral) are directly observable on the chart. The transition matrix is built from actual detected regimes, keeping the model simple and interpretable.
Hidden Markov Model: The actual regimes are unobservable ("hidden") and must be inferred from market output or indicator "emissions" using statistical learning algorithms. HMMs are more complex, can capture more subtle structure, but are harder to visualize and require additional machine learning steps for training.
A standard Markov Chain models transitions between observable states using a simple transition matrix, while a Hidden Markov Model assumes the true states are hidden (latent) and must be inferred from observable “emissions” like price or volume data. In practical terms, a Markov Chain is transparent and easier to implement and interpret; an HMM is more expressive but requires statistical inference to estimate hidden states from data.
Markov Chain: states are observable; you directly count or estimate transition probabilities between visible states. This makes it simpler, faster, and easier to validate and tune.
HMM: states are hidden; you only observe emissions generated by those latent states. Learning involves machine learning/statistical algorithms (commonly Baum–Welch/EM for training and Viterbi for decoding) to infer both the transition dynamics and the most likely hidden state sequence from data.
How does the indicator avoid “repainting” or look-ahead bias?
All regime changes and matrix updates happen only on confirmed (closed) bars, so no future data is leaked, ensuring reliable real-time operation.
Are there practical tuning tips?
Tune the Lookback Period for your asset/timeframe: shorter for fast markets, longer for stability.
Use custom indicators if your asset has unique regime drivers.
Watch for rapid changes in transition probabilities as early warning of a possible regime shift.
Who is this indicator for?
Quants and quantitative researchers exploring probabilistic market modeling, especially those interested in regime-switching dynamics and Markov models.
Programmers and system developers who need a probabilistic regime filter for systematic and algorithmic backtesting:
The Markov Chain indicator is ideally suited for programmatic integration via its bias output (1 = Bull, 0 = Neutral, -1 = Bear).
Although the visualization is engaging, the core output is designed for automated, rules-based workflows—not for discretionary/manual trading decisions.
Developers can connect the indicator’s output directly to their Pine Script logic (using input.source()), allowing rapid and robust backtesting of regime-based strategies.
It acts as a plug-and-play regime filter: simply plug the bias output into your entry/exit logic, and you have a scientifically robust, probabilistically-derived signal for filtering, timing, position sizing, or risk regimes.
The MC's output is intentionally "trinary" (1/0/-1), focusing on clear regime states for unambiguous decision-making in code. If you require nuanced, multi-probability or soft-label state vectors, consider expanding the indicator or stacking it with a probability-weighted logic layer in your scripting.
Because it avoids subjectivity, this approach is optimal for systematic quants, algo developers building backtested, repeatable strategies based on probabilistic regime analysis.
What's the mathematical foundation behind this?
The mathematical foundation behind this Markov Chain indicator—and probabilistic regime detection in finance—draws from two principal models: the (standard) Markov Chain and the Hidden Markov Model (HMM).
How to use this indicator programmatically?
The Markov Chain indicator automatically exports a bias value (+1 for Bullish, -1 for Bearish, 0 for Neutral) as a plot visible in the Data Window. This allows you to integrate its regime signal into your own scripts and strategies for backtesting, automation, or live trading.
Step-by-Step Integration with Pine Script (input.source)
Add the Markov Chain indicator to your chart.
This must be done first, since your custom script will "pull" the bias signal from the indicator's plot.
In your strategy, create an input using input.source()
Example:
//@version=5
strategy("MC Bias Strategy Example")
mcBias = input.source(close, "MC Bias Source")
After saving, go to your script’s settings. For the “MC Bias Source” input, select the plot/output of the Markov Chain indicator (typically its bias plot).
Use the bias in your trading logic
Example (long only on Bull, flat otherwise):
if mcBias == 1
strategy.entry("Long", strategy.long)
else
strategy.close("Long")
For more advanced workflows, combine mcBias with additional filters or trailing stops.
How does this work behind-the-scenes?
TradingView’s input.source() lets you use any plot from another indicator as a real-time, “live” data feed in your own script (source).
The selected bias signal is available to your Pine code as a variable, enabling logical decisions based on regime (trend-following, mean-reversion, etc.).
This enables powerful strategy modularity : decouple regime detection from entry/exit logic, allowing fast experimentation without rewriting core signal code.
Integrating 45+ Indicators with Your Markov Chain — How & Why
The Enhanced Custom Indicators Export script exports a massive suite of over 45 technical indicators—ranging from classic momentum (RSI, MACD, Stochastic, etc.) to trend, volume, volatility, and oscillator tools—all pre-calculated, centered/scaled, and available as plots.
// Enhanced Custom Indicators Export - 45 Technical Indicators
// Comprehensive technical analysis suite for advanced market regime detection
//@version=6
indicator('Enhanced Custom Indicators Export | Fractalyst', shorttitle='Enhanced CI Export', overlay=false, scale=scale.right, max_labels_count=500, max_lines_count=500)
// |----- Input Parameters -----| //
momentum_group = "Momentum Indicators"
trend_group = "Trend Indicators"
volume_group = "Volume Indicators"
volatility_group = "Volatility Indicators"
oscillator_group = "Oscillator Indicators"
display_group = "Display Settings"
// Common lengths
length_14 = input.int(14, "Standard Length (14)", minval=1, maxval=100, group=momentum_group)
length_20 = input.int(20, "Medium Length (20)", minval=1, maxval=200, group=trend_group)
length_50 = input.int(50, "Long Length (50)", minval=1, maxval=200, group=trend_group)
// Display options
show_table = input.bool(true, "Show Values Table", group=display_group)
table_size = input.string("Small", "Table Size", options= , group=display_group)
// |----- MOMENTUM INDICATORS (15 indicators) -----| //
// 1. RSI (Relative Strength Index)
rsi_14 = ta.rsi(close, length_14)
rsi_centered = rsi_14 - 50
// 2. Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, length_14)
stoch_d = ta.sma(stoch_k, 3)
stoch_centered = stoch_k - 50
// 3. Williams %R
williams_r = ta.stoch(close, high, low, length_14) - 100
// 4. MACD (Moving Average Convergence Divergence)
= ta.macd(close, 12, 26, 9)
// 5. Momentum (Rate of Change)
momentum = ta.mom(close, length_14)
momentum_pct = (momentum / close ) * 100
// 6. Rate of Change (ROC)
roc = ta.roc(close, length_14)
// 7. Commodity Channel Index (CCI)
cci = ta.cci(close, length_20)
// 8. Money Flow Index (MFI)
mfi = ta.mfi(close, length_14)
mfi_centered = mfi - 50
// 9. Awesome Oscillator (AO)
ao = ta.sma(hl2, 5) - ta.sma(hl2, 34)
// 10. Accelerator Oscillator (AC)
ac = ao - ta.sma(ao, 5)
// 11. Chande Momentum Oscillator (CMO)
cmo = ta.cmo(close, length_14)
// 12. Detrended Price Oscillator (DPO)
dpo = close - ta.sma(close, length_20)
// 13. Price Oscillator (PPO)
ppo = ta.sma(close, 12) - ta.sma(close, 26)
ppo_pct = (ppo / ta.sma(close, 26)) * 100
// 14. TRIX
trix_ema1 = ta.ema(close, length_14)
trix_ema2 = ta.ema(trix_ema1, length_14)
trix_ema3 = ta.ema(trix_ema2, length_14)
trix = ta.roc(trix_ema3, 1) * 10000
// 15. Klinger Oscillator
klinger = ta.ema(volume * (high + low + close) / 3, 34) - ta.ema(volume * (high + low + close) / 3, 55)
// 16. Fisher Transform
fisher_hl2 = 0.5 * (hl2 - ta.lowest(hl2, 10)) / (ta.highest(hl2, 10) - ta.lowest(hl2, 10)) - 0.25
fisher = 0.5 * math.log((1 + fisher_hl2) / (1 - fisher_hl2))
// 17. Stochastic RSI
stoch_rsi = ta.stoch(rsi_14, rsi_14, rsi_14, length_14)
stoch_rsi_centered = stoch_rsi - 50
// 18. Relative Vigor Index (RVI)
rvi_num = ta.swma(close - open)
rvi_den = ta.swma(high - low)
rvi = rvi_den != 0 ? rvi_num / rvi_den : 0
// 19. Balance of Power (BOP)
bop = (close - open) / (high - low)
// |----- TREND INDICATORS (10 indicators) -----| //
// 20. Simple Moving Average Momentum
sma_20 = ta.sma(close, length_20)
sma_momentum = ((close - sma_20) / sma_20) * 100
// 21. Exponential Moving Average Momentum
ema_20 = ta.ema(close, length_20)
ema_momentum = ((close - ema_20) / ema_20) * 100
// 22. Parabolic SAR
sar = ta.sar(0.02, 0.02, 0.2)
sar_trend = close > sar ? 1 : -1
// 23. Linear Regression Slope
lr_slope = ta.linreg(close, length_20, 0) - ta.linreg(close, length_20, 1)
// 24. Moving Average Convergence (MAC)
mac = ta.sma(close, 10) - ta.sma(close, 30)
// 25. Trend Intensity Index (TII)
tii_sum = 0.0
for i = 1 to length_20
tii_sum += close > close ? 1 : 0
tii = (tii_sum / length_20) * 100
// 26. Ichimoku Cloud Components
ichimoku_tenkan = (ta.highest(high, 9) + ta.lowest(low, 9)) / 2
ichimoku_kijun = (ta.highest(high, 26) + ta.lowest(low, 26)) / 2
ichimoku_signal = ichimoku_tenkan > ichimoku_kijun ? 1 : -1
// 27. MESA Adaptive Moving Average (MAMA)
mama_alpha = 2.0 / (length_20 + 1)
mama = ta.ema(close, length_20)
mama_momentum = ((close - mama) / mama) * 100
// 28. Zero Lag Exponential Moving Average (ZLEMA)
zlema_lag = math.round((length_20 - 1) / 2)
zlema_data = close + (close - close )
zlema = ta.ema(zlema_data, length_20)
zlema_momentum = ((close - zlema) / zlema) * 100
// |----- VOLUME INDICATORS (6 indicators) -----| //
// 29. On-Balance Volume (OBV)
obv = ta.obv
// 30. Volume Rate of Change (VROC)
vroc = ta.roc(volume, length_14)
// 31. Price Volume Trend (PVT)
pvt = ta.pvt
// 32. Negative Volume Index (NVI)
nvi = 0.0
nvi := volume < volume ? nvi + ((close - close ) / close ) * nvi : nvi
// 33. Positive Volume Index (PVI)
pvi = 0.0
pvi := volume > volume ? pvi + ((close - close ) / close ) * pvi : pvi
// 34. Volume Oscillator
vol_osc = ta.sma(volume, 5) - ta.sma(volume, 10)
// 35. Ease of Movement (EOM)
eom_distance = high - low
eom_box_height = volume / 1000000
eom = eom_box_height != 0 ? eom_distance / eom_box_height : 0
eom_sma = ta.sma(eom, length_14)
// 36. Force Index
force_index = volume * (close - close )
force_index_sma = ta.sma(force_index, length_14)
// |----- VOLATILITY INDICATORS (10 indicators) -----| //
// 37. Average True Range (ATR)
atr = ta.atr(length_14)
atr_pct = (atr / close) * 100
// 38. Bollinger Bands Position
bb_basis = ta.sma(close, length_20)
bb_dev = 2.0 * ta.stdev(close, length_20)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
bb_position = bb_dev != 0 ? (close - bb_basis) / bb_dev : 0
bb_width = bb_dev != 0 ? (bb_upper - bb_lower) / bb_basis * 100 : 0
// 39. Keltner Channels Position
kc_basis = ta.ema(close, length_20)
kc_range = ta.ema(ta.tr, length_20)
kc_upper = kc_basis + (2.0 * kc_range)
kc_lower = kc_basis - (2.0 * kc_range)
kc_position = kc_range != 0 ? (close - kc_basis) / kc_range : 0
// 40. Donchian Channels Position
dc_upper = ta.highest(high, length_20)
dc_lower = ta.lowest(low, length_20)
dc_basis = (dc_upper + dc_lower) / 2
dc_position = (dc_upper - dc_lower) != 0 ? (close - dc_basis) / (dc_upper - dc_lower) : 0
// 41. Standard Deviation
std_dev = ta.stdev(close, length_20)
std_dev_pct = (std_dev / close) * 100
// 42. Relative Volatility Index (RVI)
rvi_up = ta.stdev(close > close ? close : 0, length_14)
rvi_down = ta.stdev(close < close ? close : 0, length_14)
rvi_total = rvi_up + rvi_down
rvi_volatility = rvi_total != 0 ? (rvi_up / rvi_total) * 100 : 50
// 43. Historical Volatility
hv_returns = math.log(close / close )
hv = ta.stdev(hv_returns, length_20) * math.sqrt(252) * 100
// 44. Garman-Klass Volatility
gk_vol = math.log(high/low) * math.log(high/low) - (2*math.log(2)-1) * math.log(close/open) * math.log(close/open)
gk_volatility = math.sqrt(ta.sma(gk_vol, length_20)) * 100
// 45. Parkinson Volatility
park_vol = math.log(high/low) * math.log(high/low)
parkinson = math.sqrt(ta.sma(park_vol, length_20) / (4 * math.log(2))) * 100
// 46. Rogers-Satchell Volatility
rs_vol = math.log(high/close) * math.log(high/open) + math.log(low/close) * math.log(low/open)
rogers_satchell = math.sqrt(ta.sma(rs_vol, length_20)) * 100
// |----- OSCILLATOR INDICATORS (5 indicators) -----| //
// 47. Elder Ray Index
elder_bull = high - ta.ema(close, 13)
elder_bear = low - ta.ema(close, 13)
elder_power = elder_bull + elder_bear
// 48. Schaff Trend Cycle (STC)
stc_macd = ta.ema(close, 23) - ta.ema(close, 50)
stc_k = ta.stoch(stc_macd, stc_macd, stc_macd, 10)
stc_d = ta.ema(stc_k, 3)
stc = ta.stoch(stc_d, stc_d, stc_d, 10)
// 49. Coppock Curve
coppock_roc1 = ta.roc(close, 14)
coppock_roc2 = ta.roc(close, 11)
coppock = ta.wma(coppock_roc1 + coppock_roc2, 10)
// 50. Know Sure Thing (KST)
kst_roc1 = ta.roc(close, 10)
kst_roc2 = ta.roc(close, 15)
kst_roc3 = ta.roc(close, 20)
kst_roc4 = ta.roc(close, 30)
kst = ta.sma(kst_roc1, 10) + 2*ta.sma(kst_roc2, 10) + 3*ta.sma(kst_roc3, 10) + 4*ta.sma(kst_roc4, 15)
// 51. Percentage Price Oscillator (PPO)
ppo_line = ((ta.ema(close, 12) - ta.ema(close, 26)) / ta.ema(close, 26)) * 100
ppo_signal = ta.ema(ppo_line, 9)
ppo_histogram = ppo_line - ppo_signal
// |----- PLOT MAIN INDICATORS -----| //
// Plot key momentum indicators
plot(rsi_centered, title="01_RSI_Centered", color=color.purple, linewidth=1)
plot(stoch_centered, title="02_Stoch_Centered", color=color.blue, linewidth=1)
plot(williams_r, title="03_Williams_R", color=color.red, linewidth=1)
plot(macd_histogram, title="04_MACD_Histogram", color=color.orange, linewidth=1)
plot(cci, title="05_CCI", color=color.green, linewidth=1)
// Plot trend indicators
plot(sma_momentum, title="06_SMA_Momentum", color=color.navy, linewidth=1)
plot(ema_momentum, title="07_EMA_Momentum", color=color.maroon, linewidth=1)
plot(sar_trend, title="08_SAR_Trend", color=color.teal, linewidth=1)
plot(lr_slope, title="09_LR_Slope", color=color.lime, linewidth=1)
plot(mac, title="10_MAC", color=color.fuchsia, linewidth=1)
// Plot volatility indicators
plot(atr_pct, title="11_ATR_Pct", color=color.yellow, linewidth=1)
plot(bb_position, title="12_BB_Position", color=color.aqua, linewidth=1)
plot(kc_position, title="13_KC_Position", color=color.olive, linewidth=1)
plot(std_dev_pct, title="14_StdDev_Pct", color=color.silver, linewidth=1)
plot(bb_width, title="15_BB_Width", color=color.gray, linewidth=1)
// Plot volume indicators
plot(vroc, title="16_VROC", color=color.blue, linewidth=1)
plot(eom_sma, title="17_EOM", color=color.red, linewidth=1)
plot(vol_osc, title="18_Vol_Osc", color=color.green, linewidth=1)
plot(force_index_sma, title="19_Force_Index", color=color.orange, linewidth=1)
plot(obv, title="20_OBV", color=color.purple, linewidth=1)
// Plot additional oscillators
plot(ao, title="21_Awesome_Osc", color=color.navy, linewidth=1)
plot(cmo, title="22_CMO", color=color.maroon, linewidth=1)
plot(dpo, title="23_DPO", color=color.teal, linewidth=1)
plot(trix, title="24_TRIX", color=color.lime, linewidth=1)
plot(fisher, title="25_Fisher", color=color.fuchsia, linewidth=1)
// Plot more momentum indicators
plot(mfi_centered, title="26_MFI_Centered", color=color.yellow, linewidth=1)
plot(ac, title="27_AC", color=color.aqua, linewidth=1)
plot(ppo_pct, title="28_PPO_Pct", color=color.olive, linewidth=1)
plot(stoch_rsi_centered, title="29_StochRSI_Centered", color=color.silver, linewidth=1)
plot(klinger, title="30_Klinger", color=color.gray, linewidth=1)
// Plot trend continuation
plot(tii, title="31_TII", color=color.blue, linewidth=1)
plot(ichimoku_signal, title="32_Ichimoku_Signal", color=color.red, linewidth=1)
plot(mama_momentum, title="33_MAMA_Momentum", color=color.green, linewidth=1)
plot(zlema_momentum, title="34_ZLEMA_Momentum", color=color.orange, linewidth=1)
plot(bop, title="35_BOP", color=color.purple, linewidth=1)
// Plot volume continuation
plot(nvi, title="36_NVI", color=color.navy, linewidth=1)
plot(pvi, title="37_PVI", color=color.maroon, linewidth=1)
plot(momentum_pct, title="38_Momentum_Pct", color=color.teal, linewidth=1)
plot(roc, title="39_ROC", color=color.lime, linewidth=1)
plot(rvi, title="40_RVI", color=color.fuchsia, linewidth=1)
// Plot volatility continuation
plot(dc_position, title="41_DC_Position", color=color.yellow, linewidth=1)
plot(rvi_volatility, title="42_RVI_Volatility", color=color.aqua, linewidth=1)
plot(hv, title="43_Historical_Vol", color=color.olive, linewidth=1)
plot(gk_volatility, title="44_GK_Volatility", color=color.silver, linewidth=1)
plot(parkinson, title="45_Parkinson_Vol", color=color.gray, linewidth=1)
// Plot final oscillators
plot(rogers_satchell, title="46_RS_Volatility", color=color.blue, linewidth=1)
plot(elder_power, title="47_Elder_Power", color=color.red, linewidth=1)
plot(stc, title="48_STC", color=color.green, linewidth=1)
plot(coppock, title="49_Coppock", color=color.orange, linewidth=1)
plot(kst, title="50_KST", color=color.purple, linewidth=1)
// Plot final indicators
plot(ppo_histogram, title="51_PPO_Histogram", color=color.navy, linewidth=1)
plot(pvt, title="52_PVT", color=color.maroon, linewidth=1)
// |----- Reference Lines -----| //
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dashed, linewidth=1)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-50, "Lower Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(25, "Upper Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-25, "Lower Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
// |----- Enhanced Information Table -----| //
if show_table and barstate.islast
table_position = position.top_right
table_text_size = table_size == "Tiny" ? size.tiny : table_size == "Small" ? size.small : size.normal
var table info_table = table.new(table_position, 3, 18, bgcolor=color.new(color.white, 85), border_width=1, border_color=color.gray)
// Headers
table.cell(info_table, 0, 0, 'Category', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 1, 0, 'Indicator', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 2, 0, 'Value', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
// Key Momentum Indicators
table.cell(info_table, 0, 1, 'MOMENTUM', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 1, 'RSI Centered', text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 2, 1, str.tostring(rsi_centered, '0.00'), text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 0, 2, '', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 1, 2, 'Stoch Centered', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 2, str.tostring(stoch_centered, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 3, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 3, 'Williams %R', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 3, str.tostring(williams_r, '0.00'), text_color=color.red, text_size=table_text_size)
table.cell(info_table, 0, 4, '', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 1, 4, 'MACD Histogram', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 2, 4, str.tostring(macd_histogram, '0.000'), text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 0, 5, '', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 1, 5, 'CCI', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 2, 5, str.tostring(cci, '0.00'), text_color=color.green, text_size=table_text_size)
// Key Trend Indicators
table.cell(info_table, 0, 6, 'TREND', text_color=color.navy, text_size=table_text_size, bgcolor=color.new(color.navy, 90))
table.cell(info_table, 1, 6, 'SMA Momentum %', text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 2, 6, str.tostring(sma_momentum, '0.00'), text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 0, 7, '', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 1, 7, 'EMA Momentum %', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 2, 7, str.tostring(ema_momentum, '0.00'), text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 0, 8, '', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 1, 8, 'SAR Trend', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 2, 8, str.tostring(sar_trend, '0'), text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 0, 9, '', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 1, 9, 'Linear Regression', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 2, 9, str.tostring(lr_slope, '0.000'), text_color=color.lime, text_size=table_text_size)
// Key Volatility Indicators
table.cell(info_table, 0, 10, 'VOLATILITY', text_color=color.yellow, text_size=table_text_size, bgcolor=color.new(color.yellow, 90))
table.cell(info_table, 1, 10, 'ATR %', text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 2, 10, str.tostring(atr_pct, '0.00'), text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 0, 11, '', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 1, 11, 'BB Position', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 2, 11, str.tostring(bb_position, '0.00'), text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 0, 12, '', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 1, 12, 'KC Position', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 2, 12, str.tostring(kc_position, '0.00'), text_color=color.olive, text_size=table_text_size)
// Key Volume Indicators
table.cell(info_table, 0, 13, 'VOLUME', text_color=color.blue, text_size=table_text_size, bgcolor=color.new(color.blue, 90))
table.cell(info_table, 1, 13, 'Volume ROC', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 13, str.tostring(vroc, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 14, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 14, 'EOM', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 14, str.tostring(eom_sma, '0.000'), text_color=color.red, text_size=table_text_size)
// Key Oscillators
table.cell(info_table, 0, 15, 'OSCILLATORS', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 15, 'Awesome Osc', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 15, str.tostring(ao, '0.000'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 16, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 16, 'Fisher Transform', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 16, str.tostring(fisher, '0.000'), text_color=color.red, text_size=table_text_size)
// Summary Statistics
table.cell(info_table, 0, 17, 'SUMMARY', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.gray, 70))
table.cell(info_table, 1, 17, 'Total Indicators: 52', text_color=color.black, text_size=table_text_size)
regime_color = rsi_centered > 10 ? color.green : rsi_centered < -10 ? color.red : color.gray
regime_text = rsi_centered > 10 ? "BULLISH" : rsi_centered < -10 ? "BEARISH" : "NEUTRAL"
table.cell(info_table, 2, 17, regime_text, text_color=regime_color, text_size=table_text_size)
This makes it the perfect “indicator backbone” for quantitative and systematic traders who want to prototype, combine, and test new regime detection models—especially in combination with the Markov Chain indicator.
How to use this script with the Markov Chain for research and backtesting:
Add the Enhanced Indicator Export to your chart.
Every calculated indicator is available as an individual data stream.
Connect the indicator(s) you want as custom input(s) to the Markov Chain’s “Custom Indicators” option.
In the Markov Chain indicator’s settings, turn ON the custom indicator mode.
For each of the three custom indicator inputs, select the exported plot from the Enhanced Export script—the menu lists all 45+ signals by name.
This creates a powerful, modular regime-detection engine where you can mix-and-match momentum, trend, volume, or custom combinations for advanced filtering.
Backtest regime logic directly.
Once you’ve connected your chosen indicators, the Markov Chain script performs regime detection (Bull/Neutral/Bear) based on your selected features—not just price returns.
The regime detection is robust, automatically normalized (using Z-score), and outputs bias (1, -1, 0) for plug-and-play integration.
Export the regime bias for programmatic use.
As described above, use input.source() in your Pine Script strategy or system and link the bias output.
You can now filter signals, control trade direction/size, or design pairs-trading that respect true, indicator-driven market regimes.
With this framework, you’re not limited to static or simplistic regime filters. You can rigorously define, test, and refine what “market regime” means for your strategies—using the technical features that matter most to you.
Optimize your signal generation by backtesting across a universe of meaningful indicator blends.
Enhance risk management with objective, real-time regime boundaries.
Accelerate your research: iterate quickly, swap indicator components, and see results with minimal code changes.
Automate multi-asset or pairs-trading by integrating regime context directly into strategy logic.
Add both scripts to your chart, connect your preferred features, and start investigating your best regime-based trades—entirely within the TradingView ecosystem.
References & Further Reading
Ang, A., & Bekaert, G. (2002). “Regime Switches in Interest Rates.” Journal of Business & Economic Statistics, 20(2), 163–182.
Hamilton, J. D. (1989). “A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle.” Econometrica, 57(2), 357–384.
Markov, A. A. (1906). "Extension of the Limit Theorems of Probability Theory to a Sum of Variables Connected in a Chain." The Notes of the Imperial Academy of Sciences of St. Petersburg.
Guidolin, M., & Timmermann, A. (2007). “Asset Allocation under Multivariate Regime Switching.” Journal of Economic Dynamics and Control, 31(11), 3503–3544.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets. New York Institute of Finance.
Brock, W., Lakonishok, J., & LeBaron, B. (1992). “Simple Technical Trading Rules and the Stochastic Properties of Stock Returns.” Journal of Finance, 47(5), 1731–1764.
Zucchini, W., MacDonald, I. L., & Langrock, R. (2017). Hidden Markov Models for Time Series: An Introduction Using R (2nd ed.). Chapman and Hall/CRC.
On Quantitative Finance and Markov Models:
Lo, A. W., & Hasanhodzic, J. (2009). The Heretics of Finance: Conversations with Leading Practitioners of Technical Analysis. Bloomberg Press.
Patterson, S. (2016). The Man Who Solved the Market: How Jim Simons Launched the Quant Revolution. Penguin Press.
TradingView Pine Script Documentation: www.tradingview.com
TradingView Blog: “Use an Input From Another Indicator With Your Strategy” www.tradingview.com
GeeksforGeeks: “What is the Difference Between Markov Chains and Hidden Markov Models?” www.geeksforgeeks.org
What makes this indicator original and unique?
- On‑chart, real‑time Markov. The chain is drawn directly on your chart. You see the current regime, its tendency to stay (self‑loop), and the usual next step (arrows) as bars confirm.
- Source‑agnostic by design. The engine runs on any series you select via input.source() — price, your own oscillator, a composite score, anything you compute in the script.
- Automatic normalization + regime mapping. Different inputs live on different scales. The script standardizes your chosen source and maps it into clear regimes (e.g., Bull / Bear / Neutral) without you micromanaging thresholds each time.
- Rolling, bar‑by‑bar learning. Transition tendencies are computed from a rolling window of confirmed bars. What you see is exactly what the market did in that window.
- Fast experimentation. Switch the source, adjust the window, and the Markov view updates instantly. It’s a rapid way to test ideas and feel regime persistence/switch behavior.
Integrate your own signals (using input.source())
- In settings, choose the Source . This is powered by input.source() .
- Feed it price, an indicator you compute inside the script, or a custom composite series.
- The script will automatically normalize that series and process it through the Markov engine, mapping it to regimes and updating the on‑chart spheres/arrows in real time.
Credits:
Deep gratitude to @RicardoSantos for both the foundational Markov chain processing engine and inspiring open-source contributions, which made advanced probabilistic market modeling accessible to the TradingView community.
Special thanks to @Alien_Algorithms for the innovative and visually stunning 3D sphere logic that powers the indicator’s animated, regime-based visualization.
Disclaimer
This tool summarizes recent behavior. It is not financial advice and not a guarantee of future results.
SuperTrend+ UpdatedSuperTrend+ with SL/TP is a technical analysis tool designed to identify market trends and potential trading opportunities. Based on the SuperTrend indicator, it incorporates additional features including stop loss and take profit level calculations.
The indicator visually displays uptrends and downtrends through colored lines and background highlighting, making trend direction easy to identify. It generates buy and sell signals when trend reversals are detected, with optional volume filtering to reduce false signals.
Key features include customizable ATR parameters, multiple calculation methods for stop loss and take profit levels (ATR-based or fixed percentage), and clear visual markers for entry points and target levels.
Ideal for traders looking to identify trend directions and manage risk with predefined exit levels, this indicator works across various timeframes and financial instruments.
Marcius Studio® - Cross-Asset Correlator™Cross-Asset Correlator™ — a pair-trading strategy that identifies correlation breakdowns between two assets and captures profit opportunities from market inefficiencies.
The strategy enters trades when the correlation drops below a set threshold and closes positions once correlation recovers.
The main concept is to exploit temporary divergence between two assets by going long the stronger one and short the weaker one, aiming to profit when their correlation reverts.
Important : This script illustrates asset correlation concepts for educational purposes only. It's not for live trading—requires adjustments and offers no performance guarantees. Always apply risk management.
TradingView Limitation
By default, TradingView’s built-in Strategy interface does not support backtesting with two different assets .
To overcome this, the script is implemented as an indicator with a fully custom backtesting engine that calculates PnL, trades, and performance statistics directly on the chart.
Idea
Markets move in clusters : altcoins follow BTC, memecoins track Solana, L2 projects mirror Ethereum. But correlations aren’t perfect—temporary divergences create pricing inefficiencies.
The logic:
When an asset lags or overshoots its usual correlation, it’s a mispricing opportunity.
Trade the reversion: buy undervalued divergence, sell overextended convergence.
The market eventually corrects, but the inefficiency window allows profit before realignment.
OKX Signal Bot Integration
This script includes a built-in interface for OKX Signal Bot .
It can generate structured JSON alerts (ENTER / EXIT, long / short) and directly manage trades on OKX exchange .
This allows seamless automation of correlation-based strategies without manual order execution.
Note : The OKX Signal Bot (for demo use only) assists with alerts & trade management but does not ensure profits. You are fully responsible for your trades—always apply risk management.
Strategy Parameters
Symbol 1 / Symbol 2 : trading instruments to be analyzed.
SMA Period : smoothing period for price averages.
Correlation Period : number of bars used to calculate correlation coefficient.
Upper Correlation Threshold : level above which trades are closed.
Lower Correlation Threshold : level below which new trades are opened.
percentage_investment (%) : allocation per entry signal (used for OKX integration).
Example Settings OKX:FARTCOINUSDT.P / OKX:PENGUUSDT.P
Timeframe : 1H
SMA Period : 60
Correlation Period : 25
Upper Threshold : 0.9
Lower Threshold : 0.1
percentage_investment : 10%
How the Code Works
Retrieves closing prices of two selected assets.
Calculates correlation coefficient and moving averages.
When correlation breaks below the lower threshold, the script opens a pair trade (long/short depending on SMA relation).
When correlation recovers above the upper threshold, all open trades are closed.
Real-time alerts are generated in JSON format for OKX bots (ENTER/EXIT signals).
Built-in backtesting engine tracks PnL, trades, and statistics (7d / 30d / total).
Visual labels mark entries, exits, and PnL results directly on the chart.
Disclaimer
Trading involves risk — always do your own research (DYOR) and seek professional financial advice. We are not responsible for any potential financial losses.
Elliott Wave Detector with FibonacciDetermines what timeframe (if any) the underlying asset displays congruence with Elliot Waves, validated by examining the congruence of the waves with fibonacci patterns. Like all backwards-looking indicators, any actual match will be a very pretty coincidence rather than any kind of indicator of potential future behaviour,
Elliott Wave - Impulse + Corrective Detector (Demo) เทคนิคการใช้
สำหรับมือใหม่
ดูเฉพาะ Impulse Wave ก่อน
เทรดตาม direction ของ impulse
ใช้ Fibonacci เป็น support/resistance
สำหรับ Advanced
ใช้ Corrective Wave หาจุด reversal
รวม Triangle กับ breakout strategy
ใช้ Complex correction วางแผนระยะยาว
⚙️ การปรับแต่ง
ถ้าเจอ Pattern น้อยเกินไป
ลด Swing Length เป็น 3-4
เพิ่ม Max History เป็น 500
ถ้าเจอ Pattern เยอะเกินไป
เพิ่ม Swing Length เป็น 8-12
ปิด patterns ที่ไม่ต้องการ
สำหรับ Timeframe ต่างๆ
H1-H4: Swing Length = 5-8
Daily: Swing Length = 3-5
Weekly: Swing Length = 2-3
⚠️ ข้อควรระวัง
Elliott Wave เป็น subjective analysis
ใช้ร่วมกับ indicators อื่นๆ
Backtest ก่อนใช้เงินจริง
Pattern อาจเปลี่ยนได้ตลอดเวลา
🎓 สรุป
โค้ดนี้เป็นเครื่องมือช่วยวิเคราะห์ Elliott Wave ที่:
✅ ใช้งานง่าย
✅ ตรวจจับอัตโนมัติ
✅ มี confidence scoring
✅ แสดงผล Fibonacci levels
✅ ส่ง alerts เรียลไทม์
เหมาะสำหรับ: Trader ที่ต้องการใช้ Elliott Wave ในการวิเคราะห์เทคนิค แต่ไม่มีเวลานั่งหา pattern เอง
💡 Usage Tips
For Beginners
Focus on Impulse Waves first
Trade in the direction of impulse
Use Fibonacci as support/resistance levels
For Advanced Users
Use Corrective Waves to find reversal points
Combine Triangles with breakout strategies
Use Complex corrections for long-term planning
⚙️ Customization
If You See Too Few Patterns
Decrease Swing Length to 3-4
Increase Max History to 500
If You See Too Many Patterns
Increase Swing Length to 8-12
Turn off unwanted pattern types
For Different Timeframes
H1-H4: Swing Length = 5-8
Daily: Swing Length = 3-5
Weekly: Swing Length = 2-3
⚠️ Important Warnings
Elliott Wave is subjective analysis
Use with other technical indicators
Backtest before using real money
Patterns can change at any time
🔧 Troubleshooting
No Patterns Showing
Check if you have enough price history
Adjust Swing Length settings
Make sure pattern detection is enabled
Too Many False Signals
Increase confidence threshold requirements
Use higher timeframes
Combine with trend analysis
Performance Issues
Reduce Max History setting
Turn off unnecessary visual elements
Use on liquid markets only
📈 Trading Applications
Entry Strategies
Wave 3 Entry: After Wave 2 completion (61.8%-78.6% retracement)
Wave 5 Target: Equal to Wave 1 or Fibonacci extensions
Corrective Bounce: Trade reversals at C wave completion
Risk Management
Stop Loss: Beyond pattern invalidation levels
Take Profit: Fibonacci extension targets
Position Sizing: Based on pattern confidence
🎓 Summary
This code is an Elliott Wave analysis tool that offers:
✅ Easy to use interface
✅ Automatic pattern detection
✅ Confidence scoring system
✅ Fibonacci level display
✅ Real-time alerts
Perfect for: Traders who want to use Elliott Wave analysis but don't have time to manually identify patterns.
📚 Quick Reference
Pattern Hierarchy (Most to Least Reliable)
Impulse Waves (90% confidence)
Expanded Flats (85% confidence)
Zigzags (80% confidence)
Triangles (75% confidence)
Complex Corrections (70% confidence)
Best Practices
Start with higher timeframes for main trend
Use lower timeframes for precise entries
Always confirm with volume and momentum
Don't trade against strong fundamental news
Keep a trading journal to track performance
Remember: Elliott Wave is an art as much as a science. This tool helps identify potential patterns, but always use your judgment and additional analysis before making trading decisions.
TrendBreaks & MA Divergence v1.3 — couleurs perso (panel)clean and easy predictive mouvements and swing stratagy
Sessions WORSTFXThe only sessions indicator you need. Based off eastern time zone. study it and you will see why I programed it like this
STOCK EXCHANGE + SILVER BULLET FRAMESThis script is an updated version of the " NY/LDN/TOK Stock Exchange Opening Hours " script.
Objective
Displays global stock exchange sessions (New York, London, Tokyo) with session frames, highs/lows, and opening lines. Includes ICT Silver Bullet windows (NY, London, Tokyo) with configurable shading. Past sessions are frozen at close, ongoing sessions update dynamically until closure, and upcoming sessions are pre-drawn. Fully customizable with options for weekends, labels, padding, opacity, and individual session toggles.
It is designed to help traders quickly interpret market context, liquidity zones, and session-based price behavior.
Main Features
Past sessions (historical data)
• Session Frames:
• Each box is frozen at the session’s close.
• The left edge aligns with the opening time, while the right edge is fixed at the closing time.
• The top and bottom reflect the highest and lowest prices during the session.
• Session Labels:
• Names (NY, LDN, TOK) displayed above the frame, aligned left, in the same color as the frame.
• Opening Lines:
• Vertical dotted lines mark the start of each session.
Ongoing and upcoming sessions (live market)
• Dynamic Session Frames:
• The right edge is locked at the future close time.
• The top and bottom update in real time as new highs and lows form.
• Labels and Lines:
• The session label is visible above the active frame.
• Opening lines are drawn as soon as the session begins.
Silver Bullet Time Windows (ICT concept)
• Highlights key liquidity windows within sessions:
• New York: 10:00–11:00 and 14:00–15:00
• London: 08:00–09:00
• Tokyo: 09:00–10:00
• Silver Bullet zones are shaded with configurable opacity (default 5%).
Customization and Options
• Enable or disable individual sessions (NY, London, Tokyo).
• Toggle weekend display (frames and Silver Bullets).
• Adjust label size, padding, and text visibility.
• Control frame opacity (default 0%).
• Optimized memory management with automatic pruning of old graphical objects.
PenguintrendThe PenguinTrend is a momentum oscillator that identifies optimal buy and sell opportunities by detecting oversold and overbought market conditions. When the background turns green (oversold) it suggests a potential buying opportunity. When the background turns red (overbought) it signals a potential selling opportunity. The indicator automatically adjusts for market volatility and only generates signals when both extreme conditions are present and momentum is shifting, helping filter out false signals in ranging markets.
Cheat CodeWhy Monday & Friday
Monday evening (NY): frequently seeds the weekly expansion. Its DR/IDR often acts as a weekly “starter envelope,” useful for breakout continuation or fade back into the box plays as liquidity builds.
Friday evening (NY): often exposes end-of-week traps (run on stops into the close) and sets expectation boundaries into the following week. Carry these levels forward to catch Monday’s reaction to Friday’s closing structure.
Typical use-cases
Breakout & retest:
Price closes outside the Monday DR/IDR → look for retests of the band edge for continuation.
Liquidity sweep (“trap”) recognition:
Friday session wicks briefly beyond Friday DR/IDR then closes back inside → watch for mean reversion early next week.
Bias filter:
Above both Monday DR midline and Friday DR midline → bias long until proven otherwise; the inverse for shorts.
Session open confluence:
Reactions at the open line frequently mark decision points for momentum vs. fade setups.
(This is a levels framework, not a signals engine. Combine with your execution model: orderflow, S/R, session timing, or higher-TF bias.)
Inputs & styling (quick reference)
Display toggles (per day):
Show DR / IDR / Middle DR / Middle IDR
Show Opening Line
Show DR/IDR Box (choose DR or IDR as box source)
Show Price Labels
Style controls (per day):
Line width (1–4), style (Solid/Dashed/Dotted)
Independent colors for DR, IDR, midlines, open line
Box background opacity
Timezone:
Default America/New_York (changeable).
Optional on-chart warning if your chart TZ differs.
Practical notes
Works on intraday charts; levels are anchored using weekly timestamps for accuracy on any symbol.
Live updating: During the Mon/Fri calc windows, DR/IDR highs/lows and midlines keep updating until the session ends.
Clean drawings: Lines, box, and labels are created once per session and then extended/updated—efficient on resources even with long display windows.
Max elements: Script reserves ample line/box/label capacity for stability across weeks.
BTC Power Law Valuation BandsBTC Power Law Rainbow
A long-term valuation framework for Bitcoin based on Power Law growth — designed to help identify macro accumulation and distribution zones, aligned with long-term investor behavior.
🔍 What Is a Power Law?
A Power Law is a mathematical relationship where one quantity varies as a power of another. In this model:
Price ≈ a × (Time)^b
It captures the non-linear, exponentially slowing growth of Bitcoin over time. Rather than using linear or cyclical models, this approach aligns with how complex systems, such as networks or monetary adoption curves, often grow — rapidly at first, and then more slowly, but persistently.
🧠 Why Power Law for BTC?
Bitcoin:
Has finite supply and increasing adoption.
Operates as a monetary network , where Metcalfe’s Law and power laws naturally emerge.
Exhibits exponential growth over logarithmic time when viewed on a log-log chart .
This makes it uniquely well-suited for power law modeling.
🌈 How to Use the Valuation Bands
The central white line represents the modeled fair value according to the power law.
Colored bands represent deviations from the model in logarithmic space, acting as macro zones:
🔵 Lower Bands: Deep value / Accumulation zones.
🟡 Mid Bands: Fair value.
🔴 Upper Bands: Euphoria / Risk of macro tops.
📐 Smart Money Concepts (SMC) Alignment
Accumulation: Occurs when price consolidates near lower bands — often aligning with institutional positioning.
Markup: As price re-enters or ascends the bands, we often see breakout behavior and trend expansion.
Distribution: When price extends above upper bands, potential for exit liquidity creation and distribution events.
Reversion: Historically, price mean-reverts toward the model — rarely staying outside the bands for long.
This makes the model useful for:
Cycle timing
Long-term DCA strategy zones
Identifying value dislocations
Filtering short-term noise
⚠️ Disclaimer
This tool is for educational and informational purposes only . It is not financial advice. The power law model is a non-predictive, mathematical framework and does not guarantee future price movements .
Always use additional tools, risk management, and your own judgment before making trading or investment decisions.
Multi SMA by GreenDecodeThis indicator, created by GreenDecode, plots eight Simple Moving Averages (SMAs) with customizable lengths and resolutions. Each SMA can be toggled on or off, and the colors are distinctly set for easy identification: SMA1 (yellow), SMA2 (cyan), SMA3 (green), SMA4 (red), SMA5 (blue), SMA6 (lightblue), SMA7 (teal), and SMA8 (gold). The SMAs are calculated to avoid repainting by using the 'lookahead=barmerge.lookahead_off' parameter, ensuring historical accuracy. Ideal for technical analysis to identify trends and potential reversal points on various timeframes.