OPEN-SOURCE SCRIPT
Updated Morning Momentum

//version=5
indicator("Morning Momentum", overlay=true) // This is your one required declaration
// --- Define Time Window ---
startTime = timestamp("2025-11-28T09:30:00")
endTime = timestamp("2025-11-28T10:00:00")
inWindow = time >= startTime and time <= endTime
// --- Define Price Change ---
priceChange = (close - open) / open * 100
// --- Define Volume Spike ---
volumeSMA = ta.sma(volume, 20)
volumeSpike = volume > volumeSMA
// --- Trigger Condition ---
signal = inWindow and priceChange > 2 and volumeSpike
// --- Plot Signal ---
plotshape(signal, title="Momentum Signal", location=location.abovebar, color=color.green, style=shape.triangleup)
indicator("Morning Momentum", overlay=true) // This is your one required declaration
// --- Define Time Window ---
startTime = timestamp("2025-11-28T09:30:00")
endTime = timestamp("2025-11-28T10:00:00")
inWindow = time >= startTime and time <= endTime
// --- Define Price Change ---
priceChange = (close - open) / open * 100
// --- Define Volume Spike ---
volumeSMA = ta.sma(volume, 20)
volumeSpike = volume > volumeSMA
// --- Trigger Condition ---
signal = inWindow and priceChange > 2 and volumeSpike
// --- Plot Signal ---
plotshape(signal, title="Momentum Signal", location=location.abovebar, color=color.green, style=shape.triangleup)
Release Notes
//version=5indicator("Morning Momentum", overlay=true)
// --- Time Window: 9:30–10:00 AM ---
startTime = timestamp("2025-11-28T09:30:00")
endTime = timestamp("2025-11-28T10:00:00")
inWindow = time >= startTime and time <= endTime
// --- Momentum Conditions ---
priceChange = (close - open) / open * 100
volumeSMA = ta.sma(volume, 20)
volumeSpike = volume > volumeSMA
signal = inWindow and priceChange > 2 and volumeSpike
// --- Visual Marker ---
plotshape(signal, title="Momentum Signal", location=location.abovebar, color=color.green, style=shape.triangleup)
// --- Alert Condition ---
alertcondition(signal, title="Momentum Signal Alert", message="🚀 {{ticker}} breaking with momentum at {{close}}")
Release Notes
//version=5indicator("Momentum Signal (All Day)", overlay=true)
// --- Momentum Conditions (No Time Window) ---
priceChange = (close - open) / open * 100
volumeSMA = ta.sma(volume, 20)
volumeSpike = volume > volumeSMA
// --- Trigger Condition: Price change > 2% and volume spike ---
signal = priceChange > 2 and volumeSpike
// --- Plot Signal ---
plotshape(signal, title="Momentum Signal", location=location.abovebar, color=color.green, style=shape.triangleup)
// --- Alert Condition ---
alertcondition(signal, title="Momentum Signal Alert", message="🚀 {{ticker}} breaking with momentum at {{close}}")
Release Notes
first breakoutOpen-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.