PINE LIBRARY
ที่อัปเดต: TPOSmartMoneyLib

Library "TPOSmartMoneyLib"
Library for TPO (Time Price Opportunity) and Smart Money concepts including session management, PDH/PDL detection, sweeping logic, and volume profile utilities
f_price_to_tick(p)
Convert price to tick
Parameters:
p (float): Price value
Returns: Tick value
f_tick_to_row(t, row_ticks_in)
Convert tick to row
Parameters:
t (int): Tick value
row_ticks_in (int): Number of ticks per row
Returns: Row index
f_row_to_price(row, row_ticks_in)
Convert row to price (midpoint)
Parameters:
row (int): Row index
row_ticks_in (int): Number of ticks per row
Returns: Price at row midpoint
f_calc_row_ticks(natr_ref, row_gran_mult)
Calculate dynamic row size based on normalized ATR
Parameters:
natr_ref (float): Daily normalized ATR reference value
row_gran_mult (float): Row granularity multiplier
Returns: Number of ticks per row
f_more_transp_pct(c, pct)
Increase color transparency by percentage
Parameters:
c (color): Input color
pct (float): Percentage to increase transparency (0.0 to 1.0)
Returns: Color with increased transparency
f_dom_color(dom, buy_col, sell_col, gamma, transp_weak, transp_strong)
Calculate dominance color based on buy/sell ratio
Parameters:
dom (float): Dominance ratio (-1 to 1, negative = sell, positive = buy)
buy_col (color): Buy dominant color
sell_col (color): Sell dominant color
gamma (float): Gamma correction for color intensity
transp_weak (int): Transparency for weak dominance
transp_strong (int): Transparency for strong dominance
Returns: Blended color
f_sess_part(sess_str, get_start)
Parse session string to get start or end time
Parameters:
sess_str (string): Session string in format "HHMM-HHMM"
get_start (bool): True to get start time, false to get end time
Returns: Time string in HHMM format
f_hhmm_to_h(hhmm)
Convert HHMM string to hours
Parameters:
hhmm (string): Time string in HHMM format
Returns: Hours (0-23)
f_hhmm_to_m(hhmm)
Convert HHMM string to minutes
Parameters:
hhmm (string): Time string in HHMM format
Returns: Minutes (0-59)
f_prev_day_window_bounds(today_day_rth, win_start, win_end, session_tz)
Calculate previous day window bounds
Parameters:
today_day_rth (int): Today's RTH start timestamp
win_start (string): Window start time in HHMM format
win_end (string): Window end time in HHMM format
session_tz (string): Session timezone
Returns: Tuple of [window_start_ms, window_end_ms]
f_default_session_colors()
Get default session colors
Returns: Array of 4 colors [Asia, Frankfurt, London, NY]
f_session_names()
Get session names
Returns: Array of 4 session names
f_process_hl(arr, rng, keep_bars, lock_to_live)
Process high/low lines with sweeping detection
Parameters:
arr (array<HLLine>): Array of HLLine objects
rng (float): Price range for visibility filtering
keep_bars (int): Maximum bars to keep lines
lock_to_live (bool): Whether to lock line end to current bar
Returns: 0 (for chaining)
f_process_naked_lines(arr, calc_bars, bars_per_day, keep_to_day_end)
Process naked lines (POC/VAH/VAL) with sweeping detection
Parameters:
arr (array<NakedLine>): Array of NakedLine objects
calc_bars (int): Maximum calculation bars
bars_per_day (int): Bars per day for scope calculation
keep_to_day_end (bool): Whether to extend to day end
Returns: 0 (for chaining)
f_update_pdhl_lines(pd_hl, pdh, pdl, new_day, pd_rng, bars_per_day, pdh_color, pdl_color)
Detect and create PDH/PDL lines
Parameters:
pd_hl (array<HLLine>): Array to store HLLine objects
pdh (float): Previous day high
pdl (float): Previous day low
new_day (bool): Whether it's a new day
pd_rng (float): Price range for visibility
bars_per_day (int): Bars per day
pdh_color (color): PDH line color
pdl_color (color): PDL line color
Returns: 0 (for chaining)
f_poc_from_vals(keys, vals)
Calculate POC from sorted keys and values
Parameters:
keys (array<int>): Sorted array of row keys
vals (array<float>): Array of volume values
Returns: POC row key
f_value_area(keys, vals, poc_key, va_pct)
Calculate Value Area from volume distribution
Parameters:
keys (array<int>): Sorted array of row keys
vals (array<float>): Array of volume values
poc_key (int): POC row key
va_pct (float): Value Area percentage (typically 0.70)
Returns: Tuple of [VAL_key, VAH_key]
f_find_key_sorted(keys, target)
Find key in sorted array using binary search
Parameters:
keys (array<int>): Sorted array of keys
target (int): Target key to find
Returns: Index of key, or -1 if not found
f_zscore_safe(x, len)
Safe z-score calculation using built-in functions
Parameters:
x (float): Input series
len (int): Lookback length
Returns: Z-score
HLLine
Represents a high/low line with sweeping detection
Fields:
ln (series line): Line object
lb (series label): Label object
lvl (series float): Price level
startBar (series int): Bar index where line starts
swept (series bool): Whether the level has been swept
isHigh (series bool): True if this is a high, false if low
col (series color): Line color
NakedLine
Represents a naked POC/VAH/VAL line
Fields:
ln (series line): Line object
lb (series label): Label object
lvl (series float): Price level
startBar (series int): Bar index where line starts
swept (series bool): Whether the level has been swept
sweptBar (series int): Bar index where swept occurred
endBar (series int): Bar index where line should end
Library for TPO (Time Price Opportunity) and Smart Money concepts including session management, PDH/PDL detection, sweeping logic, and volume profile utilities
f_price_to_tick(p)
Convert price to tick
Parameters:
p (float): Price value
Returns: Tick value
f_tick_to_row(t, row_ticks_in)
Convert tick to row
Parameters:
t (int): Tick value
row_ticks_in (int): Number of ticks per row
Returns: Row index
f_row_to_price(row, row_ticks_in)
Convert row to price (midpoint)
Parameters:
row (int): Row index
row_ticks_in (int): Number of ticks per row
Returns: Price at row midpoint
f_calc_row_ticks(natr_ref, row_gran_mult)
Calculate dynamic row size based on normalized ATR
Parameters:
natr_ref (float): Daily normalized ATR reference value
row_gran_mult (float): Row granularity multiplier
Returns: Number of ticks per row
f_more_transp_pct(c, pct)
Increase color transparency by percentage
Parameters:
c (color): Input color
pct (float): Percentage to increase transparency (0.0 to 1.0)
Returns: Color with increased transparency
f_dom_color(dom, buy_col, sell_col, gamma, transp_weak, transp_strong)
Calculate dominance color based on buy/sell ratio
Parameters:
dom (float): Dominance ratio (-1 to 1, negative = sell, positive = buy)
buy_col (color): Buy dominant color
sell_col (color): Sell dominant color
gamma (float): Gamma correction for color intensity
transp_weak (int): Transparency for weak dominance
transp_strong (int): Transparency for strong dominance
Returns: Blended color
f_sess_part(sess_str, get_start)
Parse session string to get start or end time
Parameters:
sess_str (string): Session string in format "HHMM-HHMM"
get_start (bool): True to get start time, false to get end time
Returns: Time string in HHMM format
f_hhmm_to_h(hhmm)
Convert HHMM string to hours
Parameters:
hhmm (string): Time string in HHMM format
Returns: Hours (0-23)
f_hhmm_to_m(hhmm)
Convert HHMM string to minutes
Parameters:
hhmm (string): Time string in HHMM format
Returns: Minutes (0-59)
f_prev_day_window_bounds(today_day_rth, win_start, win_end, session_tz)
Calculate previous day window bounds
Parameters:
today_day_rth (int): Today's RTH start timestamp
win_start (string): Window start time in HHMM format
win_end (string): Window end time in HHMM format
session_tz (string): Session timezone
Returns: Tuple of [window_start_ms, window_end_ms]
f_default_session_colors()
Get default session colors
Returns: Array of 4 colors [Asia, Frankfurt, London, NY]
f_session_names()
Get session names
Returns: Array of 4 session names
f_process_hl(arr, rng, keep_bars, lock_to_live)
Process high/low lines with sweeping detection
Parameters:
arr (array<HLLine>): Array of HLLine objects
rng (float): Price range for visibility filtering
keep_bars (int): Maximum bars to keep lines
lock_to_live (bool): Whether to lock line end to current bar
Returns: 0 (for chaining)
f_process_naked_lines(arr, calc_bars, bars_per_day, keep_to_day_end)
Process naked lines (POC/VAH/VAL) with sweeping detection
Parameters:
arr (array<NakedLine>): Array of NakedLine objects
calc_bars (int): Maximum calculation bars
bars_per_day (int): Bars per day for scope calculation
keep_to_day_end (bool): Whether to extend to day end
Returns: 0 (for chaining)
f_update_pdhl_lines(pd_hl, pdh, pdl, new_day, pd_rng, bars_per_day, pdh_color, pdl_color)
Detect and create PDH/PDL lines
Parameters:
pd_hl (array<HLLine>): Array to store HLLine objects
pdh (float): Previous day high
pdl (float): Previous day low
new_day (bool): Whether it's a new day
pd_rng (float): Price range for visibility
bars_per_day (int): Bars per day
pdh_color (color): PDH line color
pdl_color (color): PDL line color
Returns: 0 (for chaining)
f_poc_from_vals(keys, vals)
Calculate POC from sorted keys and values
Parameters:
keys (array<int>): Sorted array of row keys
vals (array<float>): Array of volume values
Returns: POC row key
f_value_area(keys, vals, poc_key, va_pct)
Calculate Value Area from volume distribution
Parameters:
keys (array<int>): Sorted array of row keys
vals (array<float>): Array of volume values
poc_key (int): POC row key
va_pct (float): Value Area percentage (typically 0.70)
Returns: Tuple of [VAL_key, VAH_key]
f_find_key_sorted(keys, target)
Find key in sorted array using binary search
Parameters:
keys (array<int>): Sorted array of keys
target (int): Target key to find
Returns: Index of key, or -1 if not found
f_zscore_safe(x, len)
Safe z-score calculation using built-in functions
Parameters:
x (float): Input series
len (int): Lookback length
Returns: Z-score
HLLine
Represents a high/low line with sweeping detection
Fields:
ln (series line): Line object
lb (series label): Label object
lvl (series float): Price level
startBar (series int): Bar index where line starts
swept (series bool): Whether the level has been swept
isHigh (series bool): True if this is a high, false if low
col (series color): Line color
NakedLine
Represents a naked POC/VAH/VAL line
Fields:
ln (series line): Line object
lb (series label): Label object
lvl (series float): Price level
startBar (series int): Bar index where line starts
swept (series bool): Whether the level has been swept
sweptBar (series int): Bar index where swept occurred
endBar (series int): Bar index where line should end
เอกสารเผยแพร่
v2ไลบรารีไพน์
ด้วยเจตนารมณ์หลักของ TradingView ผู้เขียนได้เผยแพร่ Pine code นี้เป็นโอเพนซอร์สไลบรารีเพื่อให้ Pine โปรแกรมเมอร์คนอื่นในชุมชนของเราสามารถนำไปใช้ซ้ำได้ ต้องขอบคุณผู้เขียน! คุณสามารถใช้ไลบรารีนี้ในแบบส่วนตัวหรือในการเผยแพร่แบบโอเพนซอร์สอื่น ๆ แต่การนำโค้ดนี้ไปใช้ในการเผยแพร่ซ้ำจะต้องอยู่ภายใต้ กฎระเบียบการใช้งาน
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน
ไลบรารีไพน์
ด้วยเจตนารมณ์หลักของ TradingView ผู้เขียนได้เผยแพร่ Pine code นี้เป็นโอเพนซอร์สไลบรารีเพื่อให้ Pine โปรแกรมเมอร์คนอื่นในชุมชนของเราสามารถนำไปใช้ซ้ำได้ ต้องขอบคุณผู้เขียน! คุณสามารถใช้ไลบรารีนี้ในแบบส่วนตัวหรือในการเผยแพร่แบบโอเพนซอร์สอื่น ๆ แต่การนำโค้ดนี้ไปใช้ในการเผยแพร่ซ้ำจะต้องอยู่ภายใต้ กฎระเบียบการใช้งาน
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน