Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Agent Doji Session Zones US100Overview
AVE Agent US100 Doji Session Zones is an intraday charting tool developed specifically for the US100 index.
The indicator detects small-body candles during a defined New York trading window and converts each qualifying candle into a temporary price zone. When a valid candle appears between 9:30 AM and 11:00 AM GMT-4, the script draws a box from the candle’s high to its low and extends the zone until 12:30 PM.
A dashed midpoint is also displayed at 50% of the candle’s total range.
Detection logic
A candle qualifies when both conditions are met:
The candle body is no greater than 0.5 US100 index points
The combined length of the upper and lower wicks is no greater than 30 US100 index points
The candle body is calculated using the absolute difference between the open and close.
The total wick size is calculated by adding the upper wick and lower wick together. The two wicks do not need to be equal. One wick may be larger than the other, provided their combined size stays within the allowed limit.
Session filter
New zones are created only during the following period:
Detection start: 9:30 AM GMT-4
Detection end: 11:00 AM GMT-4
Zone extension: 12:30 PM GMT-4
Candles outside the detection period do not create new zones.
Zone construction
For every qualifying candle, the indicator draws:
A box covering the complete candle range
An upper boundary at the candle high
A lower boundary at the candle low
A dashed midpoint at 50% of the range
A horizontal extension until 12:30 PM GMT-4
The zone is intended to represent a short-term area of balance or indecision that formed during the selected US100 session.
Session visualization
The script also provides visual session guidance:
The chart background is darkened outside the 9:30 AM to 12:30 PM session
A blue background marker highlights 11:00 AM
A red background marker highlights 12:30 PM
These markers separate the candle-detection period from the later observation period.
How to use it
The indicator is designed as a discretionary analysis tool rather than a complete trading system.
Traders may use the zones to observe:
Reactions at the zone high or low
Rejections from the zone boundaries
Breakouts above or below the zone
Retests after a breakout
Price interaction with the midpoint
Acceptance or rejection of the original candle range
The tool does not automatically determine market direction and does not provide direct buy or sell signals.
Entries, stop-losses, profit targets, confirmations and risk-management rules must be defined separately by the trader.
Originality and purpose
The script combines several related functions into one US100-specific workflow:
Fixed-point small-body candle detection
Combined upper- and lower-wick measurement
New York session filtering
Automatic projection of the full candle range
Midpoint visualization
Session timing markers
The purpose is not simply to identify standard Doji candles. The script converts qualifying US100 candles into time-limited intraday zones that can be monitored for later price interaction during the same session.
These components are designed to work together as one structured chart-analysis process.
Intended market and timeframe
This version is designed specifically for the US100 index.
Because it uses fixed index-point thresholds, it may not behave correctly on other instruments such as forex pairs, gold, cryptocurrencies or US500.
It is mainly intended for lower intraday timeframes such as:
1-minute
3-minute
5-minute
The exact number of detected zones may vary depending on the broker’s US100 price feed.
Customizable settings
Users can adjust:
Zone border color
Zone background color
Zone midpoint color
The body threshold, combined wick threshold and session times are fixed in the current version.
Limitations
The indicator does not predict future market direction.
It does not generate automatic entries or exits.
It does not include stop-loss or take-profit calculations.
Fixed point values may behave differently across brokers.
A candle that looks visually small may still fail the filter because its exact body or wick size is too large.
Session timing is based on GMT-4 and may not automatically adapt to daylight-saving changes.
Multiple qualifying candles may produce overlapping zones.
Historical reactions do not guarantee future results.
Disclaimer
This indicator is provided for educational and analytical purposes only. It is not financial advice and does not guarantee profitable results. Traders should test the indicator independently and use appropriate risk management before applying it to live trading. Indicator

Indicator

Indicator

Indicator

Indicator

