วิธีเขียน Basic EMA EA

สอนเขียน EA EMA breakout ด้วย fxDreema

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 คือ ราคาปิด ณ ช่วงเวลาที่ต้องการ
  • EMAn1 คือ 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 นั่นเองครับ

EMA EA Break out
รูปที่ 1 ตัวอย่างการเข้า Sell ด้วยการกลยุทธ์ EMA 2 เส้น

เงื่อนไขการเข้า Sell

  1. Candle id1 x< EMA(250) ที่ใช้ Low price เข้ามาคำนวณ
  2. คำนวณ Lot size based-on Volatility
  3. Pending order sell stop

เงื่อนไขการเข้า Buy

  1. Candle id1 x> EMA(250) ที่ใช้ High price เข้ามาคำนวณ
  2. คำนวณ Lot size based-on Volatility
  3. 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 ก็กำไรเยอะหน่อยครับ

Backtest EMA EA Breakout
รูปที่ 2 ภาพการ Backtest แพ้แพ้ ชนะไปเรื่อย ๆ รอกิน TP ระยะไกลก็ประมาณนี้ครับ
Trading Statistic EMA EA Breakout
รูปที่ 3 แสดงผล Trading Statistic หรือ สถิติการเทรด ของผล Backtest เป็นเวลา 1 ปีครับ
Break even point fxdreema
รูปที่ 4 แสดงการ สอนเขียน EA EMA Breakout ด้วยเงื่อนไขของฝั่ง Buy และการระบบกันหน้าไม้ (Break even point)

ชมคลิปการสอนเขียน EA ฟรี

สรุป

แม้ลอง Backtest 2 ปีผ่านก็จริงอยู่ แต่หากทดสอบมากกว่านั้นก็มีพอร์ตแตกให้เห็น ซึ่งมันอาจจะไม่ใช่กลยุทธ์ที่ดีเลิศอะไร แต่เพื่อน ๆ สามารถนำ EA ตัวนี้ไปพัฒนาต่อยอดให้ดียิ่งขึ้นไปได้อีก และหวังว่าบทความ สอนเขียน EA EMA Breakout นี้จะเป็นประโยชน์ต่อการเขียน EA ครับ

หมายเหตุ

  • การซื้อขายสินทรัพย์เช่นคริปโตเคอร์เรนซี, ตลาดฟอเร็กซ์, และตลาดหุ้น, มีความผันผวนสูงและเต็มไปด้วยความเสี่ยง จึงควรให้นักลงทุนศึกษาข้อมูลและเข้าใจถึงความเสี่ยงที่อาจเกิดขึ้นก่อนตัดสินใจลงทุน
  • เนื้อหาที่ท่านได้รับชมถือเป็นเพียงแนวทางในการให้ความรู้เบื้องต้นเกี่ยวกับวิธีเขียนระบบเทรดอัตโนมัติ (EA) แต่ไม่ถือเป็นคำแนะนำสำหรับการลงทุน
  • ดังนั้น ก่อนที่จะนำไปปฏิบัติจริงในตลาด ผู้ลงทุนควรจะทำการศึกษาถึงโอกาสในการทำกำไรและความเสี่ยงสูงสุดที่อาจเกิดขึ้นได้ ทีมงานของเราไม่มีนโยบายในการรับประกันผลกำไรหรือความขาดทุนที่อาจเกิดขึ้น

ทีมงาน eaforexcenter.com

กลับสู่สารบัญเพื่อเลือกเรียนบทอื่น ๆ

2 thoughts on “วิธีเขียน Basic EMA EA

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *