English Русский 中文 Español Deutsch 日本語
Um Expert Advisor feito sob encomenda Manual para um operador

Um Expert Advisor feito sob encomenda Manual para um operador

MetaTrader 4Exemplos | 19 fevereiro 2016, 13:55
1 257 0
Andrey Khatimlianskii
Andrey Khatimlianskii

Introdução

Nem todos os operadores são programadores. E nem todos programadores são realmente bons. Então, o que deve ser feito para você automatizar seu sistema sem ter tempo e vontade de estudar o MQL4? Normalmente, alguém visita o fórum e cria um tópico do tipo "Preciso de um programador":

Este artigo foi escrito especialmente para aqueles que precisam de ajuda para escrever um Expert Advisor. Aqui, você vai encontrar informações de contato de autores de EA, recomendações de contato e descrições dos problemas mais frequentes.


O que deve ser feito antes de pedir um Expert Advisor?

Antes de procurar um programador, certifique-se de que sua estratégia é rentável. Não pague por um EA que não irá trazer lucro. Você pode fazer isso manualmente, olhando através de dados históricos ou negociando mentalmente, o que na verdade é bem difícil. Isto também pode ser feito usando um aparelho de teste manual descrito no artigo visualização de teste: Negociação manual. Os resultados mais verdadeiros podem ser adquiridos por negociação em uma conta demo ou em uma conta de mini-real, mas isso requer mais tempo e, provavelmente, mais dinheiro. Ao testar uma estratégia, note que:

  • o mercado muda constantemente e um comportamento correto de indicadores sobre o histórico não garante que eles estejam adequados ao trading real;
  • alguns indicadores desenham sinais em barras já formadas. Setas colocados com sucesso em extremos de preço pertencem ao histórico. No trading real eles se tornam visíveis somente após várias barras. Por exemplo, sinais de Fractais são mostrados com um atraso de duas barras. Você pode usá-los, mas leve em consideração que você vai entrar no mercado não com o fractal, mas somente quando mais duas barras se formarem (em um gráfico de um hora será em duas horas). Não use indicadores cujo algoritmo de operação você desconhece. Isso pode levar a maus resultados;
  • há um grande número de indicadores que intencionalmente ou não, olham para o futuro. Por exemplo, a Média Móvel simples com uma mudança negativa devida ao tempo mostra pivôs do mercado. Mas apenas no histórico...

Muitos erros deste tipo podem ser detectados por meio de uma estratégia de teste no modo de tempo real em uma conta de demonstração. Mas esta verificação aparentemente confiável não pode garantir uma total coincidência com trading real, porque as contas demo e as contas ativas têm algumas diferenças:

  • velocidade de execução de ordens em uma conta demo é sempre maior do que em uma conta real. Tenha em mente que sua posição atual somente será aberta minutos após você enviar um pedido. Isso não vai influenciar resultados de uma estratégia de longo prazo, mas vai estragar totalmente seu trading diário;
  • em uma conta ativa as condições de negociação (spread, distância para parar pedidos, nível do aviso de margem etc.) podem ser alteradas durante o trading. Por exemplo, antes de novos lançamentos ou antes de feriados. Ao testar a sua estratégia em uma conta demo, você dificilmente enfrentará tais surpresas, mas não se esqueça de levá-las em conta ao estimar a eficácia de sua estratégia.

E não esqueça que o dinheiro real é dinheiro real e a atitude perante ele é diferente da atitude tomada em uma conta demo. Um Expert Advisor pode eliminar uma grande parte das emoções de um processo de trading, mas não pode eliminar totalmente possíveis erros. Negocie em uma conta demo, mantenha-se em uma estratégia, não altere os seus planos e não tome decisões emocionais. Seu futuro EA é apenas um programa e funcionará de acordo com regras restritas. Se você quer saber que resultados seu EA pode atingir, seu estilo de negociação deve ser o mesma que o de um EA - conciso e disciplinado.


Se depois de todas estas verificações sua estratégia ainda demonstra um lucro suficiente para cobrir todas as surpresas do trading real, você pode passar para a próxima etapa - a formalização de um algoritmo.



Formalização de algoritmo

Se você estiver utilizando sua estratégia para negociar por um período longo o suficiente, será fácil você formular um algoritmo. Tudo que você precisa é listar as regras de acordo com o que seu EA deve negociar.

Note que o programa será escrito por uma pessoa que não tem a menor ideia de sua estratégia. Você deve especificar todos os mínimos detalhes: parâmetros de indicadores, distância para parar ordens, número máximo de posições abertas, algoritmo de parada, etc. A especificação dos requisitos devem conter a descrição da reação de cada evento significativo: ativação de uma ordem de parada, aparência de um sinal repetido quando existe uma posição, início de um EA após a desconexão etc.

Você deve entender que seu PC não pode adivinhar, supor ou tomar decisões independentes, ele simplesmente negocia de acordo com suas regras. Se ocorrer uma situação em que a reação não for fornecida pelo algoritmo, seu EA não fará nada.


Vamos ver um exemplo do que pode acontecer se uma especificação de requisitos não for concisa e detalhada. O diálogo a seguir demonstra o processo de desenvolvimento do EA por um Programador de acordo com o algoritmo de um Operador. Eu exibi intencionalmente personagens absurdamente bobos. Isto irá enfatizar a atenção sobre os erros. Para uma melhor compreensão você pode baixar exemplos de todos os EAs e testá-los juntamente com o Operador.


Operador:

Olá! Quero encomendar um Expert Advisor.
Ele deve abrir posições quando MAN (9) e MA(18) cruzarem.
Se um rápido atravessar um lenta para cima, deve ser aberta uma posição de compra. Se vice-versa, uma posição de venda deve ser aberta.
Quanto custa?

Programador:

Para definir o custo, preciso de uma especificação de requisitos concisa e detalhada.
Aproximadamente $25.

Operador:

Escrevi tudo na notificação anterior!
Há duas médias móveis, quando um rápido (com o período 9) cruza um lenta (com período 18) para cima, uma posição de compra é aberta. Se vice-versa, uma posição de venda é aberta.

Programador:
Ok, clear.
Here is your Expert Advisor - Sample_1.mq4.
Operador:

O que você escreveu?! Isto não é um EA!
Por que existem tantas posições abertas? Por que elas não estão fechadas?
Você é realmente um programador?

Programador:

O número de posições é igual ao número de cruzamentos. Teste seu EA no modo de visualização, você verá tudo, uma posição é aberta em cada cruzamento.
Caso o cruzamento for ascendente, uma posição de compra é aberta. Se for descendente, uma posição de venda é aberta.
Sua especificação não contém uma palavra sobre a posição de fechamento.


Operador:

Esqueci de dizer: se há uma posição aberta, ela deve ser fechada em um cruzamento contrário, apenas uma posição pode ser aberta no mercado em um momento. E para cada posição aberta um Stop Loss deve ser colocado a uma distância de 50 pontos.


Programador:
See the second version - Sample_2.mq4.

Operador:

Por que há um posição de compra aberta? Aqui não há cruzamento!



Programador:

Havia cruzamento, mas desapareceu. O gráfico reflete valores do indicador em barras já formadas e você pode ver suas mudanças em um processo de desenvolvimento de barra usando apenas um modo de teste visual ou em funcionamento real. Acredite em mim, havia uma interseção no momento da abertura da posição.
Se desejar, nós podemos fazer a EA assim, com posições sendo abertas sobre os sinais de barras formadas. Neste caso, todos os sinais serão visíveis em um gráfico.
Muitos operadores fazem o mesmo.


Operador:

Vamos tentar.
E posso otimizar os parâmetros de médias e valores do Stop Loss e níveis do Take profit?


Programador:

Aqui está a terceira versão- Sample_3.mq4:
- a busca de sinais é feita em barras formadas (1º e 2º);
- os parâmetros de médias e os valores de Stop Loss e Take Profit estão especificados em variáveis externas.
Confira.


Operador:

Agora lembra o que eu realmente queria.
Mas quando eu inicializar vários EAs, apenas um deles vai fazer negócios. E às vezes eles fecham posições uns dos outros!


Programador:

Na quarta versão (Sample_4.mq4), adicionei divisão de ordens de acordo com o número mágico. Se você inicializar vários EAs em um gráfico de um símbolo, defina diferentes valores da variável MagicNumber para cada um deles.


Operador:

Agora está ok!

Então, quais devem ser as especificações de requisitos de acordo com qual um Programador poderia criar a quarta versão do EA na primeira vez? Vamos tentar formular requisitos para um Expert Advisor:
  • O EA deve controlar apenas suas próprias posições e não deve lidar com posições abertas manualmente ou por outros EAs.
  • Se não houver posições abertas pelo EA:
    • Se um MA rápido cruzar um lento ascendente, é aberta uma posição de compra;
    • Se um MA rápido cruzar um lento descendente, é aberta uma posição de venda.
  • Se houver uma posição aberta pelo EA:
    • se for uma posição de compra:
      • se o MA rápido cruzar um lento descendente, a posição de compra é fechada e uma posição de venda é aberta.
    • se for uma posição de venda:
      • Se um MA rápido cruzar um lento ascendente, a posição de venda é fechada e uma posição de compra é aberta.
  • Os parâmetros do MA rápido e do MA lento (período, método de desenho, preço utilizado) deve ser definido por variáveis externas.
  • Valores indicadores são tomados de um período do gráfico, no qual o EA funciona.
  • Para detecção de intersecção, a primeira e a segunda barra são usadas.
  • O tamanho da posição é determinado por uma variável externa.
  • Quando uma posição é aberta, Stop Loss e TakeProfit são colocadas a uma distância determinada por variáveis externas.
  • Deve ter a opção de desabilitar StopLoss e TakeProfit.
  • Se ocorrer um erro, o EA deve exibir uma janela com as informações de erro e repetir a tentativa no próximo crédito.

Esta é a tarefa mais simples. Tais sistemas simples são muito raros na vida real, então, ao criar a lista de requisitos, preste atenção em todos os detalhes.


Sem dúvida, Operadores e Programadores tão bobos são raros. Mas, acredite, eles existem. É melhor indicar detalhes,aparentemente óbvias do que mais tarde discutir com um programador.

A última coisa que pode ser feita antes de procurar um programador é fazer trading de acordo com uma "lista de regras" - quando o trading fizer apenas o que está escrito nesta lista. Assim, você vai ver todos os detalhes que poderiam ser omitidos ao formalizar o algoritmo. Isto pode preveni-lo de possíveis pagamentos para a melhoria do EA.


Escolhendo um programador


Durante vários anos da existência da linguagem de programação MQL4, apareceram vários desenvolvedores especialistas em Expert. Muitos deles são visitantes constantes do site mql4.com. Eles postam seus próprios desenvolvimentos em CódigoFonte, escrevem artigos e se comunicam no fórum ajudando iniciantes e desenvolvendo suas próprias habilidades. Muitos deles têm contas ativas e operam utilizando o Expert Advisor e manualmente.

Não há (pelo menos eu não vi nenhuma) bases de dados de desenvolvedores de EA onde alguém possa obter todas as informações necessárias sobre um programador profissional de MQL4. E dificilmente pode-se criar uma base de dados, já que muitos dos autores de EA não permanecem neste negócio por muito tempo.

Este artigo é destinado a ajudar você a encontrar um programador. No Apêndice 1, informações de contato de autores de EA do mql4.com, você pode encontrar todas as informações disponíveis.

