เรียนรู้ › EA และเทรดอัตโนมัติ

ทดสอบจุดเข้ากับการเข้าแบบสุ่ม สัญญาณของคุณดีกว่าโยนเหรียญจริงไหม

กำไรใน backtest อาจมาจาก Exit กับเทรนด์ของตลาด ไม่ใช่จุดเข้า วิธีเทียบกับการเข้าสุ่ม 1,000 รอบ หา p-value เอง และสร้างตัวคุม (placebo) ให้ยุติธรรม

ขั้นสูง อ่าน 13 นาที 22 ตุลาคม 2569

อ่านจบแล้วจะรู้
  • การทดสอบนี้ใช้ Exit เดิม จำนวนไม้เท่าเดิม แต่สุ่มเวลาเข้า 1,000 รอบ แล้วดูว่าผลจริงอยู่ตรงไหนของการกระจาย
  • p-value แบบนับเอง = (จำนวนรอบสุ่มที่ได้ดีเท่าหรือดีกว่า + 1) ÷ (จำนวนรอบ + 1)
  • ในตลาดที่มีเทรนด์ ระบบ Buy อย่างเดียวต้องเทียบกับการ "ซื้อสุ่ม" ไม่ใช่โยนเหรียญ ไม่อย่างนั้นจะเห็นความได้เปรียบปลอม
  • ในการจำลองของเรา โยนเหรียญเลือกทิศพร้อม Trailing stop ได้หน้าตาเหมือนระบบตามเทรนด์ แต่ได้ผลคาดหวังเท่ากับลบค่าต้นทุนพอดี
  • ตัวคุมที่ดีต้องเหมือนสัญญาณจริงทุกอย่าง ทั้งทิศ ช่วงเวลาในวัน ระยะ และต้นทุน ยกเว้นส่วนที่อ้างว่าเป็นความได้เปรียบ

กำไรใน backtest ไม่ได้บอกว่าจุดเข้าของเราดี มันคือผลรวมของหลายอย่าง ทั้งจุดเข้า Exit ขนาดไม้ ทิศทางรวมของตลาดในช่วงนั้น และโชค การเทียบกับการเข้าแบบสุ่ม (random entry benchmark) คือการแยกจุดเข้าออกมาวัดเดี่ยว ๆ โดยเก็บทุกอย่างไว้เหมือนเดิม แล้วเปลี่ยนแค่เวลาเข้าเป็นเวลาสุ่ม ถ้าการเข้าสุ่มได้ผลพอ ๆ กัน แปลว่าสัญญาณของเราไม่ได้เพิ่มอะไร บทนี้อธิบายวิธีทำทีละขั้น พร้อมผลจำลองที่ทำให้เห็นว่ากับดักอยู่ตรงไหน

กำไรมาจาก 5 แหล่ง จุดเข้าเป็นแค่หนึ่งในนั้น

  1. จุดเข้า สิ่งที่สัญญาณอ้างว่าทำได้ คือเลือกเวลาที่ราคามีแนวโน้มไปทางที่เราเปิด
  2. Exit Trailing stop ที่ปล่อยไม้กำไรวิ่ง หรือ TP ใกล้ SL ไกลที่ทำให้ชนะบ่อย เปลี่ยนรูปร่างผลได้มากโดยไม่ต้องเดาทิศเลย
  3. ขนาดไม้ การเพิ่มไม้หลังแพ้ หรือทบต้น เปลี่ยนหน้าตาของเส้นทุนได้ทั้งที่จุดเข้าไม่มีข้อมูล
  4. ทิศรวมของตลาด (drift) ถ้าราคาขึ้นทั้งช่วงที่ทดสอบ ระบบที่ Buy อย่างเดียวแทบทุกระบบดูดี
  5. โชค ไม้ไม่กี่ร้อยไม้แกว่งได้กว้างกว่าที่คนส่วนใหญ่คิด อ่านเพิ่มใน ต้องเทรดกี่ไม้ผลถึงเชื่อได้

