Backtesting และ forward testing – วิธีการและข้อผิดพลาดในการทดสอบ

Backtest ที่กลยุทธ์ทำกำไรได้ 280% ต่อปีนั้นส่วนใหญ่เป็นเรื่องสมมติ ไม่ใช่เพราะตั้งใจโกหก แต่เพราะข้อผิดพลาดเชิงวิธีการที่ผู้ทดสอบมองไม่เห็น Look-ahead bias, survivorship, curve fitting, ต้นทุนที่สร้างแบบจำลองต่ำกว่าความเป็นจริง, การเลือกช่วงข้อมูล, การ optimise พารามิเตอร์บนข้อมูลทั้งหมด, การเพิกเฉยต่อสภาวะตลาด – ข้อผิดพลาดใดข้อหนึ่งเหล่านี้สามารถ ลำพัง เปลี่ยนกลยุทธ์ที่ขาดทุนให้กลายเป็นผู้ชนะที่ดูเหมือนดี ในกระบวนการตรวจสอบระดับมืออาชีพ backtest เดียวไม่เคยเพียงพอ – กลยุทธ์ต้องผ่าน walk-forward, Monte Carlo bootstrap, out-of-sample และ forward test 30 – 90 วันบน demo ด้วย tick stream จริงก่อนจะสัมผัสเงินทุน เทรดเดอร์รายย่อยควรลอกหลักการ ไม่ใช่ขนาดของโครงสร้างพื้นฐาน ในบทความนี้เราวางวิธีการทั้งหมด – พร้อมเกณฑ์ทางสถิติที่เป็นรูปธรรม, สคริปต์ Python bootstrap ตัวอย่าง, แบบจำลองต้นทุนสำหรับ MT4/MT5, กฎการกระทบยอด backtest กับ forward และรายการข้อผิดพลาด 8 ข้อที่มักเปลี่ยน backtest ที่ดีให้กลายเป็น live ที่ขาดทุนในไตรมาสแรกหลังการนำไปใช้งาน

การ Backtesting และ forward testing ของกลยุทธ์ Forex – equity curve พร้อม in-sample optimisation, out-of-sample validation และ forward test บน demo
ประเด็นสำคัญใน 60 วินาที
  • Backtest ตอบคำถามว่า "กลยุทธ์นี้เคยทำเงินได้ในอดีตหรือไม่", forward test ตอบว่า "มันกำลังทำเงินได้ ตอนนี้ หรือไม่?" การทดสอบสองแบบที่แตกต่างกันพร้อมข้อผิดพลาดที่ต่างกัน – ไม่มีอันใดแทนอีกอันได้
  • ข้อผิดพลาดเชิงวิธีการ 6 ประการ: look-ahead bias, survivorship, curve fitting / overfitting, cherry picking, ต้นทุนที่สร้างแบบจำลองต่ำ และ data snooping แต่ละอย่างสามารถเปลี่ยนระบบที่ขาดทุนให้เป็นผู้ชนะที่ดูเหมือนได้ลำพัง
  • Walk-forward analysis คือมาตรฐานอุตสาหกรรม: in-sample 70% ของข้อมูลสำหรับ calibration, out-of-sample 30% สำหรับการตรวจสอบ, เลื่อน window ไปข้างหน้า หากไม่มีสิ่งนี้คุณกำลัง optimise บน noise ในอดีต
  • เกณฑ์ทางสถิติ: N = 30 เทรดน้อยเกินไป (ช่วงความเชื่อมั่น WR ±15 pp), N = 200 ให้ ±5 pp, N = 500 ให้ ±3 pp กลยุทธ์ที่มี 24 เทรดใน backtest คือความหวัง ไม่ใช่หลักฐาน
  • Forward test อย่างน้อย 30 วัน demo ก่อนบัญชีจริงขนาดเล็กและ 90 วัน micro account ก่อน sizing เต็ม ตัวเลขเหล่านี้ไม่ใช่สำหรับการตรวจสอบทางสถิติเต็มรูปแบบ – มันคือ ขั้นต่ำเชิงปฏิบัติการ เพื่อตรวจจับรูรั่วที่ใหญ่ที่สุด

1. Backtest เทียบกับ forward test – คำถามที่ต่างกัน คำตอบที่ต่างกัน

ผู้เริ่มต้นส่วนใหญ่ทำผิดพลาดอย่างหนึ่ง: หลังจากได้ backtest ที่ดีพวกเขาตัดสินว่ากลยุทธ์พร้อมแล้ว แต่มันไม่ได้เป็นแบบนั้น Backtest ตรวจสอบประวัติศาสตร์ forward test ตรวจสอบการดำเนินการในปัจจุบัน ในทางปฏิบัติสิ่งเหล่านี้คือตัวกรองสองอย่างที่แตกต่างกัน: backtest ดักจับสถิติ forward ดักจับการดำเนินการจริง, latency, slippage และว่าเทรดเดอร์คลิกตามกฎจริงหรือไม่

Backtest – คำถามเชิงประวัติศาสตร์

Backtest ถามว่า: "ถ้ากลยุทธ์ทำงานมา 3 – 10 ปีที่แล้ว มันจะมีพฤติกรรมอย่างไร?" คำตอบดีเท่ากับ คุณภาพของข้อมูล และ คุณภาพของแบบจำลองต้นทุน Backtest เป็นแบบ ย้อนหลัง ดังนั้น:

  • มันรวดเร็ว – คุณสามารถทดสอบข้อมูล 5 ปีได้ใน 10 นาที
  • มันผลิตตัวอย่างขนาดใหญ่ – หลายร้อยถึงหลายพันเทรด
  • มันช่วยให้เปรียบเทียบตัวแปรพารามิเตอร์ได้ – ซึ่งเป็นข้อผิดพลาดที่ใหญ่ที่สุดด้วย (overfitting)
  • มันไวต่อ คุณภาพของข้อมูล – tick ที่ไม่ดี, แท่งเทียนที่หายไป, แบบจำลองต้นทุนที่ผิดพลาด = ผลลัพธ์ที่ไร้ค่า

Backtest ไม่ตอบ ว่ากลยุทธ์ทำงาน ตอนนี้ หรือไม่ สภาวะตลาดปี 2018 – 2022 อาจไม่มีอยู่ในปี 2024 – 2026

Forward test – คำถามเชิงคาดการณ์

Forward test ถามว่า: "กลยุทธ์กำลังทำกำไร ตอนนี้, ในสภาวะตลาดปัจจุบัน, ภายใต้เงื่อนไขการดำเนินการจริง หรือไม่?" มันเป็นแบบ คาดการณ์ – ข้อมูลไหลแบบ real time ดังนั้น:

  • มันช้า – เพื่อรวบรวม 100 เทรดที่ 5 เทรดต่อสัปดาห์ คุณต้องการ 5 เดือน
  • มันผลิตตัวอย่างขนาดเล็กกว่า – forward test รายย่อยส่วนใหญ่จบที่ 30 – 80 เทรด
  • มันขจัด look-ahead bias ตามคำนิยาม – ข้อมูลในอนาคตไม่มีอยู่จริงทางกายภาพ
  • มันวัดเงื่อนไขการดำเนินการจริง – spread ภายใต้ความเครียด, slippage, requote, bridge latency

ตารางเปรียบเทียบ: backtest จะไม่ตรวจจับอะไร, forward จะไม่ตรวจจับอะไร

ประเภทข้อผิดพลาดตรวจจับโดย backtest?ตรวจจับโดย forward?
Look-ahead bias (ข้อมูลอนาคตในการตัดสินใจ)ไม่ – นี่คือต้นกำเนิดของภาพลวงตาใช่ – ข้อมูลอนาคตไม่มีอยู่ทางกายภาพ
Parameter curve fittingบางส่วน – เฉพาะ walk-forward เท่านั้นบางส่วน – ปรากฏหลังจาก N เพียงพอหรือการเปลี่ยนแปลงสภาวะตลาด
ต้นทุนที่สร้างแบบจำลองต่ำ (slippage, requote)บางส่วน – ขึ้นอยู่กับคุณภาพของแบบจำลองใช่ – ต้นทุนจริงวัดโดยตรง
การเปลี่ยนแปลงสภาวะตลาดนับตั้งแต่ข้อมูลอดีตไม่ – ทำงานบนข้อมูลเก่าใช่ – ทำงานบนสภาวะตลาดปัจจุบัน
ความไม่สามารถของเทรดเดอร์ที่จะปฏิบัติตามกฎ (วินัย)ไม่ – backtest ถือว่ามีการดำเนินการที่สมบูรณ์แบบใช่ – มนุษย์จริงที่คีย์บอร์ด
จำนวนเหตุการณ์ทางสถิติของ edge (N = 300+ ที่จำเป็น)ใช่ – backtest ให้ตัวอย่างขนาดใหญ่ไม่ – forward ที่ 5 เทรดต่อสัปดาห์ให้ N = 80 ในครึ่งปี

การกระทบยอด Backtest กับ Forward – ขั้นตอนการควบคุม

ตัวตรวจจับ look-ahead bias และข้อผิดพลาด data feed ที่ทรงพลังที่สุด: การเปรียบเทียบ signal ทีละตัว Export จาก backtest และจาก forward ในรูปแบบ CSV แบบรวม:

timestamp_utc, broker_server_time, pair, setup_id, direction, entry_rule_hash,
entry_price, sl_price, tp_price, trigger_bar_close, source

30 – 60 วันแรกของ forward สร้าง signal บนแท่งเทียนจริง ในช่วงเดียวกันคุณเรียกใช้ backtest บนข้อมูลเก็บถาวรจากวันเหล่านั้น คุณเปรียบเทียบไฟล์ทั้งสอง: divergence > 5 – 10% ของ signal = สัญญาณเตือน สาเหตุที่เป็นไปได้: look-ahead ใน indicator, repaint, data feed ที่แตกต่างกัน, bug ในโค้ดกลยุทธ์

การ normalise เวลา – UTC เทียบกับเวลาเซิร์ฟเวอร์โบรกเกอร์ ใน export record ทั้ง timestamp_utc และ broker_server_time โบรกเกอร์ MT4/MT5 บางรายใช้เวลาเซิร์ฟเวอร์ GMT+2/GMT+3 พร้อม DST เสมอ normalise ไปที่ UTC ก่อน แล้วจึงเปรียบเทียบ
มาตรฐานการตรวจสอบของอุตสาหกรรม เทียบกับรายย่อย ในกระบวนการเชิงปริมาณระดับมืออาชีพ forward test คือ ขั้นตอนบังคับ ก่อนการจัดสรรเงินทุนให้กับกลยุทธ์ใหม่ ลำดับทั่วไป: backtest 6 – 18 เดือนพร้อม walk-forward, paper trading 3 – 6 เดือนบน live data stream, การซื้อขายจริง 1 – 3 เดือนด้วยการจัดสรรเงินทุนขั้นต่ำ, การจัดสรรเต็มรูปแบบเฉพาะหลังจากผลลัพธ์ที่ดีของขั้นสุดท้าย[1]

2. ข้อผิดพลาดในการทดสอบ – look-ahead, survivorship, curve fit, overfitting

ข้อผิดพลาดเหล่านี้เป็น เชิงวิธีการ ไม่ใช่เชิงความคิด ปัญหาไม่ได้อยู่ที่ผู้ทดสอบไม่มีประสบการณ์หรือขี้เกียจ – ปัญหาอยู่ที่เครื่องมือทดสอบ (MT4 Strategy Tester, MT5, สคริปต์กำหนดเอง) เองที่ยอมให้เกิดข้อผิดพลาด หากผู้ทดสอบไม่รู้ว่าต้องมองหาอะไร

ข้อผิดพลาดที่ 1: Look-ahead bias

ระหว่างแท่งเทียน กลยุทธ์ใช้ข้อมูลที่จะทราบเฉพาะ หลังจาก แท่งเทียนปิด ตัวแปรที่พบบ่อยที่สุด:

  • การตัดสินใจระหว่างแท่งเทียนบนพื้นฐานของราคาปิด กลยุทธ์คำนวณ SMA-20 จาก 20 แท่งเทียนล่าสุดรวมถึงแท่งเทียนปัจจุบันและเข้าเมื่อ "แท่งเทียน M5 ปิดเหนือ" ในความเป็นจริง: ในวินาทีที่ 240 ของแท่งเทียน M5 คุณยังไม่รู้ว่ามันจะปิดอย่างไร
  • Indicator ที่มี look-back rounding ZigZag, Fractals, Andrews Pitchfork – รีเฟรช ย้อนหลัง แท่งเทียนที่เมื่อ 10 วันก่อนถูกทำเครื่องหมายว่าเป็น swing high อาจไม่ใช่หลังจากข้อมูลใหม่มาถึง
  • ข้อมูลพื้นฐานที่มี publication lag CPI ของเดือนมีนาคมเผยแพร่เมื่อวันที่ 12 เมษายน แต่ในฐานข้อมูลมีวันที่ "มีนาคม" กลยุทธ์ที่ใช้ "CPI มีนาคมในการตัดสินใจวันที่ 1 เมษายน" ใช้ข้อมูลที่ไม่มีอยู่ในขณะนั้น

