อินดิเคเตอร์สำหรับการ Scalping เป็นเครื่องมือที่ถูกสร้างขึ้นมาโดยเฉพาะเพื่อวัดว่าราคามีการเคลื่อนที่เร็วเพียงใด และสภาพตลาดปัจจุบันมีข้อได้เปรียบ (edge) หรือไม่ ซึ่งเป็นสองคำถามสำคัญที่ตัดสินการเทรดที่ใช้เวลาเพียงไม่กี่วินาทีถึงไม่กี่นาที คุณจำเป็นต้องสร้างอินดิเคเตอร์ขึ้นมาเอง เนื่องจาก Oscillator สำเร็จรูปทั่วไปถูกออกแบบมาสำหรับกรอบเวลาแบบ Swing trading และสำหรับการ Scalping speed การทำให้เส้นเรียบ (smoothing) จะเปลี่ยนสัญญาณให้กลายเป็นประวัติศาสตร์ไปเสียก่อน


ทำไมอินดิเคเตอร์มาตรฐานถึงใช้ไม่ได้ผลกับ Scalper

RSI, MACD และเส้นค่าเฉลี่ยเคลื่อนที่ (moving averages) มีข้อบกพร่องในการออกแบบหนึ่งอย่างเมื่อใช้ในไทม์เฟรมต่ำ: คือพวกมันทำให้ราคาเรียบขึ้นเพื่อกรองสัญญาณรบกวน (noise) และการทำให้เรียบนั้นส่งผลให้เกิดการแล็ก (lag) โดยธรรมชาติ เมื่อ RSI รอบ 14 ช่วงตัดผ่านเกณฑ์ในกราฟ 1 นาที การเคลื่อนที่ที่มันตรวจพบก็ผ่านไปแล้วหลายแท่งเทียน ซึ่งบ่อยครั้งคือส่วนที่สามารถทำกำไรได้ทั้งหมดของการ Scalp เครื่องมือเหล่านี้ตอบคำถามว่า "ราคาทำอะไรไปแล้ว" ในขณะที่ Scalper ต้องการรู้ว่า "ตอนนี้ราคากำลังทำอะไร และมันกำลังเร็วขึ้นหรือช้าลง"

วิธีแก้ไขคือการปฏิบัติกับราคาเสมือนวัตถุที่กำลังเคลื่อนที่ และวัดค่าทางฟิสิกส์ของมันโดยตรง นั่นหมายถึงการหาอนุพันธ์ลำดับที่หนึ่ง (speed) และอนุพันธ์ลำดับที่สอง (ความเร่ง) โดยคำนวณด้วยการ smoothing ให้น้อยที่สุด และทำให้เป็นค่ามาตรฐาน (normalized) เพื่อให้สามารถเปรียบเทียบกันได้ระหว่างสินทรัพย์และช่วงเวลาการเทรดต่างๆ

แต่ speed เพียงอย่างเดียวคือการแก้ปัญหาเพียงครึ่งเดียว อีกครึ่งหนึ่ง ซึ่งอาจกล่าวได้ว่าเป็นส่วนที่ทำกำไรได้มากกว่า คือการรู้ว่าเมื่อใดที่ "ไม่ควร" เทรด การขาดทุนส่วนใหญ่ของการ Scalping ไม่ได้เกิดจากการเข้าเทรดที่แย่ในสภาวะที่ดี แต่เกิดจากการเข้าเทรดที่ดูเหมาะสมในสภาวะที่ไม่มีข้อได้เปรียบ ตลาดที่ผันผวนรุนแรง (chopping) ภายในกรอบแคบๆ จะทำให้ทั้งฝั่ง Long และ Short โดน Stop out ไม่ว่าจะเข้าเทรดในจังหวะใดก็ตาม ดังนั้น ชุดเครื่องมือการ Scalping ที่จริงจังจึงแบ่งออกเป็นสองกลุ่ม: เครื่องมือที่วัด speed และแรงขับเคลื่อน (force) และเครื่องมือที่จำแนกสภาวะตลาด (regime) เพื่อกั้นคุณออกจากการเทรดในช่วงตลาดไซด์เวย์ที่ไม่มีข้อได้เปรียบ


สิ่งที่ Pine Script v6 สามารถและไม่สามารถสร้างได้

ก่อนที่จะเข้าสู่แคตตาล็อก ขอบเขตที่ตรงไปตรงมาคือ Pine v6 สามารถสร้างทุกสิ่งที่คำนวณได้จาก OHLCV, เวลา และการขอข้อมูล Timeframe ที่สูงกว่า ซึ่งครอบคลุมเนื้อหาส่วนใหญ่ที่จะตามมา สิ่งที่มันไม่สามารถทำได้คือการมองข้ามแท่งเทียน: ไม่สามารถเข้าถึง Order Book, Level 2 หรือข้อมูล Market-by-order; ไม่สามารถแยกปริมาณการซื้อขาย (Volume) ตามฝั่งผู้รุกราน (Aggressor side) ดังนั้น delta ของจริง, CVD และ Order Flow Imbalance จึงไม่อยู่ในขอบเขตที่ทำได้; และ Pine จะพล็อตกราฟเฉพาะสินทรัพย์อ้างอิงเท่านั้น ดังนั้น Option Chain, implied volatility และ Greeks จึงมองไม่เห็นสำหรับระบบนี้

ผลลัพธ์ในทางปฏิบัติคือ คะแนนรวม (Composite scores) ที่ผสมผสานราคาเข้ากับ Order Flow หรือข้อมูล Option จะได้รับคำตัดสินว่า "Partial" (บางส่วน): ซึ่งเวอร์ชันที่ใช้ราคาเพียงอย่างเดียวสามารถสร้างใน Pine และมีประโยชน์อย่างแท้จริง ในขณะที่เวอร์ชันเต็มจำเป็นต้องใช้ Feed ของ Order-flow หรือ Option แบบเรียลไทม์จากภายนอก TradingView อินดิเคเตอร์ทุกตัวด้านล่างจะมีคำตัดสินกำกับไว้ — Yes, Partial, หรือ No พร้อมระบุข้อมูลที่ขาดหายไป — เพื่อให้คุณทราบก่อนที่จะเริ่มเขียนโค้ดว่าสิ่งใดที่สามารถใช้งานได้จริง