การเข้าแบบสุ่มที่ใช้ Exit ขนาดไม้ ทิศ และช่วงข้อมูลเดียวกัน ได้ข้อ 2–5 ครบ ขาดแค่ข้อ 1 ส่วนต่างระหว่างผลจริงกับผลสุ่มจึงเป็นสิ่งที่จุดเข้าทำได้จริง

วิธีทดสอบทีละขั้น

  1. บันทึกผลจริง จำนวนไม้ N และผลรวมเป็น R (1R = เงินที่เสี่ยงต่อไม้ เช่น เสี่ยง 50 ดอลลาร์ ได้ 100 ดอลลาร์ = +2R) ใช้ R เพื่อไม่ให้ขนาดไม้มาปน
  2. ล็อกทุกอย่างที่ไม่ใช่จุดเข้า Exit SL TP เวลาถือสูงสุด ต้นทุน ทิศ (หรือสัดส่วน Buy/Sell) และกติกาไม้ซ้อน
  3. สุ่มเวลาเข้า N ครั้ง จากช่วงข้อมูลเดียวกัน แล้วใช้ Exit เดิมคิดผลแต่ละไม้ รวมเป็นผลของรอบนั้น
  4. ทำซ้ำ 1,000 รอบ จะได้ผลรวม 1,000 ค่า เป็นภาพว่า “ถ้าไม่มีสัญญาณ ผลจะกระจายแค่ไหน”
  5. ดูว่าผลจริงอยู่ตรงไหน นับว่ามีกี่รอบที่สุ่มแล้วได้ดีเท่าหรือดีกว่าผลจริง

p-value = (จำนวนรอบสุ่มที่ได้ ≥ ผลจริง + 1) ÷ (จำนวนรอบ + 1)

ที่บวก 1 ทั้งบนและล่าง เพราะนับผลจริงเป็นหนึ่งในความเป็นไปได้ด้วย กันไม่ให้ได้ p = 0 ซึ่งเป็นไปไม่ได้จากการสุ่มจำนวนจำกัด ถ้ามี 746 จาก 1,000 รอบที่ได้ดีเท่าหรือดีกว่า p = 747 ÷ 1,001 = 0.746 แปลว่าการเข้าสุ่มทำได้ดีเท่านี้ราว 3 ใน 4 ของเวลา ถ้าไม่มีรอบไหนได้ถึงเลย p = 1 ÷ 1,001 ≈ 0.001 เกณฑ์ที่ใช้บ่อยคือ 0.05 แต่ถ้าลองมาหลายสัญญาณแล้ว ต้องเข้มกว่านั้นมาก อ่านเหตุผลใน Data snooping

ตัวอย่างจำลอง: Breakout กำไร +143R แต่จุดเข้าไม่ได้ช่วย

เราสร้างราคาจำลองในโปรแกรม (ไม่ใช่ตลาดจริง) 10,000 แท่ง แต่ละแท่งราคาขยับแบบสุ่ม ส่วนเบี่ยงเบนมาตรฐาน 1 จุด บวกทิศขึ้นเล็กน้อย 0.03 จุดต่อแท่ง ทั้งช่วงราคาขึ้นจาก 1,000 ไป 1,411 คล้ายตลาดขาขึ้นยาว ระบบทดสอบคือ

  • จุดเข้า ราคาปิดทำ High ใหม่ของ 20 แท่ง (Breakout) เปิด Buy อย่างเดียว เว้นอย่างน้อย 20 แท่งระหว่างสัญญาณ
  • Exit Trailing stop ห่าง 10 จุดจากราคาปิดสูงสุดตั้งแต่เข้า (10 จุด = 1R) ถือนานสุด 500 แท่ง
  • ต้นทุน หัก 0.05R ทุกไม้ แต่ละไม้คิดผลแยกกัน

ผลจริง 267 ไม้ ชนะ 51.3% รวม +142.9R ดูดีมาก จากนั้นเราสุ่มเวลาเข้า 267 ครั้งบนราคาชุดเดียวกัน ด้วย Exit เดิม 1,000 รอบ สองแบบ แบบแรก ซื้อสุ่ม (ทิศเดียวกับระบบ) แบบที่สอง โยนเหรียญ เลือก Buy หรือ Sell

ซื้อสุ่ม ทิศเดียวกับระบบ: ค่าเฉลี่ย +161R · p = 0.746 โยนเหรียญ Buy/Sell: ค่าเฉลี่ย +22R · p ≈ 0.001 Breakout จริง +143R −50050100150200250 ผลรวม (R) ของ 267 ไม้ ต่อรอบ
ข้อมูลจำลอง ไม่ใช่ตลาดจริง: ราคาสุ่มที่มีทิศขึ้นเล็กน้อย 10,000 แท่ง ทุกแท่งในกราฟคือหนึ่งรอบของการเข้าสุ่ม 267 ไม้ด้วย Exit เดียวกับระบบ (1,000 รอบต่อแบบ) เส้นแดงคือผลของ Breakout จริง

ถ้าเทียบกับโยนเหรียญ ไม่มีรอบไหนได้ถึง +142.9R เลย p ≈ 0.001 ดูเหมือนเจอความได้เปรียบชัดเจน แต่ถ้าเทียบกับซื้อสุ่ม มี 746 จาก 1,000 รอบที่ได้ดีเท่าหรือดีกว่า p = 0.746 ค่าเฉลี่ยของการซื้อสุ่มคือ +161.1R สูงกว่า Breakout เสียอีก กำไรทั้งหมดมาจากการถือ Buy ในตลาดที่ขึ้น ไม่ได้มาจากการเลือกเวลาเข้า และ Breakout ในราคาชุดนี้ไม่มีข้อมูลอะไรจริง ๆ เพราะราคาสร้างจากการสุ่มล้วน

เพื่อไม่ให้เลือกชุดที่ภาพสวย เราสร้างราคาแบบนี้ 5 ชุด p เทียบซื้อสุ่มอยู่ที่ 0.24–0.86 ทุกชุด และผลของ Breakout อยู่ห่างค่าเฉลี่ยของการซื้อสุ่มในชุดนั้นไม่เกินราว 1 ส่วนเบี่ยงเบนมาตรฐานทุกครั้ง ชุดที่ราคาขึ้นมาก Breakout ก็กำไรมาก ชุดที่ขึ้นน้อยก็กำไรน้อย

กับดักเทรนด์: เทียบผิดตัว p-value ก็ผิด

ตัวอย่างข้างบนคือกับดักที่เจอบ่อยที่สุด ระบบ Buy อย่างเดียวบนทองคำในช่วงที่ทองขึ้นแรง หรือระบบ Buy บิตคอยน์ในรอบขาขึ้น เทียบกับศูนย์หรือกับโยนเหรียญจะดูเก่งเสมอ กติกาคือ ตัวคุมต้องมีทิศเหมือนระบบ ระบบ Buy อย่างเดียวเทียบกับซื้อสุ่ม ระบบที่มี Buy 60% Sell 40% เทียบกับการสุ่มที่ Buy 60% Sell 40% เท่ากัน

ข้อดีของการซื้อสุ่มคือมันได้ทิศของตลาดไปเท่ากับระบบพอดี ส่วนต่างที่เหลือจึงเป็นของจุดเข้าล้วน ๆ และถ้าระบบชนะการซื้อสุ่มได้เพราะเทรนด์ช่วงนั้นแรงเป็นพิเศษ ก็ยังต้องดูต่อว่าชนะในปีที่ตลาดไม่มีเทรนด์ด้วยหรือเปล่า อ่านเพิ่มเรื่องตลาดเปลี่ยนนิสัยใน Market regime

โยนเหรียญพร้อม Trailing stop ได้อะไร