Asia, London & New York Session Highs/Lows//@version=6
indicator("Asia, London & New York Session Highs/Lows", shorttitle="Sess H/L", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=500)
// ============================================================================
// INPUTS
// ============================================================================
// --- Timezone ---------------------------------------------------------------
// All session windows are evaluated in THIS timezone, independent of the
// chart's visual timezone, so DST shifts are handled correctly via the
// IANA identifier passed to time().
tzChoice = input.string("America/New_York", "Timezone",
options= ,
group="Timezone", tooltip="Session times below are interpreted in this timezone.")
tzStr = tzChoice == "Exchange timezone (syminfo.timezone)" ? syminfo.timezone : tzChoice
// --- Session definitions ------------------------------------------------------
showAsia = input.bool(true, "Show Asia session", group="Sessions")
asiaSession = input.session("1900-0400", "Asia session time", group="Sessions")
showLondon = input.bool(true, "Show London session", group="Sessions")
londonSession = input.session("0300-1200", "London session time", group="Sessions")
showNY = input.bool(true, "Show New York session", group="Sessions")
nySession = input.session("0800-1700", "New York session time", group="Sessions")
// --- Display toggles ----------------------------------------------------------
showHighLines = input.bool(true, "Show high lines", group="Display")
showLowLines = input.bool(true, "Show low lines", group="Display")
showLabels = input.bool(true, "Show price labels", group="Display")
showBg = input.bool(true, "Show session background shading", group="Display")
extendRight = input.bool(true, "Extend completed levels right", group="Display")
showBoxes = input.bool(false, "Show session range boxes", group="Display")
// --- History & style ------------------------------------------------------------
historyCount = input.int(10, "Historical sessions to retain", minval=1, maxval=50, group="History & Style")
hiWidth = input.int(2, "High line width", minval=1, maxval=5, group="History & Style")
loWidth = input.int(2, "Low line width", minval=1, maxval=5, group="History & Style")
lblSizeStr = input.string("Small", "Label size", options= , group="History & Style")
lblSize = lblSizeStr == "Tiny" ? size.tiny : lblSizeStr == "Small" ? size.small : lblSizeStr == "Normal" ? size.normal : size.large
// --- Colors ----------------------------------------------------------------------
asiaColor = input.color(color.purple, "Asia color", group="Colors")
londonColor = input.color(color.blue, "London color", group="Colors")
nyColor = input.color(color.orange, "New York color", group="Colors")
// ============================================================================
// CORE SESSION ENGINE
// ----------------------------------------------------------------------------
// Called once per session from three separate call sites below. Each call
// site is a distinct location in the script, so the `var` state declared
// inside this function is maintained independently per session (Pine gives
// every call-site its own persistent copy of `var` variables declared in a
// user-defined function).
// ============================================================================
f_sessionHL(sessString, tzArg, sessColor, sessionName, doHi, doLo, doLbl, doBox, doExtend, maxHist, wHi, wLo, lSize) =>
var line hiLines = array.new()
var line loLines = array.new()
var label hiLabels = array.new()
var label loLabels = array.new()
var box boxes = array.new()
var float sessHigh = na
var float sessLow = na
var int sessHighBar = na
var int sessLowBar = na
var int sessStartBar = na
var float completedHigh = na
var float completedLow = na
// Session membership test in the chosen IANA timezone (handles DST and
// overnight wraparound, e.g. Asia 19:00-04:00, natively).
inSession = not na(time(timeframe.period, sessString, tzArg))
// na-safe "previous bar was in session" — handles bar_index 0 (chart
// history that starts mid-session) without producing an na boolean.
prevInSession = bar_index == 0 ? false : inSession
isNewSession = inSession and not prevInSession
isSessionEnd = not inSession and prevInSession
// ---- Session start: initialize extremes and create fresh drawings ------
if isNewSession
sessHigh := high
sessLow := low
sessHighBar := bar_index
sessLowBar := bar_index
sessStartBar := bar_index
if doHi
newHiLine = line.new(bar_index, high, bar_index, high, xloc.bar_index, extend.none, sessColor, line.style_solid, wHi)
array.push(hiLines, newHiLine)
if array.size(hiLines) > maxHist
line.delete(array.shift(hiLines))
if doLo
newLoLine = line.new(bar_index, low, bar_index, low, xloc.bar_index, extend.none, sessColor, line.style_dashed, wLo)
array.push(loLines, newLoLine)
if array.size(loLines) > maxHist
line.delete(array.shift(loLines))
if doLbl
newHiLabel = label.new(bar_index, high, sessionName + " H " + str.tostring(high, format.mintick), xloc.bar_index, yloc.price, color.new(color.black, 100), label.style_label_left, sessColor, lSize)
array.push(hiLabels, newHiLabel)
if array.size(hiLabels) > maxHist
label.delete(array.shift(hiLabels))
newLoLabel = label.new(bar_index, low, sessionName + " L " + str.tostring(low, format.mintick), xloc.bar_index, yloc.price, color.new(color.black, 100), label.style_label_left, sessColor, lSize)
array.push(loLabels, newLoLabel)
if array.size(loLabels) > maxHist
label.delete(array.shift(loLabels))
if doBox
newBox = box.new(bar_index, high, bar_index, low, sessColor, 1, line.style_solid, extend.none, xloc.bar_index, color.new(sessColor, 85))
array.push(boxes, newBox)
if array.size(boxes) > maxHist
box.delete(array.shift(boxes))
// ---- While in session: track extremes and update live drawings ---------
if inSession
if na(sessHigh) or high > sessHigh
sessHigh := high
sessHighBar := bar_index
if na(sessLow) or low < sessLow
sessLow := low
sessLowBar := bar_index
if doHi and array.size(hiLines) > 0
curHi = array.get(hiLines, array.size(hiLines) - 1)
line.set_xy1(curHi, sessHighBar, sessHigh)
line.set_xy2(curHi, bar_index, sessHigh)
if doLo and array.size(loLines) > 0
curLo = array.get(loLines, array.size(loLines) - 1)
line.set_xy1(curLo, sessLowBar, sessLow)
line.set_xy2(curLo, bar_index, sessLow)
if doLbl
if array.size(hiLabels) > 0
curHiLbl = array.get(hiLabels, array.size(hiLabels) - 1)
label.set_xy(curHiLbl, bar_index, sessHigh)
label.set_text(curHiLbl, sessionName + " H " + str.tostring(sessHigh, format.mintick))
if array.size(loLabels) > 0
curLoLbl = array.get(loLabels, array.size(loLabels) - 1)
label.set_xy(curLoLbl, bar_index, sessLow)
label.set_text(curLoLbl, sessionName + " L " + str.tostring(sessLow, format.mintick))
if doBox and array.size(boxes) > 0
curBox = array.get(boxes, array.size(boxes) - 1)
box.set_lefttop(curBox, sessStartBar, sessHigh)
box.set_rightbottom(curBox, bar_index, sessLow)
// ---- Session end: freeze levels for alerts, optionally extend lines ----
if isSessionEnd
completedHigh := sessHigh
completedLow := sessLow
if doExtend
if doHi and array.size(hiLines) > 0
line.set_extend(array.get(hiLines, array.size(hiLines) - 1), extend.right)
if doLo and array.size(loLines) > 0
line.set_extend(array.get(loLines, array.size(loLines) - 1), extend.right)
// ============================================================================
// RUN THE ENGINE FOR EACH SESSION (three independent, persistent call sites)
// ============================================================================
= f_sessionHL(asiaSession, tzStr, asiaColor, "Asia",
showAsia and showHighLines, showAsia and showLowLines, showAsia and showLabels, showAsia and showBoxes,
extendRight, historyCount, hiWidth, loWidth, lblSize)
= f_sessionHL(londonSession, tzStr, londonColor, "London",
showLondon and showHighLines, showLondon and showLowLines, showLondon and showLabels, showLondon and showBoxes,
extendRight, historyCount, hiWidth, loWidth, lblSize)
= f_sessionHL(nySession, tzStr, nyColor, "New York",
showNY and showHighLines, showNY and showLowLines, showNY and showLabels, showNY and showBoxes,
extendRight, historyCount, hiWidth, loWidth, lblSize)
// ============================================================================
// BACKGROUND SHADING (must be called unconditionally at top level)
// ============================================================================
bgcolor(showAsia and showBg and asiaIn ? color.new(asiaColor, 92) : na, title="Asia session background")
bgcolor(showLondon and showBg and londonIn ? color.new(londonColor, 92) : na, title="London session background")
bgcolor(showNY and showBg and nyIn ? color.new(nyColor, 92) : na, title="New York session background")
// ============================================================================
// TIMEFRAME WARNING (daily and higher timeframes are not reliable for
// intraday session detection)
// ============================================================================
var table warnTable = table.new(position.top_right, 1, 1)
if barstate.islast
if not timeframe.isintraday
table.cell(warnTable, 0, 0, "⚠ Session Highs/Lows is designed for intraday timeframes", text_color=color.white, bgcolor=color.new(color.red, 10), text_size=size.small)
else
table.cell(warnTable, 0, 0, "", bgcolor=color.new(color.white, 100))
// ============================================================================
// ALERTS — most recently completed session, confirmed-close crossings only
// ============================================================================
asiaCrossUp = barstate.isconfirmed and ta.crossover(close, asiaCompH)
asiaCrossDn = barstate.isconfirmed and ta.crossunder(close, asiaCompL)
londonCrossUp = barstate.isconfirmed and ta.crossover(close, londonCompH)
londonCrossDn = barstate.isconfirmed and ta.crossunder(close, londonCompL)
nyCrossUp = barstate.isconfirmed and ta.crossover(close, nyCompH)
nyCrossDn = barstate.isconfirmed and ta.crossunder(close, nyCompL)
alertcondition(asiaCrossUp, title="Asia High Cross Up", message="Price crossed above the most recently completed Asia session high")
alertcondition(asiaCrossDn, title="Asia Low Cross Down", message="Price crossed below the most recently completed Asia session low")
alertcondition(londonCrossUp, title="London High Cross Up", message="Price crossed above the most recently completed London session high")
alertcondition(londonCrossDn, title="London Low Cross Down", message="Price crossed below the most recently completed London session low")
alertcondition(nyCrossUp, title="New York High Cross Up", message="Price crossed above the most recently completed New York session high")
alertcondition(nyCrossDn, title="New York Low Cross Down", message="Price crossed below the most recently completed New York session low")
Indicator