Ao escolher um programador para a implementação do seu Expert Advisor:
  • consulte seus amigos operadores que já trabalharam com autores de EA;
  • leia os tópicos do fórum sobre EAs implementadas/não-implementadas;
  • veja perfis de usuários autorizados, muitos deles colocam informações em seus perfis;
  • Entre em contato pessoalmente com os programadores, via e-mail ou ICQ.
Os preços e as condições de trabalho podem ser diferentes. Alguns deles trabalham em uma base pré-paga e não enviam o código fonte até recebam todo o pagamento, outros podem confiar em sua honestidade e enviar o código prontamente como um "presente". Há autores de EA que não lhe darão o código fonte anexando o EA somente a uma conta. Então, esclareça todos os detalhes antes de tomar sua decisão.

Comunicar, negociar. Há muitas variantes, escolha a correta.


Teste do Expert Advisor

Depois de discutir as condições de trabalho e aprovar o algoritmo, um programador irá escrever um EA e enviá-lo para teste. Sua tarefa é ter certeza de que a operação do EA está em conformidade com a especificação de requisitos.

Primeiramente, teste no strategy tester utilizando diferentes combinações de parâmetros, esta é a maneira mais rápida de verificar um algoritmo. Você pode abrir um gráfico em que o EA foi testado e verificar os resultados visualmente.


Se o seu EA deve atuar não apenas no momento da abertura da barra mas também durante sua formação, tentar realizar testes no modo de visualização, você verá as ações do EA em cada crédito. Você verá valores dos indicadores na barra (atual) zero, alterando e disparando do StopLoss em movimentos bruscos de preço, etc.

Se o teste no strategy tester não mostrou quaisquer erros, testa seu EA em uma conta demo.

Tente inicializar diversos EAs com parâmetros diferentes ou similares e altere simultaneamente entre eles. A EA deve continuar trabalhando de acordo com o algoritmo, independentemente do que estiver acontecendo. Se não houver erros, você pode dizer ao programador que está tudo certo e concluir o negócio.


Mas muitas vezes a primeira versão de um EA contém divergências com o algoritmo, resultado de uma descrição imprecisa ou de um erro do programador, é uma situação comum. Basta entrar em contato com o programador e se ele for realmente responsável pelo erro, ele resolverá tudo. Em seu e-mail, indique o seguinte:

  • o problema na operação do EA;
  • Os parâmetros do EA em que ocorreu o erro;
  • parâmetros de teste (símbolo, período, intervalo de tempo, modo de modelagem, servidor, etc.) ou tempo de operação e endereço do servidor, se você verificar o EA em uma conta demo;
  • extraia do tester journal;
  • Várias capturas de tela com o problema descrito;
  • Logs do EA (guia "Journal" no verificador ou guia "Expert Advisors" se trabalhar em uma conta demo).
Se você incluir todas as informações necessárias, o programador vai encontrar o problema de forma rápida e corrigi-lo.

Normalmente cooperação implica suporte técnico , mesmo depois que o EA estiver pronto e os pagamentos forem efetuados. Isso significa que, caso ocorra um erro após a operação de um mês, o programador irá corrigi-lo gratuitamente. Depende de como você combinar.


Conclusão

O trading automatizado está ganhando mais e mais popularidade. Muitos operadores confiam a gestão das suas contas em Expert Advisors ou robôs de trading automatizado. Para escrever um programa desse tipo é preciso conhecimentos específicos e experiência. Infelizmente, nem todos operados têm tempo e vontade de estudar a linguagem de programação específica para a implementação de suas ideias. Este artigo é uma tentativa de estabelecer e reforçar a ligação entre operadores e programadores de operações. Espero que este artigo resulte no aparecimento de bons e confiáveis Expert Advisors.

Apêndice 1. Informação de contato de autores de EA do mql4.com