มีความเชื่อเก่าว่า “เข้าแบบโยนเหรียญก็ได้ ขอแค่ Exit ดี” เราลองจำลองตรง ๆ บนราคาสุ่มที่ไม่มีทิศเลย 1,000 ชุด ชุดละ 10,000 แท่ง ให้ “เทรดเดอร์” 1,000 คน คนละชุด เข้าคนละ 200 ไม้ ด้วยการโยนเหรียญเลือก Buy หรือ Sell และ Trailing stop 1R แบบเดียวกับข้างบน หักต้นทุน 0.05R

  • ชนะ 35.0% ไม้ชนะเฉลี่ย +1.12R ไม้แพ้เฉลี่ย −0.68R
  • ไม้ชนะใหญ่กว่าไม้แพ้ 1.12 ÷ 0.68 = 1.65 เท่า หน้าตาเหมือนระบบตามเทรนด์ทั่วไป
  • อัตราชนะคุ้มทุนที่อัตราส่วนนี้คือ 1 ÷ (1 + 1.65) = 37.8% แต่ชนะได้ 35.0% ต่ำกว่าจุดคุ้มทุน
  • ผลคาดหวังต่อไม้ −0.052R เท่ากับต้นทุน 0.05R ที่หักไว้แทบพอดี
ขาดทุน 713 คน กำไร 287 คน · ดีสุด +86R ค่าเฉลี่ย −10.4R −80−60−40−20020406080 ผลรวม (R) ของ 200 ไม้ ต่อคน
ข้อมูลจำลอง ไม่ใช่ตลาดจริง: เทรดเดอร์ 1,000 คน แต่ละคนเทรดราคาสุ่มคนละชุดที่ไม่มีทิศ เลือกทิศด้วยการโยนเหรียญ ออกด้วย Trailing stop หักต้นทุน 0.05R ต่อไม้ สีแดงคือขาดทุน สีเขียวคือกำไร

Trailing stop เปลี่ยน รูปร่าง ของผลได้จริง แพ้บ่อยแต่แพ้เล็ก ชนะน้อยครั้งแต่ชนะใหญ่ แต่ไม่ได้สร้าง ผลคาดหวัง ขึ้นมาเอง บนราคาที่ไม่มีทิศ ผลออกมาเท่าทุนก่อนหักต้นทุนแล้วขาดทุนเท่าต้นทุน ที่น่าคิดคือ 287 จาก 1,000 คนยังกำไรหลัง 200 ไม้ 103 คนได้ +20R ขึ้นไป และคนที่ดีที่สุดได้ +86.4R ถ้าคนเหล่านี้ขายสัญญาณ ประวัติก็ดูน่าเชื่อ

แต่ถ้าราคามีทิศ (ใช้ทิศขึ้น 0.03 จุดต่อแท่งเท่าตัวอย่างแรก) โยนเหรียญพร้อม Trailing stop กลับได้ +0.03R ต่อไม้ และ 54.1% ของคนกำไร เพราะไม้ Buy ได้ถือยาวตามเทรนด์ ส่วนไม้ Sell โดน Stop เร็ว นี่คือ Exit กับเทรนด์ทำงานร่วมกัน ไม่ใช่จุดเข้า ผลแบบนี้หายไปทันทีเมื่อเทรนด์หมด เรื่องการเลือก Trailing stop แบบต่าง ๆ อ่านใน เปรียบเทียบวิธี Trailing stop

Exit และขนาดไม้ทำให้การเข้าสุ่มดูดีได้อีกหลายแบบ

  • TP ใกล้ SL ไกล บนราคาที่ไม่มีทิศ โอกาสถึง TP ก่อน = ระยะ SL ÷ (ระยะ SL + ระยะ TP) ตั้ง TP 1.3 SL 26 ก็ชนะราว 95% ด้วยการเข้าสุ่ม ในการทดสอบย้อนหลังของเรา ระบบ Breakout บนทองคำ (ปี 2026 ข้อมูล tick จริง) ชนะ 92.8–95.8% ขณะที่การเข้าสุ่มแบบเดียวกันชนะ 95.3% รายละเอียดใน อัตราชนะกับจุดคุ้มทุน
  • เพิ่มไม้หลังแพ้ Martingale ทำให้ “รอบ” จบด้วยกำไรเกือบทุกรอบ ไม่ว่าจุดเข้าจะเป็นอะไร จนเจอรอบที่ยาวเกินทุน อ่านใน Grid และ Martingale
  • ทบต้นและขนาดไม้ตามทุน ทำให้เส้นทุนโค้งขึ้นสวยในช่วงที่ดี แต่ไม่ได้เปลี่ยนว่าจุดเข้ามีข้อมูลหรือไม่