รายการ constructions ที่ต้องการการทดสอบ anti-repaint ใน MT4/MT5:

  • ZigZag, Fractals, Andrews Pitchfork – รีเฟรชย้อนหลังตามคำนิยาม
  • Heikin-Ashi, SuperTrend, Hull MA และ channels กำหนดเอง – ต้องผ่านการทดสอบ anti-repaint ก่อนใช้งานใน backtest
  • Custom indicators จาก MQL Market ที่ไม่มีซอร์สโค้ด – กล่องดำที่ตรวจสอบไม่ได้ ปฏิเสธอัตโนมัติ
  • การตัดสินใจ intrabar บน Close[0] ใน MT4 – ใน MT4 Close[0] ระหว่างแท่งเทียนคือ bid ปัจจุบัน ไม่ใช่ราคาปิดที่ยังไม่มีอยู่

ข้อผิดพลาดที่ 2: Survivorship bias

คุณทดสอบกลยุทธ์บนตะกร้าคู่สกุลเงินปี 2024 ปัญหา: บางคู่ที่ "ทำงานได้ดี" ในปี 2018 อาจมีสภาพคล่องหรือเงื่อนไขการดำเนินการที่แตกต่างกันอย่างมากในปัจจุบัน การตรวจจับ: ในการทดสอบตะกร้าคู่ ใช้รายการคู่ที่ ใช้งานอยู่ในปัจจุบัน ไม่ใช่รายการในอดีต

ข้อผิดพลาดที่ 3: Curve fitting

คุณทดสอบกลยุทธ์ด้วยพารามิเตอร์ SMA-20 เทียบกับ SMA-22 เทียบกับ SMA-25 เทียบกับ SMA-30, RSI(11) เทียบกับ RSI(14) เทียบกับ RSI(17), เกณฑ์ ATR ตั้งแต่ 0.8 ถึง 1.5 รวม 4 × 3 × 8 = 96 combinations โดยความน่าจะเป็นล้วนๆ combination บางอย่าง จะให้ผลลัพธ์ backtest ที่ยอดเยี่ยม – นั่นคือคณิตศาสตร์ ไม่ใช่ความสามารถของกลยุทธ์

การตรวจจับ: parameter heatmap หากพารามิเตอร์ที่ optimal คือ isolated peak ที่ล้อมรอบด้วยผลลัพธ์ที่อ่อนแอ – กลยุทธ์ถูก curve-fitted หากพารามิเตอร์ที่ optimal คือ plateau (combinations ที่อยู่ใกล้เคียงหลายอย่างให้ผลลัพธ์ที่ดีพอๆ กัน) – กลยุทธ์มี edge ที่แข็งแกร่ง

ข้อผิดพลาดที่ 4: Overfitting

Curve fitting คือ overfitting ในระดับพารามิเตอร์ Overfitting เต็มรูปแบบคือการเพิ่ม กฎและตัวกรอง ให้กับกลยุทธ์เพื่อตอบสนองต่อเทรดที่ขาดทุนเฉพาะใน backtest "ฉันเพิ่มตัวกรอง: ฉันไม่เข้าในวันอังคารหลัง 14:00 CET" – เพราะเทรดที่ขาดทุนสองครั้งใน backtest เป็นวันอังคารหลัง 14:00 กฎที่เพิ่ม หลังจาก เหตุการณ์จริงเป็น overfitting บน noise

กฎเชิงปริมาณที่เข้มงวด: ถ้าคุณ optimise พารามิเตอร์อิสระมากกว่า 4 ตัวบนตัวอย่างที่มีเทรดน้อยกว่า 200 ครั้ง overfitting คือ สมมติฐาน baseline การตรวจสอบ กฎในทางปฏิบัติสำหรับรายย่อย: จำนวนพารามิเตอร์ที่ optimise × 30 ≤ จำนวนเทรดในตัวอย่าง

ข้อผิดพลาดที่ 5: ต้นทุนที่สร้างแบบจำลองต่ำ

MT4 Strategy Tester เริ่มต้นด้วย spread คงที่ (เช่น 1.0 pip บน EUR/USD ตลอด 5 ปี) ความเป็นจริง: spread ของ EUR/USD แกว่งจาก 0.3 pips ในช่วง LON+NY full liquidity ถึง 4 – 8 pips ในช่วง rollover และ 8 – 25 pips ในนาทีแรกหลัง macro releases

มิติที่สอง: slippage Backtest ถือว่ามีการดำเนินการที่ราคาในฐานข้อมูลพอดี ความเป็นจริง: 0.2 – 0.5 pips slippage ในสภาวะปกติ, 1 – 3 pips บน volume breakouts, 5 – 15 pips หลัง releases

ประการที่สาม: swap (ต้นทุน carry) กลยุทธ์ swing ที่ถือ position 3 – 8 วันจ่าย swap ทุกวัน กลยุทธ์ที่มี expectancy +0.4R ต่อเทรดซึ่งเทรดทั่วไปใช้เวลา 5 วันอาจสูญเสีย swap ที่ทำให้ edge หายไปทั้งหมด

แนวปฏิบัติที่ไม่ดี: backtest ด้วย spread 1.0 pip คงที่, ความเป็นจริงด้วย 6 pips ระหว่าง release เทรดเดอร์สร้างกลยุทธ์กลับตัวบน NFP releases MT4 backtest ด้วย fixed spread 1.0 pip: 14 เทรดใน 2 ปี, WR 64%, expectancy +0.8R กลับเข้าไป live: spread ในวินาทีของ release คือ 8 pips กลยุทธ์เข้าด้วย spread ที่กว้างกว่า backtest ถึง 8 เท่า SL ถูก hit ทันทีจากการที่ spread กว้างเพียงอย่างเดียว
ข้อผิดพลาดหกประการใน backtesting กลยุทธ์ Forex – look-ahead bias, survivorship bias, curve fitting, overfitting, ต้นทุนที่สร้างแบบจำลองต่ำ และ data snooping พร้อมตัวอย่างการตรวจจับ
ข้อผิดพลาดหกประการใน backtesting กลยุทธ์ Forex – look-ahead bias, survivorship bias, curve fitting, overfitting, ต้นทุนที่สร้างแบบจำลองต่ำ และ data snooping พร้อมตัวอย่างการตรวจจับ