ตระกูล speed — ราคาคือวัตถุที่เคลื่อนที่

หากราคาคือวัตถุที่กำลังเคลื่อนที่ สิ่งแรกที่ต้องวัดคือความเร็ว (velocity) และสิ่งที่สองคือความเร็วนั้นกำลังเพิ่มขึ้นหรือลดลง มีเครื่องมือสี่ชนิดที่ครอบคลุมเรื่องนี้ โดยเรียงลำดับตามความซับซ้อนจากน้อยไปมาก

Rate of Change (ROC) คือจุดเริ่มต้น: ROC = (close - close[n]) / close[n] ซึ่งแสดง speed เป็นเปอร์เซ็นต์ของราคาในช่วง n แท่งล่าสุด ทำให้สามารถเปรียบเทียบกันได้ระหว่างเครื่องมือต่างๆ จุดอ่อนของมันคือระยะเวลาที่ใช้ย้อนหลัง (lookback) ซึ่งทำให้เกิดการล้าหลัง (lag) เล็กน้อยภายในหน้าต่าง n แท่ง Pine v6: รองรับ ผ่าน ta.roc ที่มีมาให้ในตัว

Momentum จะตัดการปรับค่ามาตรฐาน (normalization) ออกไป: Momentum = close - close[n] เป็นเพียง speed ในรูปแบบจุดดิบๆ เท่านั้น มันจะมีสัญญาณรบกวนมากกว่าและเฉพาะเจาะจงตามเครื่องมือ แต่จะตอบสนองเร็วกว่าเครื่องมือที่ผ่านการปรับเรียบ (smoothed) อยู่หนึ่งแท่ง Pine v6: รองรับ ผ่าน ta.mom

Price Velocity คือการทำให้ค่าอนุพันธ์ (derivative) เป็นทางการ: Velocity = Δprice / Δtime การอัปเกรดที่สำคัญกว่า ROC คือตัวหาร ซึ่งใช้เวลาที่ผ่านไปจริงแทนที่จะเป็นจำนวนแท่ง ซึ่งสำคัญมากเมื่อข้อมูลในแต่ละแท่งมีความแตกต่างกัน และความเร็วที่วัดเดี่ยวๆ นั้นไม่มีความหมาย: การขยับสองจุดต่อนาทีอาจถือว่ารุนแรงในเครื่องมือที่เงียบเหงา แต่กลับถือว่านิ่งสนิทในเครื่องมือที่รวดเร็ว ดังนั้นจึงต้องปรับมาตรฐานด้วยความผันผวนต่อหน่วยเวลา — Velocity / (ATR ต่อวินาที) — และค่าที่ได้จะกลายเป็น "ราคากำลังเคลื่อนที่เร็วแค่ไหนเมื่อเทียบกับความเร็วปกติของเครื่องมือนี้" Pine v6: รองรับ โดยคำนวณจาก close และตัวแปร time

Price Acceleration คืออนุพันธ์อันดับสอง: Acceleration = Velocity - Velocity[1] นี่คือตัวตรวจจับการหมดแรง (exhaustion) ที่เร็วที่สุดที่หาได้จากราคาเพียงอย่างเดียว ราคาที่สูงขึ้นพร้อมกับความเร่งที่เพิ่มขึ้นคือแรงส่ง (impulse) ที่แข็งแกร่งขึ้น — การเคลื่อนที่นั้นกำลังส่งเสริมตัวเอง ราคาที่สูงขึ้นแต่ความเร่งลดลงคือการหมดโมเมนตัม: วัตถุยังคงเคลื่อนที่อยู่แต่แรงขับเคลื่อนเบื้องหลังกำลังจางหายไป ซึ่งเป็นคำเตือนที่แม่นยำสำหรับการเข้าเทรดที่ช้าเกินไป Pine v6: รองรับ

สัญชาตญาณของ Scalper คือการรวมสิ่งเหล่านี้เข้าเป็นค่าอ่านค่าเดียว ผสมผสาน speed และส่วนประกอบของแรง (force) ให้เป็นคะแนน impulse เดียว และปรับน้ำหนัก (weights) ด้วยตัวคุณเอง:


Volatility และการขยายตัว — ช่วงราคา (range) กำลังเปิดกว้างขึ้นเร็วเพียงใด

Speed วัดทิศทาง; ความผันผวน (volatility) วัดขนาดของสนาม Scalper จำเป็นต้องใช้ทั้งสองอย่าง เพราะการเคลื่อนที่อย่างรวดเร็วภายในช่วงที่กำลังหดตัว จะมีพฤติกรรมที่แตกต่างจากการเคลื่อนที่แบบเดียวกันภายในช่วงที่กำลังขยายตัว

ATR — Average True Range ของ Wilder — ยังคงเป็นเครื่องมือหลัก มันวัด range expansion โดยไม่มีความเห็นเรื่องทิศทาง ซึ่งนั่นคือคุณค่าของมัน: มันบอกคุณว่าตลาดมีการเคลื่อนที่เพียงพอที่จะครอบคลุมค่า spread และ slippage หรือไม่ Pine v6: ใช่ ใช้ ta.atr

ATR Resolution Ratio คือแนวคิดแบบ multi-timeframe ที่เทรดเดอร์รายย่อยส่วนใหญ่เข้าใจผิด คุณไม่สามารถเปรียบเทียบ ATR ของ 1 นาที กับ ATR ของ 15 นาที ได้โดยตรง เพราะภายใต้ random walk ความผันผวนจะแปรผันตามรากที่สองของเวลา — แท่งเทียน 15 นาทีควรจะเคลื่อนที่ประมาณ sqrt(15) เท่าของแท่งเทียน 1 นาที ไม่ใช่ 15 เท่า ดังนั้น ให้ทำการ normalize แต่ละ ATR ด้วยรากที่สองของ timeframe ก่อนที่จะนำมาหารกัน:

