ตลาดการเงินมีการเปลี่ยนแปลงอยู่ตลอดเวลา และแนวคิดแบบเดิม ๆ มักล้าสมัยเป็นระยะ ๆ อย่างไรก็ตาม หากปัญหาไม่สามารถแก้ไขได้ด้วยวิธีแบบดั้งเดิม การเข้าหาด้วยแนวทางที่ไม่ธรรมดา เช่น การวิเคราะห์ด้วยโครงข่ายประสาทเทียม (Neural Network) ก็จะเข้ามาช่วย ซึ่งแนวทางนี้เองที่ถูกนำมาใช้โดยเอ็กซ์เพิร์ต แอดไวเซอร์ (Expert Advisor) ที่มีชื่อเรียบง่ายที่สุดคือ Robot ซึ่งเผยแพร่บนฟอรั่มของเรา โดยผสมผสานการวิเคราะห์ทางเทคนิคแบบดั้งเดิมเข้ากับองค์ประกอบพื้นฐานของปัญญาประดิษฐ์
คุณสมบัติของเอ็กซ์เพิร์ต แอดไวเซอร์ Robot
เนื่องจากเป็นโรบอทที่ใช้โครงข่ายประสาทเทียม จึงสามารถทำงานได้กับคู่สกุลเงินและตลาดใด ๆ ก็ตาม การเรียนรู้พฤติกรรมของสินทรัพย์ที่กำหนดไว้ไม่จำกัดทั้งในแง่ไทม์เฟรมและระยะเวลาการใช้งาน ดังนั้น คุณสามารถใช้มันได้ทั้งในการเทรดระยะยาวและ สเกลป์ปิ้ง โดยความแตกต่างเพียงอย่างเดียวคือข้อมูลที่ใช้ในการเทรนนิ่ง
- ไทม์เฟรม: ทุกไทม์เฟรม
- คู่สกุลเงิน: ทุกคู่สกุลเงิน
- เวลาการเทรด: ตลอด 24 ชั่วโมง
หลักการทำงานของเอ็กซ์เพิร์ต แอดไวเซอร์ Robot

เอ็กซ์เพิร์ต แอดไวเซอร์ Robot ใช้อินดิเคเตอร์สโตแคสติก (Stochastic Oscillator) แบบดั้งเดิม 4 ตัว ซึ่งแต่ละตัวมีค่าเลื่อน (shift) ต่างกันเป็นข้อมูลนำเข้า จากนั้นข้อมูลจะถูกประมวลผลด้วยคลาสซิไฟเออร์เชิงเส้น (linear classifier) ซึ่งเป็นแบบจำลองที่ง่ายที่สุดของนิวรอน กระบวนการเทรนนิ่งอัลกอริทึมนี้ ประกอบด้วยการปรับค่าน้ำหนัก (weights) ให้เหมาะสม เพื่อจับรูปแบบ (pattern) ที่มีอยู่จริงในข้อมูล หากดำเนินการเทรนนิ่งอย่างถูกต้อง
แม้ว่าเอ็กซ์เพิร์ต แอดไวเซอร์นี้จะไม่มีปัญญาประดิษฐ์แบบครบวงจร แต่การใช้อัลกอริทึมดังกล่าวก็ให้ข้อได้เปรียบเหนือการตั้งค่าเงื่อนไขตรรกะแบบดั้งเดิม (manual setup) หลายประการ
- ข้อแรกคือความยืดหยุ่นของเงื่อนไขเอง คุณเพียงระบุประเภทและจำนวนพารามิเตอร์นำเข้าตอนเริ่มต้นเท่านั้น แต่โปรแกรมยังไม่รู้ว่าจะจัดการพารามิเตอร์เหล่านั้นอย่างไร จนกว่าจะผ่านกระบวนการออพติไมเซชัน (optimization) หรือการเทรนนิ่ง เมื่อเสร็จสิ้นกระบวนการนี้ โปรแกรมจึงจะสร้างภาพรวมของตลาดขึ้นมา และสามารถทำนายการเคลื่อนไหวของราคาในอนาคตได้จากประสบการณ์ที่ผ่านมา
- ข้อสองคือความสามารถในการเทรนใหม่ได้อย่างรวดเร็ว หากตลาดเปลี่ยนไปและรูปแบบเดิมสูญเสียความเกี่ยวข้อง คุณเพียงแค่ ทำออพติไมเซชันใหม่ อีกครั้ง และในทางทฤษฎี โรบอทจะกลับมาทำกำไรได้อีกครั้ง
พารามิเตอร์การทำงานของโรบอท
ในกรณีนี้ พารามิเตอร์นำเข้าทั้งหมดสำหรับซิงเกิลเลเยอร์ เพอร์เซปตรอน (single-layer perceptron) แสดงไว้ในภาพด้านล่าง พารามิเตอร์แรก “shag” กำหนดค่าเลื่อนสำหรับแต่ละสโตแคสติก กล่าวคือ อินดิเคเตอร์ตัวแรกไม่มีการเลื่อน ตัวที่สองเลื่อนไป shag หน่วย ตัวที่สามเลื่อน shag * 2 หน่วย และตัวสุดท้ายเลื่อน shag * 3 หน่วย ค่าเลื่อนควรเลือกระหว่าง 1 ถึง 6 เพื่อไม่ให้การออพติไมเซชันใช้เวลานานเกินไป เราจึงเลือกขนาดขั้น (step size) ที่ไม่เล็กเกินไป — ในกรณีนี้ ใช้ 20 รอบต่อแต่ละตัวคูณ ซึ่งเพียงพอแล้วในการระบุรูปแบบโดยประมาณ

