1. Cosa sono i Perceptron
I perceptron sono una tipologia di rete neurale semplice. Per un approfondimento, puoi consultare il lavoro di Dr. Mark Humphrys sui Reti Neurali a Strato Singolo.
Ho definito l'"Intelligenza Artificiale" come la logica del perceptron.
2. Algoritmo
2.1. Input
I valori w1, w2, w3 e w4 sono i pesi impostati in base all'ottimizzazione effettuata.
input int x1 = 0;//peso1 input int x2 = 0;//peso2 input int x3 = 0;//peso3 input int x4 = 0;//peso4
2.2. Perceptron
Per realizzare un EA semplice, la soglia è zero. L'output non cambia: "spara" 1, "non spara" 0.

double w1 = x1 - 100; double w2 = x2 - 100; double w3 = x3 - 100; double w4 = x4 - 100; //Perceptron prima di una barra 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 prima di due barre 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);
Utilizzo l'RSI in questo EA, ma penso che anche altri oscillatori come RCI e W%R possano funzionare.
2.3. Apertura e Chiusura Ordini
Quando il perceptron precedente è sotto 0 e quello attuale è sopra 0, se esiste una posizione corta, viene chiusa.
Inoltre, l'EA invia un ordine long.
if(Pre_Percptron < 0 && Current_Percptron > 0) //segnale long { //Se esiste una posizione corta, chiudi l'ordine if(pos < 0) { ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); if(ret) pos = 0; //Se la chiusura riesce, lo stato della posizione è Zero } //Se non ci sono posizioni, invia ordine long if(pos == 0) Ticket = OrderSend( _Symbol, // simbolo OP_BUY, // operazione Lots, // volume Ask, // prezzo 0, // slippage 0, // stop loss 0, // take profit Trade_Comment, // commento MagicNumber,// numero magico 0, // scadenza ordine pendente Green // colore ); }
Al contrario, quando il perceptron attuale è sotto 0 e quello precedente è sopra 0, se c'è una posizione long, viene chiusa.
Inoltre, l'EA invia un ordine short.
3. Ottimizzazione
Carica il file "Slime_Mold_RSI_template.set" e scegli "open price only" come modello.


4. Commento e Numero Magico
Ho impostato il numero magico della durata usata per l'ottimizzazione; questo EA utilizza il numero magico nei commenti.
string Trade_Comment = IntegerToString(MagicNumber,5,' ') + "Giorni-Ottimizzazione";

5. Articolo Correlato
Puoi trovare ulteriori informazioni a questo link.
Post correlati
- RRS Impulse: Il Tuo Esperto per MetaTrader 4
- MQL5 Wizard: Creare Trading Signals con Morning/Evening Stars e MFI per MetaTrader 5
- MQL5 Wizard: Strategia di Trading con Dark Cloud Cover/Piercing Line e RSI
- Guida all'Utilizzo del MQL5 Wizard: Trading con Pattern di Candele e Indice CCI
- MQL5 Wizard: Crea Expert Advisor per segnali di trading basati su Dark Cloud Cover e Piercing Line con CCI