EMA คืออะไร
ผมเชื่อครับว่าน่าจะไม่มีเทรดเดอร์ท่านใดที่ไม่รู้จัก Moving Average (MA) เพราะมันคืออินดิเคเตอร์ยอดนิยมและโคตรจะมีประโยชน์มาก ๆ สำหรับการเทรด ซึ่ง MA เองมีประวัติศาสตร์การพัฒนามามากกว่า 30 ปี
สิ่งที่น่าประหลาดใจคือมันไม่ได้ถูกสร้างจากเทรดเดอร์ด้วยซ้ำไป แต่มันกลับถูกคิดค้นโดยนักพยากรณ์อากาศและคณะในช่วงปี 1901 ต่อมาก็มีนักสถิติพร้อมและเทรดเดอร์มากมายหยิบมันมาพัฒนาตามแนวทางของตัวเองต่อ จนเริ่มมีการใช้เทรดจริงราว ๆ ปี 1913-1938 ครับ
กลไกการทำงานของ MA สุดแสนจะเรียบง่าย เพียงนำค่าเฉลี่ยการเคลื่อนที่ของราคาสินทรัพย์หรือสินค้าใด ๆ มาคำนวณแล้ว Plot มันลงบน Chart นั่นเองครับ
ซึ่งเอาจริง ๆ แล้วมันคือการคิดย้อนหลังตามเวลานั่นแหละ เช่น เราตั้งค่าให้เป็น MA (200) นั่นหมายความว่า เรากำลังคำนวณค่าเฉลี่ยดังกล่าวในช่วงเวลา 200 แท่งเทียนย้อนหลัง แล้วมา Plot ต่อกันเป็นเส้นบน Chart ครับ
ก่อนหน้านี้เราสามารถคำนวณ MA ได้ไม่กี่วิธี เช่น Simple และต่อมาก็มีวิธี Exponential เป็นต้น แต่ปัจจุบันนี้เองเรามีวิธีการคำนวณ MA ที่หลายหลากวิธี เช่น
- Linear Weighted
- Double Exponential
- Triple Exponential
อย่างไรก็ตามในบทความนี้เราจะมีดูกันที่ Exponential Moving Average (EMA) ซึ่งสมการสำหรับคำนวณมีดังนี้ครับ
EMAn = Pn + EMAn-1 (1-a)
เมื่อ
- EMAn คือ EMA ของช่วงเวลาที่ต้องการ
- Pn คือ ราคาปิด ณ ช่วงเวลาที่ต้องการ
- EMAn–1 คือ EMA ณ ช่วงเวลาก่อนหน้า 1 วัน
- a คือ Smoothing Factor คำนวณจาก 2/(T+1)
- T คือ ช่วงเวลาที่ใช้มาคำนวณ Smoothing Factor
ระบบเทรด EUR/USD ด้วย EMA
EA ตัวนี้เป็น EA ประเภท Break-out (มั้ง) ซึ่งเราจะใช้ EMA เพียง 2 เส้นเท่านั้น โดยจะแบ่งเส้นแรกสำหรับฝั่งขา Buy และฝั่งขา Sell ซึ่งเราจะใช้ Applied price ดังนี้
- ใช้ราคาสูงสุด (High price) สำหรับขา Buy
- ใช้ราคาต่ำสุด (Low price) สำหรับขา Sell
ในส่วนของระบบ Money management เราจะออก Lot size ตามความผันผวนของตลาด (Volatility) นั่นหมายความว่ามันจะมีออก Lot ใหญ่เมื่อมี Volatility สูง และออก Lot เล็กเมื่อมี Volatility ต่ำ (รายละเอียดการคุม Lot size ไม่ให้เกิด Over trade มีอธิบายเอาไว้ในหนังสือคู่มือ fxDreema เล่ม 1)
เมื่อราคาวิ่งทะลุเส้น EMA เราจะทำการตั้ง pending buy or sell stop เอาไว้ โดยจะมี price offset เผื่อระยะให้อีกนิดนึง ซึ่ง Stop loss และ Take profit จะเป็นแบบ Dynamic ครับ… โดยใน EA ตัวนี้เราจะมีการกันหน้าไม้ หรือ Breakeven point เอาไว้ด้วย เพราะเราใช้ Risk/Reward Ratio = 1.5/6.0 หรือ 1:4 นั่นเองครับ
เงื่อนไขการเข้า Sell
- Candle id1 x< EMA(250) ที่ใช้ Low price เข้ามาคำนวณ
- คำนวณ Lot size based-on Volatility
- Pending order sell stop
เงื่อนไขการเข้า Buy
- Candle id1 x> EMA(250) ที่ใช้ High price เข้ามาคำนวณ
- คำนวณ Lot size based-on Volatility
- Pending order buy stop
วิธีคำนวณ Lot size ตามความผันผวน
เราจะใช้ ATR โดยเริ่มแรกให้เราใช้ block formula แล้วเพื่อทำการเปลี่ยน fraction price ของ ATR ให้กลายเป็น pips ด้วยสมการดังนี้ครับ
ATR_value / Middle_Price = ATR_Space
จากนั้นให้เราใช้ block formula มาอีกหนึ่ง block เพื่อทำการคูณสัดส่วน ATR ให้กลายเป็น Lot size ซึ่งตัว Multiplier นี้เองจะเป็นค่าคงที่ที่สำคัญในการควบคุมขนาด Lot size
ATR_Space x Multiply_ATR_Ratio = Initial_Lot
Set up Constants (Inputs) และ Variables
เราจะเทรดกันในคู่ EURUSD บน Time Frame M30 โดย Set up ค่าคงที่และตัวแปรมีดังนี้ครับ ปล. ก่อนเริ่มเขียน EA ตัวนี้ เราจะทำลบ Rules ออกให้หมดก่อนเพื่อให้การนับระยะทางเป็น Point
ตารางที่ 1: แสดงค่า Constants และ Variables ที่ใช้กับ EA ตัวนี้
Constants (Inputs) |
||
Type |
Name |
Value |
double | ATR_Period | 14 |
double | ATR_SL | 1.5 |
double | ATR_TP | 6.0 |
double | Price_offset | 200 |
int | Expiration_Time_hour | 4 |
double | Balance_Ratio | 10000 |
double | Multiply_ATR_Ratio | 50 |
double | Point_on_profit | 150 |
Variables |
||
Type |
Name |
Value |
double | ATR_Space | 0 |
double | Initial_Lot | 0 |
ผลการ Backtest
ในส่วนของผลการ backtest ด้วย tick data 99.90% เป็นเวลา 1 ปี พบว่าก็พอถูไถ่ไปได้บ้าง ไม่กำไรมากเท่าไหร่ แต่เดือนไหนวิ่งชน TP ก็กำไรเยอะหน่อยครับ
ชมคลิปการสอนเขียน EA ฟรี
สรุป
แม้ลอง Backtest 2 ปีผ่านก็จริงอยู่ แต่หากทดสอบมากกว่านั้นก็มีพอร์ตแตกให้เห็น ซึ่งมันอาจจะไม่ใช่กลยุทธ์ที่ดีเลิศอะไร แต่เพื่อน ๆ สามารถนำ EA ตัวนี้ไปพัฒนาต่อยอดให้ดียิ่งขึ้นไปได้อีก และหวังว่าบทความ สอนเขียน EA EMA Breakout นี้จะเป็นประโยชน์ต่อการเขียน EA ครับ
หมายเหตุ
- การซื้อขายสินทรัพย์เช่นคริปโตเคอร์เรนซี, ตลาดฟอเร็กซ์, และตลาดหุ้น, มีความผันผวนสูงและเต็มไปด้วยความเสี่ยง จึงควรให้นักลงทุนศึกษาข้อมูลและเข้าใจถึงความเสี่ยงที่อาจเกิดขึ้นก่อนตัดสินใจลงทุน
- เนื้อหาที่ท่านได้รับชมถือเป็นเพียงแนวทางในการให้ความรู้เบื้องต้นเกี่ยวกับวิธีเขียนระบบเทรดอัตโนมัติ (EA) แต่ไม่ถือเป็นคำแนะนำสำหรับการลงทุน
- ดังนั้น ก่อนที่จะนำไปปฏิบัติจริงในตลาด ผู้ลงทุนควรจะทำการศึกษาถึงโอกาสในการทำกำไรและความเสี่ยงสูงสุดที่อาจเกิดขึ้นได้ ทีมงานของเราไม่มีนโยบายในการรับประกันผลกำไรหรือความขาดทุนที่อาจเกิดขึ้น
ทีมงาน eaforexcenter.com
กลับสู่สารบัญเพื่อเลือกเรียนบทอื่น ๆ
อยากเรียนเขียน EA ด้วย fxdreema ครับ
ได้เลยครับ รอติดตามได้จาก website นี้ได้ หรือ จะตามที่กลุ่ม facebook ก็ได้ครับ –> https://www.facebook.com/groups/fxdreema