ค่า ratio ที่ต่ำหมายความว่า lower timeframe กำลังถูกบีบอัดเมื่อเทียบกับงบประมาณความผันผวนของ timeframe ที่สูงกว่า — ซึ่งเป็นสถานะที่เหมือนสปริงที่ถูกกดไว้ ค่า ratio ที่สูงหมายความว่า lower timeframe กำลังขยายตัวหรือกำลังระเบิดออกเมื่อเทียบกับงบประมาณนั้น การข้ามขั้นตอน normalize ด้วยรากที่สองจะทำให้ได้ ratio ที่คลาดเคลื่อนตามการเลือก timeframe และไม่บอกอะไรคุณเลย Pine v6: ใช่ — request.security ใช้ดึง HTF ATR และการ normalize ด้วย sqrt-time เป็นเพียงการคำนวณทางคณิตศาสตร์

นี่คือเครื่องมือที่แม่นยำสำหรับคำถามที่ว่า "ตอนนี้ 1 นาทีคุ้มที่จะเทรดเทียบกับ 15 นาทีหรือไม่" — เพียงใส่ ATR ทั้งสองค่าเข้าไปและอ่านสภาวะตลาด (regime):

Parkinson และ Garman-Klass volatility เป็นการอัปเกรดตัวประมาณค่า (estimator) ความผันผวนแบบ close-to-close จะละทิ้งทุกสิ่งที่เกิดขึ้นภายในแท่งเทียน แต่ตัวประมาณค่าแบบ range-based จะกู้คืนข้อมูลนั้นกลับมา Parkinson ใช้ช่วง high-low และ Garman-Klass เพิ่มราคา open และ close เข้าไปด้วย ซึ่งแต่ละวิธีจะให้ค่าประมาณความผันผวนที่มี noise น้อยกว่าอย่างเห็นได้ชัดจากแท่ง OHLC เดียวกัน สำหรับการตรวจจับสภาวะตลาดที่รวดเร็ว noise ของตัวประมาณค่าที่น้อยลงหมายถึงการเปลี่ยนสภาวะตลาดที่ผิดพลาดน้อยลง Pine v6: ใช่ — ทั้งสองเป็นเพียงการคำนวณทางคณิตศาสตร์จาก OHLC


Regime และประสิทธิภาพ — เทรนด์เทียบกับไซด์เวย์ (trend versus chop)

นี่คือหัวใจสำคัญของระบบในส่วน "ไม่เทรด" (no-trade) ทุกเครื่องมือในส่วนนี้ตอบคำถามเดียวคือ: ในขณะนี้มีข้อได้เปรียบด้านทิศทาง (directional edge) อยู่หรือไม่ หรือตลาดเป็นเพียงการเสี่ยงดวงที่ต้องเสียค่าธรรมเนียมการซื้อขาย?

Directional Efficiency หรือ Kaufman Efficiency Ratio คือตัวตรวจจับสภาวะไซด์เวย์ (chop detector) ที่ดีที่สุดในชุดเครื่องมือ สูตรคือ: Efficiency = |net move| / total travel โดยที่ net move คือระยะทางเส้นตรงที่ราคาเคลื่อนที่ผ่าน n แท่ง และ total travel คือผลรวมของการเปลี่ยนแปลงแบบค่าสัมบูรณ์จากแท่งต่อแท่งตลอดทาง ค่า 1.0 คือแนวโน้มที่พุ่งตรงและชัดเจน — ทุกจุดของการเคลื่อนที่ส่งผลต่อจุดหมายปลายทาง ส่วนค่าที่ใกล้ศูนย์คือการเคลื่อนที่อย่างรุนแรงแต่ไม่ไปไหน ความแตกต่างในเชิงตัวเลขนั้นชัดเจนมาก: ราคาที่แกว่งตัว 100, 101, 100, 101 เคลื่อนที่ตลอดเวลาแต่ได้ระยะสุทธิแทบจะเป็นศูนย์ ให้ค่าประสิทธิภาพใกล้ 0.2 — ซึ่งไม่สามารถเทรดได้ ส่วนราคาที่เดินเป็น 100, 101, 102, 103, 104 จะได้ระยะสุทธิเท่ากับที่เคลื่อนที่ไปพอดี: ประสิทธิภาพ 1.0. Pine v6: ใช่

ลองดูการเคลื่อนไหว — สลับระหว่างแนวโน้มที่ชัดเจน, แนวโน้มเล็กน้อย และไซด์เวย์ที่รุนแรง แล้วสังเกตการลดลงของค่าประสิทธิภาพ:

Hurst exponent ใช้สถิติเข้ามาแทนที่การกะระยะด้วยสายตา ค่า H ที่ต่ำกว่า 0.5 บ่งบอกถึงพฤติกรรมการกลับเข้าสู่ค่าเฉลี่ย (mean-reverting) — คือสภาวะไซด์เวย์ที่การเคลื่อนที่มักจะย้อนกลับ ค่า H ที่สูงกว่า 0.5 บ่งบอกถึงความต่อเนื่อง (persistence) — คือแนวโน้มที่มีโอกาสดำเนินต่อไป ค่า H ที่ใกล้ 0.5 คือการสุ่ม (random walk) ซึ่งไม่มีกลยุทธ์ใดที่อิงตามประวัติราคาจะมีความคาดหวัง (expectation) ได้ นี่คือการระบุสภาวะตลาด (regime label) ที่เข้มงวดมากกว่าการใช้ความรู้สึก Pine v6: บางส่วน — การคำนวณแบบ rescaled-range สามารถเขียนได้ด้วย arrays แต่ใช้ทรัพยากรการคำนวณสูง; การคำนวณแบบประมาณการตามช่วงเวลา (windowed approximation) คือสิ่งที่สามารถรันบนชาร์ตได้อย่างเหมาะสม