วิธีกันคือวัดทั้งระบบจริงและตัวคุมเป็น R ด้วยความเสี่ยงต่อไม้คงที่ แล้วค่อยเอาขนาดไม้ไปคิดทีหลัง

สร้างตัวคุมให้ยุติธรรม

ตัวคุม (control) หรือ placebo คือของปลอมที่เหมือนสัญญาณจริงทุกอย่าง ยกเว้นส่วนที่อ้างว่าเป็นความได้เปรียบ ถ้าตัวคุมต่างจากของจริงในเรื่องอื่นด้วย ผลต่างที่เห็นจะมาจากเรื่องนั้นแทน

  1. ทิศเดียวกัน หรือสัดส่วน Buy/Sell เท่ากัน
  2. จำนวนไม้และกติกาไม้ซ้อนเท่ากัน ถ้าระบบถือได้ทีละไม้ ตัวคุมก็ต้องถือได้ทีละไม้
  3. ช่วงเวลาในวันเดียวกัน ถ้าระบบเข้าเฉพาะ 14:00–17:00 น. เวลาไทย ให้สุ่มเฉพาะในช่วงนั้น เพราะความผันผวนและ spread ต่างกันมากตามชั่วโมง ดู เวลาตลาด Forex เวลาไทย
  4. ระยะและความลึกเท่ากัน ถ้าทดสอบว่าราคาเด้งที่เส้น 61.8 ของ Fibonacci อย่าเทียบกับ 50% ลอย ๆ ให้เทียบกับเส้นหลอกที่อยู่ใกล้ ๆ ในความลึกพอกัน เพราะในการทดสอบย้อนหลังของเรา ยิ่งราคาย่อลึก ยิ่งเด้งง่ายขึ้นเอง ไม่ว่าเส้นนั้นเป็นฟิโบหรือไม่
  5. ต้นทุนเดียวกัน ใช้ spread ณ เวลาที่เข้า ไม่ใช่ค่าเฉลี่ยทั้งวัน

ตัวคุมที่สร้างไม่ตรงรูปแบบให้ผลหลอกได้แรงมาก ในการทดสอบย้อนหลังของเรา (ทองคำ แท่ง M1 ช่วง 06:00–09:00 น. เวลาไทย กรกฎาคม 2022 ถึงกันยายน 2026 รวม 192,728 แท่ง) เราวัดว่าราคาอยู่ที่เส้นฟิโบบ่อยกว่าความบังเอิญไหม ตัวคุมแรกที่ใช้คือเส้นฟิโบจากช่วงเวลาที่เลื่อนไป ซึ่งไม่เกี่ยวกับราคาปัจจุบันเลย ผลออกมาว่าเส้นจริง “ดีกว่า” 1.8–2.0 เท่า แต่พอเปลี่ยนตัวคุมเป็นการกระจายของความลึกจากข้อมูลชุดเดียวกัน อัตราส่วนเหลือ 0.95–1.00 คือไม่ต่างจากความบังเอิญ

ถ้าระบบชนะตัวคุมแบบขาดลอย ให้สงสัยตัวคุมก่อน ว่ามันต่างจากของจริงในเรื่องอื่นด้วยหรือเปล่า

ในการทดสอบย้อนหลังของเรา

งานวิจัยของเราบนทองคำ (XAUUSD) ใช้ตัวคุมแทบทุกครั้ง ตัวอย่างที่ยืนยันจากไฟล์ต้นฉบับ

