ถ้าอินดิเคเตอร์คือผู้บรรยายเกม Expert Advisor ก็คือผู้เล่น: มันเปิดออร์เดอร์แทนคุณจริง ๆ ไม่ใช่แค่ชี้จุดบนกราฟ EA ฟรีตัวนี้เทรดด้วยกลยุทธ์แบบ mean-reversion เดียวที่โปร่งใส สร้างขึ้นจาก DeMarker โดยรอให้ DeMarker กลับตัวออกจากจุดสุดขั้วที่ 0.7/0.3 แล้วเปิดเทรดพร้อม Stop Loss ที่คำนวณจาก ATR, Take Profit ที่เป็นสัดส่วนคูณของ RR และขนาดโพซิชันที่คำนวณตามความเสี่ยง — ทั้งหมดคำนวณให้อัตโนมัติ ไม่ต้องเฝ้ากราฟด้วยตัวเอง
กลยุทธ์ทำงานอย่างไร
DeMarker ถูกสร้างขึ้นด้วยแนวคิดที่ต่างจาก oscillator ส่วนใหญ่บนเว็บไซต์นี้ และความต่างนั้นเห็นได้ชัดตั้งแต่สเกลของมัน RSI วิ่งอยู่ที่ 0-100, Stochastic ก็วิ่งที่ 0-100, ส่วน CCI ไม่มีเพดานตายตัวเลย — แต่ DeMarker ถูก normalize ให้อยู่ในช่วง 0 ถึง 1 โดยเปรียบเทียบว่าช่วงราคาของแท่งเทียนล่าสุดตกอยู่เหนือจุดสูงสุดของแท่งก่อนหน้ามากแค่ไหน เทียบกับที่ตกอยู่ใต้จุดต่ำสุดของแท่งก่อนหน้ามากแค่ไหน ค่าที่ใกล้ 1.0 หมายความว่าการเคลื่อนไหวของราคาล่าสุดถูกครอบงำด้วยจุดสูงสุดใหม่ๆ ส่วนค่าที่ใกล้ 0.0 หมายความว่าถูกครอบงำด้วยจุดต่ำสุดใหม่ๆ เส้น 0.7 และ 0.3 ที่ EA ตัวนี้เฝ้าดูทำหน้าที่เหมือนกับเส้น 70/30 บน RSI ทุกประการ เพียงแต่แสดงผลบนสเกลตัวเลขที่ต่างกัน — 0.7 คือ "overbought" และ 0.3 คือ "oversold" ส่วนค่าระหว่างนั้นถือเป็นความผันผวนปกติ
เช่นเดียวกับ EA แบบกลับตัวทุกตัวบนเว็บไซต์นี้ จุดที่สำคัญไม่ใช่ตอนที่ DeMarker ไปถึง จุดสุดขั้ว แต่เป็นตอนที่ DeMarker กลับตัวทะลุผ่าน จุดนั้นออกมา สัญญาณ BUY จะเกิดขึ้นเมื่อ DeMarker (ค่าเริ่มต้น 14-period, DeMarkerPeriod) กลับตัวขึ้นทะลุ Oversold (ค่าเริ่มต้น 0.3) หลังจากที่เคยอยู่ที่หรือต่ำกว่าระดับนั้นในแท่งเทียนก่อนหน้าที่ปิดสมบูรณ์ — ไม่ใช่แท่งเทียนที่ DeMarker เพิ่งลงต่ำกว่า 0.3 เป็นครั้งแรก แต่เป็นแท่งเทียนที่มันไต่กลับขึ้นเหนือเส้นนั้น ส่วนสัญญาณ SELL ก็สะท้อนกลับกันทุกประการ คือ DeMarker กลับตัวลงทะลุ Overbought (ค่าเริ่มต้น 0.7) หลังจากเคยอยู่ที่หรือสูงกว่าระดับนั้น การเทรดตรงจุดที่แตะจุดสุดขั้วเลย แทนที่จะรอการกลับตัวออกมา เป็นความผิดพลาดของผู้เริ่มต้นที่พบบ่อยกับ oscillator แบบวัดจุดสุดขั้วทุกตัว — EA ตัวนี้ถูกออกแบบให้หลีกเลี่ยงความผิดพลาดนี้ในเชิงกลไก เพราะมันประเมินแค่เงื่อนไขการกลับตัวออกมาเท่านั้น และไม่มีทางสั่งเทรดในแท่งเทียนที่เพิ่งเข้า zone สุดขั้วเป็นครั้งแรก
Stop Loss, Take Profit และขนาดโพซิชัน
Stop Loss ของทุกเทรดคำนวณจาก ATR แทนที่จะเป็นระยะ pip คงที่ คือ ระยะ SL = ATR (14-period, ATRPeriod) × ATRMultiplier (ค่าเริ่มต้น 2.0) คู่เงินหรือ session ที่ผันผวนมากจะได้ stop ที่กว้างขึ้นอัตโนมัติ ส่วนช่วงที่นิ่งจะได้ stop ที่แคบลง — stop จะสะท้อนสิ่งที่ตลาดกำลังทำอยู่จริงๆ เสมอ แทนที่จะเป็นตัวเลขคงที่ตายตัวที่แคบเกินไปสำหรับบางคู่เงินและกว้างเกินไปสำหรับคู่เงินอื่น Take Profit จะถูกตั้งเป็น RiskRewardRatio (ค่าเริ่มต้น 2.0) เท่าของระยะ SL เดียวกันนั้น ทำให้ทุกเทรดที่ EA ตัวนี้เปิดมีสัดส่วนความเสี่ยงต่อผลตอบแทนคงที่และรู้ล่วงหน้าได้ ไม่ว่าจะรันบนคู่เงินหรือ timeframe ใดก็ตาม
ขนาดโพซิชันคำนวณด้วยวิธีเดียวกับที่สอนไว้ในพื้นฐานการบริหารความเสี่ยง คือ RiskPercent (ค่าเริ่มต้น 1.0%) ของยอดเงินในบัญชี หารด้วยระยะ Stop Loss และแปลงผ่านมูลค่า tick ของสัญลักษณ์นั้น จะได้ขนาด lot ที่ทำให้เทรดที่ขาดทุนสูญเสียเงินในสัดส่วนใกล้เคียงกันของบัญชี ไม่ว่าระยะ stop ที่คำนวณจาก ATR ในเทรดนั้นๆ จะกว้างหรือแคบแค่ไหนก็ตาม ผลลัพธ์จะถูกปรับให้เข้ากับ lot ขั้นต่ำ lot สูงสุด และ lot step ของ broker ก่อนส่งคำสั่งเทรด เทรดเดอร์ที่ต้องการเทรดด้วยขนาด lot คงที่โดยไม่สนใจยอดเงินในบัญชีหรือความกว้างของ stop สามารถเปิดใช้งาน UseFixedLot เพื่อใช้ค่า FixedLotSize แทนการคำนวณตามความเสี่ยงได้
เงื่อนไขการเข้าเทรด
- BUY — DeMarker กลับตัวจากที่อยู่ที่หรือต่ำกว่าระดับ Oversold ขึ้นมาเหนือระดับนั้น (DeMarker ≤ 0.3 ในแท่งเทียนก่อนหน้าที่ปิดสมบูรณ์ และ > 0.3 ในแท่งเทียนปัจจุบัน)
- SELL — DeMarker กลับตัวจากที่อยู่ที่หรือสูงกว่าระดับ Overbought ลงมาต่ำกว่าระดับนั้น (DeMarker ≥ 0.7 ในแท่งเทียนก่อนหน้าที่ปิดสมบูรณ์ และ < 0.7 ในแท่งเทียนปัจจุบัน)
นอกเหนือจากตัวสัญญาณเอง ยังมีกลไกความปลอดภัยหลายอย่างที่ทำให้ EA ทำงานได้อย่างเหมาะสมบนบัญชีจริง EA เปิดได้ ครั้งละ 1 โพซิชันเท่านั้น — ก่อนพิจารณาเปิดเทรดใหม่ มันจะนับโพซิชันที่เปิดอยู่ กรองด้วย symbol และ magic number แล้วข้ามสัญญาณไปเลยหากมีโพซิชันเปิดอยู่แล้ว ทุกคำสั่งที่มันเปิดจะถูกแท็กด้วย magic number ของตัวเอง (20260733) จึงไม่มีทางไปยุ่งกับเทรดที่เปิดเองด้วยมือหรือของ EA ตัวอื่นที่ใช้กราฟหรือบัญชีเดียวกัน มันประเมินเงื่อนไขการเข้าเทรด เพียงครั้งเดียวต่อแท่งเทียนใหม่เท่านั้น โดยติดตามเวลาของแท่งเทียนล่าสุดที่ประมวลผลไปแล้ว แทนที่จะตรวจสอบทุก tick ที่เข้ามา ทำให้การกลับตัวครั้งเดียวไม่สามารถสั่งเทรดซ้ำได้หลายครั้งก่อนแท่งเทียนจะปิด และก่อนส่งคำสั่งใดๆ มันจะตรวจสอบ spread ปัจจุบันเทียบกับ MaxSpreadPoints และข้ามการเข้าเทรดไปเลยหากตลาดมีสภาพคล่องต่ำเกินไปในขณะนั้น ประเด็นเดียวกับที่กล่าวถึงในSpread และ Slippage
Parameters
- DeMarkerPeriod (ค่าเริ่มต้น 14) — period ที่ใช้คำนวณ DeMarker ค่าน้อยจะตอบสนองเร็วขึ้นและกลับตัวผ่านเส้น 0.7/0.3 บ่อยขึ้น ค่ามากจะเรียบขึ้นและคัดกรองสัญญาณมากขึ้น
- Oversold (ค่าเริ่มต้น 0.3) — ระดับ DeMarker ด้านล่าง สัญญาณ BUY จะเกิดเมื่อ DeMarker กลับตัวขึ้นทะลุระดับนี้ หลังจากเคยอยู่ที่หรือต่ำกว่า
- Overbought (ค่าเริ่มต้น 0.7) — ระดับ DeMarker ด้านบน สัญญาณ SELL จะเกิดเมื่อ DeMarker กลับตัวลงทะลุระดับนี้ หลังจากเคยอยู่ที่หรือสูงกว่า
นอกเหนือจากนี้ EA มีอินพุตชุดเดียวกับ EA ตัวอื่นทุกตัวบนเว็บ — ระยะ stop และเป้ากำไร, lot ตามความเสี่ยง, ตัวกรองสเปรด, สวิตช์เปิดปิด — อ่านรายละเอียดแต่ละตัวได้ในหน้า EA ทุกคำสั่งที่ EA ตัวนี้เปิดถูกประทับด้วย magic number 20260733
ทำไมใช้ 0.7/0.3 ของ DeMarker แทน 70/30 ของ RSI
ตัวเลขพวกนี้ดูเหมือนสุ่มเลือกมา จนกว่าจะสังเกตว่าจริงๆ แล้วมันคือแนวคิดเดียวกันบนไม้บรรทัดคนละอัน RSI แสดงค่า momentum บนสเกล 0-100 เพราะคำนวณจากค่าเฉลี่ยของกำไรและขาดทุนในช่วง period หนึ่ง ดังนั้น 70/30 จึงตกอยู่ที่ตำแหน่งสามในสี่และหนึ่งในสี่ของช่วงนั้นโดยธรรมชาติ ส่วน DeMarker สร้างจากคำถามที่ต่างออกไปโดยสิ้นเชิง คือ จากช่วง high-low ทั้งหมดของแท่งเทียนล่าสุด มีสัดส่วนเท่าไรที่เป็นจุดสูงสุดใหม่เทียบกับจุดต่ำสุดใหม่ เมื่อเทียบกับแท่งก่อนหน้า และการคำนวณของมันบังเอิญ normalize อัตราส่วนนั้นให้อยู่ใน 0 ถึง 1 แทนที่จะเป็น 0 ถึง 100 ลองคูณ DeMarker ด้วย 100 แล้ว 0.7/0.3 ก็จะกลายเป็น 70/30 อีกครั้ง — เกณฑ์ของ EA ตัวนี้ไม่ใช่แนวคิดที่ต่างจาก RSI แต่เป็นแนวคิดเดียวกันเป๊ะ เพียงแค่แสดงผลในหน่วยดั้งเดิมของอินดิเคเตอร์ตัวนี้
สิ่งที่สำคัญจริงๆ สำหรับ EA ตัวนี้ไม่ใช่การแปลงหน่วยทางคณิตศาสตร์ แต่เป็นเรื่องที่อินดิเคเตอร์ทั้งสองตัวไม่ได้เห็นตรงกันเสมอไปว่าตลาด "สุดขั้ว" ตอนไหน เพราะมันวัดสิ่งที่ต่างกัน RSI สนใจขนาดของกำไรเทียบกับขาดทุนตลอดทั้งช่วง lookback ส่วน DeMarker สนใจเฉพาะว่าจุดสูงสุดและจุดต่ำสุดของแต่ละแท่งเทียนดันทะลุจุดสูงสุดและจุดต่ำสุดของแท่งก่อนหน้าไปไกลแค่ไหน ตลาดที่ไต่ขึ้นทีละน้อยอย่างสม่ำเสมอสามารถคง RSI ไว้ในระดับสูงได้เป็นช่วงยาว ในขณะที่ DeMarker อาจเย็นตัวลงเร็วกว่า เพราะ DeMarker ไวต่อการขยายตัวระหว่างแท่งเทียนที่ติดกันมากกว่าเทรนด์สะสมโดยรวม นั่นทำให้การกลับตัวผ่านเส้น 0.7/0.3 ของ DeMarker ค่อนข้างเร็วและสะเปะสะปะกว่าในสภาวะตลาดไซด์เวย์ และนี่คือเหตุผลในทางปฏิบัติที่ควรปรับค่า parameter ของ EA ตัวนี้ — รวมถึงสภาวะเทรนด์ที่นำไปใช้งาน — แยกต่างหากอย่างจริงจัง แทนที่จะสมมติว่ากลยุทธ์ที่ปรับแต่งมาสำหรับ RSI จะทำงานเหมือนเดิมทุกประการ เมื่อแค่สลับตัวเลขเกณฑ์ไปใช้ของ DeMarker
ข้อควรระวัง
อย่าเพิ่งใช้เงินจริง ให้รันบนบัญชีเดโมผ่านทั้งช่วงตลาดนิ่งและตลาดผันผวนก่อน เพราะผลงานในอดีต ไม่ว่าจะจากเครื่องทดสอบหรือบัญชีจริง ไม่ได้การันตีอนาคต และไม่มีระบบเทรดไหนที่ไม่มีไม้ขาดทุน — EA ตัวนี้ก็ขาดทุนเป็นบางไม้เช่นกัน กลยุทธ์ mean-reversion โดยทั่วไปมักเสียหายหนักในตลาดที่เป็นเทรนด์แรง และ EA ตัวนี้ก็ไม่ใช่ข้อยกเว้น เพราะสัญญาณจะทำงานทุกครั้งที่มีการกลับตัวผ่านเส้น 0.3 หรือ 0.7 ตลาดที่เป็นเทรนด์แรงสามารถผลัก DeMarker ลงต่ำกว่า 0.3 แล้วเด้งกลับขึ้นเหนือเส้นชั่วครู่จนสัญญาณ BUY ทำงาน ก่อนที่ราคาจะเทรนด์ต่อไปทะลุ stop เลย — สถานการณ์แบบ classic ที่เรียกว่า "รับมีดที่กำลังร่วง" (catch a falling knife) ที่การกลับตัวไม่เคยเกิดขึ้นจริง ควรพิจารณาจับคู่กับตัวกรองความแข็งแกร่งของเทรนด์ของคุณเอง เช่น ADX หรือการตรวจสอบเทรนด์กับตลาดไซด์เวย์ ก่อนเปิดใช้งานบนบัญชีจริง และลองเทียบพฤติกรรมของมันกับ EA แบบ zone-reversal ตัวอื่นอย่าง CCI Reversal เพื่อดูว่าแนวคิดเดียวกันแสดงผลต่างกันอย่างไรบน oscillator คนละตัว ทั้งสองไฟล์แจกเป็นซอร์สโค้ดล้วน ๆ เปิดอ่านตั้งแต่ต้นจนจบ และอย่ารันจนกว่าจะอธิบายได้ว่าอินพุตแต่ละตัวมีไว้ทำไม ทุกอย่างในหน้านี้เป็นความรู้ทั่วไปเรื่องเครื่องมือ ไม่ใช่คำแนะนำว่าคุณควรเทรดอะไร