3. Walk-forward analysis – วิธีตรวจสอบกับตัวอย่างขนาดเล็ก

Walk-forward analysis (WFA) คือมาตรฐานอุตสาหกรรมสำหรับการตรวจสอบกลยุทธ์ – อธิบายโดย Robert Pardo ใน The Evaluation and Optimization of Trading Strategies[2] แนวคิด: แทนที่จะ optimise พารามิเตอร์บนชุดข้อมูลอดีตทั้งหมด เราแบ่งมันออกเป็น window in-sample (IS) และ out-of-sample (OOS), optimise บน IS, validate บน OOS จากนั้นเลื่อน window ไปข้างหน้าและทำซ้ำ

โครงแบบ 70/30 มาตรฐาน

  • ข้อมูลทั้งหมด: 5 ปี (2020-01-01 ถึง 2024-12-31)
  • In-sample: 70% = 3.5 ปี (2020-01-01 ถึง 2023-06-30) – calibrate พารามิเตอร์ที่นี่
  • Out-of-sample: 30% = 1.5 ปี (2023-07-01 ถึง 2024-12-31) – ทดสอบ ครั้งเดียว บนข้อมูลนี้ด้วยพารามิเตอร์ IS

กฎเหล็ก: พารามิเตอร์ ต้องไม่ ถูกแตะต้องหลังจากการทดสอบ OOS ถ้า OOS ให้ผลลัพธ์ที่อ่อนแอและคุณกลับไปที่ IS เพื่อ "ปรับแต่ง" แล้วทดสอบ OOS ใหม่ คุณเพิ่งเปลี่ยน OOS ให้เป็น IS ที่สอง นั่นคือ overfitting เต็มรูปแบบ

Rolling walk-forward – เวอร์ชันขั้นสูง

ขั้นตอนIn-sample (calibration)Out-of-sample (ทดสอบ)
12020-01 ถึง 2022-12 (3 ปี)2023-01 ถึง 2023-06 (6 เดือน)
22020-07 ถึง 2023-06 (3 ปี)2023-07 ถึง 2023-12 (6 เดือน)
32021-01 ถึง 2023-12 (3 ปี)2024-01 ถึง 2024-06 (6 เดือน)
42021-07 ถึง 2024-06 (3 ปี)2024-07 ถึง 2024-12 (6 เดือน)

ถ้ากลยุทธ์ทำงานใน 3 – 4 จาก 4 windows คุณมี ผู้สมัคร edge ที่แข็งแกร่งตามตัวอย่าง ถ้ามันทำงานใน 1 – 2 – กลยุทธ์ไวต่อสภาวะตลาด ถ้ามันทำงานใน 0 – 1 – กลยุทธ์เป็นเรื่องสมมติ

Walk-forward analysis บนกลยุทธ์ Forex – in-sample window สำหรับ parameter calibration และ out-of-sample สำหรับ validation เลื่อนทีละ 6 เดือนในข้อมูล 5 ปี
Walk-forward analysis บนกลยุทธ์ Forex – in-sample window สำหรับ parameter calibration และ out-of-sample สำหรับ validation เลื่อนทีละ 6 เดือนในข้อมูล 5 ปี
Walk-forward เป็นอุปสรรคสำหรับรายย่อย เทรดเดอร์รายย่อยส่วนใหญ่ไม่รัน walk-forward เพราะ MT4 Strategy Tester ไม่มีการสนับสนุนดั้งเดิมสำหรับมัน – คุณต้องใช้ MT5 (สนับสนุนดีกว่า), Tradestation, NinjaTrader, TradingView Pinescript หรือสคริปต์ Python ของตัวเอง Walk-forward เป็นเครื่องมือเดียวที่บอกคุณว่ากลยุทธ์ทำงานบน window ประวัติศาสตร์เดียวหรือสี่ window หากไม่มี WFA คุณจะไม่รู้สิ่งนี้จนกว่าจะเห็นมันใน live

4. Monte Carlo บน backtest – ทำไม backtest เดียวจึงไม่เพียงพอ

Backtest แสดง การรับรู้ ประวัติศาสตร์อย่างหนึ่ง กลยุทธ์ที่มี 100 เทรดใน backtest มีโอกาสเข้า 100 ครั้งเฉพาะในช่วง 5 ปี Monte Carlo บน backtest จำลองว่ากลยุทธ์อาจมีพฤติกรรมอย่างไรใน ประวัติศาสตร์ทางเลือก

วิธีการพื้นฐานสองวิธี

Trade bootstrap (การสุ่มลำดับ): นำรายการผลลัพธ์เทรด 200 ครั้ง (เช่น +1.5R, -1R, +2.2R, -1R, +0.8R, ...) และดึงแบบมีการแทนที่ 200 เทรดเข้าสู่ประวัติศาสตร์ใหม่ ทำซ้ำ 1,000 ครั้ง

Block bootstrap: แนวคิดเดียวกันแต่ดึง blocks ของเทรดต่อเนื่อง (เช่น 10 เทรดในแต่ละครั้ง) รักษา time correlations สำหรับกลยุทธ์ FX, block bootstrap ที่มี blocks 10 – 20 เทรดสมจริงกว่า naive single-trade bootstrap

สิ่งที่คุณคำนวณจาก 1,000 ประวัติศาสตร์ทางเลือก

  • ผลตอบแทนประจำปีมัธยฐาน – ศูนย์กลางของการกระจาย ดีกว่าค่าจาก backtest เดียว
  • เปอร์เซ็นต์ไทล์ที่ 5 – ใน 5% ของสถานการณ์ ผลตอบแทนจะอ่อนแออย่างนี้หรือแย่กว่า นี่คือกรณีที่เลวร้ายที่สมจริงของคุณ
  • Maximum drawdown ที่เปอร์เซ็นต์ไทล์ที่ 95 – ใน 5% ของสถานการณ์ DD จะใหญ่อย่างนี้หรือใหญ่กว่า คุณรับได้ทางจิตใจและการเงินหรือไม่?
  • ความน่าจะเป็นของการล้มละลาย – เปอร์เซ็นต์ของสถานการณ์ที่บัญชีลดลงต่ำกว่าเกณฑ์ (เช่น -30%)

สคริปต์ Python – block bootstrap สำหรับกลยุทธ์ Forex

วิธีรันโดยไม่ต้องใช้สภาพแวดล้อมการพัฒนา: ไปที่ colab.research.google.com (ฟรี ต้องใช้บัญชี Google), คลิก "New Notebook", วางโค้ดด้านล่างในเซลล์, import รายการผลตอบแทน R ของคุณจากไฟล์ CSV – การรันใช้เวลา 2 นาที

import numpy as np
import pandas as pd

def block_bootstrap_strategy(trades_R, n_simulations=1000, block_size=10):
    """
    Block bootstrap บนรายการผลลัพธ์เทรดที่แสดงใน R
    """
    n_trades = len(trades_R)
    block_size = min(block_size, n_trades)
    n_blocks = int(np.ceil(n_trades / block_size))

    final_returns = []
    max_drawdowns = []
    ruin_count = 0
    risk_per_trade = 0.01  # 1% ต่อเทรด

    for sim in range(n_simulations):
        block_starts = np.random.randint(0, n_trades - block_size + 1, n_blocks)
        sim_trades = np.concatenate([trades_R[s:s + block_size] for s in block_starts])[:n_trades]

        equity = 1.0
        equity_curve = [1.0]
        for r in sim_trades:
            equity *= (1.0 + r * risk_per_trade)
            equity_curve.append(equity)

        equity_curve = np.array(equity_curve)
        peak = np.maximum.accumulate(equity_curve)
        drawdown = (equity_curve - peak) / peak

        final_returns.append(equity - 1.0)
        max_drawdowns.append(drawdown.min())

        if drawdown.min() < -0.30:
            ruin_count += 1

    return {
        'median_return': np.median(final_returns),
        'p05_return': np.percentile(final_returns, 5),
        'p95_return': np.percentile(final_returns, 95),
        'p95_max_dd': np.percentile(max_drawdowns, 5),
        'ruin_probability': ruin_count / n_simulations,
        'mean_return': np.mean(final_returns),
    }

# ตัวอย่างการใช้งาน
trades = np.array([1.5, -1.0, 2.2, -1.0, 0.8, -1.0, 1.3, 1.7, -1.0, 0.5,
                   -1.0, 2.1, -1.0, 1.4, 0.9, -1.0, 1.8, -1.0, 1.1, -1.0])
trades = np.tile(trades, 10)  # จำลอง 200 เทรด

results = block_bootstrap_strategy(trades, n_simulations=2000, block_size=10)
print(f"Median return: {results['median_return']*100:.1f}%")
print(f"5th percentile return: {results['p05_return']*100:.1f}%")
print(f"95th percentile max DD: {results['p95_max_dd']*100:.1f}%")
print(f"Probability of ruin (DD > 30%): {results['ruin_probability']*100:.2f}%")
Monte Carlo block bootstrap ของกลยุทธ์ Forex – fan chart พร้อม equity curve ต้นฉบับและ 1000 ประวัติศาสตร์ทางเลือก แบนด์ 5 – 95 เปอร์เซ็นต์ไทล์แสดง variance ที่สมจริงของผลลัพธ์ประจำปี
Monte Carlo block bootstrap ของกลยุทธ์ Forex – fan chart พร้อม equity curve ต้นฉบับและ 1000 ประวัติศาสตร์ทางเลือก แบนด์ 5 – 95 เปอร์เซ็นต์ไทล์แสดง variance ที่สมจริงของผลลัพธ์ประจำปี

5. Forward testing – demo, paper trade, micro account

Forward testing มีสามขั้นตอนที่สมจริงเพิ่มขึ้นและต้นทุนข้อผิดพลาดที่สูงขึ้น การย่อการตรวจสอบไม่ได้ขจัดความเสี่ยง – มันถ่ายโอนความเสี่ยงไปยังบัญชีจริง

ขั้นตอนที่ 1: Demo (อย่างน้อย 30 วัน)

บัญชี demo ของโบรกเกอร์, data stream เดียวกับบัญชีจริง, เงื่อนไขการดำเนินการที่เหมือนกัน ในทางทฤษฎี ข้อดี:

  • ไม่มีความเสี่ยงเงินทุน – ข้อผิดพลาดในการดำเนินการและกลยุทธ์ไม่มีต้นทุน
  • การทดสอบการรวมระบบ – ว่า alerts ทำงาน, EA เริ่มต้น, กฎถูกโค้ดอย่างถูกต้อง

ข้อเสีย:

  • Demo slippage มักดีกว่า live – โบรกเกอร์ต้องการให้คุณเปิดบัญชีจริง ดังนั้น demo จึงดำเนินการที่ดีกว่า
  • ไม่มีความเสี่ยงด้านจิตใจจาก margin – demo ไม่กระตุ้นสัญชาตญาณการอยู่รอดที่ทำให้ลังเลในการเข้าและแก้ไข stop-loss ด้วยตนเอง

30 วันของ demo ต้องตอบคำถามที่โหดร้าย: alerts ทำงานเมื่อจำเป็นหรือไม่, EA ไม่สูญเสีย signal หรือไม่, โบรกเกอร์แสดง spread ที่แตกต่างจาก tester หรือไม่ เกณฑ์ขั้นต่ำ: 30 วันและ 30 เทรด นี่ไม่ใช่ตัวอย่างที่มีนัยสำคัญทางสถิติ – มันเป็นการตรวจสอบความสมเหตุสมผลของโครงสร้างพื้นฐาน

ขั้นตอนที่ 3: Live micro account (อย่างน้อย 90 วัน)

บัญชีจริงด้วย sizing ขั้นต่ำ (0.01 – 0.05 lots, เงินทุน 200 – 500 EUR/USD) เป้าหมาย: ทดสอบกลยุทธ์ภายใต้เงื่อนไข ความเสี่ยงจริง ไม่ใช่ทดสอบรายได้

ลำดับการเปลี่ยนผ่าน – เกณฑ์

จากขั้นตอนไปขั้นตอนเกณฑ์การเปลี่ยนผ่าน
BacktestDemoWFA OOS บวก, Monte Carlo: เปอร์เซ็นต์ไทล์ที่ 5 > 0, ruin prob < 2%, แบบจำลองต้นทุนที่สมจริง
DemoMicro account30+ วัน, 30+ เทรด, expectancy ใน ±0.15R ของ backtest
Micro accountFull sizing90+ วัน, 60+ เทรด, expectancy ใน ±0.1R ของ backtest, drawdown ในช่วง, วินัยที่รักษาไว้

เวลารวมจาก backtest ถึง full sizing: 4 – 6 เดือน

เรื่องจริง: Scalper บน B-Book demo, ECN live และ last-look mechanics Scalper ที่มี TP แน่นบน EUR/USD Backtest และ demo บนบัญชี B-Book ชนะ – โบรกเกอร์ fill คำสั่งที่ราคา ideal ด้วย spread คงที่ การย้ายไปยังบัญชี ECN live: last look mechanics ที่ liquidity providers สร้าง ~1.5 pips slippage ในทุกการเข้าและออก ข้อได้เปรียบทางคณิตศาสตร์ +0.3R จาก backtest กลายเป็น -0.2R ที่ยากจะแก้ไขผ่าน routing mechanics เพียงอย่างเดียว ต้นทุนในการค้นพบปัญหา: -24 USD บน micro account หากเขาเข้าไปด้วย full sizing ทันที ต้นทุนจะเป็น -2,400 USD

6. เกณฑ์ทางสถิติ – N, p-value, ช่วงความเชื่อมั่น

รายย่อยมักดู backtest ที่มี 30 เทรด เห็น WR 60% และคิดว่า "กลยุทธ์มี WR 60%" สถิติบอกว่า: ด้วยตัวอย่าง 30 เทรด WR จริงของกลยุทธ์อยู่ในช่วงความเชื่อมั่น 41 – 77% ที่ความน่าจะเป็น 95%

ช่วงความเชื่อมั่น WR เทียบกับตัวอย่าง

จำนวนเทรด (N)WR จากตัวอย่างช่วงความเชื่อมั่น 95%บอก edge จาก noise ได้หรือไม่?
3060%41 – 77% (±15 pp)ไม่ – อาจเป็น WR < 50% (ขาดทุน)
10060%50 – 69% (±10 pp)อ่อนแอ – อยู่บนขอบเขต WR 50%
20060%53 – 67% (±5 pp)ใช่ – ด้วยความเชื่อมั่น 95% WR > 50%
50060%55 – 64% (±3 pp)ใช่ – ความเชื่อมั่นสูงใน edge

สรุปเชิงปฏิบัติการ: กลยุทธ์ที่มีเทรดน้อยกว่า 100 ครั้งใน backtest ยังไม่ผ่านการตรวจสอบทางสถิติ กลยุทธ์ที่มี 200+ เทรดคือขั้นต่ำที่ยอมรับได้

เกณฑ์ทางสถิติใน Forex backtest – ช่วงความเชื่อมั่น win rate สำหรับตัวอย่าง N=30, 100, 200 และ 500 เทรด
เกณฑ์ทางสถิติใน Forex backtest – ช่วงความเชื่อมั่น win rate สำหรับตัวอย่าง N=30, 100, 200 และ 500 เทรด
R-multiple distribution histogram ของ Forex strategy backtest พร้อมเส้น net expectancy แนวตั้ง
R-multiple distribution histogram ของ Forex strategy backtest พร้อมเส้น net expectancy แนวตั้ง

7. การสร้างแบบจำลองต้นทุน: spread, slippage, swap, commission ในการทดสอบ

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

Spread: คงที่ เทียบกับ ตัวแปร

โมเดลลักษณะเมื่อใดควรใช้
Spread คงที่ (เช่น 1.0 pip ราบ)ค่าเริ่มต้น MT4, ง่าย, ประเมินผลลัพธ์สูงเกินไปในช่วงที่มี liquidity น้อยเฉพาะสำหรับการตรวจสอบความสมเหตุสมผลครั้งแรก ไม่ใช่สำหรับการตรวจสอบ
Spread เฉลี่ย (จากประวัติโบรกเกอร์)ค่าเฉลี่ย 6 – 12 เดือน ค่าเดียวสำหรับกลยุทธ์ intraday ในช่วงที่มี liquidity สูง
ตัวแปรตามเวลาของวันSpread ขึ้นอยู่กับชั่วโมงมาตรฐานสำหรับกลยุทธ์ intraday และ swing
Tick-by-tick ตัวแปร (Tick Data Suite, Dukascopy)Spread จริงสำหรับทุกวินาทีของประวัติกลยุทธ์ scalping, news trading, การตรวจสอบระดับมืออาชีพ

MAE/MFE – การวินิจฉัยสำหรับแบบจำลองการดำเนินการและ exit

Maximum Adverse Excursion (MAE) และ Maximum Favorable Excursion (MFE) เป็น การวินิจฉัยที่สำคัญที่สุด สำหรับว่าปัญหาอยู่ที่ entry, exit หรือตัวกลยุทธ์เอง[11]

MAE MFE scatter plot การวินิจฉัยกลยุทธ์ Forex – แกน X คือ MAE ใน R, แกน Y คือ MFE ใน R, สีจุดคือ winner/loser/breakeven
MAE MFE scatter plot การวินิจฉัยกลยุทธ์ Forex – แกน X คือ MAE ใน R, แกน Y คือ MFE ใน R, สีจุดคือ winner/loser/breakeven

8. Cherry picking และการคัดเลือก signal – บาปที่พบบ่อยที่สุดของผู้ทดสอบ

Cherry picking เชิงวิธีการคือกระบวนการที่ผู้ทดสอบ (โดยรู้ตัวหรือไม่) ปฏิเสธส่วนหนึ่งของ signal ของกลยุทธ์ เก็บ "ที่ดี" และรายงานผลลัพธ์

Cherry picking สามแบบ

แบบที่ 1: "ฉันข้าม signal ที่ดูไม่ดี" กลยุทธ์สร้าง signal แต่ผู้ทดสอบประเมิน context ด้วยตนเอง – "signal นี้อยู่ในเฟสที่ผิด ฉันจะข้ามมัน" ใน backtest คุณนับเฉพาะ signal ที่ "ดูดี" ปัญหา: การตัดสิน "ดูดี" แบบย้อนหลังถูกปนเปื้อน – คุณรู้ว่าแท่งเทียนหลัง signal จบอย่างไร

แบบที่ 2: "ฉันกรองย้อนหลังตามผลลัพธ์" ผู้ทดสอบเห็นใน backtest ว่าเทรดที่ขาดทุนมักเป็นวันอังคารตอนเช้า เพิ่มตัวกรอง "ฉันไม่เทรดวันอังคารตอนเช้า" ตัวกรองนี้ไม่มีสมมติฐานอิสระ ถูกเพิ่มหลังจากดูผลลัพธ์

ตัวกรองทางกลสำหรับ cherry picking: จำนวน signal ที่ข้าม – ถ้า > 10% ของ signal ถูกปฏิเสธ น่าสงสัย ถ้า > 30% เป็น cherry picking แทบแน่นอน

9. ข้อผิดพลาดที่พบบ่อยที่สุดในการทดสอบ

ข้อผิดพลาดที่ 1: การ optimise พารามิเตอร์บนชุดข้อมูลทั้งหมด

ผู้ทดสอบใช้ MT4 Optimization Mode ทดสอบ 200 combinations ของพารามิเตอร์บนข้อมูล 5 ปีทั้งหมด เลือกอันที่ให้ +180% ไม่มี walk-forward ไม่มี OOS นี่คือ curve fitting คลาสสิก แก้ไข: แบ่งข้อมูล 70/30 เสมอ optimise บน IS เท่านั้น validate ครั้งเดียวบน OOS

ข้อผิดพลาดที่ 2: ตัวอย่างเล็กเกินไป

Backtest 6 เดือนที่มี 24 เทรดไม่ใช่ backtest – มันเป็นเกร็ดเล็กน้อย ขั้นต่ำ: ข้อมูล 3 ปี, 200+ เทรด Optimal: ข้อมูล 5 – 10 ปี, 500 – 2,000 เทรด

ข้อผิดพลาดที่ 3: Backtest บน bid เท่านั้น

แพลตฟอร์ม backtest บางอันใช้เฉพาะ bid (ราคาขาย) ตามค่าเริ่มต้น เทรด long ที่เปิดบน bid และปิดบน bid = ไม่มีการสร้างแบบจำลอง spread แก้ไข: ใน MT4 ตั้งโมเดล "Every tick" ด้วย TDS ใน MT5 ใช้ "Every tick based on real ticks"

ข้อผิดพลาดที่ 7: ไม่มีการติดตามกลยุทธ์หลังการนำไปใช้งาน

กลยุทธ์ผ่าน backtest, demo, micro account ไปยัง full sizing หลังจาก 6 เดือนเทรดเดอร์ไม่รู้ว่าในไตรมาสปัจจุบันกลยุทธ์มี expectancy -0.1R แทนที่จะเป็น +0.3R กลยุทธ์ต้องถูกติดตาม หลังการนำไปใช้งาน: การตรวจสอบ expectancy รายไตรมาสเทียบกับช่วงความเชื่อมั่น Monte Carlo รายละเอียดใน บทความ 15.5

Decision flowchart สำหรับการวินิจฉัยการลดลงของประสิทธิภาพกลยุทธ์ Forex – เมื่อใดควรแก้ระบบ เมื่อใดควรแก้ตัวเอง
Decision flowchart สำหรับการวินิจฉัยการลดลงของประสิทธิภาพกลยุทธ์ Forex – เมื่อใดควรแก้ระบบ เมื่อใดควรแก้ตัวเอง

10. Checklist – กลยุทธ์พร้อมสำหรับ live หรือยัง

รวม 20 คะแนน ใน 5 หมวด: การตรวจสอบทางสถิติ (5), ข้อผิดพลาดเชิงวิธีการ (6), แบบจำลองต้นทุน (4), forward test (3) และวินัยเชิงปฏิบัติการ (2) เกณฑ์ขั้นต่ำในการเปิด full sizing: 20/20

การตรวจสอบทางสถิติ (5 คะแนน)

  1. Backtest ครอบคลุมข้อมูลอย่างน้อย 3 ปี (optimal 5 – 10 ปี)
  2. ตัวอย่างเทรด ≥ 200 (ขั้นต่ำที่ยอมรับได้), ≥ 500 (การตรวจสอบที่แข็งแกร่ง)
  3. Walk-forward analysis ผ่านอย่างดี (OOS expectancy ใน ±0.15R ของ IS)
  4. Monte Carlo bootstrap: ผลตอบแทนประจำปีเปอร์เซ็นต์ไทล์ที่ 5 > 0, ruin probability (DD > 30%) < 2%
  5. การทดสอบทางสถิติ: p-value (binomial / t-test) < 0.05

ข้อผิดพลาดเชิงวิธีการ (6 คะแนน)

  1. ไม่มี look-ahead bias – กลยุทธ์ใช้เฉพาะข้อมูลจากเวลา t หรือก่อนหน้า
  2. ไม่มี survivorship bias – ทดสอบบนตะกร้าคู่ที่ใช้งานอยู่ในปัจจุบัน
  3. ไม่มี curve fitting – parameter heatmap แสดง plateau ไม่ใช่ isolated peak
  4. ไม่มี overfitting – ทุกกฎและตัวกรองมีเหตุผล ex-ante
  5. ไม่มี cherry picking – signal ที่ข้าม < 10%, เหตุผลที่กำหนดก่อนการทดสอบ
  6. ไม่มี data snooping – นี่ไม่ใช่กลยุทธ์ที่ 30 ที่ผ่านการทดสอบจากบันทึก

แบบจำลองต้นทุน (4 คะแนน)

  1. Spread สร้างแบบจำลองเป็นตัวแปร (ตามเวลาของวันหรือ tick-by-tick) ไม่ใช่คงที่
  2. Slippage สร้างแบบจำลองแบบ dynamic (static หรือ ATR-based ใน 3 regime)
  3. Swap สร้างแบบจำลองสำหรับกลยุทธ์ swing (ต่อทิศทาง, triple Wednesday)
  4. Commission สร้างแบบจำลองสำหรับกลยุทธ์ scalping

Forward test (3 คะแนน)

  1. Demo 30+ วัน, 30+ เทรด, expectancy ใน ±0.15R ของ backtest
  2. Live micro account 90+ วัน, 60+ เทรด, expectancy ใน ±0.1R ของ backtest
  3. Drawdown ระหว่าง forward ไม่เกินเปอร์เซ็นต์ไทล์ที่ 95 จาก Monte Carlo

