1. Pengenalan kepada Perceptron
Perceptron adalah salah satu model rangkaian neural yang digunakan dalam trading. Untuk maklumat lanjut, anda boleh merujuk kepada Dr. Mark Humphrys mengenai Rangkaian Neural Satu Lapisan (Perceptrons).
Saya memanggilnya sebagai "Kecerdasan Buatan" yang berkaitan dengan logik Perceptron.
2. Algoritma
2.1. Input
Nilai w1, w2, w3, dan w4 adalah berat yang ditentukan melalui pengoptimuman.
input int x1 = 0;//berat1 input int x2 = 0;//berat2 input int x3 = 0;//berat3 input int x4 = 0;//berat4
2.2. Perceptron
Untuk membuat EA yang mudah, ambang nilai adalah sifar. Output tidak berubah dengan "menembak" 1, dan "tidak menembak" 0.

double w1 = x1 - 100; double w2 = x2 - 100; double w3 = x3 - 100; double w4 = x4 - 100; //Perceptron sebelum satu bar 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 sebelum dua bar 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);
Saya menggunakan RSI dalam EA ini, tetapi saya rasa osilator lain seperti RCI dan W%R juga boleh digunakan.
2.3. Membuka dan Menutup Order
Apabila Perceptron sebelumnya berada di bawah 0 dan Perceptron semasa berada di atas 0, jika terdapat posisi pendek, ia akan ditutup.
Seterusnya, EA akan menghantar order panjang.
if(Pre_Percptron < 0 && Current_Percptron > 0) //isyarat panjang { //Jika terdapat posisi pendek, tutup order if(pos < 0) { ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); if(ret) pos = 0; //Jika tutup order berjaya, status posisi adalah sifar } //Jika tiada posisi, hantar order panjang if(pos == 0) Ticket = OrderSend( _Symbol, // simbol OP_BUY, // operasi Lots, // jumlah Ask, // harga 0, // slippage 0, // stop loss 0, // take profit Trade_Comment, // komen MagicNumber,// nombor ajaib 0, // tamat tempoh order pending Green // warna ); }
Sebaliknya, apabila Perceptron semasa berada di bawah 0 dan Perceptron sebelumnya berada di atas 0, jika ada posisi panjang, ia akan ditutup.
Dan EA akan menghantar order pendek.
3. Pengoptimuman
Muatturun "Slime_Mold_RSI_template.set", dan pilih "open price only" untuk Model.


4. Komen dan Nombor Ajaib
Saya menetapkan Nombor Ajaib berdasarkan tempoh yang digunakan untuk pengoptimuman, EA ini menggunakan Nombor Ajaib dalam komen.
string Trade_Comment = IntegerToString(MagicNumber,5,' ') + "Hari-Pengoptimuman";

5. Artikel Berkaitan
Untuk artikel berkaitan, anda boleh merujuk kepada link ini.
Siaran berkaitan
- MQL5 Wizard: Cipta Sistem Trading Berdasarkan Pola Morning/Evening Star dan RSI
- Panduan Lengkap MQL5 Wizard untuk Isyarat Dagangan Berdasarkan Morning/Evening Stars dan Stochastic
- MQL5 Wizard: Isyarat Dagangan Berdasarkan Pola Candlestick Dark Cloud Cover/Piercing Line + RSI
- Menggunakan MQL5 Wizard untuk Signal Perdagangan '3 Black Crows/3 White Soldiers' + RSI
- MQL5 Wizard: Cipta Isyarat Dagangan Berdasarkan Corak Hammer/Hanging Man dan Stochastic