Variance Ratio ของ Lo และ MacKinlay ตั้งคำถามเรื่องการสุ่มอย่างเป็นทางการ: โดยเปรียบเทียบความแปรปรวนของผลตอบแทนรอบ k-period กับ k เท่าของความแปรปรวนของผลตอบแทนรอบ 1-period ภายใต้การสุ่มที่แท้จริง อัตราส่วนจะเป็น 1 — ความแปรปรวนจะเพิ่มขึ้นเป็นเส้นตรงตามระยะเวลาและไม่มีข้อได้เปรียบใดๆ หากสูงกว่า 1 ผลตอบแทนจะสะสมในทิศทางเดียว: เป็นเทรนด์ หากต่ำกว่า 1 ผลตอบแทนจะหักล้างกันเอง: กลับเข้าสู่ค่าเฉลี่ย นี่คือการทดสอบทางสถิติอย่างเป็นทางการว่ามีข้อได้เปรียบด้านทิศทางปรากฏอยู่หรือไม่ ซึ่งเป็นข้อสรุปที่แข็งแกร่งกว่าที่ออสซิลเลเตอร์ตัวใดจะทำได้ Pine v6: ใช่ — ใช้ array-based และสามารถทำได้

Half-life of mean reversion ตอบคำถามต่อเนื่องว่า: หากตลาดกำลังไซด์เวย์ มันจะไซด์เวย์นานแค่ไหน? โดยการฟิตกระบวนการ AR(1) / Ornstein-Uhlenbeck เข้ากับราคาและคำนวณ half-life = -ln(2) / lambda ผลลัพธ์ที่ได้จะมีหน่วยเป็นจำนวนแท่ง — ซึ่งเป็นการประมาณการว่าสภาวะการกลับเข้าสู่ค่าเฉลี่ยในปัจจุบันจะคงอยู่ยาวนานเพียงใด ซึ่งจะช่วยกำหนดระยะเวลาในการ "รอและไม่เทรด" ได้โดยตรง แทนที่จะปล่อยให้เป็นเรื่องของความอดทน Pine v6: บางส่วน — สามารถหาได้ผ่านการทำ linear regression ของการเปลี่ยนแปลงราคากับระดับราคา; ทำได้จริงแต่กินทรัพยากรมากกว่าอินดิเคเตอร์มาตรฐาน


โครงสร้างและการบีบตัว — สปริงที่กำลังม้วนตัว (the coiling spring)

สถิติของ Regime จะมองเห็นการกระจายตัว (distributions) แต่เครื่องมือด้านโครงสร้างจะมองเห็นตัว Swing เอง

Structure Persistence Score คือการนับลำดับโครงสร้างที่เกิดขึ้นต่อเนื่องกัน — เช่น Higher Highs ที่มาพร้อมกับ Higher Lows หรือ Lower Lows ที่มาพร้อมกับ Lower Highs Long การรันที่ไม่มีการขาดตอนส่งสัญญาณถึงแนวโน้มที่มีความจำ (memory) ส่วนการสลับไปมาบ่อยครั้งระหว่างสองสิ่งนี้ส่งสัญญาณถึงสภาวะตลาดผันผวน (random chop) ที่ปลอมตัวเป็นเทรนด์ สิ่งนี้คือคู่ขนานด้านโครงสร้างตลาดของ Efficiency Ratio และทั้งสองส่วนจะช่วยยืนยันซึ่งกันและกัน Pine v6: ใช่ สร้างขึ้นจาก ta.pivothigh และ ta.pivotlow

Swing Compression คือการวัดแรงสปริง กำหนดให้ Compression = 1 - (ขนาด swing ปัจจุบัน / ขนาด swing เฉลี่ย) และเฝ้าสังเกตลำดับขนาดของ swing ตลาดที่พิมพ์ค่า swing ออกมาเป็น 2.5, จากนั้น 1.8, แล้ว 1.1, และ 0.6 คือการม้วนตัว (coiling) — แต่ละการแกว่งตัวมีขนาดเล็กลงกว่าครั้งก่อนหน้า เป็นการสะสมพลังงานมากกว่าการปลดปล่อย การบีบตัวในอัตรานี้มักไม่จบลงอย่างเงียบๆ แต่มันจะนำไปสู่การ Breakout ซึ่งตัวการบีบตัวเองไม่ได้ทำนายทิศทาง นี่คือเหตุผลที่การบีบตัวเป็นสัญญาณของการเตรียมตัว (preparation signal) ไม่ใช่สัญญาณในการเข้าเทรด (entry signal) Pine v6: ใช่ ใช้ฟังก์ชัน pivot เดียวกัน


Volume และ Order Flow — การเคลื่อนไหวนั้นคือเงินจริงหรือไม่

ราคาอาจเคลื่อนที่ได้โดยไม่มีสาเหตุ เครื่องมือวัด Volume จะช่วยตอบคำถามว่ามีผู้เล่นรายใหญ่สนับสนุนการเคลื่อนที่นั้นจริงหรือไม่ — และนี่คือจุดที่ข้อจำกัดของ Pine เริ่มส่งผล

Volume Velocity หรือการมีส่วนร่วมของวอลุ่ม จะเปรียบเทียบวอลุ่มปัจจุบันกับเกณฑ์พื้นฐานตามช่วงเวลาของวัน (seasonal baseline) แทนที่จะใช้ค่าเฉลี่ยแบบคงที่ — ซึ่งเป็นข้อแตกต่างที่สำคัญ เพราะช่วงเปิดตลาดมักจะมีวอลุ่มมากกว่าช่วงกลางวันหลายเท่า และหากใช้ค่าเฉลี่ยแบบคงที่ ทุกการเปิดตลาดจะถูกระบุว่าเป็นวอลุ่มพุ่งสูง และทุกชั่วโมงพักเที่ยงจะถูกระบุว่าขาดแคลนวอลุ่ม ให้วัดวอลุ่มเทียบกับสิ่งที่ปกติสำหรับนาทีนั้นๆ ของเซสชัน จากนั้นจึงหาอัตราการเปลี่ยนแปลง การเคลื่อนที่ของราคาที่มีการมีส่วนร่วมเพิ่มขึ้นแสดงว่ามีเงินจริงหนุนหลัง แต่การเคลื่อนที่แบบเดียวกันในขณะที่การมีส่วนร่วมลดลงคือ "ภาพลวงตา" (ghost) Pine v6: ทำได้ — เนื่องจาก volume เป็น chart primitive และ seasonal baseline เป็น array ของช่วงเวลา ซึ่งสามารถจัดการได้

VWAP z-score จะทำให้ระยะห่างจากมูลค่าเป็นมาตรฐานเดียวกัน: VWAP z-score = (price - VWAP) / sigma(price - VWAP) ระยะห่างดิบจาก VWAP มีความหมายแตกต่างกันในแต่ละวัน การหารด้วยค่าเบี่ยงเบนมาตรฐานของตัวมันเองจะเปลี่ยนให้เป็น "ความไม่ปกติของการยืดตัวนี้มีมากแค่ไหน" ค่า z-score ที่เพิ่มขึ้นคือการปฏิเสธมูลค่าที่เร่งตัวขึ้น — ราคาหลุดออกจากพื้นที่ที่ยอมรับของวันนั้นด้วยความมั่นใจ Pine v6: ทำได้ — ใช้ ta.vwap ร่วมกับค่าเบี่ยงเบนมาตรฐาน

Delta และ Cumulative Volume Delta (CVD) จะแยกวอลุ่มตามผู้รุกราน (aggressor): สัญญาที่ถูกจับคู่ที่ราคา Ask คือการซื้อเชิงรุก (aggressive buys) และที่ราคา Bid คือการขายเชิงรุก (aggressive sells) โดยผลต่างสะสมของทั้งสองคือการอ่านค่าที่แม่นยำที่สุดว่าใครเป็นผู้ควบคุมตลาด Pine v6: ทำไม่ได้ — Pine ไม่สามารถแยกวอลุ่มตามฝั่งผู้รุกรานได้ delta ที่แท้จริงต้องใช้ข้อมูล Tick หรือ Order-book การประมาณการแบบหยาบๆ โดยกำหนดให้วอลุ่มของแท่งขาขึ้นเป็นของผู้ซื้อ และแท่งขาลงเป็นของผู้ขายนั้นมีอยู่จริง แต่ไม่น่าเชื่อถือและไม่ควรเชื่อมั่นในฐานะ delta

Order Flow Imbalance (OFI) ตามสูตรของ Cont-Kukanov-Stoikov จะคำนวณแรงซื้อและแรงขายจากการเปลี่ยนแปลงของขนาด Bid และ Ask ที่ดีที่สุดใน Level 1 book — ซึ่งเป็นแรงกดดันที่มองเห็นได้ก่อนที่จะปรากฏเป็นรายการเทรด Pine v6: ทำไม่ได้ — Pine ไม่มีข้อมูล Order book ในทุกระดับ

เลเยอร์ของ Order-flow นี้คือสะพานเชื่อมไปสู่ การเทรดแบบ order flow และ volume profile — ซึ่งเป็นการอ่านค่าที่อยู่ลึกลงไปกว่าแท่งเทียน


บริบทของสภาพคล่องและโครงสร้าง (Liquidity and structure context)

Liquidity Activity Score รวบรวมเหตุการณ์ที่เฟรมเวิร์กของ smart-money ให้ความสำคัญ ได้แก่ การกวาด (sweeps) จุดสูงสุด/ต่ำสุดก่อนหน้า, stop-runs, ความใกล้ชิดกับ equal highs และจุดต่ำสุด, และพฤติกรรมการปฏิเสธ (rejection) ที่ระดับเหล่านั้น Pine v6: Partial — ส่วนประกอบด้านเรขาคณิตของราคาถูกสร้างขึ้นอย่างชัดเจน (ความใกล้ชิดของ equal-high/low, การมีปฏิสัมพันธ์กับจุดสูงสุดและต่ำสุดก่อนหน้า, wick rejection, การกวาดจุดสูงสุด/ต่ำสุดก่อนหน้าโดยใช้ราคาเพียงอย่างเดียว) แต่ความแข็งแกร่งของ stop-run และการดูดซับ (absorption) เป็นปริมาณของ order-flow ที่ Pine ไม่สามารถมองเห็นได้ เวอร์ชันที่ใช้ราคาเพียงอย่างเดียวจะจับคู่กับ การเทรด liquidity sweep

FVG Quality Score จัดการกับปัญหาเรื้อรังของ fair value gaps: การใช้เรขาคณิตเพียงอย่างเดียวทำให้เกิดตัวเลือกที่มากเกินไป ให้คะแนนแต่ละ gap ตามความแข็งแกร่งของการเคลื่อนที่ (displacement strength), การยืนยันด้วยวอลลุ่ม, การเกิดขึ้นพร้อมกับ break of structure, การสอดคล้องกับกรอบเวลาที่สูงกว่า (higher-timeframe alignment), และความสดใหม่ Gap ที่ถูกต้องตามเรขาคณิตแต่เกิดขึ้นในตลาดที่เงียบเหงาจะได้คะแนนต่ำ — ซึ่งสมควรแล้ว Pine v6: Partial — เรขาคณิต, displacement และวอลลุ่ม ทั้งหมดสร้างได้ใน Pine; แต่การถ่วงน้ำหนักคุณภาพแบบเต็มรูปแบบมีการผสมผสานอินพุตแบบใช้ดุลยพินิจและ order-flow ซึ่งไม่สามารถทำได้