① ระดับ 261.8 ของ swing เก่า 10 ชุด: เด้งก่อน ② ระดับ 78.6 ของฟิโบลากข้าม 2 swing: เด้งก่อน ③ กล่องเช้าปิดที่ขอบบน แล้วหลุดขึ้นก่อน (ตัวคุม: กล่องบ่าย) ④ กล่อง N แท่งทะลุขอบแล้วไปต่อ (ตัวคุม: สุ่ม) สัญญาณตัวคุม สัญญาณตัวคุม สัญญาณตัวคุม สัญญาณตัวคุม 41%42% 50%50% 79%76% 56%50%
ผลทดสอบย้อนหลังบนทองคำ ไม่ได้บอกผลในอนาคต ①–③ ไม่ต่างจากตัวคุมอย่างมีนัย ④ คู่เดียวที่ชนะตัวคุมชัด (ข้อมูลปี 2026 ปีเดียว) และยังไม่ได้พิสูจน์ว่าทำเงินได้หลังหัก spread
  1. เส้นฟิโบของคลื่นเก่า เราเห็นราคากลับตัวพอดีที่ 261.8 ของคลื่นก่อนหน้า จึงวัดการแตะเส้นของ swing ใหญ่ย้อนหลัง 10 ชุดทั้งหมดราว 241,000 ครั้ง (ข้อมูลแท่ง 1 นาที ราวปี 2022–2026) เทียบกับระดับหลอกที่วางทุก 10% ข้าง ๆ ระดับ 261.8 เด้ง 41% ระดับหลอก 42% ไม่มีระดับฟิโบไหนเด้งบ่อยกว่าระดับหลอกอย่างมีนัย
  2. ฟิโบลากข้าม 2 swing ที่ 78.6 เด้ง 50% เทียบระดับข้างเคียง 50% แยกรายปีอยู่ที่ 46–51% ทุกปี (แท่ง 1 นาที มกราคม 2022 ถึงสิงหาคม 2026)
  3. กล่องเช้า 06:30–08:30 น. เวลาไทย ถ้าราคาปิดกล่องที่ขอบบน จะหลุดขึ้นก่อน 79% ฟังดูแม่น แต่กล่องรูปเดียวกันช่วง 13:30–15:30 น. ได้ 76% แปลว่าส่วนใหญ่มาจากการที่ราคาอยู่ใกล้ขอบบนอยู่แล้ว ไม่ใช่ช่วงเช้าพิเศษ (ราว 1,000 วัน ปี 2022–2026) นี่คือตัวคุมแบบ “รูปเดียวกัน ต่างแค่เวลา”
  4. กล่องทะลุแล้วไปต่อ กล่อง 20, 40 และ 89 แท่ง M1 ทะลุขอบแล้วไปต่อ 56% เทียบสุ่ม 50% ทุกขนาดกล่อง ตัวอย่าง 7,800–25,000 ครั้ง (ปี 2026) เป็นคู่ที่ชนะตัวคุมชัด แต่ “ต่างในสถิติ” ยังไม่เท่ากับ “ทำเงินได้” ต้องทดสอบเป็นระบบที่หัก spread จริงอีกขั้น

และตัวอย่างกับดักเทรนด์จริง เราทดสอบระบบเข้าวันละไม้ตอน 06:30 น. เวลาไทย ด้วย 7 วิธีเลือกทิศ (SL 5 ดอลลาร์ TP 30 ดอลลาร์ 0.10 lot ทุน 10,000 ดอลลาร์) เทียบกับตัวคุม 2 ตัวคือ “ซื้อทุกวัน” และ “ขายทุกวัน” กฎที่ดีที่สุดได้ราว +5,700 ถึง +5,900 ดอลลาร์ใน 5 ปี ใกล้กับที่ “ซื้อทุกวัน” ได้เมื่อเข้าตอน 07:00 น. (+5,408) ไม่มีกฎไหนชนะตัวคุมทั้งสองเกิน 2 ใน 5 ปี ค่าคลาดเคลื่อนมาตรฐานของผลรวม 5 ปีอยู่ที่ราว ±4,500 ดอลลาร์ และทุกผลรวมอยู่ภายใน 2 เท่าของค่านี้ คือแยกจากโชคไม่ได้ ทองขึ้นแรงในช่วงนั้น กำไรของกฎที่ดีที่สุดจึงพอ ๆ กับการซื้อทุกวัน ไม่ได้มาจากการเลือกทิศ

