สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เรามาพูดถึง MTC Combo ซึ่งเป็น EA ที่ออกแบบมาเพื่อใช้ใน MetaTrader 5 กันนะครับ
EA นี้มีวัตถุประสงค์หลักคือการเสริมประสิทธิภาพการเทรดของเราด้วยการใช้ ระบบเทรดพื้นฐาน (BTS) ร่วมกับ เครือข่ายประสาท (NN) ครับ โดยเครือข่ายประสาทนี้จะช่วยให้เราสามารถดำเนินการในสถานการณ์ที่ระบบ BTS ไม่สามารถทำได้
ไม่มีความจำเป็นต้องคิดค้นอะไรใหม่ หากมีสิ่งที่ดีอยู่แล้ว เราควรใช้มันให้เกิดประโยชน์สูงสุด ตัวอย่างเช่น ถ้าเรามีรถยนต์อยู่แล้ว ก็ไม่ต้องไปวิ่งเร็วๆ ให้เหนื่อย
ถ้าเรามี ระบบเทรดตามแนวโน้ม (Trend TS) เราควรสอนเครือข่ายประสาทให้มี กลยุทธ์การเทรดสวนทาง เพียงอย่างเดียว เพราะระบบที่ใช้เทรดตามแนวโน้มไม่สามารถทำกำไรในช่วงที่ตลาดไม่มีทิศทาง (Flat) ได้
เรายังสามารถใช้กลยุทธ์การเทรดสองแบบ (ตามแนวโน้มและสวนทาง) พร้อมกันบนกราฟเดียวกัน หรือจะฝึกเครือข่ายประสาทให้เสริมระบบเทรดก็ได้
เพื่อให้การทำงานของเครือข่ายประสาทมีประสิทธิภาพ เราได้พัฒนาเป็นเครือข่ายประสาทสองชั้น โดยมี perceptron ชั้นล่างสองตัวและ perceptron ชั้นบนหนึ่งตัว
สถานะของเครือข่ายประสาทสามารถอยู่ในสามสถานะดังนี้:
- เข้าสู่การซื้อ (Long)
- เข้าสู่การขาย (Short)
- สถานะไม่ชัดเจน (Undefined)
สถานะที่สามหมายความว่าการควบคุมจะถูกส่งไปยัง BTS ขณะที่สัญญาณการเทรดจะถูกสร้างโดยเครือข่ายในสองสถานะแรก
การฝึกเครือข่ายประสาทแบ่งออกเป็นสามขั้นตอน โดยแต่ละ perceptron จะถูกฝึกในแต่ละขั้นตอน และ BTS ที่ได้รับการปรับแต่งจะถูกใช้ในแต่ละขั้นตอนเพื่อให้ perceptrons รู้ว่ามันสามารถทำอะไรได้บ้าง
การฝึก perceptrons แยกกันโดยใช้ อัลกอริธึมพันธุกรรม เกิดจากข้อจำกัดของอัลกอริธึมในการเลือกจำนวนพารามิเตอร์ที่สามารถเลือกได้ แต่ละขั้นตอนจะมีความเชื่อมโยงกันและเครือข่ายประสาทไม่ใหญ่เกินไป ทำให้กระบวนการปรับแต่งเกิดขึ้นภายในเวลาที่เหมาะสม
ขั้นตอนแรกก่อนการฝึก NN คือการปรับแต่ง BTS
เพื่อหลีกเลี่ยงความสับสน หมายเลขขั้นตอนจะถูกระบุใน EA ด้วย ID "pass" ซึ่งหมายเลข ID จะต้องลงท้ายด้วยหมายเลขนั้น
มาเตรียมความพร้อมสำหรับการปรับแต่งและฝึก NN กันเถอะ
ตั้งค่าเงินฝากเริ่มต้นในเทสเตอร์ที่ $100 (เพื่อไม่ให้เกิดมาร์จิ้นคอลล์ในระหว่างการปรับแต่ง) ปรับแต่งพารามิเตอร์ "Balance + max Sharpe Ratio" และเลือกประเภทการปรับแต่งเป็น "Fast genetic algorithm"
จากนั้นไปที่แท็บ Inputs ในคุณสมบัติของ EA
ตั้งขนาดล็อตของตำแหน่งที่เปิดโดยกำหนดค่าเป็น 0.01 ใน ID "lots"
การปรับแต่งจะต้องดำเนินการตามโมเดล "Open prices only" วิธีนี้ถูกเลือกเพราะมีความเร็วสูง นอกจากนี้ อัลกอริธึมของ EA ยังมีการจัดการแท่งราคาใหม่
ขั้นตอนการปรับแต่งแรก: การปรับแต่ง BTS:
ตั้งค่า pass เป็น 1
ปรับแต่งเฉพาะข้อมูลที่ตรงกับขั้นตอนแรก โดยให้ ID ของพารามิเตอร์ทั้งหมดลงท้ายด้วยหนึ่ง จึงต้องตั้งค่าตัวปรับแต่งเฉพาะบนพารามิเตอร์เหล่านั้น
tp1 - BTS take profit ปรับแต่งค่าจาก 100 ถึง 1000 โดยเพิ่มขึ้นทีละ 10
sl1 - BTS stop loss ปรับแต่งค่าจาก 100 ถึง 1000 โดยเพิ่มขึ้นทีละ 10
p1 - ระยะเวลาของ CCI oscillator ที่ใช้ใน BTS ปรับแต่งค่าจาก 3 ถึง 100 โดยเพิ่มขึ้นทีละ 1
เริ่มการฝึกผ่านการปรับแต่งอัลกอริธึมพันธุกรรม
ขั้นตอนที่สอง: การฝึก perceptron สำหรับตำแหน่งขาย:
ตั้งค่า 'pass' เป็น 2 (เพื่อให้ตรงกับหมายเลขขั้นตอน)
ลบตัวปรับแต่งที่ตั้งไว้ในขั้นตอนก่อนหน้าและบันทึกข้อมูลที่ได้ในขั้นตอนก่อนหน้าเก็บไว้ในไฟล์
ตั้งค่าตัวปรับแต่งสำหรับพารามิเตอร์ในขั้นตอนที่สอง (ID ลงท้ายด้วยสอง):
x12, x22, x32, x42 - สัดส่วนของ perceptron ที่รู้จำตำแหน่งขาย ปรับแต่งค่าจาก 0 ถึง 200 โดยเพิ่มขึ้นทีละ 1
tp2 - take profit ของตำแหน่งที่เปิดโดย perceptron ปรับแต่งค่าจาก 100 ถึง 1000 โดยเพิ่มขึ้นทีละ 10
sl2 - stop loss ของตำแหน่งที่เปิดโดย perceptron ปรับแต่งค่าจาก 100 ถึง 1000 โดยเพิ่มขึ้นทีละ 10
p2 - ระยะเวลาของค่าความแตกต่างของราคาที่วิเคราะห์โดย perceptron ปรับแต่งค่าจาก 3 ถึง 100 โดยเพิ่มขึ้นทีละ 1
เริ่มการฝึกผ่านการปรับแต่งอัลกอริธึมพันธุกรรม
ขั้นตอนที่สาม: การฝึก perceptron สำหรับตำแหน่งซื้อ:
ตั้งค่า 'pass' เป็น 3 (เพื่อให้ตรงกับหมายเลขขั้นตอน)
ลบตัวปรับแต่งที่ตั้งไว้ในขั้นตอนก่อนหน้า
บันทึกข้อมูลที่ได้ในขั้นตอนก่อนหน้าเก็บไว้ในไฟล์
ตั้งค่าตัวปรับแต่งสำหรับพารามิเตอร์ในขั้นตอนที่สาม (ID ลงท้ายด้วยสาม):
x13, x23, x33, x43 - สัดส่วนของ perceptron ที่รู้จำตำแหน่งซื้อ ปรับแต่งค่าจาก 0 ถึง 200 โดยเพิ่มขึ้นทีละ 1
tp3 - take profit ของตำแหน่งที่เปิดโดย perceptron ปรับแต่งค่าจาก 100 ถึง 1000 โดยเพิ่มขึ้นทีละ 10
sl3 - stop loss ของตำแหน่งที่เปิดโดย perceptron ปรับแต่งค่าจาก 100 ถึง 1000 โดยเพิ่มขึ้นทีละ 10
p3 - ระยะเวลาของค่าความแตกต่างของราคาที่วิเคราะห์โดย perceptron ปรับแต่งค่าจาก 3 ถึง 100 โดยเพิ่มขึ้นทีละ 1
เริ่มการฝึกผ่านการปรับแต่งอัลกอริธึมพันธุกรรม
ขั้นตอนสุดท้ายที่สี่:
การฝึกชั้นแรก (perceptron ชั้นบน):
ตั้งค่า 'pass' เป็น 4 (เพื่อให้ตรงกับหมายเลขขั้นตอน)
ลบตัวปรับแต่งที่ตั้งไว้ในขั้นตอนก่อนหน้า
บันทึกข้อมูลที่ได้ในขั้นตอนก่อนหน้าเก็บไว้ในไฟล์
ตั้งค่าตัวปรับแต่งสำหรับพารามิเตอร์ในขั้นตอนที่สี่ (ID ลงท้ายด้วยสี่):
x14, x24, x34, x44 - สัดส่วนของ perceptron ชั้นแรก ปรับแต่งค่าจาก 0 ถึง 200 โดยเพิ่มขึ้นทีละ 1
p4 - ระยะเวลาของค่าความแตกต่างของราคาที่วิเคราะห์โดย perceptron ปรับแต่งค่าจาก 3 ถึง 100 โดยเพิ่มขึ้นทีละ 1
เริ่มการฝึกผ่านการปรับแต่งอัลกอริธึมพันธุกรรม
นั่นแหละครับ เครือข่ายประสาทได้ถูกฝึกเสร็จเรียบร้อยแล้ว
EA นี้ยังมีพารามิเตอร์ "mn" ซึ่งเป็นหมายเลขเวทมนตร์ (magic number) ที่ช่วยให้ระบบแยกคำสั่งของตนเองออกจากคำสั่งที่เปิดโดยมือหรือ EA อื่นๆ หมายเลขเวทมนตร์ควรจะเป็นเอกลักษณ์
P.S.
- ขนาดเงินฝากเริ่มต้นจะถูกกำหนดเป็นการขาดทุนสูงสุดคูณด้วยสอง (เพื่อเป็นมาร์จิ้นความปลอดภัย)
- รหัสต้นฉบับของ EA ยังไม่ได้ปรับแต่ง
- เปลี่ยนเนื้อหาของฟังก์ชัน basicTradingSystem() หากคุณต้องการแทนที่ BTS ที่มีอยู่ด้วยอัลกอริธึมของระบบการเทรดอื่น
- ควรปรับแต่ง EA ในช่วงสุดสัปดาห์หากผลลัพธ์ในสัปดาห์ก่อนหน้านั้นไม่ทำกำไร การขาดทุนเป็นสัญญาณของการเปลี่ยนแปลงในตลาดและความจำเป็นในการปรับแต่งใหม่ หาก EA ทำกำไร ไม่จำเป็นต้องปรับแต่งใหม่เพราะหุ่นยนต์สามารถรับรู้รูปแบบของตลาดได้เป็นอย่างดี
โพสต์ที่เกี่ยวข้อง
- สร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณซื้อขายจาก Morning/Evening Stars + MFI
- MQL5 Wizard: ระบบเทรดสัญญาณจาก Hammer/Hanging Man + MFI บน MetaTrader 5
- สร้าง EA บน MQL5 Wizard ด้วยสัญญาณการซื้อขายจากแท่งเทียน 3 Black Crows/3 White Soldiers + Stochastic
- การสร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณการเทรดจาก Morning/Evening Stars + RSI
- สร้าง Expert Advisor ด้วย MQL5 Wizard สำหรับสัญญาณการเทรด Bullish Harami/Bearish Harami และ RSI