Jump detection จาก Barndorff-Nielsen และ Shephard แยกแยะ jump ที่แท้จริง — การกวาดหรือ impulse, ความไม่ต่อเนื่องในเส้นทางราคา — ออกจากการแพร่กระจายต่อเนื่อง (continuous diffusion) ทั่วไป โดยการเปรียบเทียบ realized variance กับ bipower variation ซึ่ง bipower variation จะมีความทนทานต่อ jumps ในขณะที่ realized variance ไม่เป็นเช่นนั้น ช่องว่างที่กว้างขึ้นระหว่างสองค่านี้จะระบุว่าเป็น jump ทางสถิติแทนที่จะใช้สายตามอง Pine v6: Yes — ทั้งสองปริมาณคำนวณได้จาก returns


The composite engines — blending signals into one score

ไม่มีเส้นบรรทัดเดียวด้านบนที่เพียงพอ แต่ละตัววัดเพียงมิติเดียว ในขณะที่การตัดสินใจ Scalping นั้นเป็นแบบหลายมิติ: ตลาดอาจจะรวดเร็วแต่ไม่มีประสิทธิภาพ หรือบีบตัวแต่มีการมีส่วนร่วมสูง คำตอบคือการปรับค่า (normalize) แต่ละส่วนประกอบและผสมผสานเข้าเป็นคะแนนถ่วงน้ำหนัก นี่คือโครงสร้างของเอนจิน Oyamori

Market Compression Index (MCI) ตอบคำถามว่า "ตลาดนี้บีบตัวหรือเงียบเหงาแค่ไหน" โดยมีการผสมผสานดังนี้: ความไม่มีประสิทธิภาพเชิงทิศทาง (directional inefficiency) 40%, ATR compression 20%, velocity compression 15%, swing compression 15%, volume compression 10% ให้อ่านค่าตามช่วง: 0–20 Expansion, 21–40 Healthy, 41–60 Transition, 61–80 Compression, 81–100 Dead Zone สำหรับ Pine v6: ใช่ — ทุกส่วนประกอบอิงตามราคาหรือปริมาณการซื้อขาย

Adaptive Regime Index (ARI) ตอบคำถามว่า "ขณะนี้อยู่ในสภาวะ (regime) ใด" บนสเกล 0–100: 0–30 Dead, 31–50 Choppy, 51–70 Tradable, 71–85 Trending, 86–100 Momentum Expansion การผสมผสานนี้ดึงข้อมูลจาก ATR expansion, ประสิทธิภาพเชิงทิศทาง, ความคงอยู่ของโครงสร้าง (structure persistence), การมีส่วนร่วมของปริมาณการซื้อขาย, ความเร็วของราคา และกิจกรรมด้านสภาพคล่อง สำหรับ Pine v6: บางส่วน — สามารถสร้างได้เมื่อส่วนประกอบกิจกรรมสภาพคล่องใช้เพียงราคาเท่านั้น แต่เวอร์ชันเต็มจำเป็นต้องใช้ Order Flow

Market Impulse Score (MIS) ตอบคำถามว่า "ในตอนนี้มีแรงขับเคลื่อนที่แท้จริงหรือไม่" — ซึ่งเป็นคำถามที่สำคัญทันทีหลังจากเกิดการ Sweep, break of structure หรือการ Breakout ของกรอบราคา โดยผสมผสานความเร็วของราคา (price velocity), ความเร่งของราคา (price acceleration), ความเร็วของปริมาณการซื้อขาย (volume velocity), delta acceleration, ความไม่สมดุลของ Order-book และความแรงของการ Sweep สำหรับ Pine v6: บางส่วน — MIS ที่ใช้เฉพาะราคาซึ่งสร้างจากความเร็ว, ความเร่ง, ความเร็วของปริมาณการซื้อขาย และความแรงของการ Sweep ราคาสามารถใช้งานได้ใน Pine แต่ส่วนประกอบ delta-acceleration และ order-book-imbalance จำเป็นต้องใช้ Order Flow

Scalp Opportunity Index (SOI) เปลี่ยนคำถามจากสภาวะตลาดไปสู่คุณภาพของโอกาส: SOI = ARI + MIS + liquidity context + SMC structure + FVG quality + HTF alignment + risk-reward - MCI สังเกตเครื่องหมายของ MCI — การบีบตัวจะลบออกจากโอกาส ช่วงคะแนน: 0–39 No Trade, 40–59 Watch, 60–74 Tradable, 75–89 High Quality, 90–100 Exceptional สำหรับ Pine v6: บางส่วน — แกนหลักที่อิงตามราคาสามารถสร้างได้ แต่ข้อมูลนำเข้าจาก Order Flow และ Options ไม่สามารถทำได้

Premium Expansion Probability (PEP) เป็นตัวบ่งชี้เฉพาะสำหรับ Options ซึ่งสร้างมาเพื่อ 0DTE: หากฉันซื้อ Call หรือ Put ตอนนี้ มีโอกาสเท่าใดที่ Premium จะขยายตัวในอีก 3–10 นาทีข้างหน้า? โดยผสมผสานแรงขับเคลื่อนของสินทรัพย์อ้างอิง, delta sensitivity, gamma effect, การตอบสนองของความผันผวนโดยนัย (implied-volatility response), คุณภาพของ Spread, ปริมาณการซื้อขาย Option และผลกระทบของเวลาที่เหลือจนถึงวันหมดอายุ สำหรับ Pine v6: ไม่ได้ — Pine ทำกราฟได้เฉพาะสินทรัพย์อ้างอิงเท่านั้น และไม่สามารถอ่านค่า option chain, implied volatility หรือค่า Greeks ได้

ทุกอินดิเคเตอร์ในบทความนี้ พร้อมสูตรและคำวินิจฉัยสำหรับ Pine v6 สามารถค้นหาได้ในที่เดียว — กรองตามระดับ (tier) หรือกรองตามสิ่งที่สามารถสร้างได้จริงใน Pine:


The gates — เปลี่ยนคะแนนให้เป็นตัวกรองการงดเทรด (no-trade filter)

คะแนนมีไว้เพื่อบรรยาย แต่ Gates มีไว้เพื่อตัดสินเลเยอร์สุดท้ายจะเปลี่ยนค่าการอ่านแบบต่อเนื่องให้กลายเป็น "การอนุญาต" แบบ Binary (ได้หรือไม่ได้)

Regime Transition Detector (RTD) ถูกสร้างขึ้นเพราะกำไรของการ Scalping อยู่ในช่วงรอยต่อระหว่างการบีบตัว (compression) ไปสู่การขยายตัว (expansion) ไม่ใช่ในช่วงที่เทรนด์ชัดเจนแล้ว — เพราะกว่าที่อินดิเคเตอร์บอกเทรนด์จะยืนยัน ราคาเข้าที่ได้เปรียบก็หายไปแล้ว กลไกหลักคือ CUSUM filter: สะสมผลรวมของการเบี่ยงเบนของราคา และส่งสัญญาณเมื่อผลรวมนั้นข้ามเกณฑ์ที่กำหนด ซึ่งเป็นวิธีการหาจุดเปลี่ยน (change-point method) ที่ตอบสนองต่อการเปลี่ยนแปลงได้เร็วกว่าเส้นค่าเฉลี่ยเคลื่อนที่ใดๆ กลุ่มตัวจุดชนวนประกอบด้วย: MCI ลดลงอย่างรวดเร็ว, อัตราส่วน ATR เพิ่มขึ้น, velocity เพิ่มขึ้น, ปริมาณการมีส่วนร่วม (volume participation) เพิ่มขึ้น และมีความพยายามที่จะเบรกกรอบราคา (range-break) Pine v6: ใช่

Adaptive No-Trade Zone (ANTZ) ทำให้สภาวะตลาด (regime) เป็นสิ่งที่มองข้ามไม่ได้ด้วยการระบายสีพื้นหลังของชาร์ต ตัวอย่างเงื่อนไข: MCI > 70 และ directional efficiency < 0.30 และ volume participation < 0.80 และ MIS < 40 และไม่มีเหตุการณ์สภาพคล่อง (liquidity event) เกิดขึ้นเร็วๆ นี้ ผลลัพธ์: พื้นหลังสีแดงหมายถึงห้ามเทรด, สีเหลืองอำพันหมายถึงให้รอ, สีใสหรือสีเขียวหมายถึงเทรดได้, สีน้ำเงินหมายถึงการขยายตัว (expansion) Pine v6: บางส่วน — การระบายสีพื้นหลังผ่าน bgcolor เป็นจุดแข็งของ Pine แต่ส่วนประกอบของ MIS และสภาพคล่องนั้นขึ้นอยู่กับ Order-flow ดังนั้นเวอร์ชันที่ใช้งานจริงจึงเป็นเวอร์ชันที่ใช้ราคาเพียงอย่างเดียว

ลองควบคุม Gate ด้วยตัวเอง — ปรับค่าการอ่านทั้งสี่ตัวและสังเกตพื้นหลังที่เปลี่ยนไปมาระหว่าง no-trade, wait, tradable และ expansion:

Tradeability Gate (TG) คือจุดตรวจสุดท้ายก่อนที่สัญญาณใดๆ จะถูกส่งออกไป ตัวอย่างเช่น: อนุญาตให้เทรดก็ต่อเมื่อ ARI >= 55 และ MCI <= 60 และ SOI >= 65 และ MIS >= 50 โดยต้องไม่มีความขัดแย้งกับ Timeframe ที่ใหญ่กว่า, สเปรด (spread) อยู่ในระดับที่ยอมรับได้ และค่าความเสี่ยงต่อผลตอบแทน (risk-reward) คาดหวังต้องเท่ากับหรือสูงกว่าขั้นต่ำ ทุกเงื่อนไขต้องเป็นจริง หากเงื่อนไขใดหนึ่งล้มเหลว จะถือเป็นการยับยั้ง (veto) การเทรดทันที Pine v6: บางส่วน — เรื่องสเปรดและ Order-flow dependencies นั้นอยู่นอกเหนือความสามารถของ Pine

สิ่งที่ควรกล่าวถึงสั้นๆ ในที่นี้คือ Multi-Resolution Regime Matrix (MRM): ป้ายกำกับสภาวะตลาดต่อหนึ่ง Timeframe — 15 วินาที, 1 นาที, 5 นาที, 15 นาที, 1 ชั่วโมง — ให้อ่านตามขอบเขตเวลาการเทรด (trade horizon) ของคุณ แทนที่จะใช้การโหวตเสียงข้างมากแบบดั้งเดิม เพราะ Scalper จะให้ความสำคัญกับแถว 15 วินาที ถึง 5 นาที ในขณะที่ Day trader จะเน้นแถว 5 นาที ถึง 1 ชั่วโมง Pine v6: บางส่วน — การดึงข้อมูลหลาย Timeframe ทำงานได้ แต่ความละเอียดระดับต่ำกว่านาทีอย่าง 15 วินาที จำเป็นต้องใช้ข้อมูลความละเอียดระดับวินาที


ตรวจสอบให้มั่นใจก่อนที่จะเชื่อ — ส่วนที่ทุกคนมักข้ามไป

คะแนนที่ยังไม่ผ่านการทดสอบคือเรื่องเล่า ไม่ใช่ความได้เปรียบ (edge) ส่วนนี้จะสั้นกว่าแคตตาล็อกด้านบน แต่มีความสำคัญมากกว่า