ตารางนี้แสดงการตั้งค่าพารามิเตอร์สำหรับตัวแปร x1, x2, x3 และ x4 โดยมีค่าปัจจุบันเป็น 0 และมีช่วงการทดสอบตั้งแต่ 0 ถึง 200 ด้วยขั้นตอน (step) เท่ากับ 10 กรอบสีแดงเน้นย้ำถึงคอลัมน์ที่ใช้กำหนดขอบเขต Start, Step และ Stop สำหรับการปรับให้เหมาะสมที่สุด
การทดสอบและการออพติไมเซชันเอ็กซ์เพิร์ต แอดไวเซอร์ Robot
พารามิเตอร์การออพติไมเซชัน:
- คู่สกุลเงิน: EUR/USD
- เงินฝากเริ่มต้น: 10,000 ดอลลาร์
- โหมด Every tick
- ไทม์เฟรม: H1
- ช่วงเวลาการทดสอบ: 1 เมษายน ถึง 1 พฤษภาคม 2016
- สเปรด: 10 พอยต์

ภาพนี้แสดงการตั้งค่าทดสอบระบบเทรดชื่อ Robot.ex4 บนคู่เงิน EURUSD, Euro vs US Dollar โดยใช้โมเดลราคาทุก_tickและช่วงเวลา H1 ช่วงวันที่ทดสอบคือจาก 2016.04.01 ถึง 2016.05.01 และมีการข้ามไปยัง 2016.05.20 แถบสีเขียวด้านล่างอาจแสดงสถานะความพร้อมหรือความคืบหน้าก่อนกดปุ่ม Start เพื่อเริ่มการทดสอบ
ผลจากการออพติไมเซชัน เราได้ค่าพารามิเตอร์ที่ดีที่สุด (พิจารณาจากอัตราส่วนกำไรต่อดรอว์ดาวน์) ดังนี้:
- ค่าเลื่อน (Step) – 5
- x1 – 0
- x2 – 70
- x3 – 150
- x4 – 160

