1. O Que São Perceptrons?
Os perceptrons são uma das bases das redes neurais. Para entender melhor, recomendo conferir o artigo do Dr. Mark Humphrys sobre Redes Neurais de Camada Única.
No contexto do trading, podemos pensar no perceptron como uma representação lógica que nos ajuda a tomar decisões.
2. Algoritmo
2.1. Entradas
Os parâmetros w1, w2, w3 e w4 são os pesos definidos através da sua otimização.
input int x1 = 0;// peso1 input int x2 = 0;// peso2 input int x3 = 0;// peso3 input int x4 = 0;// peso4
2.2. Perceptron
No caso de um EA simples, o limite (threshold) é zero. O resultado é binário: "ativa" (1) ou "não ativa" (0).

double w1 = x1 - 100; double w2 = x2 - 100; double w3 = x3 - 100; double w4 = x4 - 100; // Perceptron antes de uma barra 2017/03/18 double a11 = ((iRSI(Symbol(), 0, 12,PRICE_MEDIAN,1))/100-0.5)*2;
Utilizo o RSI neste EA, mas outros osciladores também funcionam, como RCI, W%R, entre outros.
2.3. Abertura e Fechamento de Ordens
Quando o Perceptron anterior está abaixo de 0 e o atual acima de 0, se houver uma posição curta, ela é fechada e uma ordem longa é enviada.
if(Pre_Percptron < 0 && Current_Percptron > 0) // sinal de compra { // Se houver uma posição curta, envia ordem de fechamento if(pos < 0) { ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); if(ret) pos = 0; // Se o fechamento da ordem for bem-sucedido, o status da posição é Zero } // Se não houver posição, envia ordem longa if(pos == 0) Ticket = OrderSend( _Symbol, OP_BUY, Lots, // volume Ask, // preço 0, // slippage 0, // stop loss 0, // take profit Trade_Comment, // comentário MagicNumber,// número mágico 0, // expiração da ordem pendente Green // cor ); }
Por outro lado, quando o Perceptron atual está abaixo de 0 e o anterior acima de 0, se houver uma posição longa, ela é fechada e uma ordem curta é enviada.
3. Otimização
Carregue o arquivo "Slime_Mold_RSI_template.set" e escolha "open price only" como modelo.


4. Comentário e Número Mágico
Defino o Número Mágico como a duração utilizada para a otimização. Este EA utiliza o Número Mágico no comentário da ordem.
string Trade_Comment = IntegerToString(MagicNumber,5,' ') + "Dias-Otimização";

5. Artigo Relacionado
Você pode conferir um artigo relacionado aqui.
Publicações relacionadas
- MACD Sample: Um Guia Prático para o Expert Advisor no MetaTrader 5
- Trader Automático: RSI e MFI com Otimização Automática para MetaTrader 4
- Como Criar Sinais de Negociação com MQL5 Wizard Usando Estrelas da Manhã e da Noite + Estocástico
- MQL5 Wizard: Sinais de Negociação com Padrões Candlestick e RSI no MetaTrader 5
- Como Criar um Expert Advisor com MQL5: Sinais de Negociação Baseados em Harami e RSI