เริ่มต้นด้วย แท่งราคาที่ขับเคลื่อนด้วยข้อมูล (information-driven bars) แท่งราคาแบบ 1 นาทีที่คงที่เป็นเพียงการแบ่งเวลาของวันที่ตั้งขึ้นมาลอยๆ ซึ่งมันนำเอาช่วงเปิดตลาดที่วุ่นวายมาผสมกับช่วงพักเที่ยงที่เงียบเหงา และแสร้งว่าทั้งสองช่วงมีข้อมูลที่เท่ากัน การสุ่มตัวอย่างตามกิจกรรมแทน — เช่น volume bars, dollar bars หรือ imbalance bars ซึ่งแต่ละแท่งจะปิดลงเมื่อถึงเกณฑ์กิจกรรมที่กำหนด — จะทำให้ทุกแท่งมีเนื้อหาข้อมูลที่เปรียบเทียบกันได้ และทำให้สถิติต่างๆ ในขั้นตอนถัดไปทำงานได้อย่างถูกต้อง Pine v6: ไม่รองรับ — แท่งราคาของ Pine เป็นแบบเวลาหรือ tick ที่คงที่ และไม่สามารถรีแซมเปิล (resample) เป็น dollar หรือ imbalance bars ได้โดยกำเนิด

ถัดมาคือ การระบุป้ายกำกับแบบ triple-barrier (triple-barrier labeling) การนิยามคำว่า "ชนะ" อย่างซื่อสัตย์นั้นยากกว่าที่คิดสำหรับสัญญาณ scalping วิธี triple-barrier จะระบุป้ายกำกับให้กับการเข้าเทรดสมมติแต่ละครั้งตามกำแพงที่มันชนเป็นอันดับแรก: เป้าหมายกำไร (profit target), จุดตัดขาดทุน (stop) หรือ ขีดจำกัดด้านเวลา (time limit) ไม่มีการเลือกจุดออกเฉพาะที่ดูดี (cherry-picked) และไม่มีระยะเวลาการถือครองแบบปลายเปิด — ทุกสัญญาณจะได้รับผลลัพธ์ที่ชัดเจน Pine v6: รองรับบางส่วน — ตัวทดสอบกลยุทธ์ (strategy tester) สามารถจำลองสิ่งนี้ได้ แม้ว่ามันจะเป็นวิธีการระบุป้ายกำกับเพื่อการวิจัยมากกว่าจะเป็นอินดิเคเตอร์สำหรับใช้งานจริง

จากนั้นคือการทำ backtest เอง การเทรดแบบ scalping มักจะมีช่วงเวลาที่ทับซ้อนกันอย่างมาก และการเทรดที่ทับซ้อนกันจะทำให้ข้อมูลรั่วไหล (leak) ระหว่างชุดข้อมูลสำหรับฝึกฝน (training set) และชุดทดสอบ (test set) — ซึ่งเป็นเหตุผลที่ backtest แบบซื่อๆ มักจะให้ค่าความได้เปรียบที่สูงเกินจริงเสมอ การตรวจสอบไขว้แบบล้างข้อมูลและกักกัน (Purged, embargoed cross-validation) จะลบตัวอย่างการฝึกฝนที่ทับซ้อนกับหน้าต่างการทดสอบแต่ละบาน และกักกันพื้นที่บัฟเฟอร์รอบๆ ไว้ จากนั้นการทดสอบแบบ walk-forward จะบังคับให้กลยุทธ์ต้องพิสูจน์ผลลัพธ์ของตนเองจากข้อมูลนอกกลุ่มตัวอย่าง (out of sample) อย่างเคร่งครัด ซึ่งเป็นข้อมูลที่ไม่มีตัวตนอยู่ในขณะที่เลือกพารามิเตอร์ Pine v6: ไม่รองรับ — นี่คือระเบียบวิธีในการทำ backtesting ไม่ใช่ตัวบ่งชี้บนกราฟ

ประเด็นสำคัญอยู่ที่ตรงนี้: ทุกคะแนนรวมในบทความนี้ — MCI, ARI, MIS, SOI ทั้งหมดนี้ — เป็นเพียงสมมติฐานจนกว่ามันจะรอดพ้นจากกระบวนการนี้ในเครื่องมือของคุณ, ในไทม์เฟรมของคุณ และในต้นทุนของคุณ สร้างอินดิเคเตอร์ให้เสร็จก่อน แล้วจึงสร้างสิทธิ์ในการเชื่อมั่นในตัวมัน วินัยนี้เป็นสิ่งเดียวกับการวัดระบบใดๆ ด้วยชุด ตัวชี้วัดการเทรด ที่ครบถ้วน


ลำดับการสร้างในบรรทัดเดียว
วัดค่าราคาในฐานะวัตถุที่เคลื่อนที่ — ทั้ง speed และความเร่งของมัน — และตัดสินสภาวะตลาด (regime) ด้วยประสิทธิภาพ (efficiency) และการบีบตัว (compression) ก่อนที่จะตั้งคำถามถึงทิศทาง ยืนยันด้วยปริมาณการซื้อขาย (volume) และหากแหล่งข้อมูลของคุณรองรับ ให้ยืนยันด้วย order flow จริง ผสมผสานส่วนประกอบต่างๆ ให้เป็นคะแนนถ่วงน้ำหนักที่ถูกนอร์มัลไลซ์ (normalized) จากนั้นสร้างประตูคัดกรองเพื่อให้ระบบปฏิเสธการเทรดในตลาดที่บีบตัว ไร้ประสิทธิภาพ และไม่มีผู้มีส่วนร่วมโดยสิ้นเชิง และก่อนที่จะนำเงินแม้แต่ดอลลาร์เดียวไปเสี่ยง ให้ตรวจสอบความถูกต้องของระบบทั้งหมดแบบ out of sample ด้วยป้ายกำกับที่ซื่อสัตย์และการทดสอบแบบ purged, walked-forward — เพราะในการ scalping ความได้เปรียบที่คุณยังไม่ได้ตรวจสอบ ก็ไม่ต่างอะไรกับความได้เปรียบที่คุณไม่มีเลย