Open 2-Hour Line with Time LinesA Pine Script indicator that plots horizontal lines at the opening price of specified 2-hour intervals: 04:00, 06:00, 08:00, 10:00, 12:00, 14:00, 16:00, 18:00. The script includes customizable line styles, colors, and width options via user input.
Penunjuk dan strategi
2-Candle Reversal with Hammer + MA + RSI (Buy Alert)First Candle (Setup Candle):
Hammer:
Lower wick ≥ 2 × real body
Close is:
Below MA20 and MA200
MA20 is below MA200 (bearish environment)
RSI < 40
Second Candle (Confirmation Candle):
Higher Low
Higher High and Close above previous high
Hammer Buy Signal with MA & RSI + Alert15-minute timeframe
Hammer candlestick:
Lower wick ≥ 2 × real body
Price conditions:
Close > MA200
Close < MA20
RSI < 40
Signal: Generate a BUY signal
EMA Crossover with Shading
A Pine Script indicator that shows a crossover between a short EMA and a long EMA, with green shading when the short EMA is above the long EMA and red shading when it's below.
Combined Candle Body Size Spike (Custom TF)uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
1R Breakout Highlighter1R Breakout. This indicator measures every bar and highlights any bar that is greater than the previous bar by more than 1R.
EMA + CPR Buy/Sell Signalsautomated TradingView Pine Script for generating Buy/Sell signals based on the exact strategy you requested:
20 EMA & 50 EMA crossover
CPR levels (Pivot, Support, Resistance)
Optional: MACD & RSI filters
EMA + CPR Buy/Sell Signalsautomated TradingView Pine Script for generating Buy/Sell signals based on the exact strategy
20 EMA & 50 EMA crossover
CPR levels (Pivot, Support, Resistance)
Optional: MACD & RSI filters
50-Week High Entry / 40-Week Low Exit StrategyThis is a simple long term strategy
Entry condition : You will enter the market when the stock’s current high exceeds its 50-week high. This condition enables you to identify upward momentum and capitalize on potential price surges.
Exit condition
Conversely, you will exit the market when the stock’s current low drops below its 40-week low. This exit strategy helps protect your capital by ensuring you withdraw from losing positions before further declines in price occur.
This trading strategy relies on the Donchian Channel indicator to monitor the relevant 50-week high and 40-week low levels. Given that this is a weekly trading strategy, all backtesting will be conducted using weekly timeframes.
Linda MACD Divergence w/ Lines + Cam FilterThis is an improvement on the first. Pay around with the Diff setting and do some backtesting. you could try traditional macd settings but the Linda's divergence is the secret to this set up.
Chattes-SwingCount Chattes-SwingCount
// This indicator detects swings using a custom ZigZag algorithm and calculates:
// - Average pip movement per swing
// - Standard deviation of pip movement
// - Average number of candles per swing
// - Standard deviation of candle count
//
// The stats are displayed in a compact box at the top-right corner of the chart.
//
// An alert is triggered when a swing's pip size exceeds 1.5× the standard deviation,
// helping identify unusual volatility or significant market moves.
//
// Inputs allow customization of ZigZag detection parameters and swing sample size.
Kippi-VWAPVWAP with Premarket data, when available.
The settings are like the classic VWAP but you can toggle if you want or don't want the premarket data to be included.
I really hope this description is now long enough. Netanya Oleh
Crypto Scalping Strategy [Dubic] - LONG OnlyThis Pine Script strategy snippet adds a temporary, visual label on the chart showing the profit percentage realized at each closed trade exit. When a long position closes, it calculates the profit or loss percentage based on the entry and exit prices, then displays it clearly above the exit candle as a green (profit) or red (loss) label. This helps traders quickly visualize trade outcomes during backtesting or live trading without cluttering the chart with persistent labels.
ROC Spike Alert by Jaani//@version=5
indicator("ROC Spike Alert by Jaani", overlay=true)
// === Inputs ===
rocLength = input.int(9, title="ROC Length")
spikeThreshold = input.float(2.0, title="Spike Threshold (%)")
// === ROC Calculation ===
roc = 100 * (close - close ) / close
// === Spike Conditions ===
bullishSpike = roc > spikeThreshold
bearishSpike = roc < -spikeThreshold
// === Plot ROC on Separate Scale
plot(roc, title="ROC", color=color.blue, linewidth=1, display=display.none)
// === Signal Plotting on Chart ===
plotshape(bullishSpike, title="Bullish Spike", location=location.belowbar,
color=color.green, style=shape.triangleup, size=size.small, text="BUY")
plotshape(bearishSpike, title="Bearish Spike", location=location.abovebar,
color=color.red, style=shape.triangledown, size=size.small, text="SELL")
// === Alerts ===
alertcondition(bullishSpike, title="ROC Bullish Spike", message="ROC UP Spike Detected - BUY Signal")
alertcondition(bearishSpike, title="ROC Bearish Spike", message="ROC DOWN Spike Detected - SELL Signal")
Multi BB (3/4/5 SD) - Separate AlertsGives alert when Price touches Bollinger Band 3 or 4 or 5 on either higher or lower sides.
Average ATR (%) — No Spikes//@version=5
indicator("Average ATR (%) — No Spikes", overlay=true)
///////////////////////////
// Settings
atrLen = input.int(14, title="ATR Length")
barsBack = input.int(150, title="Bars to Average")
priceRef = input.string("close", title="Reference Price", options= )
level1 = input.float(1.0, title="Moderate Volatility Threshold (%)")
level2 = input.float(1.5, title="High Volatility Threshold (%)")
showLabel = input.bool(true, title="Show Value on Chart")
///////////////////////////
// ATR percentage calculation
refPrice = priceRef == "close" ? close : priceRef == "hl2" ? hl2 : open
atr = ta.atr(atrLen)
atrPct = atr / refPrice * 100
// Average ATR % over N bars
var float sum = 0.0
var int count = 0
sum := 0.0
count := 0
for i = 0 to barsBack - 1
sum += nz(atrPct )
count += 1
avgAtrPct = count > 0 ? sum / count : na
///////////////////////////
// Line color based on thresholds
lineColor = avgAtrPct > level2 ? color.red : avgAtrPct > level1 ? color.orange : color.green
plot(avgAtrPct, title="Average ATR (%)", color=lineColor, linewidth=2)
///////////////////////////
// Right-side label
var label infoLabel = na
if showLabel
txt = "Average ATR: " + str.tostring(avgAtrPct, "#.##") + " %"
if na(infoLabel)
infoLabel := label.new(bar_index, close, txt, style=label.style_label_right, size=size.normal, color=color.blue, textcolor=color.white)
else
label.set_xy(infoLabel, bar_index, close)
label.set_text(infoLabel, txt)
else
if not na(infoLabel)
label.delete(infoLabel)
infoLabel := na
candle_utilsLibrary "candle_utils"
isRejectionCandle(candleHigh, candleLow, candleOpen, candleClose)
Parameters:
candleHigh (float)
candleLow (float)
candleOpen (float)
candleClose (float)
mergeCandlesForRejection(_numCandles, direction)
Parameters:
_numCandles (int)
direction (int)
hasRejection(direction)
Parameters:
direction (int)
isBullish(open, close)
Parameters:
open (float)
close (float)
isBearish(open, close)
Parameters:
open (float)
close (float)
bodySize(open, close)
Parameters:
open (float)
close (float)
upperWickSize(high, open, close)
Parameters:
high (float)
open (float)
close (float)
lowerWickSize(low, open, close)
Parameters:
low (float)
open (float)
close (float)
array_utilsLibrary "array_utils"
get(arr, index)
Parameters:
arr (array)
index (int)
last(arr)
Parameters:
arr (array)
secondLast(arr)
Parameters:
arr (array)
thirdLast(arr)
Parameters:
arr (array)
fourthLast(arr)
Parameters:
arr (array)
sum(arr)
Parameters:
arr (array)
average(arr)
Parameters:
arr (array)
max(arr)
Parameters:
arr (array)
min(arr)
Parameters:
arr (array)
reverse(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clone(arr)
Parameters:
arr (array)
base_utilsLibrary "base_utils"
percentOf(num, outOf)
Parameters:
num (float)
outOf (float)
xPercentOf(x, num)
Parameters:
x (float)
num (float)
arrayGet(arr, index)
Parameters:
arr (array)
index (int)
arrayLast(arr)
Parameters:
arr (array)
arraySecondLast(arr)
Parameters:
arr (array)
arrayThirdLast(arr)
Parameters:
arr (array)
arrayFourthLast(arr)
Parameters:
arr (array)
isRejectionCandle(candleHigh, candleLow, candleOpen, candleClose)
Parameters:
candleHigh (float)
candleLow (float)
candleOpen (float)
candleClose (float)
mergeCandlesForRejection(_numCandles, direction)
Parameters:
_numCandles (int)
direction (int)
hasRejection(direction)
Parameters:
direction (int)