Indicator

Indicator

Trader Forge Co-Pilot V6.0```pinescript
//══════════════════════════════════════════════════════════════
// T R A D E R F O R G E
//══════════════════════════════════════════════════════════════
//
// MULTI-TIMEFRAME PRECISION SYSTEM — V6
//
// STRUCTURE • TIMEFRAME • PRECISION
//
// Pressure creates strength. Discipline creates edge.
//
//══════════════════════════════════════════════════════════════
```
## WHAT IS TRADER FORGE V6?
Trader Forge V6 is a multi-timeframe decision-support system designed to help traders find structured, higher-quality trade setups.
The system does not rely on one indicator.
It combines market location, higher-timeframe direction, momentum, candle behavior, liquidity, market structure, and setup scoring.
```pinescript
SYSTEM_PROCESS =
LOCATION
→ HIGHER_TIMEFRAME_ALIGNMENT
→ SETUP_DETECTION
→ BREAK_OF_STRUCTURE
→ A_PLUS_CONFIRMATION
```
---
## CORE SYSTEM COMPONENTS
```pinescript
DONCHIAN_CHANNEL = "Identifies recent price extremes"
HIGHER_TIMEFRAMES = "1H, 4H and Daily directional bias"
MARKET_STRUCTURE = "Fast and major swing structure"
BREAK_OF_STRUCTURE = "Confirms directional control"
COMPRESSION = "Identifies stored market energy"
EXHAUSTION = "Identifies rejection at key levels"
LIQUIDITY_SWEEPS = "Tracks failed breaks of highs and lows"
STOCH_RSI = "Confirms momentum direction"
VWAP = "Measures session price positioning"
RELATIVE_VOLUME = "Measures market participation"
SETUP_SCORE = "Grades setup quality from 0 to 100"
ATR_TRADE_PLAN = "Calculates risk-based trade levels"
```
---
## HOW THE SYSTEM WORKS
### 1. LOCATION
Price must first reach a meaningful area.
Examples include:
- Upper Donchian zone
- Lower Donchian zone
- Support or resistance
- Previous swing high or low
- Higher-timeframe price extreme
- Liquidity level
```pinescript
validLocation =
lowerDonchianZone or
upperDonchianZone or
keySupport or
keyResistance
```
The system is designed to avoid low-quality entries in the middle of a range.
```pinescript
if priceInMiddle
action := "WAIT"
```
---
### 2. MULTI-TIMEFRAME ALIGNMENT
The system checks three higher timeframes:
```pinescript
timeframeOne = "1 Hour"
timeframeTwo = "4 Hour"
timeframeThree = "Daily"
```
By default, at least two of the three timeframes should support the trade direction.
```pinescript
bullishAlignment = bullishTimeframes >= 2
bearishAlignment = bearishTimeframes >= 2
```
The higher timeframes provide direction.
The lower timeframe provides execution.
---
### 3. SETUP DETECTION
The system looks for evidence that price may be preparing to move.
```pinescript
bullishSetup =
lowerZone and
bullishMomentum and
(bullishExhaustion or compression or bullishLiquiditySweep)
bearishSetup =
upperZone and
bearishMomentum and
(bearishExhaustion or compression or bearishLiquiditySweep)
```
A setup is not automatically an entry.
It tells the trader to begin watching for confirmation.
---
### 4. STRUCTURE CONFIRMATION
The system waits for a Break of Structure before confirming the setup.
```pinescript
bullishBOS = close > previousSwingHigh
bearishBOS = close < previousSwingLow
```
A bullish Break of Structure suggests buyers are gaining control.
A bearish Break of Structure suggests sellers are gaining control.
```pinescript
if bullishSetup and bullishBOS
confirmation := "BULLISH"
if bearishSetup and bearishBOS
confirmation := "BEARISH"
```
---
### 5. A+ SIGNAL
An A+ signal appears only when the required conditions and minimum setup score are satisfied.
```pinescript
minimumScore = 70
aPlusBuy =
bullishSetup and
bullishBOS and
bullishAlignment and
buyScore >= minimumScore
aPlusSell =
bearishSetup and
bearishBOS and
bearishAlignment and
sellScore >= minimumScore
```
The default qualifying score is:
```pinescript
A_PLUS_SCORE = 70
MAX_SCORE = 100
```
A score of 70 does not mean the trade has a guaranteed 70% win rate.
It means the setup earned 70 of the 100 available system points.
---
## SCORE BREAKDOWN
```pinescript
structureConfirmation = 25
donchianLocation = 20
compressionExhaustion = 15
stochRsiMomentum = 10
vwapPosition = 10
oneHourBias = 5
fourHourBias = 5
dailyBias = 10
maximumScore = 100
```
The strongest setups normally combine:
- Good location
- Higher-timeframe agreement
- Momentum confirmation
- Compression or exhaustion
- Liquidity context
- Break of Structure
- Acceptable reward-to-risk
---
## BEGINNER WORKFLOW
```pinescript
stepOne = "Check the Daily chart for major location"
stepTwo = "Check the 4H chart for trend and market condition"
stepThree = "Check the 1H chart for bias and structure"
stepFour = "Use the 5m or 15m chart for execution"
stepFive = "Wait for price to reach a key location"
stepSix = "Wait for a valid setup to form"
stepSeven = "Wait for Break of Structure confirmation"
stepEight = "Review the setup score"
stepNine = "Plan entry, stop and targets"
stepTen = "Enter only when risk is acceptable"
```
### Recommended chart process
```pinescript
DAILY → LOCATION
FOUR_H → CONTEXT
ONE_H → DIRECTION
FIVE_M → EXECUTION
```
---
## BULLISH SETUP
```pinescript
bullishTrade =
priceNearLowerZone and
bullishHigherTimeframes and
bullishSetupCondition and
bullishBreakOfStructure and
score >= minimumScore
```
A bullish setup may include:
- Price near the lower Donchian zone
- A sweep below a previous low
- A bullish exhaustion candle
- Stochastic RSI turning upward
- Price recovering above VWAP
- A bullish Break of Structure
The system may then display:
```pinescript
signal = "A+ BUY"
```
---
## BEARISH SETUP
```pinescript
bearishTrade =
priceNearUpperZone and
bearishHigherTimeframes and
bearishSetupCondition and
bearishBreakOfStructure and
score >= minimumScore
```
A bearish setup may include:
- Price near the upper Donchian zone
- A sweep above a previous high
- A bearish exhaustion candle
- Stochastic RSI turning downward
- Price falling below VWAP
- A bearish Break of Structure
The system may then display:
```pinescript
signal = "A+ SELL"
```
---
## TRADE PLANNING
The system includes an ATR-based planning tool.
```pinescript
stopDistance = atr * 1.5
targetOne = 1.0R
targetTwo = 2.0R
targetThree = 3.0R
```
The ATR levels are planning references.
The trader must still verify:
- Market structure
- Swing highs and lows
- Support and resistance
- Position size
- Maximum account risk
- Daily loss limits
```pinescript
preferredRiskReward = "2:1 or greater"
```
---
## ALERTS INCLUDED
```pinescript
alertcondition(buySetupPending, "Buy Setup Pending")
alertcondition(sellSetupPending, "Sell Setup Pending")
alertcondition(aPlusBuy, "A+ Buy")
alertcondition(aPlusSell, "A+ Sell")
alertcondition(bullishBOS, "Bullish BOS")
alertcondition(bearishBOS, "Bearish BOS")
alertcondition(bullishSweep, "Bullish Liquidity Sweep")
alertcondition(bearishSweep, "Bearish Liquidity Sweep")
```
A pending alert means a setup may be developing.
It does not mean the trader should enter immediately.
---
## IMPORTANT TRADING RULES
```pinescript
RULE_01 = "No location, no trade"
RULE_02 = "Higher timeframes provide direction"
RULE_03 = "Compression does not predict direction"
RULE_04 = "Momentum confirms; it does not lead"
RULE_05 = "Structure confirms the trade"
RULE_06 = "Never chase an extended signal candle"
RULE_07 = "Define risk before entering"
RULE_08 = "Protect capital before seeking profit"
RULE_09 = "A missed trade is better than a forced trade"
RULE_10 = "Consistency beats intensity"
```
---
## WHEN TO WAIT
```pinescript
waitForTrade =
priceInMiddle or
conflictingTimeframes or
missingStructureConfirmation or
score < minimumScore or
poorRiskReward or
oversizedSignalCandle
```
The system is built to encourage patience.
Not every market movement is a valid trade.
---
## DISCLAIMER
Trader Forge V6 is an analytical and educational decision-support tool.
It does not provide financial advice, guarantee profitable results, or automatically account for:
- Position size
- Brokerage fees
- Slippage
- Options decay
- Contract selection
- Economic news
- Prop-firm rules
- Personal risk tolerance
Always perform your own analysis and use responsible risk management.
```pinescript
//══════════════════════════════════════════════════════════════
// TRADER FORGE
//
// SURVIVE → EXECUTE → SCALE
//
// Pressure creates strength. Discipline creates edge.
//══════════════════════════════════════════════════════════════
``` Indicator