Esta seção contém as informações de contato dos autores de EA membros da comunidade mql4.com. A lista é atualizada constantemente, se você não conseguir encontrar um ajudante, verifique a lista mais tarde, provavelmente você vai encontrar um. Por favor, note que qualquer um pode deixar informações de contato aqui, até mesmo falsas. É quase impossível verificar a qualidade do trabalho e honestidade de todos os desenvolvedores de EA. Então, depois de trabalhar com qualquer um deles (com sucesso ou não), por favor, comente neste artigo sua opinião sobre a pessoa que você trabalhou, dessa forma, você irá ajudar outros operadores a tomar a decisão certa.

Se você é um desenvolvedor de EA e quiser incluir suas informações de contato nesta lista, por favor, me envie suas informações e você será adicionado. É gratuito e requer apenas o cumprimento de suas obrigações discutidas com um operador que encomenda um EA. Se reclamações sobre o seu trabalho aparecer nos comentários deste artigo e você não puder resolver a questão no prazo de uma semana, você será excluído da lista. Espero que isto seja raro.

Apelido Nome e-mail Informação adicional
komposter Andrey Khatimlianskii mql@komposter.me www.komposter.me
komposterius
211-605-801
Mike Michael Bernardovich mikemb [@] ittportal [.] net
315-165-028
Tel.: +79015453588
michal Michal Rutka mqlservice.com [@] gmail [.] com
michal_rut
Tel.: +31614511749

Jan Klimo jan.klimo [@] gmail [.] com Tel.: +420777288782
fuzzbomb Andrew Young advisor [@] easyexpertforex [.] com www.easyexpertforex.com
giaras Giampiero Raschetti giampiero.raschetti [@] gmail [.] com
giaras
5leepless Damian Burrowes sleepless.damian [@] gmail [.] com
Vitovd Witold Wozniak contact [@] mqlsoft [.] com www.mqlsoft.com
vasya_vasya
Vasiliy Orlov pr0baproba [@] mail [.] ru
555-485-590
linx Lin Xie linx_mt [@] hotmail [.] com
linx_mt


MetaQuotes Software Corp. não é responsável pela violação dos acordos entre um comerciante e um programador.

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/1460

Exibição simultânea dos sinais de vários indicadores dos quatro calendários Exibição simultânea dos sinais de vários indicadores dos quatro calendários
No trading manual você tem que ficar de olho nos valores de de vários indicadores. É um pouco diferente do trading mecânico. Se você tiver dois ou três indicadores e tiver escolhido somente um calendário para trading, não é uma tarefa complicada. Mas o que você faria se tivesse cinco ou seis indicadores e sua estratégia de trading necessitasse considerar os sinais em vários prazos?
Terminal Service Client. Como tornar o Pocket PC um amigo do Big Brother Terminal Service Client. Como tornar o Pocket PC um amigo do Big Brother
O artigo descreve como conectar o PC remoto com o MT4 Client Terminal instalado via PDA.
Como desenvolver no MQL4 um Robô Negociador seguro e confiável Como desenvolver no MQL4 um Robô Negociador seguro e confiável
O artigo lida com os erros mais comuns que ocorrem no desenvolvimento e na utilização de um Expert Advisor. Também é descrito um sistema automatizado de trading exemplar.
Transferência de um Código Indicador para um Código Expert Advisor. Esquemas da estrutura geral de um Expert Advisor e funções indicadoras Transferência de um Código Indicador para um Código Expert Advisor. Esquemas da estrutura geral de um Expert Advisor e funções indicadoras
Este artigo trata sobre formas de transferência de um código indicador para um código Expert Advisor e sobre a escrita de Expert Advisors sem convocar indicadores personalizados, e com todo o código do programa para o cálculo dos valores dos indicadores necessários dentro do Expert Advisor. Este artigo fornece um esquema geral de mudança do Expert Advisor e a ideia de construir uma função indicadora baseada em um indicador personalizado. O artigo destina-se para leitores com experiência de programação na linguagem MQL4.