จากผล ฟอร์เวิร์ดเทสต์ (forward test) ด้วยพารามิเตอร์ที่เลือก เราสามารถสรุปได้ว่ากลยุทธ์นี้มีความสามารถในการเรียนรู้ที่ดีมาก เพราะอัตราผลตอบแทนและแนวโน้มโดยรวมใกล้เคียงกับผลการแบ็กเทสต์ (backtesting) อย่างมาก
| เงินฝากเริ่มต้น | 10000.00 | เฉลี่ย | 10 | ||
| กำไรสุทธิ | 15281.11 | กำไรรวม | 16395.95 | ขาดทุนรวม | -1114.84 |
| ความสามารถในการทำกำไร | 14.71 | ปัจจัยการทำกำไร | 6.32 | ||
| การลดลงแบบสัมบูรณ์ | 2184.76 | การลดลงสูงสุด | 9118.28 (44.64%) | การลดลงแบบสัมพัทธ์ | 44.64% (9118.28) |
| จำนวนรายการทั้งหมด | 2418 | สถานะสั้น (% ที่ชนะ) | 1118 (82.61%) | สถานะยาว (% ที่ชนะ) | 1300 (62.62%) |
| รายการที่ทำกำไร (% ของทั้งหมด) | 1314 (82.61%) | รายการที่ขาดทุน (% ของทั้งหมด) | 904 (37.39%) | ||
| รายการที่ทำกำไรมากที่สุด | 718.96 | รายการที่ทำกำไรเฉลี่ย | 10.83 | รายการที่ขาดทุนเฉลี่ย | -13.14 |
| เฉลี่ย | รายการที่ทำกำไรเฉลี่ย | 10.83 | รายการที่ขาดทุนเฉลี่ย | -1.23 | |
| จำนวนสูงสุด | ต่อเนื่องของการชนะ (กำไร)… | 12 (111.45) | ต่อเนื่องของการแพ้ (ขาดทุน)… | 9 (-72.40) | |
| สูงสุด: | กำไรต่อเนื่อง (จำนวนการชนะ)… | 1475.75 (6) | ขาดทุนต่อเนื่อง (จำนวนการแพ้)… | -72.40 (9) | |
| เฉลี่ย | การชนะต่อเนื่อง | 3 | การแพ้ต่อเนื่อง | 2 |
อย่างไรก็ตาม ดรอว์ดาวน์สัมพัทธ์ (relative drawdown) ของเอ็กซ์เพิร์ต แอดไวเซอร์นี้เกือบเท่ากับยอดเงินฝากเริ่มต้น ซึ่งถือเป็นเงื่อนไขที่ไม่เหมาะสมสำหรับการใช้งานจริง และอาจนำไปสู่การสูญเสียเงินทุนอย่างรวดเร็วในบัญชีจริง แต่ปัญหานี้สามารถแก้ไขได้ เช่น โดยใช้การบริหารหน้าตัก (Money Management) ที่รัดกุมยิ่งขึ้น
สรุป
กล่าวโดยรวมแล้ว Robot เป็นเอ็กซ์เพิร์ต แอดไวเซอร์ที่แทบจะใช้งานได้ทั่วไป และยังสามารถปรับให้เข้ากับสถานการณ์ตลาดใด ๆ ได้อย่างง่ายดาย พารามิเตอร์ “mult” ควบคุมการคูณขนาดล็อตตามลำดับ ทำให้สามารถใช้ทั้งแนวทางการเทรดแบบก้าวร้าวและแบบอนุรักษ์นิยม (หากต้องการใช้ล็อตคงที่ ให้ตั้งค่าเป็น 1.0)
อย่างไรก็ตาม Robot ไม่ใช่ Holy Grail ตามที่อาจดูเหมือนในแวบแรก เนื่องจากต้องการการติดตามอย่างต่อเนื่อง กล่าวคือ เมื่อโปรแกรมเรียนรู้รูปแบบการเคลื่อนไหวของตลาดแบบหนึ่งแล้ว มันจะยึดมั่นกับรูปแบบนั้นอย่างแข็งขัน หากตลาดเปลี่ยนไปอย่างฉับพลัน โปรแกรมอาจเริ่มขาดทุนโดยไม่คาดคิดสำหรับผู้ใช้ ประสิทธิภาพโดยรวมของแนวทางนี้คล้ายคลึงกับการปรับเงื่อนไขด้วยตนเองเป็นระยะ ๆ แต่ข้อได้เปรียบหลักคือประหยัดเวลาให้ผู้เทรดอย่างมาก และผลลัพธ์ที่ได้อาจดีกว่ากลยุทธ์ที่ซับซ้อนกว่าด้วยซ้ำ
ดังนั้น เพื่อให้ผลลัพธ์ยังคงคาดการณ์ได้และน่าพอใจ คุณควรปรับค่าน้ำหนัก (weights) เป็นระยะ ๆ เพื่อให้โรบอทได้รับข้อมูลภาพรวมของตลาดที่ทันสมัยเสมอ