เงื่อนไขข้อมูล: ผลหลายปีข้างบน ปี 2022–2025 มาจากข้อมูลแท่ง 1 นาที หรือ tick ที่จำลองจากแท่ง 1 นาที มีแค่ปี 2026 ที่เป็น tick จริง ทั้งหมดเป็นผลทดสอบย้อนหลัง ผลในอดีตไม่ได้บอกผลในอนาคต

ผ่านแล้วแปลว่าอะไร ไม่ผ่านแปลว่าอะไร

  • ทดสอบแค่จุดเข้า ภายใต้ Exit ชุดนี้ บนราคาชุดนี้ ถ้าอยากรู้ว่า Exit ดีไหม ให้ทำกลับด้าน คือเก็บจุดเข้าไว้ แล้วเทียบกับ Exit สุ่มหรือออกตามเวลาคงที่
  • ต้องมีไม้พอ ในตัวอย่าง Breakout ที่ 267 ไม้ ขอบบน 5% ของการซื้อสุ่มอยู่ที่ +204.1R ห่างค่ากลาง (+160.3R) 43.8R จุดเข้าต้องเพิ่มราว 43.8 ÷ 267 = 0.16R ต่อไม้ถึงจะผ่านเกณฑ์ 0.05 ความได้เปรียบที่เล็กกว่านั้นมีจริงได้แต่วัดไม่เห็น
  • ลองหลายสัญญาณแล้วเลือกตัวที่ผ่าน p-value ของตัวที่ดีที่สุดใช้ไม่ได้ตรง ๆ แล้ว ต้องปรับเกณฑ์ตามจำนวนที่ลอง
  • ไม่ใช่ Monte Carlo Monte Carlo สลับไม้ชุดเดิมเพื่อดูความเสี่ยง ส่วนการทดสอบนี้เปลี่ยนจุดเข้าเพื่อดูว่ามีความได้เปรียบไหม ควรทำทั้งสองอย่าง

ลองทำเองกับระบบของคุณ

ถ้าเขียนโค้ดได้ โครงหลักสั้นมาก ส่วนที่ยากคือฟังก์ชันคิดผลด้วย Exit เดิม และการเลือกแท่งให้สุ่มจากช่วงเดียวกับที่ระบบมีสิทธิ์เข้า

// entries = แท่งที่ระบบเข้าจริง, resultR(i, dir) = ผล R ถ้าเข้าที่แท่ง i ด้วย Exit เดิม
const real = entries.reduce((s, i) => s + resultR(i, +1), 0);
let atLeast = 0;
for (let k = 0; k < 1000; k++) {
  let sum = 0;
  for (let t = 0; t < entries.length; t++) {
    const i = randomAllowedBar(); // ชั่วโมงเดียวกัน ช่วงข้อมูลเดียวกัน
    sum += resultR(i, +1);        // ทิศเดียวกับระบบ
  }
  if (sum >= real) atLeast++;
}
const p = (atLeast + 1) / 1001;

ถ้าไม่เขียนโค้ด ทำมือแบบย่อได้ จดราคาและเวลาเข้าจริงทุกไม้ แล้วสุ่มเวลาเข้าจากช่วงเดียวกันอีก 20–30 ชุด คิดผลด้วย Exit เดิม แม้จะหยาบ แต่ถ้าผลจริงอยู่กลางกองของผลสุ่ม ก็รู้คำตอบแล้ว

ข้อผิดพลาดที่เจอบ่อย

  • เทียบกับศูนย์หรือโยนเหรียญ ทั้งที่ระบบ Buy อย่างเดียว ในตลาดขาขึ้น ระบบ Buy แทบทุกแบบชนะโยนเหรียญ ต้องเทียบกับซื้อสุ่ม
  • ให้ตัวคุมใช้ Exit หรือต้นทุนต่างจากของจริง เช่น ตัวคุมไม่มี Trailing stop หรือคิด spread เฉลี่ยทั้งวัน ผลต่างจะมาจาก Exit หรือต้นทุนแทน
  • สุ่มจากทั้งวัน ทั้งที่ระบบเข้าแค่บางชั่วโมง ชั่วโมงที่ผันผวนต่างกันให้ผลต่างกันเอง ให้สุ่มจากชั่วโมงเดียวกัน
  • รันสุ่มรอบเดียวแล้วสรุป การเข้าสุ่มรอบเดียวก็แกว่งได้มาก ต้องดูการกระจายจากหลายร้อยถึงพันรอบ
  • ชี้ตัวอย่างที่แม่นบนกราฟแทนการนับทั้งหมด มีเส้นบนจอมากพอ ย่อมมีเส้นตรงจุดกลับตัวเสมอ ต้องนับทุกครั้งที่แตะ แล้วเทียบกับระดับหลอก อ่านเพิ่มใน Hindsight bias

คำถามที่พบบ่อย

ต่างจาก Monte Carlo ที่สลับลำดับไม้ยังไง

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

ต้องสุ่มกี่รอบถึงพอ

1,000 รอบพอสำหรับดูว่าผลจริงอยู่ในส่วนกลางหรือปลายของการกระจาย p-value ที่เล็กที่สุดที่วัดได้คือราว 1 ÷ 1,001 ถ้าอยากแยกค่าที่เล็กมาก ๆ เช่น 0.001 กับ 0.0001 ต้องสุ่มเป็นหมื่นรอบ แต่ปัญหาจริงมักไม่ใช่จำนวนรอบ แต่เป็นตัวคุมที่สร้างไม่ตรงรูปแบบ

ระบบไม่ผ่านการทดสอบนี้ แปลว่าต้องทิ้งเลยไหม

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

เนื้อหานี้เป็นความรู้ทั่วไป ไม่ใช่คำแนะนำการลงทุน การเทรดมีความเสี่ยง อาจสูญเสียเงินลงทุนทั้งหมด

อ่านต่อ

EA
EA และเทรดอัตโนมัติกลาง

Monte Carlo ทดสอบระบบเทรด สลับลำดับเทรดเพื่อดู Drawdown ที่ควรเผื่อ

Backtest ให้ผลแค่เส้นทางเดียว Monte Carlo สลับและสุ่มรายการเทรดซ้ำหลายพันรอบ ให้เห็นช่วงของ Drawdown แพ้ติด กำไรสุทธิ และความเสี่ยงล้างพอร์ต

อ่าน 10 นาที
EA
EA และเทรดอัตโนมัติกลาง

Walk-forward analysis คืออะไร ทดสอบ EA แบบเลื่อนหน้าต่าง ไม่หลอกตัวเอง

หาค่าบนช่วงหนึ่ง ทดสอบบนช่วงถัดไปที่ไม่ได้ใช้เลือก แล้วเลื่อนต่อ อธิบายแบบ rolling กับ anchored, Walk-forward efficiency และตัวอย่างคำนวณทีละรอบ

อ่าน 10 นาที
EA
EA และเทรดอัตโนมัติขั้นสูง

Data snooping คืออะไร ลอง 200 กลยุทธ์ ตัวที่ดีที่สุดก็อาจเป็นแค่โชค

ยิ่งลองหลายแบบ ยิ่งเจอผู้ชนะปลอม ดู Sharpe ที่พองจากการเลือกตัวที่ดีที่สุด แนวคิด Bonferroni, Reality Check, t > 3, Deflated Sharpe และการทดลองกลยุทธ์สุ่ม 200 ตัว

อ่าน 11 นาที
เครื่องมือ ทักไลน์