Indicator

Indicator

Indicator

Gold CyclesFour nested cycles. Two fibonacci grids that draw themselves. One weekly chart of gold that has been repeating the same rhythm.
Gold Cycle
A cycle and fibonacci confluence toolkit for XAU, inspired by the old Gann approach to harmonic cycle analysis, the idea that markets move through repeating time intervals as much as price patterns. I rebuilt it from scratch in Pine so every element updates on its own instead of needing to be redrawn by hand every time price moves.
What it plots
Four nested cycle arcs anchored to a fixed calendar date and scaled to the instrument's own price range: 12, 21, 42 and 84 months, the same harmonic family Gann style cycle traders have leaned on for decades
Two fibonacci retracement and extension grids, a major one and a minor one, both located automatically through pivot detection instead of manual dates
A confluence marker every 84 months, plus a shorter 42 month early warning marker
An automatic support box drawn from the recent trading range
A declining resistance line that only appears once price has actually formed a lower high after a peak, connecting the all time high to that lower high and projecting it forward
Why it's built this way
Most cycle overlays either get lost at the bottom of a chart that has grown from a few hundred dollars to a few thousand, or blow the price scale out completely once the arcs get large enough to matter. This version scales every arc to the instrument's all time high and low, so the geometry stays readable at any zoom level. The resistance line only draws once a genuine post top lower high exists, so it will never hand you a rising line and call it declining resistance.
How I read it
No single element here is a signal on its own. I watch for stacking, a cycle marker landing within a few weeks of a fibonacci level, the support box, or the resistance line. When two or three line up on the same zone, that's where I actually pay attention to price action. One element by itself is a note, not a trade.
Backtest context
Across the weekly XAU dataset, the 127.2% extension on the major fibonacci grid reversed price around 70% of the time it was tested, the strongest level in the set. Deep extensions past 161.8% were far less reliable as reversal zones and behaved more like exhaustion targets than turning points. Sample sizes get thin at the outer levels, so treat those numbers as a tendency rather than a rule.
Inputs
Anchor date and all four cycle periods, fully adjustable
Auto or manual mode for Fib A, Fib B, the support box, and the resistance line, each with its own toggle
Pivot lookback length for the major and minor fibonacci grids
Full color group for every element on the chart
A taste of the code
The harmonic periods sit right at the top of the script, nothing hidden or hardcoded deep in the logic.
p1 = input.int(12, "Cycle 1 (months)")
p2 = input.int(21, "Cycle 2 (months)")
p3 = input.int(42, "Cycle 3 (months), HR")
p4 = input.int(84, "Cycle 4 (months), MAJOR")
This publishes as an overlay study. It is a cycle and confluence mapping tool, not financial advice, and gold's real history only covers a couple of full major cycles, so treat every statistic here as a description of the past rather than a promise about the future. Indicator

