Edges
Intraday Relative Volume: เกณฑ์มาตรฐานที่เกือบทุกคนเข้าใจผิด
Intraday relative volume เกือบจะถูกคำนวณในรูปแบบเดียวกันเสมอ — นั่นคือวอลุ่มของแท่งปัจจุบันเทียบกับค่าเฉลี่ยของ 20 แท่งล่าสุด — และวิธีการนั้นผิดด้วยเหตุผลที่ไม่ได้เกี่ยวข้องกับตลาดเลย วอลุ่มมีรูปแบบรายวันที่ตายตัว การวัดแท่งหนึ่งเทียบกับเพื่อนบ้านที่อยู่ติดกัน ส่วนใหญ่เป็นการวัดว่า ตอนนี้เป็นเวลาเท่าไหร่ ไม่ใช่การวัดว่ามีอะไรเกิดขึ้นหรือไม่
นี่คือแท่งเทียนเดียวกัน บนกราฟเดียวกัน ซึ่งถูกอ่านสองวิธีในเวลาเดียวกัน:
ตัวเลขทั้งสองถูกต้องตามหลักคณิตศาสตร์ แต่มันไม่ตรงกันเพราะมันตอบคำถามที่แตกต่างกัน — และมีเพียงคำถามเดียวเท่านั้นที่เป็นสิ่งที่คุณต้องการจะถามจริงๆ
วอลุ่มมีรูปแบบ และค่าเฉลี่ยย้อนหลังกำลังยืนอยู่ภายในรูปแบบนั้น
เราได้ดึงข้อมูล แท่งเทียน 1 นาทีของ SPY ในช่วงเวลาซื้อขายปกติ จำนวน 500 เซสชัน — ตั้งแต่วันที่ 3 กันยายน 2024 ถึง 31 สิงหาคม 2026 รวม 195,000 แท่ง — และหาค่ามัธยฐาน (median) ของวอลุ่มในทุกๆ นาทีตามเวลาจริง
ผลลัพธ์ที่ได้คือแผงด้านล่าง บนแท่งเทียน ปกติ — ที่ไม่มีอะไรเกิดขึ้น เป็นนาทีที่มีวอลุ่มระดับมัธยฐานสำหรับเวลานั้นของวัน — วิธีการคำนวณแบบย้อนหลัง 20 แท่ง จะอ่านค่าได้ว่า:
| เวลาของวัน | การอ่านแบบ Naive บนแท่งปกติ | การอ่านตามเวลาของวัน (Time-of-day) |
|---|---|---|
| กลางเซสชัน (12:00–14:00) | 0.76 – 0.82× | 0.98 – 1.00× |
| ช่วงใกล้ปิดตลาด (15:55) | 2.18× | 0.99× |
| ตลอดทั้งเซสชัน | แกว่งระหว่าง 0.76 → 2.18 | คงที่อยู่ที่ 0.96 – 1.00 |
เส้นฐาน (baseline) ที่ถูกต้องจะต้องอ่านค่าได้ประมาณ 1.0 บนแท่งเทียนทั่วไปในทุกช่วงเวลาของวัน ซึ่งเวอร์ชัน Time-of-day ทำได้ แต่เวอร์ชันค่าเฉลี่ยย้อนหลังกลับเรียกแท่งเวลา 15:55 ที่ไม่มีอะไรพิเศษเลยว่า "มากกว่าปกติสองเท่า" และเรียกแท่งกลางวันที่ผิดปกติจริงๆ ว่าเป็นเรื่องธรรมดา
วิธีคำนวณ Intraday Relative Volume อย่างถูกต้อง
สามขั้นตอน และขั้นตอนที่สามนั้นมีความสำคัญมากกว่าที่เห็น
ขั้นตอนที่สามคือสิ่งที่แยกการวัดผลจริงออกจากสิ่งลวงตาของการทำ backtest หากค่าพื้นฐาน (baseline) ของคุณรวมเซสชันที่คุณกำลังวัดผลอยู่ — หรือแย่กว่านั้นคือรวมประวัติทั้งหมดรวมถึงอนาคตเข้าไปด้วย — คุณได้สร้างบางสิ่งที่ดูยอดเยี่ยมในการรีวิวแต่ไม่สามารถเกิดขึ้นจริงในการเทรดสดได้ ทุกตัวเลขในบทความนี้ใช้ ค่ามัธยฐานย้อนหลัง 20 เซสชันของนาทีนั้น โดยไม่รวมวันปัจจุบัน
ลองทดสอบกับเส้นกราฟจริง:
แล้วการอ่านค่าที่แก้ไขแล้วทำให้การเข้าเทรดแบบ sweep ได้ผลหรือไม่?
นี่คือส่วนที่เราให้ความสำคัญ และเป็นจุดที่เราต้องระมัดระวัง เพราะการวัดผลที่ดีขึ้นไม่ได้หมายความว่าจะนำไปสู่การเทรดที่ดีขึ้นโดยอัตโนมัติ
รูปแบบ (setup) ที่กำลังถูกทดสอบคือรูปแบบที่ปรากฏซ้ำๆ บนกราฟเหมือนตัวอย่าง SPX ด้านบน: ราคาบีบตัว (coil) จากนั้นมีแท่งเทียนที่ sweep จุดต่ำสุดของช่วงบีบตัวและปิดกลับเข้ามาด้านใน — โดยมีปริมาณการซื้อขาย (volume) ที่ผิดปกติสำหรับนาทีนั้น เราได้กำหนดรูปแบบนี้ในเชิงกลไกและประกาศไว้ล่วงหน้าก่อนที่จะเริ่มรันการทดสอบใดๆ:
consolidation 20-bar range in the bottom 40% of normal for that clock minute
sweep bar's low breaks the prior 20-bar low AND closes back above it
volume RVOL (time-of-day) >= 1.3 on the sweep bar
entry the sweep bar's close
stop beyond the sweep bar's low
horizon 60 minutes, path-ordered, STOP CHECKED FIRST
จากแท่งเทียนที่เป็นผู้สมัครทั้งหมด 168,000 แท่ง พบการสะสมราคา (consolidation) เกิดขึ้น 17.5%, เกิดการ sweep 5.4%, และเกิดทั้งสองอย่างรวมกัน 1.0% — หรือประมาณหนึ่งสัญญาณทุกๆ สองเซสชัน ก่อนที่จะใช้ตัวกรองปริมาณการซื้อขาย
ผลลัพธ์
การตั้งค่าแบบเต็มรูปแบบให้ผลตอบแทน −0.109 R ต่อการเทรดก่อนหักค่าใช้จ่าย และช่วงความเชื่อมั่น (interval) อยู่ต่ำกว่าศูนย์ นี่ไม่ใช่ความได้เปรียบเพียงเล็กน้อย แต่มันคือการขาดทุนเล็กน้อย
และการเปรียบเทียบที่ตัดสินเรื่องนี้ได้อย่างเด็ดขาด คือการตั้งค่าที่เหมือนกันทุกประการแต่ใช้เงื่อนไขปริมาณการซื้อขาย (volume) แบบ ตรงกันข้าม:
| Setup | n | E(R) | 95% interval | Win |
|---|---|---|---|---|
| Consolidation + sweep, loud (≥1.3×) | 356 | −0.109 | −0.212 … −0.006 | 44.7% |
| Consolidation + sweep, quiet (<1.0×) | 978 | −0.099 | −0.161 … −0.037 | 44.9% |
| Consolidation + sweep, any volume | 1,611 | −0.104 | −0.152 … −0.056 | 44.7% |
| Sweep alone, no consolidation filter | 9,014 | −0.075 | −0.096 … −0.054 | 46.3% |
| Random entry, same minute, same stop | 355 | −0.142 | −0.244 … −0.040 | 43.1% |
ทั้ง loud sweeps และ quiet sweeps ให้ผลลัพธ์แบบเดียวกัน หากปริมาณการซื้อขายที่ผิดปกติมีข้อมูลซ่อนอยู่ มันควรจะปรากฏในแถวนั้น แต่มันไม่มี
และความสัมพันธ์นี้ก็ไม่ได้ซ่อนอยู่ในส่วนปลาย (tails)
หากแท่งเทียนที่ loud มีความสำคัญ ค่าความคาดหวัง (expectancy) ควรจะดีขึ้นเมื่อ volume เพิ่มขึ้น แต่มันไม่เป็นเช่นนั้น และกลุ่มที่ loud ที่สุดกลับให้ผลลัพธ์ที่แย่ที่สุด:
| RVOL (time-of-day) on the sweep bar | n | E(R) | Reached ≥2R |
|---|---|---|---|
| under 0.8× | 648 | −0.071 | 16.2% |
| 0.8 – 1.0× | 330 | −0.155 | 11.5% |
| 1.0 – 1.3× | 277 | −0.114 | 13.0% |
| 1.3 – 1.8× | 182 | −0.126 | 11.5% |
| 1.8 – 3.0× | 113 | −0.062 | 8.8% |
| over 3× | 61 | −0.145 | 4.9% |
ผลลัพธ์แบบ "break hard" ที่เรากำลังมองหาโดยเฉพาะ ซึ่งก็คือการวิ่งไปถึง 2R ภายในหนึ่งชั่วโมง กลับเกิดขึ้น น้อยลง หลังจากเกิด loud sweeps มากที่สุด ไม่ใช่มากขึ้น
ทุกรูปแบบที่เราลอง รวมถึงรูปแบบที่ควรจะได้ผล
เราไม่ได้หยุดเพียงแค่ค่า null แรก แต่ละรายการเหล่านี้คือความพยายามที่จะกู้คืนไอเดียโดยการทำให้การตั้งค่า (setup) เข้มงวดขึ้น ในแบบที่เทรดเดอร์ที่ใช้ดุลยพินิจ (discretionary trader) ทำจริง ๆ:
| Variant | n | E(R) | 95% interval |
|---|---|---|---|
| Base: consolidation + sweep + loud | 356 | −0.109 | ±0.103 |
| + closed in the top 40% of the bar (a real wick) | 207 | −0.105 | ±0.134 |
| + closed back above session VWAP | 253 | −0.062 | ±0.122 |
| + real wick and above VWAP | 143 | −0.096 | ±0.161 |
| + restricted to 10:00–11:30 | 63 | −0.111 | ±0.247 |
จากนั้นคือจุดออก (exits) โดยกำหนดจุดเข้าให้คงที่:
| Exit on the same 356 signals | E(R) | Win |
|---|---|---|
| Target 1R, stop 1R | −0.109 ±0.103 | 44.7% |
| Target 2R, stop 1R | −0.112 ±0.141 | 30.1% |
| Trail 1R | +0.036 ±0.145 | 36.2% |
| Hold 60 bars, stop only | −0.370 ±0.261 | 11.2% |
ลองสำรวจการผสมผสานต่าง ๆ ด้วยตัวคุณเอง — รวมถึงสิ่งที่เราไม่ได้รัน ซึ่งเครื่องมือจะแจ้งว่าไม่สามารถตอบได้:
สิ่งนี้หักล้างอะไร และสิ่งใดที่ไม่ได้หักล้าง
เราอนุญาตให้ตัวเองเผยแพร่ทุกสิ่งที่ได้รับผลลัพธ์กลับมา ดังนั้น นี่คือขอบเขตที่แท้จริงของข้อกล่าวอ้างนี้
สิ่งที่การศึกษานี้ "ตัดออก" (Rule out)
การเข้าเทรดแบบ Mechanical บนแท่งเทียน 1 นาทีของ SPY — การเกิด coil, การ sweep low, การปิดกลับเข้ามาด้านใน, โดยมีวอลุ่มสูงผิดปกติสำหรับนาทีนั้น — ไม่ได้สร้างค่าคาดหวัง (expectancy) ที่เป็นบวกตลอด 500 เซสชัน ไม่ว่าจะใช้จุดออก (exit) ใดใน 4 แบบที่ทดสอบ, ไม่ว่าจะใช้ระดับความเข้มงวดใดใน 5 แบบที่ทดสอบ, และในวอลุ่ม bucket ใดก็ตามจาก 6 แบบ ด้วยค่า n = 356 และส่วนเบี่ยงเบนมาตรฐานต่อการเทรดใกล้เคียง 1R กลุ่มตัวอย่างนี้จึงตัดผลกระทบที่ใหญ่กว่าประมาณ ±0.1R ออกไป เวอร์ชันของ setup นี้ที่มักจะถูกสอนกันว่า — "รอให้เกิดกับดัก (trap), ยืนยันด้วยวอลุ่มที่พุ่งสูง (volume spike), แล้วเทรดกลับตัว (reversal)" — ไม่ได้รับการสนับสนุนในระดับผลตอบแทนตามที่มักจะมีการกล่าวอ้างกัน และนี่ยังไม่ได้รวมต้นทุนเข้าไปด้วย ซึ่งหากรวม spread เข้าไป จะยิ่งทำให้ทุกช่องผลลัพธ์ขยับไปทางซ้าย (แย่ลง) ยิ่งขึ้น
สิ่งที่การศึกษานี้ "ไม่ได้ตัดออก" (NOT rule out)
การศึกษานี้ไม่สามารถตัดความเป็นไปได้ที่มีผลกระทบจริงขนาดเล็กซ่อนอยู่ในช่วงช่วงเวลา (intervals) ได้ มันทดสอบเครื่องมือเพียงชนิดเดียว ในไทม์เฟรมเดียว ด้วยนิยามแบบ mechanical เพียงแบบเดียว — และนิยามแบบ mechanical มักจะเป็นเพียงภาพจำลองที่หยาบๆ ของสิ่งที่เทรดเดอร์สาย discretionary ทำ ตัวอย่าง SPX ของเรามีบริบท (context) ที่โค้ดนี้ไม่เคยเห็น: การ sweep เกิดขึ้นใต้ slow cloud, ราคาดึงกลับมาเหนือ session VWAP ภายในไม่กี่นาที และวันนั้นราคาก็วิ่งเป็นเทรนด์ต่อไป เงื่อนไขเหล่านั้นเป็นเรื่องจริงและไม่ได้ถูกทดสอบที่นี่ นอกจากนี้ มันยังไม่ได้กล่าวถึงเครื่องมืออื่นๆ ไทม์เฟรมอื่นๆ หรือการใช้ sweep เพื่อเป็นจุดออกแทนที่จะเป็นจุดเข้า
แล้ววอลุ่มสัมพัทธ์ (Relative Volume) มีไว้เพื่ออะไรกันแน่?
การวัดค่านี้มีค่าควรแก่การปรับปรุงให้ถูกต้อง แม้ว่ากลยุทธ์การเข้าเทรดจะไม่รอดจากการทดสอบ — เพราะการอ่านค่าที่ถูกต้องคือ การคำบรรยาย (description) ที่ซื่อสัตย์ และการคำบรรยายคือสิ่งที่มันทำได้ดีเสมอมา
| ใช้สำหรับสิ่งนี้ | ไม่ใช้สำหรับสิ่งนี้ | |
|---|---|---|
| การอ่าน (Reading) | การทดสอบระดับนี้มีความหนาแน่นหรือถูกละเลย? | — |
| บริบท (Context) | เซสชันวันนี้มีส่วนร่วม หรือว่ากำลังลอยตัว (drifting)? | — |
| การกำหนดขนาด (Sizing) | ระดับที่ถูกทดสอบด้วยวอลุ่ม 3 เท่า สมควรได้รับจุด stop ที่กว้างขึ้น | — |
| การวิเคราะห์หลังเหตุการณ์ (Post-mortem) | ฉันอยู่ในการเคลื่อนที่จริงหรือการเคลื่อนที่ที่ว่างเปล่า? | — |
| จุดกระตุ้น (Trigger) | — | "วอลุ่มพุ่งสูงขึ้น ดังนั้นจึงเข้าเทรด" |
| การยืนยัน (Confirmation) | — | การเพิ่มมันเข้าไปใน setup ที่ไม่มีความได้เปรียบ (edge) |
| การจัดลำดับ (Ranking) | — | การเปรียบเทียบค่าอ่านตอน 15:55 กับ 12:30 ด้วยวิธีแบบ naive |
| การคาดการณ์ (Prediction) | — | การคาดหวังว่าแท่งเทียนขนาดใหญ่จะตามมาด้วยการเคลื่อนที่ครั้งใหญ่ |
ซึ่งสอดคล้องกับการแบ่งหน้าที่ที่เราใช้ในทุกๆ ที่: บริบท (context) บอกทิศทาง, ตำแหน่ง (location) บอกว่าที่ไหน, โครงสร้าง (structure) บอกว่าควรทำหรือไม่ และแท่งเทียนบอกว่าเมื่อไหร่ — ซึ่งเป็นลำดับขั้นตอนที่เราทำใน รายการตรวจสอบการเข้าเทรดแบบ scalp โดยที่วอลุ่มจะอยู่ในชั้นของการยืนยัน (confirmation layer) แทนที่จะเป็นชั้นของตัวจุดชนวน (trigger layer) หากคุณต้องการให้การตัดสินใจขึ้นอยู่กับบางสิ่งที่วัดผลได้ ขอบเขต (boundary) นั้นเป็นจุดยึดที่ดีกว่าตัวแท่งเทียนที่สัมผัสมัน — ดู ทำไมราคาถึงกลับตัวที่ระดับสำคัญ
บทสรุป
- แก้ไขการวัดผล เปรียบเทียบบาร์กับนาทีเดียวกันของนาฬิกาจากเซสชันก่อนหน้า โดยใช้ค่ามัธยฐาน (median) และไม่รวมวันนี้ สิ่งอื่นใดนอกจากนี้ถือเป็นเรื่องของนาฬิกาเพียงบางส่วน
- คาดการณ์ว่าการอ่านค่าทั้งสองจะไม่ตรงกัน — ซึ่งเกิดขึ้นใน 22.8% ของบาร์ และค่าสหสัมพันธ์ดิบ (raw correlation) ระหว่างทั้งสองคือ 0.05
- อย่าเลื่อนระดับให้เป็นตัวจุดชนวน (trigger) จาก 500 เซสชัน การเข้าเทรดแบบ coil-and-sweep เวอร์ชันเสียงดัง (loud version) ให้ผลตอบแทน −0.109 R และเวอร์ชันเงียบ (quiet version) ให้ผลตอบแทน −0.099 R เงื่อนไขด้านปริมาณการซื้อขาย (volume) ไม่สามารถแยกความแตกต่างระหว่างสองสิ่งนี้ได้
- ให้ความสำคัญกับจุดออก (exit) แทน ซึ่งส่งผลต่อตัวเลขมากกว่าตัวกรองการเข้าเทรด (entry filter) ทุกตัวที่ทดสอบรวมกัน
- ใช้มันเพื่อการอ่านค่าต่อไป การรู้ว่าบาร์หนึ่งมีขนาดเป็น 138% ของเวลา 10:59 ปกติ คือข้อมูลจริงเกี่ยวกับว่าใครเข้ามามีส่วนร่วมบ้าง แต่มันไม่ใช่เหตุผลในการคลิกสั่งซื้อขาย