1. เกี่ยวกับ Perceptron
Perceptron คืออะไร? ดร. มาร์ค ฮัมฟรีส์ เขียนเกี่ยวกับ Neural Networks แบบชั้นเดียว (Perceptrons)
ในการทำงานของ Perceptron เราสามารถเรียกว่าเป็นลอจิกที่ช่วยในการตัดสินใจในระบบการเทรดได้
2. อัลกอริธึม
2.1. ข้อมูลนำเข้า
ตัวแปร w1, w2, w3 และ w4 เป็นน้ำหนักที่กำหนดค่าตามที่คุณได้ทำการปรับแต่ง
input int x1 = 0;//น้ำหนัก1 input int x2 = 0;//น้ำหนัก2 input int x3 = 0;//น้ำหนัก3 input int x4 = 0;//น้ำหนัก4
2.2. Perceptron
ในการสร้าง EA แบบง่ายๆ ค่ากำหนด (threshold) จะเป็นศูนย์ โดยผลลัพธ์จะไม่เปลี่ยน "ยิง" 1, "ไม่ยิง" 0

double w1 = x1 - 100;double w2 = x2 - 100; double w3 = x3 - 100; double w4 = x4 - 100; //Perceptron ก่อนแท่ง 1 วันที่ 2017/03/18
double a11 = ((iRSI(Symbol(), 0, 12,PRICE_MEDIAN,1))/100-0.5)*2;
double a21 = ((iRSI(Symbol(), 0, 36,PRICE_MEDIAN,1))/100-0.5)*2; double a31 = ((iRSI(Symbol(), 0, 108,PRICE_MEDIAN,1))/100-0.5)*2; double a41 = ((iRSI(Symbol(), 0, 324,PRICE_MEDIAN,1))/100-0.5)*2; double Current_Percptron = (w1 * a11 + w2 * a21 + w3 * a31 + w4 * a41); //Perceptron ก่อนแท่ง 2 วันที่ 2017/03/18
double a12 = ((iRSI(Symbol(), 0, 12,PRICE_MEDIAN,2))/100-0.5)*2;
double a22 = ((iRSI(Symbol(), 0, 36,PRICE_MEDIAN,2))/100-0.5)*2; double a32 = ((iRSI(Symbol(), 0, 108,PRICE_MEDIAN,2))/100-0.5)*2; double a42 = ((iRSI(Symbol(), 0, 324,PRICE_MEDIAN,2))/100-0.5)*2; double Pre_Percptron = (w1 * a12 + w2 * a22 + w3 * a32 + w4 * a42);
ใน EA นี้ผมใช้ RSI แต่คิดว่าออสซิลเลเตอร์อื่นๆ ก็ใช้ได้ เช่น RCI, W%R เป็นต้น
2.3. การเปิดและปิดคำสั่ง
เมื่อ Perceptron ก่อนหน้านี้ต่ำกว่า 0 และ Perceptron ปัจจุบันสูงกว่า 0 หากมีสถานะขายก็จะถูกปิด
และ EA จะส่งคำสั่งซื้อ
if(Pre_Percptron < 0 && Current_Percptron > 0) //สัญญาณซื้อ { //ถ้ามีสถานะขาย ให้ปิดคำสั่ง if(pos < 0) { ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); if(ret) pos = 0; //ถ้าปิดคำสั่งสำเร็จ สถานะจะเป็นศูนย์ } //ถ้าไม่มีสถานะ ให้ส่งคำสั่งซื้อ if(pos == 0) Ticket = OrderSend( _Symbol, // สัญลักษณ์ OP_BUY, // การดำเนินการ Lots, // ปริมาณ Ask, // ราคา 0, // slippage 0, // stop loss 0, // take profit Trade_Comment, // คอมเมนต์ MagicNumber,// หมายเลขเวทมนตร์ 0, // เวลาหมดอายุคำสั่งรอดำเนินการ Green // สี ); }
ในทางกลับกัน เมื่อ Perceptron ปัจจุบันต่ำกว่า 0 และ Perceptron ก่อนหน้านี้สูงกว่า 0 หากมีสถานะซื้อก็จะถูกปิด
และ EA จะส่งคำสั่งขาย
3. การปรับแต่ง
โหลด "Slime_Mold_RSI_template.set" และเลือก "เปิดราคาเท่านั้น" สำหรับโมเดล


4. คอมเมนต์และหมายเลขเวทมนตร์
ผมตั้งค่า Magic Number ตามระยะเวลาที่ใช้ในการปรับแต่ง EA นี้จะใช้หมายเลขเวทมนตร์ในคอมเมนต์
string Trade_Comment = IntegerToString(MagicNumber,5,' ') + "Days-Optimization";

5. บทความที่เกี่ยวข้อง
อ่านเพิ่มเติมเกี่ยวกับ Perceptron
โพสต์ที่เกี่ยวข้อง
- สร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณซื้อขายจาก Morning/Evening Stars + MFI
- การสร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณการเทรดจาก Morning/Evening Stars + RSI
- สร้าง EA บน MQL5 Wizard ด้วยสัญญาณการซื้อขายจากแท่งเทียน 3 Black Crows/3 White Soldiers + Stochastic
- MQL5 Wizard: สร้างสัญญาณการเทรดจาก Bullish Harami/Bearish Harami พร้อม MFI
- ใช้ MQL5 Wizard สร้าง Expert Advisor ด้วยสัญญาณเทรด Morning/Evening Stars + Stochastic