High-Low Index คืออะไร สูตรวัด breadth ตลาด
High-Low Index คือค่าเฉลี่ย 10 วันของ Record High Percent เรียนรู้สูตรคำนวณด้วยตัวเลขกลม ๆ และข้อควรระวังเรื่องขนาดกลุ่มตัวอย่างในตลาดที่เคลื่อนไหวน้อย
ดัชนี High-Low Index เป็นตัววัด breadth ของตลาดที่สร้างจากจำนวนสองชุด โดยเป็นค่าเฉลี่ยเคลื่อนที่แบบธรรมดา 10 วันของ Record High Percent และ Record High Percent คำนวณจากจำนวนหุ้นที่ทำจุดสูงสุดใหม่ในรอบ 52 สัปดาห์ หารด้วยผลรวมของจำนวนหุ้นที่ทำจุดสูงสุดใหม่และจุดต่ำสุดใหม่ในรอบ 52 สัปดาห์ แล้วคูณด้วย 100 ค่าที่สูงกว่า 50 หมายถึงมีหุ้นทำจุดสูงสุดใหม่มากกว่าจุดต่ำสุดใหม่ ขณะที่ค่าต่ำกว่า 50 หมายถึงเป็นไปในทางตรงกันข้าม สูตรมีเพียงเท่านี้ ต่อไปคือการคำนวณด้วยตัวเลขกลม ๆ และข้อจำกัดด้านขนาดกลุ่มตัวอย่างที่ทำให้ค่าซึ่งดูชัดเจนอาจอิงกับหุ้นเพียงไม่กี่ตัว
วิธีคำนวณ High-Low Index
มีสองขั้นตอน ทั้งหมดเขียนได้ภายในบรรทัดเดียว
- Record High Percent สำหรับหนึ่งช่วงการซื้อขาย: นับหุ้นใน universe ที่ปิดตลาดทำจุดสูงสุดใหม่ในรอบ 52 สัปดาห์ นับหุ้นที่ปิดตลาดทำจุดต่ำสุดใหม่ในรอบ 52 สัปดาห์ หารจำนวนจุดสูงสุดด้วยผลรวมของทั้งสองจำนวน แล้วคูณด้วย 100
- High-Low Index: หาค่าเฉลี่ยของ Record High Percent รายวัน 10 ค่าล่าสุด
ตัวเลขกลม ๆ ช่วยให้เห็นภาพชัดเจนขึ้น สมมติว่าตลาดมีหุ้นทำจุดสูงสุดใหม่ 90 ตัว และทำจุดต่ำสุดใหม่ 30 ตัว ผลรวมเท่ากับ 120 และ 90 หารด้วย 120 เท่ากับ 0.75 ดังนั้น Record High Percent สำหรับช่วงการซื้อขายนั้นคือ 75 จากนั้นใช้ค่าของ 10 ช่วงการซื้อขาย ได้แก่ 75, 70, 65, 60, 55, 50, 45, 40, 35 และ 30 ผลรวมเท่ากับ 525 และ 525 หารด้วย 10 เท่ากับ 52.5 ดังนั้น High-Low Index อยู่ที่ 52.5 แม้ Record High Percent ของวันนั้นเองจะอยู่ที่ 75
ส่วนต่างนี้คือสิ่งที่ค่าเฉลี่ยเคลื่อนที่แลกมา การใช้ข้อมูลย้อนหลัง 10 วันช่วยลดความผันผวนของชุดข้อมูลที่อาจแกว่งจาก 100 เป็น 0 ภายในข้ามคืน แต่ทำให้ดัชนีตอบสนองช้าลง ดัชนีบอกว่าตลาดมี breadth เป็นอย่างไรตลอดช่วงสองสัปดาห์ที่ผ่านมา ไม่ได้บอกว่าเกิดอะไรขึ้นในช่วงบ่ายวันนี้
อะไรนับเป็นจุดสูงสุดใหม่ในรอบ 52 สัปดาห์
หุ้นจะทำจุดสูงสุดใหม่ในรอบ 52 สัปดาห์เมื่อราคาสูงกว่าราคาทุกระดับที่เคยทำไว้ในช่วง 52 สัปดาห์ก่อนหน้า ผู้ให้บริการข้อมูลแต่ละรายใช้เกณฑ์ต่างกัน บางรายเปรียบเทียบจุดสูงสุดและจุดต่ำสุดระหว่างวัน ขณะที่บางรายใช้เฉพาะราคาปิดตลาด จึงได้จำนวนที่แตกต่างกันสำหรับช่วงการซื้อขายเดียวกัน หน้านี้ใช้ราคาปิดตลาดเป็นเกณฑ์ทั้งหมด จุดสูงสุดและจุดต่ำสุดใหม่ในรอบ 52 สัปดาห์ อธิบายรายชื่อดังกล่าวโดยตรง
แผงข้อมูลด้านล่างนับจำนวนจุดสูงสุดและจุดต่ำสุดใหม่ในแต่ละช่วงการซื้อขาย สำหรับกลุ่มหุ้นขนาดใหญ่ของสหรัฐฯ 40 ตัวที่กำหนดไว้ ระหว่างวันที่ 1 เมษายนถึง 31 กรกฎาคม 2026 กลุ่มหุ้นขนาดนี้ทำให้จำนวนต่าง ๆ เล็กพอที่จะตรวจสอบด้วยมือได้ จึงช่วยให้เห็นข้อบกพร่องของสูตรในภายหลัง
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH daily_close AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','AVGO','JPM','JNJ','XOM','PG',
'KO','PEP','WMT','HD','CVX','MRK','PFE','ABBV','CSCO','ORCL',
'CRM','ADBE','MCD','NKE','VZ','T','DIS','BA','CAT','GE',
'IBM','MMM','UNH','LLY','COST','TGT','SBUX','GS','MS','LIN')
AND window_start >= toDateTime('2025-03-01 00:00:00')
AND window_start < toDateTime('2026-08-01 05:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, session_date
),
extremes AS (
SELECT cur.ticker AS ticker,
cur.session_date AS session_date,
cur.close_px AS close_px,
max(hist.close_px) AS high_52w,
min(hist.close_px) AS low_52w
FROM daily_close AS cur
INNER JOIN daily_close AS hist ON cur.ticker = hist.ticker
WHERE cur.session_date >= toDate('2026-04-01')
AND hist.session_date <= cur.session_date
AND hist.session_date > cur.session_date - 364
GROUP BY cur.ticker, cur.session_date, cur.close_px
),
daily AS (
SELECT session_date,
countIf(close_px >= high_52w) AS new_highs,
countIf(close_px <= low_52w) AS new_lows,
countIf(close_px >= high_52w) + countIf(close_px <= low_52w) AS names_at_extreme
FROM extremes
GROUP BY session_date
HAVING names_at_extreme > 0
)
SELECT session_date AS date,
formatDateTimeInJodaSyntax(session_date, 'MMM d') AS session_label,
new_highs,
new_lows
FROM daily
ORDER BY session_dateตลอด 77 ช่วงการซื้อขาย จำนวนทั้งสองแทบไม่เพิ่มขึ้นพร้อมกัน ในวันที่ Jul 29 ซึ่งเป็นช่วงการซื้อขายสุดท้ายของกรอบข้อมูล หุ้นจำนวน 3 จากทั้งหมด 40 ตัวปิดตลาดที่จุดสูงสุดใหม่ในรอบ 52 สัปดาห์ และหุ้นจำนวน 0 ตัวปิดตลาดที่จุดต่ำสุดใหม่ ในวันที่ Apr 1 ซึ่งเป็นช่วงการซื้อขายแรก สัดส่วนดังกล่าวคือจุดสูงสุดใหม่ 1 ตัว เทียบกับจุดต่ำสุดใหม่ 1 ตัว หุ้นที่เหลือในกลุ่มอยู่ภายในกรอบราคาของตัวเองและไม่ถูกนำมาคำนวณ
ค่า High-Low Index ระดับใดจึงถือว่าดี
ระดับ 50 เป็นจุดกึ่งกลาง โดยจำนวนจุดสูงสุดและจุดต่ำสุดอยู่ในภาวะสมดุล ระดับแข็งแกร่งตามเกณฑ์ทั่วไปคือ 70 ซึ่งหมายถึงจำนวนจุดสูงสุดใหม่มากกว่าจุดต่ำสุดใหม่ในอัตรามากกว่าสองต่อหนึ่งตลอดค่าเฉลี่ย 10 วัน ระดับอ่อนแอตามเกณฑ์ทั่วไปคือ 30 ซึ่งเป็นภาพตรงกันข้าม ช่วงระหว่าง 30 ถึง 70 สะท้อนว่าจุดสุดขั้วของตลาดมีทั้งด้านแข็งแกร่งและอ่อนแอ ซึ่งเป็นช่วงที่ดัชนีอยู่ meast of the time
แผงข้อมูลด้านล่างแสดง Record High Percent รายวันเทียบกับค่าเฉลี่ยเคลื่อนที่ 10 วันของตัวชี้วัดเดียวกัน สำหรับกลุ่มหุ้นเดียวกัน ความล่าช้าจะแสดงให้เห็นบนกราฟแทนการอธิบายด้วยข้อความ
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH daily_close AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','AVGO','JPM','JNJ','XOM','PG',
'KO','PEP','WMT','HD','CVX','MRK','PFE','ABBV','CSCO','ORCL',
'CRM','ADBE','MCD','NKE','VZ','T','DIS','BA','CAT','GE',
'IBM','MMM','UNH','LLY','COST','TGT','SBUX','GS','MS','LIN')
AND window_start >= toDateTime('2025-03-01 00:00:00')
AND window_start < toDateTime('2026-08-01 05:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, session_date
),
extremes AS (
SELECT cur.ticker AS ticker,
cur.session_date AS session_date,
cur.close_px AS close_px,
max(hist.close_px) AS high_52w,
min(hist.close_px) AS low_52w
FROM daily_close AS cur
INNER JOIN daily_close AS hist ON cur.ticker = hist.ticker
WHERE cur.session_date >= toDate('2026-04-01')
AND hist.session_date <= cur.session_date
AND hist.session_date > cur.session_date - 364
GROUP BY cur.ticker, cur.session_date, cur.close_px
),
daily AS (
SELECT session_date,
countIf(close_px >= high_52w) AS new_highs,
countIf(close_px >= high_52w) + countIf(close_px <= low_52w) AS names_at_extreme
FROM extremes
GROUP BY session_date
HAVING names_at_extreme > 0
),
rhp AS (
SELECT session_date,
round(100 * new_highs / names_at_extreme, 1) AS record_high_pct
FROM daily
),
smoothed AS (
SELECT session_date,
record_high_pct,
round(avg(record_high_pct) OVER (ORDER BY session_date
ROWS BETWEEN 9 PRECEDING AND CURRENT ROW), 1) AS high_low_index_pct,
count() OVER (ORDER BY session_date
ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) AS sessions_in_window
FROM rhp
)
SELECT session_date AS date,
formatDateTimeInJodaSyntax(session_date, 'MMM d') AS session_label,
record_high_pct,
high_low_index_pct
FROM smoothed
WHERE sessions_in_window = 10
ORDER BY session_dateช่วงข้อมูลที่แสดงเริ่มต้นด้วย Record High Percent ที่ 100 ในวันที่ Apr 15 ขณะที่ดัชนีอยู่ที่ 52.5 และสิ้นสุดที่ 100 ในวันที่ Jul 29 โดยดัชนีอยู่ที่ 64 ให้อ่านค่าแต่ละค่าร่วมกับระดับ 70 และ 30 และมองระยะห่างระหว่างเส้นทั้งสองเป็นต้นทุนของการทำให้ข้อมูลราบเรียบ ในแต่ละวัน ค่าเฉลี่ยยังคงรวมข้อมูลจากช่วงการซื้อขายเก่าอีกเก้าช่วงไว้ด้วย ช่วงการซื้อขายเก้าช่วงแรกของกรอบข้อมูลไม่แสดงในแผงนี้ เนื่องจากค่าเฉลี่ย 10 วันต้องใช้ข้อมูล 10 วัน
ตัวหารไม่รวมตลาดส่วนใหญ่
นี่คือข้อจำกัดที่ควรจดจำ ตัวหารของ Record High Percent คือจำนวนจุดสูงสุดใหม่บวกจำนวนจุดต่ำสุดใหม่ และไม่มีองค์ประกอบอื่น หุ้นที่อยู่ตรงกลางของกรอบราคา 52 สัปดาห์จะไม่อยู่ทั้งในตัวเศษและตัวหาร ดัชนีจึงแยกไม่ออกระหว่างช่วงการซื้อขายที่หุ้น 900 ตัวจากทั้งหมด 3,000 ตัวทำจุดสุดขั้ว กับช่วงที่มีเพียง 9 ตัว และจะแสดงทั้งสองกรณีด้วยตัวเลขสองหลักที่ดูมั่นใจเท่ากัน
ลองนึกถึงตลาดที่มีหุ้น 6,000 ตัวในช่วงการซื้อขายที่ซบเซาในเดือนสิงหาคม หุ้น 40 ตัวทำจุดสูงสุดใหม่ และ 20 ตัวทำจุดต่ำสุดใหม่ Record High Percent เท่ากับ 40 หารด้วย 60 หรือ 66.7 ซึ่งดูเหมือนตลาดปรับตัวขึ้นในวงกว้าง แต่ค่านี้คำนวณจากหุ้นเพียง 1% ของทั้งหมด หุ้นอีก 5,940 ตัวไม่มีส่วนร่วมในการคำนวณ
กลุ่มหุ้น 40 ตัวทำให้ข้อจำกัดดังกล่าวเห็นเป็นจำนวนที่ตรวจสอบได้ ทุกช่วงการซื้อขายในกรอบข้อมูลถูกจัดเข้ากลุ่มตามจำนวนหุ้นที่ทำจุดสุดขั้วไม่ว่าจะเป็นด้านใด
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH daily_close AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','AVGO','JPM','JNJ','XOM','PG',
'KO','PEP','WMT','HD','CVX','MRK','PFE','ABBV','CSCO','ORCL',
'CRM','ADBE','MCD','NKE','VZ','T','DIS','BA','CAT','GE',
'IBM','MMM','UNH','LLY','COST','TGT','SBUX','GS','MS','LIN')
AND window_start >= toDateTime('2025-03-01 00:00:00')
AND window_start < toDateTime('2026-08-01 05:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, session_date
),
extremes AS (
SELECT cur.ticker AS ticker,
cur.session_date AS session_date,
cur.close_px AS close_px,
max(hist.close_px) AS high_52w,
min(hist.close_px) AS low_52w
FROM daily_close AS cur
INNER JOIN daily_close AS hist ON cur.ticker = hist.ticker
WHERE cur.session_date >= toDate('2026-04-01')
AND hist.session_date <= cur.session_date
AND hist.session_date > cur.session_date - 364
GROUP BY cur.ticker, cur.session_date, cur.close_px
),
daily AS (
SELECT session_date,
countIf(close_px >= high_52w) AS new_highs,
countIf(close_px >= high_52w) + countIf(close_px <= low_52w) AS names_at_extreme
FROM extremes
GROUP BY session_date
HAVING names_at_extreme > 0
)
SELECT multiIf(names_at_extreme <= 3, '1 to 3 names',
names_at_extreme <= 9, '4 to 9 names',
'10 or more names') AS sample_size_bucket,
count() AS readings,
round(avg(names_at_extreme), 1) AS avg_names_in_denominator,
round(quantileDeterministic(0.5)(100 * new_highs / names_at_extreme,
cityHash64(session_date)), 1) AS median_record_high_pct,
round(quantileDeterministic(0.5)(abs(100 * new_highs / names_at_extreme - 50),
cityHash64(session_date)), 1) AS median_distance_from_50
FROM daily
GROUP BY sample_size_bucket
ORDER BY avg_names_in_denominatorในช่วงการซื้อขาย 39 ช่วงของกลุ่ม 1 to 3 names ค่าทั้งหมดอิงกับจำนวนหุ้นเฉลี่ย 2 ตัวจากทั้งหมด 40 ตัว ช่วงดังกล่าวมีค่ามัธยฐานของ Record High Percent ที่ 100 และอยู่ห่างจากระดับ 50 เป็นค่ามัธยฐาน 50 จุด ส่วนช่วงการซื้อขาย 10 or more names ช่วง ซึ่ง 1 ช่วงมีจำนวนหุ้นเฉลี่ย 10 ตัว มีค่ามัธยฐานที่ 70 และอยู่ห่างจากระดับกึ่งกลาง 20 จุด
ลักษณะของการคำนวณยังจำกัดค่าที่ช่วงการซื้อขายซึ่งมีหุ้นเข้าร่วมเพียงเล็กน้อยจะแสดงได้ หากมีหุ้นสามตัวอยู่ที่จุดสุดขั้ว ค่าที่เป็นไปได้มีเพียง 0, 33.3, 66.7 และ 100 หากมีหุ้นสองตัว ค่าที่เป็นไปได้มีเพียง 0, 50 และ 100 ค่า 66.7 ที่สร้างจากหุ้นทำจุดสูงสุดใหม่สองตัวและจุดต่ำสุดใหม่หนึ่งตัว มีจุดทศนิยมที่ขนาดกลุ่มตัวอย่างไม่เพียงพอจะรองรับ วิธีแก้คืออ่านจำนวนจุดสูงสุดและจุดต่ำสุดจริงควบคู่กับดัชนี และอย่าอ่านดัชนีเพียงอย่างเดียว
Breadth ของตลาด: High-Low Index เทียบกับ advance/decline
ตัวชี้วัดทั้งสองถามว่ามีหุ้นกี่ตัวที่มีส่วนร่วม แต่ใช้ช่วงเวลาต่างกัน breadth แบบ advance/decline นับหุ้นทุกตัวที่ปิดตลาดปรับขึ้นหรือลงเมื่อเทียบกับวันก่อนหน้า ตัวหารคือหุ้นทั้ง universe และตัวชี้วัดอธิบายทิศทางของหนึ่งวัน ส่วน High-Low Index นับเฉพาะหุ้นที่อยู่ที่จุดสุดขั้วของรอบ 52 สัปดาห์ ตัวหารจึงมีขนาดเล็ก และตัวชี้วัดอธิบายตำแหน่งของราคาเมื่อเทียบกับประวัติหนึ่งปี ตลาดอาจปรับตัวขึ้นอย่างกว้างขวางในวันนั้น ขณะที่มีหุ้นเพียงไม่กี่ตัวที่เข้าใกล้จุดสูงสุดใหม่ในรอบ 52 สัปดาห์
แผงข้อมูลด้านล่างทำให้ตัวชี้วัดทั้งสองเป็นค่าเฉลี่ยในช่วง 10 ช่วงการซื้อขายเดียวกัน และใช้กลุ่มหุ้นเดียวกัน เพื่อให้อยู่บนสเกลเดียวกัน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH daily_close AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','AVGO','JPM','JNJ','XOM','PG',
'KO','PEP','WMT','HD','CVX','MRK','PFE','ABBV','CSCO','ORCL',
'CRM','ADBE','MCD','NKE','VZ','T','DIS','BA','CAT','GE',
'IBM','MMM','UNH','LLY','COST','TGT','SBUX','GS','MS','LIN')
AND window_start >= toDateTime('2025-03-01 00:00:00')
AND window_start < toDateTime('2026-08-01 05:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, session_date
),
extremes AS (
SELECT cur.ticker AS ticker,
cur.session_date AS session_date,
cur.close_px AS close_px,
max(hist.close_px) AS high_52w,
min(hist.close_px) AS low_52w
FROM daily_close AS cur
INNER JOIN daily_close AS hist ON cur.ticker = hist.ticker
WHERE cur.session_date >= toDate('2026-04-01')
AND hist.session_date <= cur.session_date
AND hist.session_date > cur.session_date - 364
GROUP BY cur.ticker, cur.session_date, cur.close_px
),
daily AS (
SELECT session_date,
countIf(close_px >= high_52w) AS new_highs,
countIf(close_px >= high_52w) + countIf(close_px <= low_52w) AS names_at_extreme
FROM extremes
GROUP BY session_date
HAVING names_at_extreme > 0
),
prior AS (
SELECT ticker,
session_date,
close_px,
lagInFrame(close_px, 1) OVER (PARTITION BY ticker ORDER BY session_date
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM daily_close
),
breadth AS (
SELECT session_date,
round(100 * countIf(close_px > prev_close) / count(), 1) AS advancing_pct
FROM prior
WHERE session_date >= toDate('2026-04-01')
AND prev_close > 0
GROUP BY session_date
HAVING count() >= 20
),
combined AS (
SELECT d.session_date AS session_date,
round(100 * d.new_highs / d.names_at_extreme, 1) AS record_high_pct,
b.advancing_pct AS advancing_pct
FROM daily AS d
INNER JOIN breadth AS b ON d.session_date = b.session_date
),
smoothed AS (
SELECT session_date,
round(avg(record_high_pct) OVER (ORDER BY session_date
ROWS BETWEEN 9 PRECEDING AND CURRENT ROW), 1) AS high_low_index_pct,
round(avg(advancing_pct) OVER (ORDER BY session_date
ROWS BETWEEN 9 PRECEDING AND CURRENT ROW), 1) AS advancing_pct_10d,
count() OVER (ORDER BY session_date
ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) AS sessions_in_window
FROM combined
)
SELECT session_date AS date,
formatDateTimeInJodaSyntax(session_date, 'MMM d') AS session_label,
high_low_index_pct,
advancing_pct_10d
FROM smoothed
WHERE sessions_in_window = 10
ORDER BY session_dateคู่ตัวชี้วัดเริ่มต้นช่วงข้อมูลที่ 52.5 สำหรับ High-Low Index และ 52.8 สำหรับสัดส่วนหุ้นปรับขึ้นเฉลี่ย 10 วัน ในวันที่ Apr 15 และสิ้นสุดที่ 64 และ 52.5 ในวันที่ Jul 29 รวมทั้งหมด 68 ช่วงการซื้อขายที่แสดง สัดส่วนหุ้นปรับขึ้นอยู่ในกรอบแคบ โดยทั่วไปหุ้นประมาณครึ่งหนึ่งของกลุ่มจะปิดตลาดสูงขึ้น และเมื่อเฉลี่ย 10 ค่า เส้นจึงอยู่ใกล้กึ่งกลางของสเกล High-Low Index ไม่มีจุดยึดเช่นนั้น หากไม่มีหุ้นในกลุ่มทำจุดต่ำสุดใหม่ในรอบ 52 สัปดาห์ติดต่อกัน 10 ช่วงการซื้อขาย ค่ารายวันทุกค่าจะเท่ากับ 100 และค่าเฉลี่ยก็จะเท่ากับ 100 เช่นกัน
การอ่าน breadth จะมีประโยชน์มากขึ้นเมื่อพิจารณาร่วมกับตัวชี้วัดการมีส่วนร่วม ปริมาณการซื้อขายสัมพัทธ์ ใช้ตรวจว่าหุ้นตัวใดมีการซื้อขายหนาแน่นผิดปกติเมื่อเทียบกับระดับปกติของตัวเองในวันนี้ หุ้นที่ปรับตัวมากที่สุดของสัปดาห์ แสดงว่าหุ้นตัวใดเคลื่อนไหวจริง และ หุ้นที่มีปริมาณการซื้อขายผิดปกติในสัปดาห์นี้ แสดงว่าการซื้อขายเกิดขึ้นที่ใด
คำถามที่พบบ่อยเกี่ยวกับ High-Low Index
ค่า High-Low Index ที่สูงกว่า 70 หมายถึงอะไร
หมายถึงจำนวนจุดสูงสุดใหม่ในรอบ 52 สัปดาห์มากกว่าจำนวนจุดต่ำสุดใหม่ในรอบ 52 สัปดาห์ในอัตรามากกว่าสองต่อหนึ่ง โดยคำนวณจากค่าเฉลี่ยของ 10 ช่วงการซื้อขายล่าสุด นี่คือเกณฑ์ทั่วไปที่ใช้ระบุภาวะตลาดแข็งแกร่ง แต่ไม่ได้บอกว่ามีหุ้นกี่ตัวที่ทำจุดสุดขั้วเลย จึงต้องตรวจสอบจำนวนดังกล่าวควบคู่กัน
Record High Percent แตกต่างจาก High-Low Index อย่างไร
Record High Percent คือค่าของช่วงการซื้อขายเดียว โดยคำนวณจากจำนวนจุดสูงสุดใหม่หารด้วยจำนวนจุดสูงสุดใหม่บวกจุดต่ำสุดใหม่ แล้วคูณด้วย 100 ส่วน High-Low Index คือค่าเฉลี่ยเคลื่อนที่แบบธรรมดา 10 วันของตัวเลขดังกล่าว ตัวแรกอธิบายวันนี้ ส่วนตัวหลังอธิบายช่วงสองสัปดาห์ล่าสุด
High-Low Index สามารถอยู่ที่ 0 หรือ 100 ได้หรือไม่
ได้ หากไม่มีหุ้นใน universe ทำจุดต่ำสุดใหม่ในรอบ 52 สัปดาห์ติดต่อกัน 10 ช่วงการซื้อขาย ค่ารายวันทุกค่าจะเท่ากับ 100 และค่าเฉลี่ยก็จะเท่ากับ 100 เช่นกัน หากไม่มีหุ้นทำทั้งจุดสูงสุดใหม่หรือจุดต่ำสุดใหม่ เศษส่วนจะมีตัวหารเป็นศูนย์ และช่วงการซื้อขายนั้นจะไม่มีค่าที่กำหนดได้
High-Low Index เหมือนกับ breadth แบบ advance/decline หรือไม่
ไม่เหมือนกัน breadth แบบ advance/decline หารด้วยหุ้นทั้ง universe และอธิบายทิศทางของวันเดียว ส่วน High-Low Index หารด้วยกลุ่มหุ้นขนาดเล็กที่อยู่ที่จุดสุดขั้วของรอบ 52 สัปดาห์ และอธิบายตำแหน่งของราคาเมื่อเทียบกับราคาตลอดหนึ่งปี
โดยทั่วไปตัวหารของ High-Low Index มีหุ้นกี่ตัว
สำหรับกลุ่มหุ้น 40 ตัวที่วัดระหว่างเดือนเมษายนถึงกรกฎาคม 2026 ช่วงการซื้อขายในกลุ่ม 1 to 3 names มีหุ้นในตัวหารเฉลี่ย 2 ตัว จำนวนหุ้นทั้งตลาดจะมากกว่าในเชิงตัวเลข แต่ยังเป็นเพียงสัดส่วนเล็กเมื่อเทียบกับหุ้นทั้งหมดที่จดทะเบียน นี่คือเหตุผลที่ควรแสดงจำนวนจริงไว้บนหน้าจอถัดจากดัชนี
จำนวนทั้งหมดในหน้านี้มาจาก query ที่จัดเก็บและมีการควบคุมเวอร์ชัน โดยใช้ราคาปิดตลาด เปิดแผงข้อมูลใดก็ได้เพื่ออ่าน SQL ที่อยู่เบื้องหลัง หรือสร้างชุดข้อมูล breadth แบบเดียวกันใหม่บนกลุ่มหุ้นที่คุณเลือกเองใน Strasmore terminal