Yearly VWAP with Z-ScoreYearly VWAP with Z-Score
A yearly-anchored VWAP with volume-weighted standard deviation bands, plus a companion oscillator that converts price's position relative to those bands into a normalised Z-score.
What it does
The indicator accumulates price × volume from the start of each yearly period and divides by cumulative volume, producing the volume-weighted average price for that year — the average price actually paid by the market, rather than a simple moving average of price. It simultaneously accumulates the squared terms needed for a true volume-weighted standard deviation, and plots bands at ±σ around the VWAP.
The lower pane then expresses where price sits within that structure as a single number.
How the Z-score works
Price at the VWAP → 0
Price at the lower band → +2.5
Price at the upper band → −2.5
Values interpolate linearly between these anchors and continue linearly beyond them, so price below the lower band reads +3, +3.5 and so on rather than being capped. The sign is deliberately inverted relative to a raw statistical Z-score: below-average prices read positive, since the oscillator is built for valuation work where cheap should score high.
Inputs
Start Month — which month the yearly period begins. 1 gives a calendar year (Jan–Dec); 6 gives Jun–May, etc.
VWAP Source — series used for the VWAP itself (default hl2).
Price used for Z-Score — series scored against the VWAP (default close).
Band Multiplier (σ) — how many standard deviations the bands sit at.
Z-Score at bands — the Z value assigned to the bands, so the mapping stays correct if you change the multiplier.
Min bars after reset — suppresses output immediately after each reset. Right after an anchor reset the sample is a single bar, so σ ≈ 0 and the Z-score would divide by near-zero and spike to absurd values. This hides readings until enough bars have accumulated.
Clamp Z-score at ± — caps the plotted value so a single outlier can't destroy the pane's scale.
How to use it
Readings near 0 mean price is trading close to the year's volume-weighted consensus. Strongly positive readings mean price is stretched below where the market's capital actually transacted; strongly negative means stretched above it. It's a mean-reversion tool by construction, so it's most informative in ranging or corrective conditions and least reliable during strong sustained trends, when price can hold beyond a band for extended periods.
Notes and limitations
Requires real volume data. On symbols that report no volume (some indices), the VWAP is meaningless — use a spot pair.
Because the anchor resets annually, this measures position within the current year only. It carries no multi-year cycle information.
Early-period readings are inherently less stable even with the minimum-bar guard, since the volume sample is still small.
Indicator

Indicator

Asia, EU & US Open Levels + DTS Time & Price## Overview
The **Asia, EU & US Open Levels + DTS Time & Price** indicator is an all-in-one time-and-price tool designed for intra-day traders (SMC, ICT, and Session traders). It combines key session open levels (Asia, EU, and US) with precision time-based vertical markers and session shading (DTS / Time & Price concepts).
Understanding where price opens at key regional trading hubs, combined with specific time-based liquidity windows, gives traders a clear edge in identifying daily bias and key reaction zones.
---
## Key Features
### 1. Major Session Open Levels & Background Shading
* **Asia, EU, and US Open Prices:** Automatically plots bold horizontal levels at the exact opening candle of the Asian, European, and US sessions based on your local timezone (default set to `Europe/Belgrade`).
* **Dynamic Session Fills:** Highlights the background region between the opening price and the candle close throughout the duration of that specific trading session phase, providing instant visual feedback on price expansion.
* **Daily Reset:** Levels and session phases automatically reset every new trading day to keep your chart clean and noise-free.
### 2. DTS (Daily Time Structure) & Time Markers
* **NY AM Session Shading:** Displays custom background highlighting for the New York Morning trading window (default set to `UTC-5`).
* **5-Level Time Progression Lines (0, 0.25, 0.50, 0.75, 1):** Draws full-height vertical gridlines across key time intervals during the session with clear labels positioned cleanly at the bottom of the chart screen.
* **Time Confluence:** Enables traders to identify "Time & Price" confluence—when price hits a key support/resistance level at a specific fractional time window of the day.
---
## How to Use This Indicator
1. **Session Open Trading:**
* Watch how price behaves around the green (Asia Open), blue (EU Open), and red (US Open) lines. These opening prices often act as dynamic support/resistance or draw-on-liquidity targets during later sessions.
2. **Time-Based Executions (DTS):**
* Look for trade setups (FVGs, Liquidity Sweeps, Order Blocks) that coincide with the vertical time lines (0, 0.25, 0.50, 0.75, 1).
3. **Customization:**
* Open the indicator settings to easily adjust input times and timezones to match your local execution hours or specific preferred session windows.
---
## Inputs & Settings
* **Session Open Levels:** Adjust the opening hour inputs for Asia, EU, and US sessions along with their fill colors.
* **DTS Time & Price:** Adjust the NY AM session window, timezone, vertical line intervals, line colors, and label colors to fit your custom layout. Indicator