วินัยเชิงปฏิบัติการ (2 คะแนน)

  1. การดำเนินการ: ความสอดคล้องของ signal ระบบกับการดำเนินการจริง > 95%
  2. แผนการติดตามหลังการนำไปใช้งานที่กำหนดไว้ – การตรวจสอบ expectancy รายไตรมาสเทียบกับ Monte Carlo CI

20/20 – กลยุทธ์พร้อมสำหรับ full sizing 17 – 19 – กลับไปทำให้สิ่งที่หายไปสมบูรณ์ ต่ำกว่า 17 – กลยุทธ์ยังไม่พร้อม

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

การตรวจสอบกลยุทธ์เต็มรูปแบบจาก backtest ถึง live ใช้เวลานานแค่ไหน?
ตามความเป็นจริง 4 – 6 เดือนในลำดับขั้นต่ำ: 4 – 8 สัปดาห์ของ backtest (รวม walk-forward, Monte Carlo, แบบจำลองต้นทุน), 30 วัน demo, 90 วัน micro account กลยุทธ์ที่ไม่รอดจาก 30 วัน demo และ 90 วัน micro live ไม่ได้ "ช้าในการตรวจสอบ" – มันยังไม่ได้รับการยอมรับให้เข้าบัญชีเพราะยังไม่พิสูจน์อะไรเลย
MT4 Strategy Tester เพียงพอสำหรับการตรวจสอบหรือไม่?
MT4 ST มีข้อจำกัดสามประการ: (1) โมเดล "Open prices only" ตามค่าเริ่มต้นเสี่ยงต่อ look-ahead bias บนกลยุทธ์ intrabar (2) spread คงที่ตามค่าเริ่มต้น ประเมินผลลัพธ์สูงเกินไป (3) ไม่มีการสนับสนุน walk-forward analysis ดั้งเดิม แก้ไข: ใช้โมเดล "Every tick" ด้วย Tick Data Suite (TDS) และข้อมูล tick Dukascopy – ให้คุณภาพโมเดล 99% พร้อม tick จริงและ spread ตัวแปร
จะทำอย่างไรถ้ากลยุทธ์ของฉันมีเทรดเพียง 50 ครั้งใน backtest?
สามทางเลือก (1) ขยายช่วงข้อมูลเป็น 10 ปีแทน 5 – บ่อยครั้งเพิ่มตัวอย่างเป็นสองเท่า (2) ทดสอบบนตะกร้าคู่สกุลเงิน 5 – 8 คูแทนคู่เดียว – สร้าง signal มากขึ้น 5 – 8 เท่าพร้อมรักษา logic (3) Block bootstrap (Monte Carlo บน blocks ของเทรด) – ขยายตัวอย่างแบบ artificial สำหรับการทดสอบทางสถิติ

แหล่งอ้างอิง

  1. Lo A.W., MacKinlay A.C., A Non-Random Walk Down Wall Street, Princeton University Press, 1999
  2. Pardo R., The Evaluation and Optimization of Trading Strategies, Wiley, 2008
  3. Aronson D., Evidence-Based Technical Analysis, Wiley, 2007
  4. Bandy H.B., Quantitative Technical Analysis, Blue Owl Press, 2015
  5. Chan E., Quantitative Trading, Wiley, 2009
  6. Kaufman P.J., Trading Systems and Methods, Wiley, 6th ed., 2020
  7. CME Group – educational materials (cmegroup.com/education)
  8. Bank for International Settlements (BIS), Triennial Central Bank Survey of Foreign Exchange Markets, 2022/2023
  9. Tharp V.K., Definitive Guide to Position Sizing, IITM, 2008
  10. Tomasini E., Jaekle U., Trading Systems, Harriman House, 2009
  11. Sweeney J., Maximum Adverse Excursion, Wiley, 1997
  12. López de Prado M., Advances in Financial Machine Learning, Wiley, 2018
  13. European Securities and Markets Authority (ESMA), Decision (EU) 2018/796 (esma.europa.eu)
  14. National tax authorities of EU member states – capital gains tax on financial instruments

ความคืบหน้าการเรียนของคุณ

เรียนบทนี้จบแล้วหรือยัง? ทำเครื่องหมายด้วยตนเอง การเปิดหรือเลื่อนหน้าไม่ถือว่าเรียนจบ

การบันทึกความคืบหน้าต้องใช้ JavaScript และพื้นที่จัดเก็บของเบราว์เซอร์

บันทึกเฉพาะในเบราว์เซอร์นี้ ไม่ต้องมีบัญชีและไม่ซิงค์ข้ามอุปกรณ์ การล้างข้อมูลเว็บไซต์อาจลบความคืบหน้า

Jarosław Wasiński (ยาโรสวัฟ วาชินสกี)

บรรณาธิการบริหาร ForexMechanics.com • นักวิเคราะห์มหภาคและ FX

นักวิเคราะห์มืออาชีพอิสระที่มีประสบการณ์ในตลาดการเงินกว่า 20 ปี เคลื่อนไหวอยู่ในตลาด Forex ตั้งแต่ปี 2004 โดยเชี่ยวชาญด้านการวิเคราะห์ปัจจัยพื้นฐาน โครงสร้างตลาด OTC และการบริหารความเสี่ยงของเงินทุนอย่างมีวินัย

  • ผู้ก่อตั้งและบรรณาธิการบริหารของMyBank.pl ซึ่งให้ความรู้ทางการเงินที่น่าเชื่อถือมาตั้งแต่ปี 2004
  • เขียนบทวิเคราะห์ตลาด การวิเคราะห์เชิงโครงสร้าง และเนื้อหาเพื่อการศึกษาหลายร้อยชิ้นสำหรับนักลงทุนและเทรดเดอร์
  • สนับสนุนความโปร่งใสของตลาด และส่งเสริมการศึกษาที่อ้างอิงข้อมูลจริงและรายงานจากสถาบัน (BIS, ESMA, CFTC)

เนื้อหาทั้งหมดมีไว้เพื่อการศึกษาและให้ข้อมูลเท่านั้น ไม่ถือเป็นคำแนะนำหรือข้อเสนอแนะการลงทุน การเทรดแบบใช้เลเวอเรจ (Forex/CFD) มีความเสี่ยงที่จะสูญเสียเงินทุนอย่างรวดเร็ว