งานวิจัย · การตรวจซอร์ส · เครื่องมือทั้งสี่
ตรวจซอร์สอินดิเคเตอร์ทั้งสี่
พบข้อบกพร่องที่ทำให้อ่านผิด — แก้ระดับ 1 แล้ว
หลังทดสอบสมมติฐาน 1,342 ข้อโดยไม่พบขอบเลย คำถามถัดไปคือเครื่องมือที่ใช้อ่านตลาดทุกวันนั้นถูกต้องตามที่คิดหรือไม่ · เราอ่านซอร์สทั้งสี่ไฟล์ทุกบรรทัด คอมไพล์ สแกน repaint และตรวจสถานะบนชาร์ตจริง · ไม่มีการมองอนาคต แต่มีสิ่งที่ทำให้อ่านผิดหลายจุด — บางจุดผิดมาตั้งแต่เขียน · หน้านี้บันทึกทั้งสิ่งที่พบ สิ่งที่แก้ และสิ่งที่ตั้งใจยังไม่แก้
1 · ผลการตรวจโดยรวม
| เครื่องมือ | เวอร์ชัน | บรรทัด | error / warning | plot budget | ลิงก์ |
|---|---|---|---|---|---|
| GEX + EFP Basis Matrix | v29 → v30 | 2,464 | 0 / 0 | 63/64 | หน้าเครื่องมือ → |
| Liq Heat Map + Vol Prof | v20 → v22 | 2,333 | 0 / 4 (เดิม 5) | 60/64 | หน้าเครื่องมือ → |
| QC MomentumConfluence | v12 → v13 | 1,335 | 0 / 0 | 48/64 | หน้าเครื่องมือ → |
| Gold Session Framework | v10 → v11 | 1,806 | 0 / 7 (เท่าเดิม) | 46/64 | หน้าเครื่องมือ → |
คอมไพล์ผ่านทุกไฟล์ และสแกน repaint ไม่พบการมองอนาคตแบบ R1 (lookahead_on บน series ที่ไม่ shift) ในไฟล์ใดเลย — ต่างจากสคริปต์ยอดนิยมบน TradingView ที่เราเคยสแกน 700 กว่าตัวและพบ R1 ราว 15–18% · แต่ “คอมไพล์ผ่าน” กับ “คำนวณถูก” เป็นคนละเรื่อง สิ่งที่พบข้างล่างล้วนคอมไพล์ผ่านมาตลอด
2 · ปัญหาร่วมทั้งชุด — สำคัญที่สุด เพราะกระทบทุกตัวพร้อมกัน
| # | ปัญหา | ไฟล์ | ผลที่เกิด | สถานะ |
|---|---|---|---|---|
| A | เวลา session และหน้าต่าง fix เป็น UTC คงที่ ไม่รองรับ DST | GEX · QC · LiqHM (ตัวเลขเดียวกันสามไฟล์) | LBMA fix จริงคือ 10:30/15:00 เวลาลอนดอน → หน้าร้อนกรอบเลื่อน 1 ชม. · QC/GEX มีช่องโหว่ 17:00–20:00 UTC ที่ถูกนับเป็น “ASIA” · ตัวเลข 20/03/08/17 ที่ใช้เป็นเวลานิวยอร์กอยู่แล้ว แค่ถูกอ่านผิดเขต | แก้แล้ว (ระดับ 1) |
| B | Hurst ใน QC คำนวณบนระดับราคา ไม่ใช่ผลตอบแทน | QC (และ KV-MACD ที่เลิกใช้) | H ≈ 0.91 ใน 99.8% ของแท่ง แม้กับ random walk สังเคราะห์ · “TREND” ติดถาวร “MR” ไม่เคยเกิด · Gold Session ใช้ log-return ถูกต้องอยู่แล้ว | แก้แล้ว (ระดับ 1) |
| C | อ่านค่ากรอบเวลาสูงกว่าแบบ lookahead_off โดยไม่ shift [1] | ทั้งสี่ไฟล์ | ประวัติเห็นแท่ง HTF ที่ปิดแล้ว แต่ตอนสดเห็นแท่งที่กำลังวิ่ง → สิ่งที่เลื่อนดูย้อนหลังไม่ใช่สิ่งที่จะเห็นสด (ไม่ใช่การรั่ว แต่ replay หลอกตา) · QC ยัดเทรดหลอกเข้าความจำ kNN จนกว่าจะรีโหลด | ยังไม่แก้ (ระดับ 2) |
| D | delta 4 สูตร · volume profile 4 ตัว · AMT engine ซ้ำ 3 ชุด | ทั้งสี่ไฟล์ | VARS ใช้ close ≥ open · CVD ใช้ footprint · LiqHM ใช้ CLV×vol · QC ใช้ wick-delta z-score · VA% 70/84/90 ต่างกัน · Rejection/Iceberg เดียวกันวาดสาม pane ดูเหมือนยืนยันสามชั้น | ยังไม่แก้ (ระดับ 3) |
| E | max_bars_back ตั้งเป็น global ในทุกไฟล์ | ทั้งสี่ไฟล์ | ทุก series ในไฟล์ที่มี series หลายร้อยตัวได้บัฟเฟอร์ 2,000 แท่ง → โหลดประวัติช้าโดยไม่จำเป็น | ยังไม่แก้ (ระดับ 4) |
| F | ชื่อ alert ค้างเวอร์ชันเก่า · หัวไฟล์ผิดเวอร์ชัน · เลขหมวดซ้ำ (GEX มี §19 สองอัน) | ทั้งสี่ไฟล์ | ชื่อ alert บน TradingView ผิดเวอร์ชัน · แก้ไฟล์ครั้งหน้าเสี่ยงแทรกผิดที่ | แก้ชื่อเวอร์ชันแล้ว · เลขหมวดยังไม่แก้ |
ข้อ B เป็นตัวอย่างที่ควรจำ: ฟังก์ชัน Hurst ถูกคัดลอกไปสามไฟล์ สองไฟล์รับ “ราคา” เข้าไปตรง ๆ หนึ่งไฟล์รับ log-return · ป้าย TREND ที่ขึ้นทุกวันจึงเป็นผลของสูตร ไม่ใช่ของตลาด — และไม่มีใครสังเกตเพราะ “ทองเทรนด์อยู่แล้ว” ฟังดูสมเหตุสมผลเสมอ
3 · รายไฟล์ — สิ่งที่แก้ในระดับ 1 และสิ่งที่ยังเปิดอยู่
ระดับ 1 = แก้เฉพาะสิ่งที่ทำให้อ่านชาร์ตผิดจริง · ไม่เปลี่ยนตรรกะสัญญาณ ไม่เพิ่ม plot · ค่าตั้งทุกตัวยังเป็นของเจ้าของชาร์ต (อ่านจากชาร์ตแล้วใส่เป็นค่าเริ่มต้นของไฟล์ใหม่)
GEX + EFP Basis Matrix v30
แก้แล้ว
- GVZ crisis/spike z-score คำนวณบนแท่งชาร์ตทับ series รายวัน → ยิงแทบทุกวันที่ GVZ ขยับขึ้น (บล็อก MR · หัก CONF · alert รายวัน) · ตอนนี้คำนวณในกรอบรายวัน
- ฟีด GC1! ล่าช้า 10–15 นาทีไม่เคยถูกจัดการ → basis สดดูดซับการเคลื่อนไหวของทอง สร้าง EFP ARB / DIV / Frozen zone ปลอม · ตอนนี้ค้าง basis เมื่อฟิวเจอร์สตามหลังเกิน 2 แท่ง และเขียน “⚠GC1! delayed”
- เงื่อนไข CONF สองข้อที่ไม่มีวันเปลี่ยน (frame > 0.5σ จริงเสมอ · frame < 12$ ไม่มีวันจริง) → ถอดออก เลื่อนฐาน 50 → 60
- MLMI neutral ผ่าน gate ทุกครั้งที่โหวตเสมอ 0 → ผ่านเฉพาะช่วง warm-up
ยังเปิดอยู่
- Zone Tolerance 3$ · Strike block 25$ ตั้งสมัยทอง 2,000$ (วันนี้ 3$ = 0.07% ของราคา อยู่ในระยะสั่นของแท่ง M3) — ค่าของเจ้าของชาร์ต รอเขาตัดสินใจ
- input 30 ตัวไม่ถูกอ่าน (Show gFlip labels, สี g1/g2/g3, PHI/Delta line style, Q-Block colours …) เปลี่ยนแล้วไม่มีผล
- Bubble Context บน M3 มี 3 intrabar แบ่ง 20 bins = แทบสุ่ม · label pool รวม ~2,250 แต่ cap 500
Liq Heat Map + Vol Prof v22
แก้แล้ว
- ⑮ Confluence นับ iceberg ทั้งสองฝั่ง → นับตามฝั่ง (VAL→buy · VAH→sell)
- ⑮ “ใกล้ระดับสำคัญ” ใช้ RQ-kernel เร็วที่เกาะราคาตลอด → ใช้ kernel ช้าเท่านั้น · แถบ Monte Carlo หมดอายุตามหน้าต่างฉาย
- ⑳ Donchian breakout ยิงซ้ำทุกแท่งที่ทำ new high และรีเซ็ต impulse → ยิงครั้งเดียวต่อทิศ
- กล่อง “dip-buy zone” เขียนเขียวทั้งขาขึ้นขาลง → ขาลงเขียน “rally-sell zone” สีแนวต้าน
- ta.atr(14) ในบล็อก islast (ป้ายอาจอยู่ที่ na) → ATR global ตัวเดียว
ยังเปิดอยู่
- กล่อง Monte Carlo 200 กล่อง/100 แท่งไม่เคยลบ → cap 500 กวาดกล่อง HTF pattern เก่าทิ้ง
- HTF pattern และ ⑮/⑯ อ่าน HTF แบบไม่ shift · ⑯ บนชาร์ต H1 เงื่อนไข “M5+H1” ยุบเหลือ H1
- ตัวแปรตาย: _vp_top/_bot · mc_bandMax/Min · hm_labels · mc_srLines · ⑱ CVD gate หน้าต่างผิด (นับหลัง pivot)
QC MomentumConfluence v13
แก้แล้ว
- Hurst บน log-return (สูตรเดียวกับ Gold Session)
- session เป็นเวลานิวยอร์ก ปิดช่องโหว่ 17:00–20:00 · LBMA/CME คนละเขตเวลา
ยังเปิดอยู่
- MTF kNN อ่านแท่ง H1/H4 ที่ยังวิ่งอยู่ · บน M3 kNN ของ H4 ไม่เคยถึง k=50 และเกณฑ์ OB/OS นับเป็นแท่งชาร์ต → “H4 OB” บน M3 กับบน H1 คนละความหมาย
- เกณฑ์ DELTA 5.0 เป็นหน่วย volume ดิบ → เงื่อนไขซื้อจริง 98% / ขายจริง 1.8% ของแท่ง
- Fast-RSI 34 กับ 90/10 เกิด 0.01% ของแท่ง (ค่าของเจ้าของชาร์ต) · Adaptive SMI ทำให้ SMI ของ QC ไม่ใช่ตัวเดียวกับที่ GEX ใช้ gate · ป้าย DIV วาดย้อน 5 แท่งโดยไม่บอก
Gold Session Framework v11
แก้แล้ว
- กฎ tick ถือเครื่องหมายเดิมเมื่อ close ไม่เปลี่ยน (เดิมทิ้ง volume ของนาทีนั้น)
- gate EMA ของ ±RD เทียบที่แท่ง pivot ไม่ใช่ EMA ปัจจุบัน
- Chandelier ที่กรอบเวลาเร็วกว่าชาร์ตถูกปิด (Ch1 “3” บน H1) · alert VARS เคารพสวิตช์หลัก · header/ตาราง/ดีบักอัปเดต
ยังเปิดอยู่
- CVD เย็บสามแหล่งคนละหน่วย (footprint → tick → CLV) → divergence ปลอมตรงรอยต่อ โดยเฉพาะ H1
- Chandelier Ch2/Ch3 และ CRD อ่าน HTF แบบไม่ shift · M10 บน M3 ไม่ลงตัว (แท่ง :09–:12 คร่อมขอบ) · anchor 4 แบบในไฟล์เดียว
- ซาก rev1–3 (พารามิเตอร์ที่ไม่ใช้ สาขา bid/ask) · tooltip “100 tick = 0.10$” ผิดถ้า mintick 0.01
4 · ค่าตั้งและ Style ถูกเก็บอย่างไร
กฎของเว็บนี้คือค่าตั้งต้องมาจากชาร์ตจริงเสมอ รอบนี้จึงอ่าน Input ทุกตัว, Style tab ของทุก plot และการซ่อนกลุ่มวาด
ของทั้งสี่ study ทั้งสอง pane ออกมาก่อนแตะไฟล์ แล้วใส่กลับเป็นค่าเริ่มต้นของไฟล์ใหม่ ·
M3 และ H1 ตั้งค่าต่างกันหลายจุด (GEX ต่าง 15 ตัว · Gold Session 17 ตัว) จึงมีไฟล์สองชุด: ชุดหลักสำหรับ M3 และชุด TFH1 สำหรับ H1 ที่โค้ดเหมือนกันทุกบรรทัด ·
ตรวจบนชาร์ตแล้วว่า input ตรงกับที่เก็บ 268 / 220 / 138 / 192 ตัว (ต่างหนึ่งค่า: ความโปร่งใสของสี 0.146 → 0.15 จากการปัดเลข)
| ขั้น | วิธี |
|---|---|
| คอมไพล์ | translate_light API ของ TradingView ผ่าน Research/pine_compile_check.py — ไม่แตะ editor |
| สแกน repaint | Research/tv_repaint_scan.py : R1 look-ahead · R2 วาดใหม่ทั้งแท่งสุดท้าย · R3 pivot วาดย้อน · R4 ค่า HTF สั่นตอนสด |
| เก็บค่าตั้ง | อ่าน metaInfo() + properties().state() ของทุก study ทั้งสอง pane ผ่าน CDP → Input ทุกตัว, Style tab ทุก plot, การซ่อนกลุ่มวาด |
| จับคู่ input ↔ ซอร์ส | ตามลำดับการประกาศ · ⚑ TradingView รายงาน input.string เป็น type “text” เหมือน source blob — ต้องกรองด้วย id ไม่ใช่ type (เจอตอนเทียบบนชาร์ต) |
| สร้างไฟล์ใหม่ | _settings/build_*.py : แก้ทีละจุดพร้อม assert ว่าพบครั้งเดียว → ใส่ค่าตั้งเป็น default → ใส่ Style ที่โค้ดตั้งได้ (display / linewidth / plottype) → คอมไพล์ |
| ตรวจบนชาร์ต | วางลงสคริปต์ใหม่ (เมนู Create new → Indicator) → Add to chart → อ่านสถานะ → เทียบ input ทุกตัวกับที่เก็บ → ใส่ Style ที่โค้ดตั้งไม่ได้ (เส้น dotted · ซ่อน Lines/Tables) แล้วเทียบอีกครั้ง → ลบ study ทดสอบ |
สิ่งที่โค้ด Pine ตั้งให้ไม่ได้และต้องตั้งใน Style tab เอง: เส้นแบบ dotted (GEX g1/g2/g3 · LiqHM VWAP band · QC SMI) และการปิด Lines / Tables / Polylines ของ study — เจ้าของชาร์ตตั้งเองหลัง add ทั้งสอง pane
5 · ทำไมระดับ 2–4 ยังไม่ทำ
ระดับ 2 (ให้ประวัติเท่ากับสด) แลกกับสัญญาณสดที่ช้าลงหนึ่งแท่งของกรอบเวลาสูงกว่า — จำเป็นก่อนจะใช้การเลื่อนดูย้อนหลังหรือ replay ตัดสินว่าสัญญาณไหน “แม่น” แต่ไม่จำเป็นสำหรับการเทรดสดที่ผู้ใช้อยู่กับพฤติกรรมสดอยู่แล้ว · ระดับ 3 (ลดความซ้ำซ้อน) เป็นเรื่องการอ่าน: ถ้าจำได้ว่า Rejection ที่ขึ้นสาม pane คือสัญญาณเดียว ก็ไม่เสียหาย · ระดับ 4 (ประสิทธิภาพ) ทำตอนแก้ไฟล์ครั้งถัดไป · เจ้าของชาร์ตเลือกใช้ชุดระดับ 1 ไปก่อนและไม่ทำต่อ — ซึ่งถูก เพราะไม่มีข้อไหนร้ายแรง และงานวิจัยไม่กระทบ (พอร์ตใน Python ใช้แท่งที่ปิดแล้วเสมอ)
ข้อบกพร่องเหล่านี้ไม่ได้อธิบายว่าทำไมสมมติฐาน 1,342 ข้อไม่ผ่าน — งานวิจัยพอร์ตสูตรจากซอร์สและตรวจกับชาร์ตสดทุกครั้ง จึงไม่ได้พึ่ง z-score ที่ผิดหรือ Hurst ที่ผิด · สิ่งที่มันอธิบายคือทำไมบางป้ายบนจอ (GVZ CRISIS · H:0.91 TREND · dip-buy ในขาลง) ไม่เคยตรงกับความรู้สึก