APRENDER O TUTORIAL BÁSICO MQL5 – 22 COMO CODIFICAR UM CONSULTOR ESPECIALIZADO EM RSI

Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

 

Desta vez usamos MQL5 para criar um Expert Advisor para negociar automaticamente o RSI. A MQL5 pode ser utilizada para o comércio automático com Metatrader5 e o Índice de Força Relativa, também conhecido como RSI pode ser codificado dentro de 5-10 minutos…

Neste vídeo, vamos criar um Expert Advisor para calcular e negociar automaticamente o Índice de Força Relativa também chamado RSI, por isso vamos descobrir como fazer isso com a MQL5.
Primeiro precisa de clicar no pequeno botão aqui ou pressionar F4 no seu teclado, agora deve ver a janela do Metaeditor e aqui quer clicar: „Ficheiro/ Novo ficheiro/ Expert Advisor (modelo)“ do modelo, „Continuar“, vou chamar este ficheiro: „SimpleRSIEA“, clique em „Continuar“, „Continuar“ e „Terminar“.
Agora pode apagar tudo acima da função „OnTick“ e as duas linhas de comentário aqui.
Começamos com uma declaração de inclusão, queremos incluir o ficheiro: „Trade.mqh“, vem com funções de negociação e está incluído no MQL5, por isso agora podemos criar uma instância chamada: „trade“.
Dentro da função „OnTick“ queremos calcular o preço Ask e o preço Bid porque vamos comprar e vender, por isso usamos „SymbolInfoDouble“, „_Symbol“, „SYMBOL_ASK“ para calcular o preço Ask e com „SymbolInfoDouble“, „_Symbol“, „SYMBOL_BID“ – tudo em letras maiúsculas – vamos obter o preço Bid.
„NormalizeDouble“ e „_Digits“ é uma forma de calcular automaticamente o número de dígitos atrás do ponto porque a variável „_Digits“ armazena o número de dígitos após o ponto decimal que podem ser 3 dígitos – como neste caso – ou 5 dígitos.
Vamos criar uma variável para o sinal, o nome também é „sinal“, por favor não atribua um valor neste momento porque precisamos de calcular isso.
Precisamos de criar uma matriz para os dados de preço que serão chamados: „myRSIArray“, é uma matriz dupla, por isso vamos definir as propriedades do RSI (myRSIDefinition), temos uma função incluída no MQL5 que é chamada: „iRSI“, são necessários alguns parâmetros;
O primeiro parâmetro é para o símbolo actual no gráfico,
O segundo para o período,
Este valor; 14, é também o que se vê se clicar em: „Inserir/ Indicadores/ Osciladores/ Índice de Força Relativa“, aqui tem um valor de período para 14 velas e este é aplicado aos preços de fecho.
Este é o aspecto do Indicador.
Até à última actualização principal, era automaticamente mostrado no gráfico sempre que o calculava, mas agora preciso de clicar com o botão direito do rato no gráfico, seleccionar „Templates/ Save Template“ e guardá-lo como: „tester.tpl“ porque este é o modelo que vai ser utilizado no backtest e o modelo padrão é aquele que verá quando arrastar qualquer Expert Advisor no gráfico, por isso vamos escolher „tester.tpl“ e guardá-lo.
Sim, quero anulá-lo, por isso este parâmetro é para o período,
Este é para calcular valores com base no preço fechado.
Agora uso „CopyBuffer“ para preencher a matriz de preços (myRSIArray) que criámos aqui com dados de acordo com a definição (myRSIDefinition) que fizemos aqui.
Este parâmetro aqui representa o tampão. O buffer é no nosso caso a linha azul, este parâmetro aqui representa a vela actual 0 (zero), queremos calcular os valores para 3 velas e armazená-los na matriz RSI (myRSIArray) e isso permitirá calcular um valor RSI (myRSIValue) para a vela actual simplesmente olhando para a vela 0 (zero) da nossa matriz RSI (myRSIArray), „NormalizeDouble“ e vírgula 2 é usada para cortar a saída para dois dígitos como no Indicador e se o valor RSI (myRSIValue) for superior a 70 – é o caso quando atravessa esta linha – e estiver acima consideramos o valor a ser sobre-comprado, por isso queremos atribuir „vender“ ao nosso sinal.
No outro caso, se o valor RSI (myRSIValue) for inferior a 30, queremos comprar porque quando está abaixo desta linha pensamos que está sobre-vendido.
Portanto, se o sinal for igual a „vender“ e se „PositionsTotal“ for inferior a 1 – portanto não temos posições em aberto – queremos usar „trade.Sell“ para vender 10 microlotes.
Caso contrário, se o sinal for igual a „comprar“ e não tivermos posições em aberto, usamos „trade.Buy“ e compramos 10 microlote.
Finalmente, utilizamos a declaração „Comentar“ para produzir o texto: „O sinal é agora:“ seguido do sinal actual.
Pronto, é mais ou menos isso.
Se isto foi demasiado rápido para si ou se não souber o que o código faz, eu sugeriria ver os outros vídeos básicos do tutorial ou talvez até esteja interessado no curso premium, por agora, clique no botão „Compile“, não deve receber nenhum erro aqui e se for esse o caso pode clicar no pequeno botão aqui ou pressionar F4 para voltar ao Met trader.
Não se esqueça de guardar o gráfico actual como „tester.tpl“, clique em: „View/ Strategy Tester“ ou prima CTRL e R, agora deve ver o „Strategy Tester“ e aqui quer escolher o ficheiro: „SimpleRSIEA.ex5“, marque aqui a opção para a visualização e inicie um teste.