PINE LIBRARY
emaStackCore

Library "emaStackCore"
emaCalc(source, length)
Calculate EMA
Parameters:
source (float): Price source (close, hl2, etc.)
length (simple int): EMA period
Returns: EMA value
emaSlope(emaValue, lookback)
Calculate EMA slope (% change over lookback period)
Parameters:
emaValue (float): Current EMA value
lookback (int): Number of bars to look back
Returns: Slope in percentage
emaDist(ema1, ema2, mode, atrVal, price)
Calculate distance between 2 EMAs (normalized)
Parameters:
ema1 (float): First EMA value
ema2 (float): Second EMA value
mode (string): Normalization mode ("ATR" or "%")
atrVal (float): ATR value for ATR mode
price (float): Reference price for % mode
Returns: Normalized distance
slopeClass(slope, thresholdFlat)
Classify EMA slope
Parameters:
slope (float): EMA slope in %
thresholdFlat (float): Threshold to consider slope as flat
Returns: +1 (rising), 0 (flat), -1 (falling)
slopeScore5(slope10, slope20, slope50, slope100, slope200, threshold)
Calculate combined slope score for 5 EMAs
Parameters:
slope10 (float): EMA10 slope
slope20 (float): EMA20 slope
slope50 (float): EMA50 slope
slope100 (float): EMA100 slope
slope200 (float): EMA200 slope
threshold (float): Flat threshold
Returns: Sum of slope classes (-5 to +5)
emaStack5Score(e10, e20, e50, e100, e200, tolEq)
Calculate EMA stack score (5 EMAs)
Parameters:
e10 (float): EMA 10 value
e20 (float): EMA 20 value
e50 (float): EMA 50 value
e100 (float): EMA 100 value
e200 (float): EMA 200 value
tolEq (float): Tolerance for equality (%)
Returns: Stack score (-4 to +4)
emaStack5ScoreWithSlope(e10, e20, e50, e100, e200, slope10, slope20, slope50, slope100, slope200, tolEq, slopeThreshold)
Enhanced EMA stack with slope
Parameters:
e10 (float)
e20 (float)
e50 (float)
e100 (float)
e200 (float)
slope10 (float)
slope20 (float)
slope50 (float)
slope100 (float)
slope200 (float)
tolEq (float)
slopeThreshold (float)
Returns: [score, slopeScore]
emaRegimeChange(currentScore, previousScore, threshold)
Detect regime change in EMA stack
Parameters:
currentScore (int): Current stack score
previousScore (int): Previous stack score
threshold (int): Minimum change to consider significant
Returns: [changed, direction, delta]
emaCompressed(e10, e20, e50, e100, e200, threshold)
Detect EMA compression (squeeze)
Parameters:
e10 (float): EMA 10 value
e20 (float): EMA 20 value
e50 (float): EMA 50 value
e100 (float): EMA 100 value
e200 (float): EMA 200 value
threshold (float): Max spread % to consider compressed
Returns: [compressed, spread]
emaConfluence9(price, e10_tf1, e20_tf1, e50_tf1, e10_tf2, e20_tf2, e50_tf2, e10_tf3, e20_tf3, e50_tf3, threshold)
Calculate confluence score (how many EMAs are near price)
Parameters:
price (float): Current price
e10_tf1 (float): EMA10 on timeframe 1
e20_tf1 (float): EMA20 on timeframe 1
e50_tf1 (float): EMA50 on timeframe 1
e10_tf2 (float): EMA10 on timeframe 2
e20_tf2 (float): EMA20 on timeframe 2
e50_tf2 (float): EMA50 on timeframe 2
e10_tf3 (float): EMA10 on timeframe 3
e20_tf3 (float): EMA20 on timeframe 3
e50_tf3 (float): EMA50 on timeframe 3
threshold (float): Max distance % to consider "near"
Returns: Confluence count (0-9)
emaConfluence3(price, e10, e20, e50, threshold)
Simplified confluence for 3 EMAs on single TF
Parameters:
price (float)
e10 (float)
e20 (float)
e50 (float)
threshold (float)
Returns: Confluence count (0-3)
emaLeadLag(score15m, score1H, score4H, lookback)
Determine which timeframe is leading the move
Parameters:
score15m (int): Stack score on 15m
score1H (int): Stack score on 1H
score4H (int): Stack score on 4H
lookback (int): Bars to look back for change detection
Returns: Leader timeframe ("15m", "1H", "4H", "ALIGNED", "MIXED")
emaPriceDivergence(price, emaValue, lookback)
Detect divergence between price and EMA direction
Parameters:
price (float): Current price
emaValue (float): EMA value (typically EMA20)
lookback (int): Bars to compare
Returns: [divergence, priceChange%, emaChange%]
emaOrderStrength(e10, e20, e50, e100, e200)
Calculate EMA order strength (weighted by distance)
Parameters:
e10 (float): EMA 10
e20 (float): EMA 20
e50 (float): EMA 50
e100 (float): EMA 100
e200 (float): EMA 200
Returns: Strength score (higher = stronger trend)
emaPriceZone(price, e10, e20, e50, e100, e200)
Determine which EMA zone price is in
Parameters:
price (float): Current price
e10 (float): EMA 10
e20 (float): EMA 20
e50 (float): EMA 50
e100 (float): EMA 100
e200 (float): EMA 200
Returns: Zone code (5=above all, 0=below all, -1=mixed)
emaCalc(source, length)
Calculate EMA
Parameters:
source (float): Price source (close, hl2, etc.)
length (simple int): EMA period
Returns: EMA value
emaSlope(emaValue, lookback)
Calculate EMA slope (% change over lookback period)
Parameters:
emaValue (float): Current EMA value
lookback (int): Number of bars to look back
Returns: Slope in percentage
emaDist(ema1, ema2, mode, atrVal, price)
Calculate distance between 2 EMAs (normalized)
Parameters:
ema1 (float): First EMA value
ema2 (float): Second EMA value
mode (string): Normalization mode ("ATR" or "%")
atrVal (float): ATR value for ATR mode
price (float): Reference price for % mode
Returns: Normalized distance
slopeClass(slope, thresholdFlat)
Classify EMA slope
Parameters:
slope (float): EMA slope in %
thresholdFlat (float): Threshold to consider slope as flat
Returns: +1 (rising), 0 (flat), -1 (falling)
slopeScore5(slope10, slope20, slope50, slope100, slope200, threshold)
Calculate combined slope score for 5 EMAs
Parameters:
slope10 (float): EMA10 slope
slope20 (float): EMA20 slope
slope50 (float): EMA50 slope
slope100 (float): EMA100 slope
slope200 (float): EMA200 slope
threshold (float): Flat threshold
Returns: Sum of slope classes (-5 to +5)
emaStack5Score(e10, e20, e50, e100, e200, tolEq)
Calculate EMA stack score (5 EMAs)
Parameters:
e10 (float): EMA 10 value
e20 (float): EMA 20 value
e50 (float): EMA 50 value
e100 (float): EMA 100 value
e200 (float): EMA 200 value
tolEq (float): Tolerance for equality (%)
Returns: Stack score (-4 to +4)
emaStack5ScoreWithSlope(e10, e20, e50, e100, e200, slope10, slope20, slope50, slope100, slope200, tolEq, slopeThreshold)
Enhanced EMA stack with slope
Parameters:
e10 (float)
e20 (float)
e50 (float)
e100 (float)
e200 (float)
slope10 (float)
slope20 (float)
slope50 (float)
slope100 (float)
slope200 (float)
tolEq (float)
slopeThreshold (float)
Returns: [score, slopeScore]
emaRegimeChange(currentScore, previousScore, threshold)
Detect regime change in EMA stack
Parameters:
currentScore (int): Current stack score
previousScore (int): Previous stack score
threshold (int): Minimum change to consider significant
Returns: [changed, direction, delta]
emaCompressed(e10, e20, e50, e100, e200, threshold)
Detect EMA compression (squeeze)
Parameters:
e10 (float): EMA 10 value
e20 (float): EMA 20 value
e50 (float): EMA 50 value
e100 (float): EMA 100 value
e200 (float): EMA 200 value
threshold (float): Max spread % to consider compressed
Returns: [compressed, spread]
emaConfluence9(price, e10_tf1, e20_tf1, e50_tf1, e10_tf2, e20_tf2, e50_tf2, e10_tf3, e20_tf3, e50_tf3, threshold)
Calculate confluence score (how many EMAs are near price)
Parameters:
price (float): Current price
e10_tf1 (float): EMA10 on timeframe 1
e20_tf1 (float): EMA20 on timeframe 1
e50_tf1 (float): EMA50 on timeframe 1
e10_tf2 (float): EMA10 on timeframe 2
e20_tf2 (float): EMA20 on timeframe 2
e50_tf2 (float): EMA50 on timeframe 2
e10_tf3 (float): EMA10 on timeframe 3
e20_tf3 (float): EMA20 on timeframe 3
e50_tf3 (float): EMA50 on timeframe 3
threshold (float): Max distance % to consider "near"
Returns: Confluence count (0-9)
emaConfluence3(price, e10, e20, e50, threshold)
Simplified confluence for 3 EMAs on single TF
Parameters:
price (float)
e10 (float)
e20 (float)
e50 (float)
threshold (float)
Returns: Confluence count (0-3)
emaLeadLag(score15m, score1H, score4H, lookback)
Determine which timeframe is leading the move
Parameters:
score15m (int): Stack score on 15m
score1H (int): Stack score on 1H
score4H (int): Stack score on 4H
lookback (int): Bars to look back for change detection
Returns: Leader timeframe ("15m", "1H", "4H", "ALIGNED", "MIXED")
emaPriceDivergence(price, emaValue, lookback)
Detect divergence between price and EMA direction
Parameters:
price (float): Current price
emaValue (float): EMA value (typically EMA20)
lookback (int): Bars to compare
Returns: [divergence, priceChange%, emaChange%]
emaOrderStrength(e10, e20, e50, e100, e200)
Calculate EMA order strength (weighted by distance)
Parameters:
e10 (float): EMA 10
e20 (float): EMA 20
e50 (float): EMA 50
e100 (float): EMA 100
e200 (float): EMA 200
Returns: Strength score (higher = stronger trend)
emaPriceZone(price, e10, e20, e50, e100, e200)
Determine which EMA zone price is in
Parameters:
price (float): Current price
e10 (float): EMA 10
e20 (float): EMA 20
e50 (float): EMA 50
e100 (float): EMA 100
e200 (float): EMA 200
Returns: Zone code (5=above all, 0=below all, -1=mixed)
ไลบรารีไพน์
ด้วยเจตนารมณ์หลักของ TradingView ผู้เขียนได้เผยแพร่ Pine code นี้เป็นโอเพนซอร์สไลบรารีเพื่อให้ Pine โปรแกรมเมอร์คนอื่นในชุมชนของเราสามารถนำไปใช้ซ้ำได้ ต้องขอบคุณผู้เขียน! คุณสามารถใช้ไลบรารีนี้ในแบบส่วนตัวหรือในการเผยแพร่แบบโอเพนซอร์สอื่น ๆ แต่การนำโค้ดนี้ไปใช้ในการเผยแพร่ซ้ำจะต้องอยู่ภายใต้ กฎระเบียบการใช้งาน
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน
ไลบรารีไพน์
ด้วยเจตนารมณ์หลักของ TradingView ผู้เขียนได้เผยแพร่ Pine code นี้เป็นโอเพนซอร์สไลบรารีเพื่อให้ Pine โปรแกรมเมอร์คนอื่นในชุมชนของเราสามารถนำไปใช้ซ้ำได้ ต้องขอบคุณผู้เขียน! คุณสามารถใช้ไลบรารีนี้ในแบบส่วนตัวหรือในการเผยแพร่แบบโอเพนซอร์สอื่น ๆ แต่การนำโค้ดนี้ไปใช้ในการเผยแพร่ซ้ำจะต้องอยู่ภายใต้ กฎระเบียบการใช้งาน
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน