การเขียน EA โดยใช้ MA ตัดกัน | FxPro Quant


คะแนนโดย admin

เส้น

การเขียน EA โดยใช้ MA ตัดกัน

บทความก่อนเป็นการเขียน EA โดยใช้ RSI ในการส่งคำสั่ง ซึ่งเป็นการใช้ระดับ Overbought และ Oversold ในการส่งคำสั่ง ซึ่งต้องบอกย้ำอีกครั้งว่า เราไม่เน้นผลลัพธ์ ว่าจะกำไรหรือขาดทุน เนื่องจาก กลยุทธ์ที่เราเขียน เป็นการฝึกเขียนเท่านั้น โดยคราวนี้ เราจะมาดู Indicator ยอดฮิต นั่นก็คือ Moving Average ซึ่งเป็น Indicator ที่มีคนใช้มากมาย และสามารถบอกเทรนด์ในการเทรดได้ โดยมีขั้นตอนการเขียนโปรแกรมโดยใช้ FXpro Quant ดังต่อไปนี้

เงื่อนไขการส่งคำสั่ง

สำหรับ EA นี้เป็นการตัดกันของเส้น MA 2 เส้น โดยเราจะตัดมาทำเฉพาะคำสั่ง Buy เท่านั้น โดยมีเงื่อนไขการเข้าเทรด และการทำกำไร หรือตัดขาดทุนดังต่อไปนี้

เงื่อนไข Buy

  1. Buy เมื่อ MA เร็ว ตัดขึ้นสูงกว่า MA ช้า
  2. ส่งคำสั่งเพียงออเดอร์เดียว

เงื่อนไขการปิดออเดอร์

ปิดออเดอร์ 3 แบบ คือ

  1. การปิดออเดอร์ โดยใช้ Trailing Stop
  2. การปิดออเดอร์โดยใช้ การตัดกันของ MA
  3. การปิดออเดอร์เพราะชน Stop loss

เพียงแต่จะไม่มี Take Profit ตายตัว เนื่องจาก จำกัดกำไรที่จะได้ โดยเราต้องการให้เกิดการ Let Profit Run ซึ่งจะตอบโจทย์มากกว่า และที่สำคัญ ในภาวะที่ตลาด Side Way การชน Stop loss เกิดขึ้นได้บ่อย เราจึงต้องทำให้กำไรได้สูงสุดเท่าที่จะทำได้ สำหรับการได้กำไรก้อนใหญ่เพียงพอ และการใช้ Trailing Stop เป็นการป้องกันออเดอร์ที่กำไรแล้วกลับไปขาดทุน  เรามาเริ่มเขียนทีละขั้นตอนกันเลยครับ

การเขียนคำสั่ง

ในรูปข้างต้น ให้ไปหา Indicator Moving Average โดยเลื่อนลงมาเรื่อย ๆ และเมื่อเจอแล้วลากลงมา 2 อันและทำการ Double Click เพื่อเปลี่ยนชื่อ โดยตัวหนึ่งชื่อว่า Fast อีกตัวหนึ่งชื่อ Slow เมื่อเราคลิ๊กที่ตัวใดตัวหนึ่ง จะเห็นว่า มันมีแถบด้านขวาขึ้นมา โดยบเราจะเลือก ค่า MA สำหรับตัวที่เร็ว ใช้ค่า 5 และ MA ช้า ใช้ค่า 15 เหตุผลก็คือ 5 คือวันทำการสำหรับเวลาทำการสำหรับ 1 ต่อ 3 เท่าของเวลากับช้า ทำให้เราไม่ถูกสัญญาณหลอกเปลี่ยนไปมา หลังจากนั้นเราต้องทำการเปรียบเทียบเงื่อนไข

โดย MA เร็วจะต้องมากกว่า ช้า เมื่อเกิดขึ้นถึงจะส่งคำสั่ง และ ส่ง Stop loss เท่ากับ 20 pips สำหรับการตั้ง Trailing Stop เช่นเดียวกัน

หลังจากนั้นจะทำการกำหนด Trailing Stop โดยใช้ Magic Number \

เราใช้ Magic Index เพื่อให้มันทราบว่า ควรจะขยับ Trailing Stop ของออเดอร์ไหน ซึ่งกำหนด Trailing Stop ไว้เท่ากับ 200 Point หรือ 20 pip เช่นกัน หลังจากนั้นเราจะมาทำเงื่อนไขการเทรด ต่อไป คือ การปิดออเดอร์เมื่อ MA ตัดกัน ต่ำกว่า ซึ่งก็คือเงื่อนไขตรงกันข้ามกับการเข้าเทรด Buy

โดยผมจะทำการ Copy โหนดเข้าคำสั่ง Buy แล้วนำมาใช้คำสั่ง ออกจากการเทรด  คือ MA fast จะต้องต่ำกว่า MA Slow

จากภาพสำหรับคนที่อ่านบทความของผมต่อเนื่อง จะพบว่า คราวนี้ผมใช้คำสั่งต่างจากคราวที่แล้วนิดหน่อยคือ ผมทำการใช้ Magic Number เชื่อมกับ ออเดอร์ปิดด้วย ทำให้มันทราบว่าต้องปิดออเดอร์ไหน เมื่อทำเท่านี้ก็ครบเงื่อนไขการเทรดของเรา ต่อไปเราสามารถนำ EA ไป Back Test นั่นเอง

การ Back Test

หลังจากที่เราทำการเขียน เงื่อนไขเสร็จแล้วขั้นตอนต่อไปคือการ Back Test สำหรับท่านที่เป็นมือใหม่ บทความนี้ได้ทำการเว้นการเขียนอธิบายการ Back Test ตั้งค่าไว้ ท่านสามารถหาอ่านได้จากบทความก่อนหน้า  โดยผลของการ Back Test Ea ที่เราเขียนได้ผลดังต่อไปนี้

จะเห็ฯว่า EA จะเข้าส่งคำสั่ง Buy ก็ต่อเมื่อเส้น MA    Fast มากกว่า Slow และปิดออเดอร์ทันทีที่ MA ลดลง อย่างไรก็ตาม EA มีเงื่อนไข Trailing Stop ทำให้บางจัหงวะสามารถปิดสูงกว่าเส้น MA ได้ แต่ก็มีข้อเสียอย่างหนึ่งก็คือ เมื่ออเดอร์ถูกปิดและ MA Fast มากกว่า Slow อยู่ ทำให้มันเปิดออเดอร์ต่อเนื่องโดยทันที นั่นไม่ใช่เงื่อนไขที่เราต้องการ

วิธีแก้ไข

จากเงื่อนไขที่มันปิดออเดอร์แล้วเปิดเลยเมื่อ MA Fast มากกว่า MA Slow ทำให้การเข้าเทรดนั้นผิดจังหวะ ซึ่งทำให้เกิดการขาดทุนติดต่อกันรัว ๆ  ดังแสดงในภาพต่อไปนี้

สังเกตุได้ว่า เมื่อวานเราใช้สัญญาณ RSI ทำการเทรดไปแค่ 21 ครั้ง ขณะที่ครั้งนี้ใช้จำนวนการเทรดมากกว่า 500 ครั้ง แถมขาดทุน่บ่อยมาก และมีบางช่วงกำไร ในกราฟ จะเห็นว่า เส้น MA นั้นทำกำไรได้เยอะเพราะว่า มันเคลื่อนไหวเยอะ แต่จำนวนครั้งในการทำกำไรน้อยมาก น้อยจนไม่สามารถทำอะไรได้และต้องเฉชิญภาวะขาดทุนอย่างยาวนาน ซึ่งวิธีแก้ก็คือ ลดจำนวนการเทรด โดยตั้งเวลาให้เทรด ทุก ๆ 5 – 10 ชั่วโมง ก็จะสามารถลดได้ แต่นั่นก็ไม่ใช่การแก้ไขปัญหาอย่างยั่งยืน

ซึ่งเพียงเท่านี้ก็พอจะรู้แล้ว่า โมเดลนี้จำเป็นต้องได้รับการแก้ไขอีกพอสมุควร อย่างไรก็ตาม นี่เป็นเพียงการฝึก อย่าพึ่งหวังผลกำไรจากขั้นตอนนี้ คุณยังมีอะไรอีกมากมายให้เรียนรู้

 

เส้น