EA เปิดออร์เดอร์ซ้ำในแท่งเดียว — สาเหตุ วิธีตรวจ และตัวกรอง 4 แบบพร้อมโค้ด MQL4 MQL5 ที่ใช้ได้จริง

ก่อนใส่ตัวกรอง — ตรวจเงื่อนไขทุกทิก BUY ×8 จุดฟ้า = ทิกราคาที่เข้ามา · ลูกศรแดง = คำสั่งที่ยิงออกไป หลังใส่ตัวกรอง — ตรวจเมื่อขึ้นแท่งใหม่ BUY ×1 ทิกเข้ามาเท่าเดิม แต่ยิงครั้งเดียว ล็อตรวมที่ได้จริง 0.80 ล็อต แทนที่จะเป็น 0.10 ล็อต EA ยิงออร์เดอร์ซ้ำ ในแท่งเดียว แก้ยังไง โดย คนเล่น Forex ยิงซ้ำ 8 ไม้ในแท่งเดียว เสี่ยง 8 เท่า ไม่ใช่แค่จ่ายสเปรดเพิ่ม ตัวกรองที่แก้ได้จริง 1 ไม้ / 1 แท่ง โค้ดจริง 5 บรรทัด ฉบับมีโค้ดจริง
Expert Advisor

EA เปิดออร์เดอร์ซ้ำหลายไม้ในแท่งเดียว — สาเหตุที่แท้จริง วิธีตรวจว่า EA ของคุณเป็นหรือไม่ และตัวกรอง 4 แบบพร้อมโค้ด MQL4 / MQL5 ที่ก็อปไปใช้ได้

อาการที่ EA เปิดออร์เดอร์ทิศเดียวกันหลายไม้ติดกันภายในแท่งเทียนเดียว ไม่ใช่บั๊กของโบรกเกอร์และไม่ใช่ความผิดพลาดของแพลตฟอร์ม — มันคือผลตรงไปตรงมาของการที่ฟังก์ชัน OnTick() ถูกเรียกทุกครั้งที่ราคาขยับ ไม่ใช่ทุกครั้งที่แท่งปิด ถ้าเงื่อนไขเข้าออร์เดอร์ยังเป็นจริงค้างไว้ EA ก็จะยิงคำสั่งซ้ำทุกทิกที่เข้ามา และ 🔑 ความเสียหายจริงไม่ใช่ค่าสเปรดที่จ่ายเพิ่ม แต่คือขนาดสถานะรวมที่กลายเป็น 8 เท่าหรือ 20 เท่าของที่ออกแบบไว้ หน้านี้อธิบายกลไก พร้อม ตารางคำนวณตามได้ 6 ชุด วิธีตรวจด้วยข้อมูลจริงจากบัญชีตัวเอง และโค้ดตัวกรอง 4 แบบทั้ง MQL4 และ MQL5 พร้อมกับดักที่แต่ละแบบพามาด้วย

ภาพประกอบหัวข้อ EA Robot Forex บน MT4 และ MT5
EA ทำงานทุกครั้งที่ราคาขยับ ไม่ใช่ทุกครั้งที่แท่งเทียนปิด — ความเข้าใจผิดข้อนี้คือต้นเหตุของออร์เดอร์ซ้ำ

อาการนี้คืออะไร (คำตอบสั้น ๆ ก่อน)

เปิดประวัติการเทรดขึ้นมาแล้วเห็นออร์เดอร์หลายไม้ที่มีเวลาเปิดห่างกันไม่กี่วินาที ทิศทางเดียวกัน สัญลักษณ์เดียวกัน และราคาใกล้เคียงกันมาก — นั่นคืออาการ ส่วนสาเหตุมีอยู่สองแบบที่เจอบ่อยที่สุด:

  • เงื่อนไขเข้ายังเป็นจริงค้างอยู่ — เช่นเงื่อนไข "เส้นค่าเฉลี่ยตัดกัน" ที่เขียนโดยเทียบค่าปัจจุบันกับค่าก่อนหน้า จะเป็นจริงต่อเนื่องได้ทั้งแท่งถ้าค่าทั้งสองยังไม่กลับด้าน
  • ไม้เดิมเพิ่งถูกปิดไป แล้วโค้ดถูกเรียกใหม่ทันที — พบมากในระบบที่ตั้งเป้าสั้น ไม้ปิดเร็ว แล้วเงื่อนไขเข้าก็ยังเป็นจริงอยู่พอดี ⇒ วนเข้าใหม่ทันทีบนแท่งเดิม
ที่มาของหัวข้อนี้ — โพสต์เดิมของบล็อกนี้เป็นการแปลบทความจาก mql5.com (ต้นฉบับภาษารัสเซีย) ทั้งฉบับ ซึ่งอ่านยากเพราะเป็นการแปลตรงตัว ฉบับนี้เขียนใหม่ด้วยคำของเราเอง พร้อมส่วนที่ต้นฉบับไม่มีคือการคำนวณต้นทุนเป็นเงิน วิธีตรวจจากบัญชีตัวเอง และกับดักของตัวกรองแต่ละแบบ · ใครอยากดูโค้ดตัวอย่างของผู้เขียนต้นฉบับ ดาวน์โหลดได้จากเว็บของเขาโดยตรง: macd_sample.mq4 · macd_sample_plus1.mq4 · macd_sample_plus2.mq4 (เป็นไฟล์ของผู้เขียนต้นฉบับ ไม่ใช่ของบล็อกนี้)

ทำไมมันเกิด — OnTick() ไม่ได้ทำงานทุกแท่ง แต่ทำงานทุกครั้งที่ราคาขยับ

นี่คือแก่นของเรื่องทั้งหมด และเป็นจุดที่คนเขียน EA ครั้งแรกเข้าใจสลับกันเกือบทุกคน:

โค้ดที่เขียนว่า "ถ้าเงื่อนไขเป็นจริง ให้เปิดออร์เดอร์" ไม่ได้แปลว่า "เปิดหนึ่งครั้งเมื่อเงื่อนไขกลายเป็นจริง" แต่แปลว่า "เปิดทุกครั้งที่ถูกถาม ตราบใดที่เงื่อนไขยังเป็นจริง" — และมันถูกถามทุกทิก
ช่วงเวลาทิกต่อนาที (ตัวเลขสมมติ)ทิกใน 1 แท่ง M15ถ้าเงื่อนไขเป็นจริงค้างไว้ 2 นาที จะมีโอกาสยิงกี่ครั้ง
ตลาดเอเชียช่วงเงียบ~5~75~10 ครั้ง
ช่วงตลาดลอนดอนเปิดตามปกติ~30~450~60 ครั้ง
ช่วงตัวเลขเศรษฐกิจออก~200~3,000~400 ครั้ง
⚠️
ตัวเลขทิกในตารางนี้เป็นค่าสมมติเพื่อแสดงลำดับขนาดเท่านั้น ไม่ใช่ค่าที่วัดจากโบรกเกอร์รายใด — อัตราทิกจริงต่างกันมากตามโบรก ประเภทบัญชี คู่เงิน และคุณภาพการเชื่อมต่อ วิธีดูของจริงคือเปิดหน้าต่าง Market Watch แล้วดูคอลัมน์เวลาของราคาที่อัปเดต หรือบันทึกจำนวนครั้งที่ OnTick() ถูกเรียกในหนึ่งนาที · สิ่งที่ตารางนี้บอกได้จริงมีข้อเดียวคือ จำนวนโอกาสยิงต่อแท่ง มากกว่า 1 อยู่หลายสิบถึงหลายร้อยเท่า
ทิกชุดเดียวกัน · โค้ดตัดสินใจถูกเรียกกี่ครั้ง ไม่มีตัวกรอง ส่งคำสั่ง 8 ครั้ง · ล็อตรวม 0.80 กรองด้วย "หนึ่งไม้ต่อหนึ่งแท่ง" ส่งคำสั่ง 1 ครั้ง · ล็อตรวม 0.10 จุดฟ้าคือทิกที่เข้ามาจากเซิร์ฟเวอร์ — จำนวนเท่ากันทั้งสองแถว ต่างกันแค่ว่าโค้ดตัดสินใจถูกปล่อยให้ทำงานกี่ครั้ง
ตัวกรองไม่ได้ทำให้ EA "เห็นตลาดน้อยลง" — มันยังได้รับทิกครบทุกทิกเหมือนเดิม สิ่งที่เปลี่ยนคือจำนวนครั้งที่โค้ดตัดสินใจถูกอนุญาตให้ตัดสินใจ

🔑 ราคาของทริกเกอร์ซ้ำ — และเหตุผลที่ค่าสเปรดไม่ใช่ปัญหาหลัก

เกือบทุกบทความที่พูดเรื่องนี้จบที่ "เสียค่าสเปรดเพิ่ม" ซึ่งจริง แต่เป็นส่วนที่เล็กที่สุด ลองดูตัวเลขเทียบกันตรง ๆ (สมมติ EURUSD สเปรด 1.0 pip · ตั้งใจเข้า 0.10 ล็อต · SL 20 pip · ความเสี่ยงต่อไม้ที่ออกแบบไว้ $20):

จำนวนไม้ที่ยิงไปจริงค่าสเปรดรวมที่จ่ายเพิ่มล็อตรวมที่ถืออยู่ความเสี่ยงจริงถ้าโดน SL ทุกไม้คิดเป็นกี่เท่าของที่ตั้งใจ
1 ไม้ (ตามที่ออกแบบ)$1.000.10$201×
3 ไม้$3.000.30$603×
8 ไม้$8.000.80$1608×
20 ไม้$20.002.00$40020×
$8
ค่าสเปรดที่จ่ายเพิ่มจากการยิงซ้ำ 8 ไม้
$160
ความเสี่ยงจริงที่ถืออยู่ในเวลาเดียวกัน
20 เท่า
ส่วนที่ใหญ่กว่า ถูกมองข้ามเป็นประจำ

เรื่องที่ตามมาทันทีคือมาร์จิน ซึ่งเป็นข้อจำกัดที่บังคับใช้โดยเซิร์ฟเวอร์ ไม่ใช่โดยโค้ดของเรา:

ล็อตรวมมาร์จินที่ต้องใช้ (เลเวอเรจ 1:100 · EURUSD ที่ 1.0850)บัญชี $2,000 รับไหวไหม
0.10$108.50ได้สบาย
0.80$868.00ได้ แต่เหลือมาร์จินว่างไม่มาก
2.00$2,170.00ไม่ไหว — เกินยอดคงเหลือทั้งบัญชี
🔴
🔑 กรณีที่แย่กว่า "เปิดครบทุกไม้" คือ "เปิดได้บางไม้" — เมื่อมาร์จินหมดกลางทาง เซิร์ฟเวอร์จะปฏิเสธคำสั่งที่เหลือ ผลคือ EA ได้สถานะที่ไม่มีใครออกแบบไว้และไม่มีใครเคยทดสอบ โค้ดส่วนที่เขียนไว้ว่า "ถ้ามีสถานะเปิดอยู่แล้วให้ทำอย่างนี้" จะทำงานบนสมมติฐานที่ผิด และตรรกะการปิดหรือแก้ไขไม้ก็มักไม่ได้ถูกเขียนให้รองรับกรณีที่มีหลายไม้พร้อมกัน · นี่คือเหตุผลว่าทำไมอาการนี้ควรถูกจัดเป็นเรื่องความปลอดภัย ไม่ใช่เรื่องประสิทธิภาพ

วิธีตรวจว่า EA ของคุณมีอาการนี้หรือไม่ — ใช้ข้อมูลจริงจากบัญชีตัวเอง

1

ส่งออกประวัติการเทรดออกมาเป็นไฟล์

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

2

จับเวลาเปิดเข้ากลุ่มตามแท่ง แล้วนับ

เปิดใน Excel หรือ Google Sheets แล้วสร้างคอลัมน์ใหม่ด้วยสูตร =FLOOR(เซลล์เวลาเปิด, TIME(0,15,0)) สำหรับ M15 จากนั้นนับด้วย =COUNTIF(คอลัมน์ใหม่, เซลล์นั้น) — แถวไหนที่นับได้มากกว่า 1 คือแท่งที่มีการยิงซ้ำ

3

ดูบันทึกของ EA ในแท็บ Experts

ถ้า EA เขียนบรรทัดลงบันทึกทุกครั้งที่ส่งคำสั่ง ให้ดูว่ามีหลายบรรทัดที่เวลาห่างกันไม่กี่วินาทีหรือไม่ วิธีนี้เห็นแม้กระทั่งคำสั่งที่ถูกปฏิเสธ ซึ่งไม่โผล่ในประวัติการเทรด

4

ทดสอบย้อนหลังในโหมดทุกทิกเท่านั้น

🔑 ข้อนี้สำคัญที่สุดและถูกข้ามบ่อยที่สุด — การทดสอบย้อนหลังในโหมดที่จำลองเฉพาะราคาเปิดของแต่ละแท่ง จะไม่มีวันแสดงอาการนี้เลย เพราะในโหมดนั้น หนึ่งแท่งมีหนึ่งทิกอยู่แล้วโดยปริยาย ⇒ EA ที่ผ่านการทดสอบมาสวยงามอาจกำลังยิงซ้ำในบัญชีจริงอยู่ทุกวัน


ตัวกรองที่ 1 — หนึ่งไม้ต่อหนึ่งแท่ง (แก้ได้ตรงจุดที่สุด)

หลักการคือจำเวลาเปิดของแท่งปัจจุบันไว้ แล้วปล่อยให้โค้ดตัดสินใจทำงานเฉพาะตอนที่เวลานั้นเปลี่ยนไปเท่านั้น

สำหรับ MQL4:

datetime g_lastBar = 0; bool IsNewBar() { datetime t = iTime(_Symbol, PERIOD_CURRENT, 0); if(t == g_lastBar) return(false); g_lastBar = t; return(true); }

สำหรับ MQL5:

datetime g_lastBar = 0; bool IsNewBar() { datetime t[1]; if(CopyTime(_Symbol, PERIOD_CURRENT, 0, 1, t) < 1) return(false); if(t[0] == g_lastBar) return(false); g_lastBar = t[0]; return(true); }

วิธีเรียกใช้ — เหมือนกันทั้งสองภาษา:

void OnTick() { if(!IsNewBar()) return; // โค้ดตัดสินใจเข้าออร์เดอร์ทั้งหมด อยู่ใต้บรรทัดนี้ }

🪤
สี่กับดักของฟังก์ชันห้าบรรทัดนี้ ที่ทำให้มันพังเงียบ ๆ
  • ฟังก์ชันนี้มีผลข้างเคียง — มันแก้ค่า g_lastBar ตอนที่ถูกเรียก ⇒ ถ้าเรียกสองครั้งในทิกเดียวกัน ครั้งที่สองจะได้ค่าเท็จเสมอ ให้เรียกครั้งเดียวแล้วเก็บผลไว้ในตัวแปร
  • ค่าเริ่มต้นเป็นศูนย์ ⇒ ทิกแรกหลังแนบ EA เข้าชาร์ตจะนับเป็น "แท่งใหม่" ทันที ทั้งที่แท่งนั้นเดินมาครึ่งทางแล้ว ถ้าไม่ต้องการพฤติกรรมนี้ ให้ตั้งค่า g_lastBar ใน OnInit() ก่อน
  • PERIOD_CURRENT ผูกกับไทม์เฟรมของชาร์ตที่แนบอยู่ ⇒ เปลี่ยนไทม์เฟรมของชาร์ต พฤติกรรมของ EA เปลี่ยนตามทันทีโดยไม่ได้แก้โค้ดเลยสักบรรทัด ทางที่ปลอดภัยกว่าคือประกาศ input ไทม์เฟรมให้ชัด แล้วใช้ค่านั้นแทน
  • ตัวแปรนี้เป็นของ EA ตัวนั้นบนชาร์ตนั้นเท่านั้น ⇒ ถ้ารัน EA ตัวเดียวกันบนหลายชาร์ตในบัญชีเดียว ต่างคนต่างมีตัวนับของตัวเอง และไม่เห็นกัน การกันซ้ำระดับบัญชีต้องนับสถานะจริงจากเทอร์มินัล โดยกรองด้วย magic number

ตัวกรองที่ 2, 3, 4 — และสิ่งที่แต่ละแบบแก้ไม่ได้

ตัวกรองที่ 2 — ระยะห่างขั้นต่ำระหว่างไม้: ไม่เข้าใหม่จนกว่าราคาจะขยับไปจากราคาที่เข้าครั้งก่อนอย่างน้อยกี่จุด

if(MathAbs(Ask - g_lastEntryPrice) < MinStepPoints * _Point) return; // ราคายังขยับไม่พอ ไม่เข้าใหม่

ตัวกรองที่ 3 — หน่วงเวลาหลังไม้ล่าสุดถูกปิด: ตรงกับสาเหตุแบบที่สองที่บทความต้นฉบับพูดถึงพอดี คือไม้ปิดเร็วแล้ววนเข้าใหม่ทันที

if(TimeCurrent() - g_lastCloseTime < CooldownSeconds) return; // เพิ่งปิดไม้ไป ยังไม่เข้าใหม่

ตัวกรองที่ 4 — เพดานจำนวนไม้: ไม่ได้แก้ต้นเหตุ แต่จำกัดความเสียหายสูงสุดต่อวันเอาไว้

if(g_tradesToday >= MaxTradesPerDay) return; if(CountOpenPositions(MagicNumber) >= MaxOpenPositions) return;

ตัวกรองแก้อาการอะไรได้แก้อะไรไม่ได้ผลข้างเคียงที่ต้องยอมรับ
หนึ่งไม้ต่อหนึ่งแท่งยิงซ้ำภายในแท่งเดียวกัน — ตรงจุดที่สุดยิงซ้ำในแท่งถัดไปที่เงื่อนไขยังเป็นจริงอยู่ถ้าสัญญาณจริงเกิดกลางแท่ง ต้องรอจนขึ้นแท่งใหม่ ซึ่งราคาอาจไปไกลแล้ว
ระยะห่างขั้นต่ำยิงซ้ำที่ราคาเดียวกัน ทั้งในแท่งและข้ามแท่งยิงซ้ำหลังราคาวิ่งไปไกลกว่าระยะที่ตั้งไว้แล้ว🔑 ถ้าตั้งหลวม ระบบจะกลายเป็นระบบเฉลี่ยต้นทุนโดยไม่ตั้งใจ ซึ่งเป็นคนละกลยุทธ์กับที่ออกแบบไว้
หน่วงเวลาหลังปิดไม้อาการวนเข้าใหม่ทันทีหลังไม้ปิดเร็วไม้ที่ยิงซ้ำก่อนจะมีการปิดใด ๆ เกิดขึ้นพลาดสัญญาณจริงที่มาติดกันในช่วงตลาดวิ่งแรง
เพดานจำนวนไม้จำกัดความเสียหายสูงสุด และกันมาร์จินหมดไม่ได้แตะต้นเหตุเลยแม้แต่นิดเดียวเมื่อชนเพดาน EA จะหยุดเทรดทั้งที่อาจมีสัญญาณจริงตามมา
ทั้งสี่แบบใช้ร่วมกันได้ และมักควรใช้ร่วมกัน — โดยให้ "หนึ่งไม้ต่อหนึ่งแท่ง" เป็นตัวหลัก, "ระยะห่างขั้นต่ำ" กันการยิงซ้ำข้ามแท่ง, "หน่วงเวลาหลังปิด" กันการวนเข้าใหม่ และ "เพดานจำนวนไม้" เป็นเบรกมือชั้นสุดท้ายที่ทำงานแม้สามตัวแรกจะมีบั๊ก

🔑 กับดักใหญ่ที่สุด — ตัวกรองพวกนี้ไม่ได้ "แก้บั๊ก" แต่ "เปลี่ยนกลยุทธ์"

นี่คือส่วนที่ต้องพูดให้ชัด เพราะมันเปลี่ยนวิธีที่ควรจะทดสอบต่อทั้งหมด

ก่อนใส่ตัวกรอง ระบบเข้า ทุกทิกที่เงื่อนไขเป็นจริง · หลังใส่ตัวกรอง ระบบเข้า ทิกแรกของแท่งที่เงื่อนไขเป็นจริง — สองอย่างนี้คือระบบคนละระบบ ไม่ใช่ระบบเดิมที่ซ่อมแล้ว
สิ่งที่เปลี่ยนไปก่อนใส่ตัวกรองหลังใส่ตัวกรอง
ราคาที่ได้เข้าราคาแรกในแท่งที่เงื่อนไขเป็นจริง และอีกหลายราคาตามมาราคาเปิดของแท่งถัดไปเท่านั้น — ซึ่งอาจดีกว่าหรือแย่กว่าก็ได้
จำนวนไม้ต่อสัญญาณไม่แน่นอน ขึ้นกับอัตราทิกของช่วงเวลานั้นหนึ่งไม้เสมอ — คงที่และทำนายได้
ความเสี่ยงต่อสัญญาณเป็นตัวคูณที่ควบคุมไม่ได้เท่ากับที่คำนวณไว้ตอนออกแบบ
ผลการทดสอบย้อนหลังของเดิม🔴 ใช้ไม่ได้แล้วทั้งชุด — ต้องรันใหม่ทั้งหมดหลังใส่ตัวกรอง เพราะเส้นทางของออร์เดอร์เปลี่ยนไปตั้งแต่ไม้แรก
🚫
อย่าสรุปว่าตัวกรองทำให้ผลดีขึ้นเสมอ — การยิงซ้ำในช่วงที่ระบบถูกทาง จะทำให้กำไรของช่วงนั้นดูใหญ่ขึ้นด้วย ⇒ ผลทดสอบเก่าที่ดูดี อาจดูดีเพราะอาการนี้พอดี การใส่ตัวกรองแล้วเห็นผลตอบแทนรวมลดลง จึงไม่ได้แปลว่าตัวกรองผิด แต่แปลว่าตัวเลขเดิมไม่ได้มาจากความได้เปรียบของกลยุทธ์อย่างเดียว · สิ่งที่เทียบได้อย่างเป็นธรรมคือผลตอบแทนต่อหน่วยความเสี่ยง ไม่ใช่กำไรรวม

เช็กลิสต์ 6 ข้อ ก่อนปล่อย EA ลงบัญชีจริง

  • นับดูแล้วหรือยังว่าประวัติที่ผ่านมามีกี่แท่งที่มีมากกว่าหนึ่งไม้ ด้วยสูตร FLOOR + COUNTIF ในหัวข้อข้างบน
  • ทดสอบย้อนหลังด้วยโหมดทุกทิกแล้วหรือยัง — โหมดราคาเปิดอย่างเดียวมองไม่เห็นอาการนี้เลย
  • มีเพดานจำนวนไม้และเพดานล็อตรวมอยู่หรือไม่ ในฐานะเบรกมือชั้นสุดท้าย
  • ถ้ารันหลายชาร์ตพร้อมกัน มีการกันซ้ำระดับบัญชีด้วย magic number หรือยัง
  • คำนวณแล้วหรือยังว่าล็อตรวมสูงสุดที่เป็นไปได้ ใช้มาร์จินเท่าไร และบัญชีรับไหวหรือไม่
  • รันบนบัญชีทดลองอย่างน้อยหนึ่งรอบเต็มก่อนหรือยัง — บัญชีทดลองแสดงอาการนี้ได้เหมือนบัญชีจริง เพราะมันได้รับทิกชุดเดียวกัน

สรุป — 4 ข้อที่ยืนยันได้ และ 1 ข้อที่หน้านี้ยืนยันไม่ได้

  • สาเหตุคือกลไกของแพลตฟอร์ม ไม่ใช่ความผิดพลาดของโบรกเกอร์ — OnTick() ถูกเรียกทุกครั้งที่ราคาขยับ ซึ่งในหนึ่งแท่งเกิดได้หลายสิบถึงหลายร้อยครั้ง
  • ความเสียหายหลักไม่ใช่ค่าสเปรด — ยิงซ้ำ 8 ไม้ทำให้จ่ายสเปรดเพิ่ม $8 แต่ทำให้ความเสี่ยงที่ถืออยู่กลายเป็น $160 ซึ่งใหญ่กว่า 20 เท่า
  • สภาพที่แย่ที่สุดคือมาร์จินหมดกลางทาง — EA จะได้สถานะที่ไม่มีใครออกแบบและไม่มีใครทดสอบ ตรรกะปิดไม้ที่เขียนไว้จะทำงานบนสมมติฐานที่ผิด
  • ตัวกรองแก้ได้จริงด้วยโค้ดไม่กี่บรรทัด — แต่มันเปลี่ยนพฤติกรรมของระบบ ไม่ใช่แค่ซ่อมบั๊ก ⇒ ผลทดสอบย้อนหลังชุดเดิมใช้ไม่ได้อีกต่อไป
🚫
ข้อที่ยืนยันไม่ได้ และหน้านี้ไม่ได้อ้าง — หน้านี้ไม่ได้บอกว่าการใส่ตัวกรองทำให้ EA ทำกำไรได้ดีขึ้น และไม่มีตัวเลขใดในหน้านี้ที่วัดเรื่องนั้น สิ่งที่ตัวกรองทำได้อย่างเดียวคือทำให้ความเสี่ยงต่อสัญญาณเท่ากับที่ออกแบบไว้ แทนที่จะเป็นตัวคูณที่ควบคุมไม่ได้ ส่วนกลยุทธ์จะมีความได้เปรียบหรือไม่ เป็นคนละคำถามที่ต้องวัดแยกต่างหาก · ตัวเลขทั้งหมดในหน้านี้เป็นตัวอย่างสมมติที่ใช้แสดงวิธีคำนวณ ไม่ใช่ผลการทดสอบจริง

อ่านต่อเรื่องที่เกี่ยวข้อง: Expert Advisor คืออะไร · การคำนวณขนาดล็อต · ค่า spread คิดเป็นเงินจริงเท่าไร · Risk Reward Ratio คืออะไร · MACD ตั้งค่าเท่าไหร่ดี และทำไม MT4/MT5 ไม่ตรงกับตำรา · Trading Journal คืออะไร

และถ้าอยากเทียบสิ่งที่อ่านในหน้านี้กับสัญญาณที่มีตัวเลขจุดเข้า จุดตัดขาดทุน และเป้าหมายกำกับทุกไม้ ดูได้ที่ alphasigs.net

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

ความคิดเห็น

Related stories