Penny stocks Pro Execution (15m & 1H HTF)🚀 Penny Stock Pro Execution (15m & 1H HTF Confluence)
📌 Overview
Penny stocks and low-float momentum plays rarely follow classic macro trends. Instead, they operate on violent spikes followed by rapid decay. Traditional trend-following strategies fail on these assets because by the time a higher timeframe trend is "confirmed," the move is already over and smart money is dumping into late buyers.
Penny Stock Pro Execution is purpose-built for intraday momentum execution (ideal on 5m to 15m charts while pulling non-repainting multi-timeframe data from 15m and 1H). It pinpoints precision entries at the exact micro-inflection point right as volume pours in, then equips you with automatic ATR risk structures to lock in profits before the spike dies.
⚡ The Penny Stock Dilemma: "Spike & Die" Dynamics
Unlike large-cap stocks that trend smoothly, penny stocks are driven by short squeezes, news catalysts, and liquidity grabs. They follow a distinct lifecycle:
* Accumulation / Compression: Low-volume consolidation near dynamic support.
* The Liquidity Spike: A sudden burst of volume causing an explosive move across 1–3 candles.
* The Distribution Decay: High-volume rejection, micro-structure break, and rapid dump back to baseline.
This script solves two crucial problems when trading these patterns:
* Prevents Chasing Top-of-Spike Moves: Uses strict HTF Extension Filters to block long signals when price is already stretched too far above the baseline.
* Captures Early Inflections: Combines Volume-Backed Pinbar Rejections and Micro Market Structure Shifts (MSS/CHoCH) on the lower timeframe to fire entries before the main move unfolds.
🔑 Key Features & Logic Breakdown
1. Non-Repainting Multi-Timeframe HUD (15m & 1H)
* Tracks higher timeframe EMA alignment, RSI momentum, ADX strength, and the last 6 candles using barmerge.gaps_on and lookahead_off to guarantee zero repainting.
2. Multi-Factor Confluence Scoring (1–6 Scale)
Signals are evaluated through a 6-point checklist. A setup must achieve a minimum confluence score of 4/6 to trigger an entry:
* HTF Trend Stack Alignment (1H alignment)
* HTF Mean-Reversion / Pullback Check (Ensures you aren't buying the absolute peak)
* 15m Trend Support
* 1H RSI Safety Gate (Filters out exhausted setups)
* Relative Volume Spike (\eg 1.2\times average volume)
* 5m RSI In-Zone Check
3. Dynamic Micro-Structure Trigger Logic
The script looks for one of two localized entry triggers:
* Volume-Backed Pinbar Rejections: Identifies high-wick candle rejections (\ge 40\% total range and 2\times body size) occurring at recent 8-candle extremes.
* Micro Market Structure Shifts (MSS): Confirms structural break of recent swing highs/lows on close basis.
4. Automated Risk Management Projection
Upon signal execution, the indicator dynamically projects horizontal level markers directly on the chart:
* Entry Line (White)
* Stop Loss (SL): ATR-based dynamic risk placement (Default: 1.5\times \text{ATR})
* Take Profit 1 & 2 (TP1 / TP2): 1.0\times and 2.0\times \text{ATR} targets to secure gains before the inevitable decay.
🛠️ How to Trade This Script
│
▼
───► 🚀 ENTRY SIGNAL FIRED (Score >= 4)
│
├──────► Take Profit 1 (1.0x ATR) ──► Scale out 50% & set SL to Entry
│
└──────► Take Profit 2 (2.0x ATR) ──► Fully exit before "Die" phase
* Chart Setup: Apply script to a 5-minute chart (or 3-minute for fast momentum plays).
* Wait for Signal: Look for a green LONG or red SHORT triangle supported by a score label on the TP2 line.
* Execution Rules:
* TP1 (1.0\times \text{ATR}): Sell 50% of position immediately. Move Stop Loss to breakeven.
* TP2 (2.0\times \text{ATR}): Clear out the remaining position. Do not hold penny stocks hoping for a overnight hold unless HTF is breaking out with unprecedented volume.
⚙️ Recommended Inputs
* Medium Timeframe: 15
* Higher Timeframe: 60 (1H)
* HTF Extension Threshold: 1.5% (Adjust higher for extreme low-float runners)
* Relative Vol Multiplier: 1.2x - 1.5x
Disclaimer: Penny stocks carry high volatility and slippage risk. This script is designed for momentum scalping and active intraday risk management. Always trade with strict stop losses. Indicator
