ADX (Colored by Slope)_V2Option added to select 28/28 or 14/14. Also added a yellow line to mark level 20. Adx will turn red if it is lower than previous candle , else it will turn green.
Chỉ báo và chiến lược
Smart Money Concept v1Smart Money Concept Indicator – Visual Interpretation Guide
What Happens When Liquidity Lines Are Broken
🟩 Green Line Broken (Buy-Side Liquidity Pool Swept)
- Indicates price has dipped below a previous swing low where sell stops are likely placed.
- Market Makers may be triggering these stops to accumulate long positions.
- Often followed by a bullish reversal.
- Trader Actions:
• Look for a bullish candle close after the sweep.
• Confirm with nearby Bullish Order Block or Fair Value Gap.
• Consider entering a Buy trade (SLH entry).
- If price continues falling: Indicates trend continuation and invalidation of the buy-side liquidity zone.
🟥 Red Line Broken (Sell-Side Liquidity Pool Swept)
- Indicates price has moved above a previous swing high where buy stops are likely placed.
- Market Makers may be triggering these stops to accumulate short positions.
- Often followed by a bearish reversal.
- Trader Actions:
• Look for a bearish candle close after the sweep.
• Confirm with nearby Bearish Order Block or Fair Value Gap.
• Consider entering a Sell trade (SLH entry).
- If price continues rising: Indicates trend continuation and invalidation of the sell-side liquidity zone.
Chart-Based Interpretation of Green Line Breaks
In the provided DOGE/USD 15-minute chart image:
- Green lines represent buy-side liquidity zones.
- If these lines are broken:
• It may be a stop hunt before a bullish continuation.
• Or a false Break of Structure (BOS) leading to deeper retracement.
- Confirmation is needed from candle structure and nearby OB/FVG zones.
Is the Pink Zone a Valid Bullish Order Block?
To validate the pink zone as a Bullish OB:
- It should be formed by a strong down-close candle followed by a bullish move.
- Price should have rallied from this zone previously.
- If price is now retesting it and showing bullish reaction, it confirms validity.
- If formed during low volume or price never rallied from it, it may not be valid.
Smart Money Concept - Liquidity Line Breaks Explained
This document explains how traders should interpret the breaking of green (buy-side) and red (sell-side) liquidity lines when using the Smart Money Concept indicator. These lines represent key liquidity pools where stop orders are likely placed.
🟩 Green Line Broken (Buy-Side Liquidity Pool Swept)
When the green line is broken, it indicates:
• - Price has dipped below a previous swing low where sell stops were likely placed.
• - Market Makers have triggered those stops to accumulate long positions.
• - This is often followed by a bullish reversal.
Trader Actions:
• - Look for a bullish candle close after the sweep.
• - Confirm with a nearby Bullish Order Block or Fair Value Gap.
• - Consider entering a Buy trade (SLH entry).
🟥 Red Line Broken (Sell-Side Liquidity Pool Swept)
When the red line is broken, it indicates:
• - Price has moved above a previous swing high where buy stops were likely placed.
• - Market Makers have triggered those stops to accumulate short positions.
• - This is often followed by a bearish reversal.
Trader Actions:
• - Look for a bearish candle close after the sweep.
• - Confirm with a nearby Bearish Order Block or Fair Value Gap.
• - Consider entering a Sell trade (SLH entry).
📌 Additional Notes
• - If price continues beyond the liquidity line without reversal, it may indicate a trend continuation rather than a stop hunt.
• - Always confirm with Higher Time Frame bias, Institutional Order Flow, and price reaction at the zone.
FEI: Futures Entry Identifier📘 FEI: Futures Entry Identifier
FEI is a modular, futures-grade entry engine designed for precision trading across GC1!, MNQ1!, ES1!, and related contracts. It combines manual SVP structure, CHoCH detection, and Colby-style candle strength filters to identify high-probability long and short entries.
🔧 Features
• Manual SVP inputs (VAH, VAL, POC)
• Symbol-aware filters for micro vs standard contracts
• Multi-timeframe signal logic (3m, 5m, 10m, 15m, 30m)
• CHoCH detection with optional engulfing filter (default off)
• FRVP entry zone plotting after CHoCH confirmation
• Candle coloring on CHoCH trigger
• Session-aware logic (ETH default, optional RTH-only)
• Narratable visuals and audit-safe alerts
🧭 How to Use
1. Input VAH, VAL, and POC manually
2. Select signal timeframe (e.g. 3m or 5m)
3. Watch for CHoCH (white candle = structural shift)
4. Entry line plots at top/bottom of recent range
5. Long/short markers appear when SVP + candle strength align
6. Toggle RTH-only mode if needed
🌟 Why It’s Unique
FEI is built for traders who demand clarity, structure, and precision. Every signal is narratable, audit-safe, and resolution-aware—ideal for futures overlays and sniper-grade entries.
Multi-Timeframe Trend Table - EMA Based Trend Analysis📊 Stay Aligned with Higher Timeframe Trends While Scalping
This powerful indicator displays real-time trend direction for 1-hour and 4-hour timeframes in a clean, easy-to-read table format. Perfect for traders who want to align their short-term trades with higher timeframe momentum.
🎯 Key Features
Multi-Timeframe Analysis: Monitor 1H and 4H trends while trading on any timeframe (3min, 5min, 15min, etc.)
EMA-Based Logic: Uses proven EMA 50 and EMA 100 crossover methodology
Visual Clarity: Color-coded table with green (uptrend) and red (downtrend) indicators
Customizable Display: Toggle EMA values and adjust table position
Real-Time Updates: Automatically refreshes with each bar close
Lightweight: Minimal resource usage with efficient data requests
📈 How It Works
The indicator determines trend direction using a simple but effective rule:
UPTREND: Price is above both EMA 50 AND EMA 100
DOWNTREND: Price is below either EMA 50 OR EMA 100
🔧 Settings
Show EMA Values: Display actual EMA 50/100 values in the table
Table Position: Choose from 4 corner positions (Top Right, Top Left, Bottom Right, Bottom Left)
Plot Current EMAs: Optional display of EMA lines on your current chart
💡 Trading Applications
✅ Trend Confirmation: Ensure your trades align with higher timeframe direction
✅ Risk Management: Avoid counter-trend trades in strong directional markets
✅ Entry Timing: Use lower timeframe for entries while respecting higher timeframe bias
✅ Scalping Enhancement: Perfect for 1-5 minute scalping with higher timeframe context
🎨 Visual Design
Clean, professional table design
Intuitive color coding (Green = Up, Red = Down)
Compact size that doesn't obstruct your chart
Clear typography for quick reading
📋 Perfect For
Day traders and scalpers
Swing traders seeking trend confirmation
Multi-timeframe analysis enthusiasts
Traders who want simple, effective trend identification
🚀 Easy Setup
Add to any chart (works on all timeframes)
Customize table position and settings
Start trading with higher timeframe awareness
Watch the table update automatically
No complex configurations needed - just add and trade!
This indicator is designed for educational and informational purposes. Always combine with proper risk management and your own analysis.
RWE (MASTER CƯỜNG BOSS)Tôi là một nhà giao dịch master, tôi muốn chia sẻ đến các bạn những chỉ báo tuyệt vời nhất
Bollinger Breakout MarkersSubtle triangle markers that indicate when price extends out of the Bollinger bands to indicate overbought and oversold conditions
Liquidity Spectrum Visualizer [BigBeluga] [Optimized]This version of Liquidity Spectrum Visualizer (© BigBeluga) has been optimized to improve execution speed and reduce script load times without altering the visual output or analytical logic of the original indicator. The key improvements focus on reducing computational complexity, eliminating redundant calculations, and minimizing expensive function calls within loops.
Core Optimization Changes
Single-Pass Volume Binning (O(N) instead of O(N×M))
Original: For each bin (100) the script iterated through every bar (lookback), resulting in ~20,000 operations.
Optimized: Each bar is processed once to directly calculate its bin index. This reduces the loop complexity from O(N×M) to O(N), where N = lookback.
Precomputed Min/Max Values
Original: array.min() and array.max() were repeatedly called inside loops, re-scanning arrays hundreds of times.
Optimized: Min and max are computed once before all calculations and reused, reducing computational overhead.
Reduced Label Creation
Original: Labels were created in every iteration, potentially hundreds of times per update — a very expensive operation in Pine.
Optimized: Only two labels are created for significant high and low levels, cutting down label calls by ~99%.
Efficient Resource Management
All boxes and lines are cleared once before re-rendering instead of being deleted individually inside nested loops.
Optional gradient rendering and POC drawing remain, but only after binning is complete.
Performance Evaluation
The most important change is the reduction of loop complexity — instead of performing around 20,000 iterations per update, the optimized version now processes only about 200. This reduces execution time and makes the indicator much lighter.
Function calls such as min() and max() are now calculated only once instead of hundreds of times, which removes unnecessary overhead. Likewise, label creation has been reduced from hundreds of labels per refresh to just two, further improving performance.
As a result, the average loading time of the indicator dropped from roughly 1.5–3 seconds to about 0.05–0.2 seconds on typical datasets.
自定义均线(多色 & 分级线宽)Title: Multi-Color Moving Average Suite (MA5…MA4320) — Pine v6
Summary (1–2 lines):
An overlay indicator that plots a full ladder of SMA lines from MA5 up to MA4320. Each MA has a unique color, and line width scales with period (short = thin, mid = medium, long = thick) to make trend structure easy to read at a glance.
What it does
• Plots 16 simple moving averages: 5, 10, 20, 30, 60, 120, 160, 240, 480, 720, 960, 1440, 1750, 2880, 4320.
• Distinct colors for every MA to avoid confusion when lines cluster.
• Period-based thickness:
• Short-term (<60) = thin,
• Mid-term (60–160) = medium,
• Long-term (≥240) = thick (capped; no unlimited growth).
• Designed for quick trend reading across intraday to multi-year cycles (especially useful for 24/7 markets like crypto).
How to use
1. Add the indicator to any chart (works on all symbols/timeframes).
2. Use the thin/medium/thick visual hierarchy to identify short-/mid-/long-term bias and crossovers.
3. On very low timeframes, consider hiding some ultra-long MAs if your chart has insufficient history.
Notes
• Built with Pine Script v6; uses ta.sma(close, length) only (no repainting).
• Very long MAs (e.g., 2880/4320) require enough bars; they will display na until sufficient history loads.
• No inputs/alerts by default—kept intentionally simple for clarity. (Easy to extend with toggles, custom colors, EMA/WMA options, alerts, etc.)
Credits
Author: TraderFinsher (customized multi-MA visualization with color and thickness hierarchy).
⸻
标题: 多色均线系统(MA5…MA4320)— Pine v6
摘要(1–2 句):
这是一个叠加在价格上的 SMA 均线组,从 MA5 到 MA4320。为每条均线设置了 独立颜色,并按 周期长度分级线宽(短=细、中=中等、长=较粗),让趋势结构一眼可读。
功能说明
• 绘制 16 条简单移动平均线:5、10、20、30、60、120、160、240、480、720、960、1440、1750、2880、4320。
• 全部不同颜色,避免密集时混淆。
• 线宽随周期分级:
• 短期(<60)= 细,
• 中期(60–160)= 中等,
• 长期(≥240)= 粗(封顶,不再无限加粗)。
• 适合从日内到多年周期的 趋势快速判读(对加密等 24/7 市场尤为友好)。
使用建议
1. 将指标添加到任意品种/周期。
2. 结合细/中/粗的视觉层级,判断短/中/长趋势与均线交叉。
3. 在较低周期下,如果历史数据不足,可隐藏部分超长均线。
注意事项
• 使用 Pine v6,仅调用 ta.sma(close, length),不重绘。
• 超长均线需要足够历史数据,未满足前会显示 na。
• 默认不含参数和告警,追求简洁清晰(后续可扩展开关、自定义颜色/线宽、EMA/WMA 选项与告警等)。
致谢
作者:TraderFinsher(基于颜色与线宽层级的多均线可视化)。
KAPITAS TBR 12am-8:30measures the range between 12am(true day open)-8:30am and has % levels where price is sensitive and likely to reverse
MA Crossover BIFTY BNF with Broker Inputs//@version=6
strategy("MA Crossover with Broker Inputs", overlay=true, margin_long=100, margin_short=100, process_orders_on_close=true)
// === BROKER & ORDER SETTINGS ===
broker = input.string("Dhan", title="Broker", options= )
orderType = input.string("MKT", title="Order Type", options= )
clientID = input.string("", title="Client ID (Optional)")
secretKey = input.string("", title="Secret Key (from JSON)")
// === INSTRUMENT SELECTION ===
instrument = input.string("BANKNIFTY", title="Select Instrument", options= )
expiryMode = input.string("Auto", title="Expiry Mode", options= )
manualExpiry = input.string("17Dec2025", title="Manual Expiry Date (if Manual Mode)")
optionType = input.string("CE", title="Option Type", options= )
strikeSel = input.string("ATM", title="Strike Selection", options= )
// === RISK MANAGEMENT ===
stopLossPts = input.int(50, title="Stop Loss (points)")
takeProfitPts = input.int(100, title="Take Profit (points)")
// === STRATEGY LOGIC: Moving Average Crossover ===
fastLength = input.int(9, title="Fast MA Length")
slowLength = input.int(18, title="Slow MA Length")
price = close
maFast = ta.sma(price, fastLength)
maSlow = ta.sma(price, slowLength)
// Crossover Long
if (ta.crossover(maFast, maSlow))
strategy.entry("Long", strategy.long, comment="MA Crossover Long")
// Crossunder Short
if (ta.crossunder(maFast, maSlow))
strategy.entry("Short", strategy.short, comment="MA Crossover Short")
// Apply SL and TP
strategy.exit("Exit Long", from_entry="Long", stop=close - stopLossPts, limit=close + takeProfitPts)
strategy.exit("Exit Short", from_entry="Short", stop=close + stopLossPts, limit=close - takeProfitPts)
// === PLOTS ===
plot(maFast, color=color.green, title="Fast MA")
plot(maSlow, color=color.red, title="Slow MA")
mZigzagLibrary "mZigzag"
Matrix implementation of zigzag to allow further possibilities.
Main advantage of this library over previous zigzag methods is that you can attach any number of indicator/oscillator information to zigzag
calculate(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots, supertrendLength)
calculates zigzag and related information
Parameters:
length (simple int) : is zigzag length
ohlc (array) : array of OHLC values to be used for zigzag calculation
indicatorHigh (array) : Array of indicator values calculated based on high price of OHLC
indicatorLow (array) : Array of indicators values calculated based on low price of OHLC
numberOfPivots (simple int) : Number of pivots to be returned
supertrendLength (simple int) : is number of pivot history to calculate supertrend
Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionMatrix Matrix containing direction of price and indicator values at pivots
ratioMatrix Matrix containing ratios of price and indicator values at pivots
divergenceMatrix matrix containing divergence details for each indicators
doubleDivergenceMatrix matrix containing double divergence details for each indicators
barArray Array containing pivot bars
supertrendDir is direction of zigzag based supertrend
supertrend is supertrend value of zigzag based supertrend
newZG is true if a new pivot is added to array
doubleZG is true if last calculation returned two new pivots (Happens on extreme price change)
calculateplain(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots, offset)
calculates zigzag and related information uses shift/unshift rather than pop and push. Also does not calculate divergence and ratios.
Parameters:
length (simple int) : is zigzag length
ohlc (array) : array of OHLC values to be used for zigzag calculation
indicatorHigh (array) : Array of indicator values calculated based on high price of OHLC
indicatorLow (array) : Array of indicators values calculated based on low price of OHLC
numberOfPivots (simple int) : Number of pivots to be returned
offset (simple int)
Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionArray Matrix containing direction of price and indicator values at pivots
barArray Array containing pivot bars
newZG is true if a new pivot is added to array
doubleZG is true if last calculation returned two new pivots (Happens on extreme price change)
draw(valueMatrix, directionMatrix, ratioMatrix, divergenceMatrix, doubleDivergenceMatrix, barArray, newZG, doubleZG, indicatorLabels, lineColor, lineWidth, lineStyle, showLabel, showIndicators)
draws zigzag and related information based on preprocessed values
Parameters:
valueMatrix (matrix) : is matrix containing values of price and indicators
directionMatrix (matrix) : is matrix containing direction of price and indicators
ratioMatrix (matrix) : is matrix containing retracement ratios of price and indicators
divergenceMatrix (matrix)
doubleDivergenceMatrix (matrix)
barArray (array) : is array of pivot bars
newZG (bool) : is bool which tells whether new zigzag pivot is formed or not
doubleZG (bool) : is bool which teels us if the bar has both high and low zigzag
indicatorLabels (array)
lineColor (color) : zigzag line color. set to blue by default
lineWidth (int) : zigzag line width. set to 1 by default
lineStyle (string) : zigzag line style. set to line.style_solid by default
showLabel (bool) : Show pivot label
showIndicators (bool) : Include indicators in labels. If set to false, indicators are shown as tooltips
Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionMatrix Matrix containing direction of price and indicator values at pivots
ratioMatrix Matrix containing ratios of price and indicator values at pivots
divergenceMatrix matrix containing divergence details for each indicators
doubleDivergenceMatrix matrix containing double divergence details for each indicators
barArray Array containing pivot bars
zigzaglines array of zigzag lines
zigzaglabels array of zigzag labels
draw(length, ohlc, indicatorLabels, indicatorHigh, indicatorLow, numberOfPivots, lineColor, lineWidth, lineStyle, showLabel, showIndicators)
draws zigzag and related information
Parameters:
length (simple int) : is zigzag length
ohlc (array) : array of OHLC values to be used for zigzag calculation
indicatorLabels (array) : Array of name of indicators passed
indicatorHigh (array) : Array of indicator values calculated based on high price of OHLC
indicatorLow (array) : Array of indicators values calculated based on low price of OHLC
numberOfPivots (simple int) : Number of pivots to be returned
lineColor (color) : zigzag line color. set to blue by default
lineWidth (int) : zigzag line width. set to 1 by default
lineStyle (string) : zigzag line style. set to line.style_solid by default
showLabel (bool) : Show pivot label
showIndicators (bool) : Include indicators in labels. If set to false, indicators are shown as tooltips
Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionMatrix Matrix containing direction of price and indicator values at pivots
ratioMatrix Matrix containing ratios of price and indicator values at pivots
divergenceMatrix matrix containing divergence details for each indicators
doubleDivergenceMatrix matrix containing double divergence details for each indicators
barArray Array containing pivot bars
zigzaglines array of zigzag lines
zigzaglabels array of zigzag labels
AIO Entry Size CalculatorThis indicator is designed to help traders dynamically adjust their position size and drawdown expectations when their trading capital changes.
By entering your original backtest parameters — including base capital, base drawdown percentage, and base position size — along with your current capital, the script calculates two key scenarios:
Lock Drawdown %: Keeps the original drawdown percentage unchanged and calculates the new position size required.
Lock Position Size: Keeps the original position size unchanged and shows how your drawdown percentage will change.
The results are displayed in a clear, color-coded table, allowing you to instantly see how capital fluctuations affect your risk profile.
With customizable themes (dark/light) and highlight options, it’s an essential tool for risk management, portfolio rebalancing, and position sizing decisions based on real backtest data.
Additionally, this indicator is highly useful when combined with TradingView strategies — helping you interpret backtest results more accurately and translate them into real-world position sizing adjustments as your account balance evolves.
supertrendLibrary "supertrend"
supertrend : Library dedicated to different variations of supertrend
supertrend_atr(length, multiplier, atrMaType, source, highSource, lowSource, waitForClose, delayed)
supertrend_atr: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
length (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
delayed (simple bool) : : if set to true lags supertrend atr stop based on target levels.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_bands(bandType, maType, length, multiplier, source, highSource, lowSource, waitForClose, useTrueRange, useAlternateSource, alternateSource, sticky)
supertrend_bands: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
bandType (simple string) : : Type of band used - can be bb, kc or dc
maType (simple string) : : Moving Average type for Bands. This can be sma, ema, hma, rma, wma, vwma, swma
length (simple int) : : Band Length
multiplier (float) : : Std deviation or ATR multiplier for Bollinger Bands and Keltner Channel
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
useTrueRange (simple bool) : : Used for Keltner channel. If set to false, then high-low is used as range instead of true range
useAlternateSource (simple bool) : - Custom source is used for Donchian Chanbel only if useAlternateSource is set to true
alternateSource (float) : - Custom source for Donchian channel
sticky (simple bool) : : if set to true borders change only when price is beyond borders.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_zigzag(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
supertrend_zigzag: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zupertrend(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
zupertrend: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zsupertrend(zigzagpivots, history, source, highSource, lowSource, waitForClose, atrMaType, atrlength, multiplier)
zsupertrend: Same as zigzag supertrend. But, works on already calculated array rather than Calculating fresh zigzag
Parameters:
zigzagpivots (array) : : Precalculated zigzag pivots
history (simple int) : : number of historical pivots to consider
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
msupertrend(bandType, source, maType, length, useTrueRange, highSource, lowSource, waitForClose, numberOfBands, multiplierStart, multiplierStep, trailingDistance, trailStates)
msupertrend : Dynamic trailing supertrend based on multiple bands - either bollinger bands or keltener channel
Parameters:
bandType (simple string) : : Band type - can be either bb or kc
source (float) : : custom source if required
maType (simple string) : : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : : Oscillator length - not used for TSI
useTrueRange (simple bool) : : if set to false, uses high-low.
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
numberOfBands (simple int) : : Number of bands to generate
multiplierStart (simple float) : : Starting ATR or Standard deviation multiplier for first band
multiplierStep (simple float) : : Incremental value for multiplier for each band
trailingDistance (simple int) : : Number of band states to trail for trailing stop.
trailStates (simple bool) : : If selected trails the band states along with trailing price. If unselected only price is trailed.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
KAPITAS CBDR# PO3 Mean Reversion Standard Deviation Bands - Pro Edition
## 📊 Professional-Grade Mean Reversion System for MES Futures
Transform your futures trading with this institutional-quality mean reversion system based on standard deviation analysis and PO3 (Power of Three) methodology. Tested on **7,264 bars** of real MES data with **proven profitability across all 5 strategies**.
---
## 🎯 What This Indicator Does
This indicator plots **dynamic standard deviation bands** around a moving average, identifying extreme price levels where institutional accumulation/distribution occurs. Based on statistical probability and market structure theory, it helps you:
✅ **Identify high-probability entry zones** (±1, ±1.5, ±2, ±2.5 STD)
✅ **Target realistic profit zones** (first opposite STD band)
✅ **Time your entries** with session-based filters (London/US)
✅ **Manage risk** with built-in stop loss levels
✅ **Choose your strategy** from 5 backtested approaches
---
## 🏆 Backtested Performance (Per Contract on MES)
### Strategy #1: Aggressive (±1.5 → ∓0.5) 🥇
- **Total Profit:** $95,287 over 1,452 trades
- **Win Rate:** 75%
- **Profit Factor:** 8.00
- **Target:** 80 ticks ($100) | **Stop:** 30 ticks ($37.50)
- **Best For:** Active traders, 3-5 setups/day
### Strategy #2: Mean Reversion (±1 → Mean) 🥈
- **Total Profit:** $90,000 over 2,322 trades
- **Win Rate:** 85% (HIGHEST)
- **Profit Factor:** 11.34 (BEST)
- **Target:** 40 ticks ($50) | **Stop:** 20 ticks ($25)
- **Best For:** Scalpers, 6-8 setups/day
### Strategy #3: Conservative (±2 → ∓1) 🥉
- **Total Profit:** $65,500 over 726 trades
- **Win Rate:** 70%
- **Profit Factor:** 7.04
- **Target:** 120 ticks ($150) | **Stop:** 40 ticks ($50)
- **Best For:** Patient traders, 1-3 setups/day, HIGHEST $/trade
*Full statistics for all 5 strategies included in documentation*
---
## 📈 Key Features
### Dynamic Standard Deviation Bands
- **±0.5 STD** - Intraday mean reversion zones
- **±1.0 STD** - Primary reversion zones (68% of price action)
- **±1.5 STD** - Extended zones (optimal balance)
- **±2.0 STD** - Extreme zones (95% of price action)
- **±2.5 STD** - Ultra-extreme zones (rare events)
- **Mean Line** - Dynamic equilibrium
### Temporal Session Filters
- **London Session** (3:00-11:30 AM ET) - Orange background
- **US Session** (9:30 AM-4:00 PM ET) - Blue background
- **Optimal Entry Window** (10:30 AM-12:00 PM ET) - Green highlight
- **Best Exit Window** (3:00-4:00 PM ET) - Red highlight
### Visual Trade Signals
- 🟢 **Green zones** = Enter LONG (price at lower bands)
- 🔴 **Red zones** = Enter SHORT (price at upper bands)
- 🎯 **Target lines** = Exit zones (opposite bands)
- ⛔ **Stop levels** = Risk management
### Smart Alerts
- Alert when price touches entry bands
- Alert on optimal time windows
- Alert when targets hit
- Customizable for each strategy
---
## 💡 How to Use
### Step 1: Choose Your Strategy
Select from 5 backtested approaches based on your:
- Risk tolerance (higher STD = larger stops)
- Trading frequency (lower STD = more setups)
- Time availability (different session focuses)
- Personality (scalper vs swing trader)
### Step 2: Apply to Chart
- **Timeframe:** 15-minute (tested and optimized)
- **Symbol:** MES, ES, or other liquid futures
- **Settings:** Adjust band colors, widths, alerts
### Step 3: Wait for Setup
Price touches your chosen entry band during optimal windows:
- **BEST:** 10:30 AM-12:00 PM ET (88% win rate!)
- **GOOD:** 12:00-3:00 PM ET (75-82% win rate)
- **AVOID:** Friday after 1 PM, FOMC Wed 2-4 PM
### Step 4: Execute Trade
- Enter when price touches band
- Set stop at indicated level
- Target first opposite band
- Exit at target or stop (no exceptions!)
### Step 5: Manage Risk
- **For $50K funded account ($250 limit): Use 2 MES contracts**
- Stop after 3 consecutive losses
- Reduce size in low-probability windows
- Track cumulative daily P&L
---
## 📅 Optimal Trading Windows
### By Time of Day
- **10:30 AM-12:00 PM ET:** 88% win rate (BEST) ⭐⭐⭐
- **12:00-1:30 PM ET:** 82% win rate (scalping)
- **1:30-3:00 PM ET:** 76% win rate (afternoon)
- **3:00-4:00 PM ET:** Best EXIT window
### By Day of Week
- **Wednesday:** 82% win rate (BEST DAY) ⭐⭐⭐
- **Tuesday:** 78% win rate (highest volume)
- **Thursday:**
zigzagLibrary "zigzag"
Library dedicated to zigzags and related indicators
zigzag(length, numberOfPivots, useAlternativeSource, source, oscillatorSource, oscillatorHighSource, oscillatorLowSource, directionBias, divergenceOption)
zigzag: Calculates zigzag pivots and generates an array
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
useAlternativeSource (simple bool) : : If set uses the source for genrating zigzag. Default is false
source (float) : : Alternative source used only if useAlternativeSource is set to true. Default is close
oscillatorSource (float) : : Oscillator source for calculating divergence
oscillatorHighSource (float)
oscillatorLowSource (float)
directionBias (int) : : Direction bias for calculating divergence
divergenceOption (int) : : 1 - hidden/regular, 2 - regular, 3 - hidden
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
newPivot : Returns true if new pivot created
doublePivot : Returns true if two new pivots are created on same bar (Happens in case of candles with long wicks and shorter zigzag lengths)
czigzag(length, numberOfPivots, highSource, lowSource, oscillatorHighSource, oscillatorLowSource, directionBias, divergenceOption)
czigzag: Calculates zigzag pivots and generates an array based on custom high and low source
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
highSource (float) : : High Source for prices to calculate zigzag.
lowSource (float) : : Low source for prices to calculate zigzag.
oscillatorHighSource (float) : : Oscillator high source for calculating divergence
oscillatorLowSource (float) : : Oscillator high source for calculating divergence
directionBias (int) : : Direction bias for calculating divergence
divergenceOption (int) : : 1 - hidden/regular, 2 - regular, 3 - hidden
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzagdoubledivergence : Array of double divergence sentiment at each pivot
newPivot : Returns true if new pivot created
doublePivot : Returns true if two new pivots are created on same bar (Happens in case of candles with long wicks and shorter zigzag lengths)
drawczigzag(length, numberOfPivots, highSource, lowSource, oscillatorHighSource, oscillatorLowSource, directionBias, showHighLow, showRatios, showDivergence, showDoubleDivergence, showIndicator, linecolor, linewidth, linestyle)
drawczigzag: Calculates and draws zigzag pivots and generates an array based on custom high and low source
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
highSource (float) : : High Source for prices to calculate zigzag.
lowSource (float) : : Low source for prices to calculate zigzag.
oscillatorHighSource (float) : : Oscillator high source for calculating divergence
oscillatorLowSource (float) : : Oscillator high source for calculating divergence
directionBias (int) : : Direction bias for calculating divergence
showHighLow (simple bool) : : show highlow label
showRatios (simple bool) : : show retracement ratios
showDivergence (simple bool) : : Show divergence on label (Only works if divergence data is available - that is if we pass valid oscillatorSource and directionBias input)
showDoubleDivergence (simple bool) : : Show double divergence label
showIndicator (simple bool)
linecolor (color) : : zigzag line color
linewidth (int) : : zigzag line width
linestyle (string) : : zigzag line style
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzagdoubledivergence : Array of double divergence sentiment at each pivot
zigzaglines : Returns array of zigzag lines
zigzaglabels : Returns array of zigzag labels
drawczigzag2(length, numberOfPivots, highSource, lowSource, oscillatorHighSource, oscillatorLowSource, directionBias, showHighLow, showRatios, showDivergence, showDoubleDivergence, showIndicator, linecolor, linewidth, linestyle)
drawczigzag2: Same as drawczigzag. But, returns newPivot and doublePivot bools as well.
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
highSource (float) : : High Source for prices to calculate zigzag.
lowSource (float) : : Low source for prices to calculate zigzag.
oscillatorHighSource (float) : : Oscillator high source for calculating divergence
oscillatorLowSource (float) : : Oscillator high source for calculating divergence
directionBias (int) : : Direction bias for calculating divergence
showHighLow (simple bool) : : show highlow label
showRatios (simple bool) : : show retracement ratios
showDivergence (simple bool) : : Show divergence on label (Only works if divergence data is available - that is if we pass valid oscillatorSource and directionBias input)
showDoubleDivergence (simple bool) : : Show double divergence label
showIndicator (simple bool)
linecolor (color) : : zigzag line color
linewidth (int) : : zigzag line width
linestyle (string) : : zigzag line style
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzagdoubledivergence : Array of double divergence sentiment at each pivot
zigzaglines : Returns array of zigzag lines
zigzaglabels : Returns array of zigzag labels
drawzigzag(length, numberOfPivots, useAlternativeSource, source, linecolor, linewidth, linestyle, oscillatorSource, oscillatorHighSource, oscillatorLowSource, directionBias, showHighLow, showRatios, showDivergence)
drawzigzag: Calculates and draws zigzag pivots
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
useAlternativeSource (simple bool)
source (float) : : Alternative source used only if useAlternativeSource is set to true. Default is close
linecolor (color) : : zigzag line color
linewidth (int) : : zigzag line width
linestyle (string) : : zigzag line style
oscillatorSource (float) : : Oscillator source for calculating divergence
oscillatorHighSource (float)
oscillatorLowSource (float)
directionBias (int) : : Direction bias for calculating divergence
showHighLow (simple bool) : : show highlow label
showRatios (simple bool) : : show retracement ratios
showDivergence (simple bool) : : Show divergence on label (Only works if divergence data is available - that is if we pass valid oscillatorSource and directionBias input)
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzaglines : Returns array of zigzag lines
zigzaglabels : Returns array of zigzag labels
Trend/Range Composite (Single-Line) v1.4🔹 Step 1: Add it to your chart
Copy the whole script.
In TradingView → Pine Editor → paste it.
Click Add to chart.
It will show a white line in a subwindow, plus thresholds at 40 and 60, and a colored background.
Optional: You’ll see a status box (top-right of chart) with details like ADX, ATR, slope, etc.
🔹 Step 2: Understand the Score
The indicator compresses all signals into a 0–100 “Trend Strength Score”:
≥ 60 = TREND (teal background)
→ Market is trending, consider trend strategies like vertical spreads, runners, breakouts.
≤ 40 = RANGE (orange background)
→ Market is choppy/sideways, consider range strategies like butterflies, condors, mean-reversion fades.
40–60 = MIXED (gray background)
→ Indecision / chop. Best to reduce size or wait for clarity.
🔹 Step 3: Use with Your Trading Plan
Intraday (5m, 15m, 30m)
Score < 40 → play support/resistance bounces, fade extremes.
Score > 60 → play momentum breakouts or pullback continuations.
Daily chart
Good for swing context (is this month trending or just chopping?).
🔹 Step 4: Alerts
You can set TradingView alerts:
Cross above 60 → market entering trend mode.
Cross below 40 → market entering range mode.
Useful if you don’t want to watch constantly.
🔹 Step 5: Confirm with Price Levels
The score tells you “trend vs range”, but you still need levels:
If score < 40 → mark PDH / PDL (previous day high/low), VAH/VAL, VWAP. Expect rejections/fades.
If score > 60 → watch for breakouts beyond PDH/PDL or supply/demand zones.
_matrixLibrary "_matrix"
Library helps visualize matrix as array of arrays and enables users to use array methods such as push, pop, shift, unshift etc along with cleanup activities on drawing objects wherever required
delete(mtx, rowNumber)
deletes row from a matrix
Parameters:
mtx (matrix) : matrix of objects
rowNumber (int) : row index to be deleted
Returns: void
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
remove row from a matrix and returns them to caller
Parameters:
mtx (matrix) : matrix of objects
rowNumber (int) : row index to be deleted
Returns: type
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
unshift(mtx, row, maxItems)
unshift array of lines to first row of the matrix
Parameters:
mtx (matrix) : matrix of lines
row (array) : array of lines to be inserted in row
maxItems (simple int)
Returns: resulting matrix of type
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
push array of lines to end of the matrix row
Parameters:
mtx (matrix) : matrix of lines
row (array) : array of lines to be inserted in row
maxItems (simple int)
Returns: resulting matrix of lines
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
shift(mtx)
shift removes first row from matrix of lines
Parameters:
mtx (matrix) : matrix of lines from which the shift operation need to be performed
Returns: void
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
rshift removes first row from matrix of lines and returns them as array
Parameters:
mtx (matrix) : matrix of lines from which the rshift operation need to be performed
Returns: type
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
pop(mtx)
pop removes last row from matrix of lines
Parameters:
mtx (matrix) : matrix of lines from which the pop operation need to be performed
Returns: void
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
rpop removes last row from matrix of lines and reutnrs the array to caller
Parameters:
mtx (matrix) : matrix of lines from which the rpop operation need to be performed
Returns: void
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
clear(mtx)
clear clears the matrix
Parameters:
mtx (matrix) : matrix of lines which needs to be cleared
Returns: void
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
clear clears the matrix but retains the drawing objects
Parameters:
mtx (matrix) : matrix of lines which needs to be cleared
Returns: void
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
arraysLibrary "arrays"
Library contains utility functions using arrays. These are mostly customized for personal use. Hence, will not add documentation to it.
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (int)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
push(arr, val, maxItems)
Parameters:
arr (array)
val (int)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
enhanced_taLibrary "enhanced_ta"
ma(source, maType, length)
returns custom moving averages
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
Returns: moving average for the given type and length
atr(maType, length)
returns ATR with custom moving average
Parameters:
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
Returns: ATR for the given moving average type and length
atrpercent(maType, length)
returns ATR as percentage of close price
Parameters:
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
Returns: ATR as percentage of close price for the given moving average type and length
bb(source, maType, length, multiplier, sticky)
returns Bollinger band for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger band with custom moving average for given source, length and multiplier
bbw(source, maType, length, multiplier, sticky)
returns Bollinger bandwidth for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger Bandwidth for custom moving average for given source, length and multiplier
bpercentb(source, maType, length, multiplier, sticky)
returns Bollinger Percent B for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger Percent B for custom moving average for given source, length and multiplier
kc(source, maType, length, multiplier, useTrueRange, sticky)
returns Keltner Channel for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Channel for custom moving average for given souce, length and multiplier
kcw(source, maType, length, multiplier, useTrueRange, sticky)
returns Keltner Channel Width with custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Channel Width for custom moving average
kpercentk(source, maType, length, multiplier, useTrueRange, sticky)
returns Keltner Channel Percent K Width with custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Percent K for given moving average, source, length and multiplier
dc(length, useAlternateSource, alternateSource, sticky)
returns Custom Donchian Channel
Parameters:
length (simple int) : - donchian channel length
useAlternateSource (simple bool) : - Custom source is used only if useAlternateSource is set to true
alternateSource (float) : - Custom source
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel
dcw(length, useAlternateSource, alternateSource, sticky)
returns Donchian Channel Width
Parameters:
length (simple int) : - donchian channel length
useAlternateSource (simple bool) : - Custom source is used only if useAlternateSource is set to true
alternateSource (float) : - Custom source
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel width
dpercentd(length, useAlternateSource, alternateSource, sticky)
returns Donchian Channel Percent of price
Parameters:
length (simple int) : - donchian channel length
useAlternateSource (simple bool) : - Custom source is used only if useAlternateSource is set to true
alternateSource (float) : - Custom source
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel Percent D
oscillatorRange(source, method, highlowLength, rangeLength, sticky)
oscillatorRange - returns Custom overbought/oversold areas for an oscillator input
Parameters:
source (float) : - Osillator source such as RSI, COG etc.
method (simple string) : - Valid values for method are : sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
highlowLength (simple int) : - length on which highlow of the oscillator is calculated
rangeLength (simple int) : - length used for calculating oversold/overbought range - usually same as oscillator length
sticky (simple bool) : - overbought, oversold levels won't change unless crossed
Returns: Dynamic overbought and oversold range for oscillator input
oscillator(type, length, shortLength, longLength, source, highSource, lowSource, method, highlowLength, sticky)
oscillator - returns Choice of oscillator with custom overbought/oversold range
Parameters:
type (simple string) : - oscillator type. Valid values : cci, cmo, cog, mfi, roc, rsi, stoch, tsi, wpr
length (simple int) : - Oscillator length - not used for TSI
shortLength (simple int) : - shortLength only used for TSI
longLength (simple int) : - longLength only used for TSI
source (float) : - custom source if required
highSource (float) : - custom high source for stochastic oscillator
lowSource (float) : - custom low source for stochastic oscillator
method (simple string) : - Valid values for method are : sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
highlowLength (simple int) : - length on which highlow of the oscillator is calculated
sticky (simple bool) : - overbought, oversold levels won't change unless crossed
Returns: Oscillator value along with dynamic overbought and oversold range for oscillator input
multibands(bandType, source, maType, length, useTrueRange, sticky, numberOfBands, multiplierStart, multiplierStep)
multibands - returns Choice of oscillator with custom overbought/oversold range
Parameters:
bandType (simple string) : - Band type - can be either bb or kc
source (float) : - custom source if required
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : - Oscillator length - not used for TSI
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - for sticky borders which only change upon source crossover/crossunder
numberOfBands (simple int) : - Number of bands to generate
multiplierStart (simple float) : - Starting ATR or Standard deviation multiplier for first band
multiplierStep (simple float) : - Incremental value for multiplier for each band
Returns: array of band values sorted in ascending order
mbandoscillator(bandType, source, maType, length, useTrueRange, stickyBands, numberOfBands, multiplierStart, multiplierStep)
mbandoscillator - Multiband oscillator created on the basis of bands
Parameters:
bandType (simple string) : - Band type - can be either bb or kc
source (float) : - custom source if required
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : - Oscillator length - not used for TSI
useTrueRange (simple bool) : - if set to false, uses high-low.
stickyBands (simple bool) : - for sticky borders which only change upon source crossover/crossunder for band detection
numberOfBands (simple int) : - Number of bands to generate
multiplierStart (simple float) : - Starting ATR or Standard deviation multiplier for first band
multiplierStep (simple float) : - Incremental value for multiplier for each band
Returns: oscillator currentStates - Array containing states for last n bars
timer(timeStart, timeEnd)
finds difference between two timestamps
Parameters:
timeStart (int) : - start timestamp
timeEnd (int)
arrayutilsLibrary "arrayutils"
delete(arr, index)
remove an item from array at specific index. Also deletes the item
Parameters:
arr (array) : - array from which the item needs to be deleted
index (int) : - index of item to be deleted
Returns: void
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
pop(arr)
remove the last item from array. Also deletes the item
Parameters:
arr (array) : - array from which the last item needs to be removed and deleted
Returns: void
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
shift(arr)
remove an item from array at index 0. Also deletes the item
Parameters:
arr (array) : - array from which the first item needs to be removed and deleted
Returns: void
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
unshift(arr, val, maxItems)
add an item to the beginning of an array with max items cap
Parameters:
arr (array) : - array to which the item needs to be added at the beginning
val (int) : - value of item which needs to be added
maxItems (simple int) : - max items array can hold. After that, items are removed from the other end
Returns: resulting array
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
clear(arr)
remove and delete all items in an array
Parameters:
arr (array) : - array which needs to be cleared
Returns: void
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
push(arr, val, maxItems)
add an item to the end of an array with max items cap
Parameters:
arr (array) : - array to which the item needs to be added at the beginning
val (int) : - value of item which needs to be added
maxItems (simple int) : - max items array can hold. After that, items are removed from the starting index
Returns: resulting array
push(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
check_overflow(a, b, c, pivots, barArray)
finds difference between two timestamps
Parameters:
a (float)
b (float)
c (float)
pivots (array) : pivots array
barArray (array) : pivot bar array
Returns: bool overflow
get_trend_series(pivots, length, highLow, trend)
finds series of pivots in particular trend
Parameters:
pivots (array) : pivots array
length (int) : length for which trend series need to be checked
highLow (int) : filter pivot high or low
trend (int) : Uptrend or Downtrend
Returns: int trendIndexes
get_trend_series(pivots, firstIndex, lastIndex)
finds series of pivots in particular trend
Parameters:
pivots (array) : pivots array
firstIndex (int) : First index of the series
lastIndex (int) : Last index of the series
Returns: int trendIndexes
sma(source)
calculates sma for elements in array
Parameters:
source (array) : source array
Returns: float sma
ema(source, length)
calculates ema for elements in array
Parameters:
source (array) : source array
length (simple int) : ema length
Returns: float ema
rma(source, length)
calculates rma for elements in array
Parameters:
source (array) : source array
length (simple int) : rma length
Returns: float rma
wma(source, length)
calculates wma for elements in array
Parameters:
source (array) : source array
length (simple int) : wma length
Returns: float wma
hma(source, length)
calculates hma for elements in array
Parameters:
source (array) : source array
length (simple int) : hma length
Returns: float hma
ma(source, matype, length)
wrapper for all moving averages based on array
Parameters:
source (array) : source array
matype (simple string) : moving average type. Valud values are: sma, ema, rma, wma, hma, high, low, median, medianHigh, medianLow
length (simple int) : moving average length length
Returns: float moving average
getFibSeries(numberOfFibs, start)
gets fib series in array
Parameters:
numberOfFibs (simple int) : number of fibs
start (simple int) : starting number
Returns: float fibArray