Laman utama Perdagangan Sistem Siaran

EA Perceptron Sederhana: Sistem Trading untuk MetaTrader 4

Lampiran
18987.zip (1.98 KB, Muat turun 3 kali)

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.

Peraturan

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.

Input

Pengoptimuman


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";

Komen


5. Artikel Berkaitan

Untuk artikel berkaitan, anda boleh merujuk kepada link ini.

Siaran berkaitan

Komen (0)