Download MetaTrader 5

Como criar um robô de negociação rapidamente

23 julho 2014, 08:15
MetaQuotes Software Corp.
1
10 091

Para criar um robô de negociação, você precisa de um sistema de negociação

Negociar em mercados financeiros envolve muitos riscos, incluindo o mais crítico destes - o risco de tomar uma decisão de negociação errada. O sonho de todo negociador é encontrar um robô de negociação, que está sempre em boa forma e não está sujeito às fraquezas humanas - medo, cobiça e impaciência.

Como criar um robô de negociação rapidamente

Cada iniciante quer obter ou criar um sistema de negociação claro e preciso que possa ser apresentado na forma de algoritmos e livrar-se totalmente das operações de rotina. Isso é possível?

Um sistema de negociação é uma condição necessária para entrar no mercado e, é claro, esse sistema deve ser lucrativo. Quando os iniciantes entram no mercado, eles geralmente são soterrados por uma enorme quantidade de informações que são difíceis de entender. Livros e fóruns de negociação podem oferecer alguma ajuda nesse caso.

Infelizmente, nem todos os autores são negociadores de sucesso e nem todos os negociadores de sucesso escrevem livros. Muitos recursos online específicos são criados somente com a finalidade de obter lucro para os seus donos, visto que é muito mais difícil negociar o seu próprio dinheiro do que emitir previsões e ensinar sistemas de negociação.

Cada negociador deveria passar independentemente por todas as etapas da criação de um sistema de negociação. Há um ditado popular que diz que não importa qual sistema de negociação você utiliza, o principal é que você deve realmente negociar de acordo com esse sistema. Caso contrário, negociar no mercado se transforma em um jogo de aposta com resultado previsível.


Robôs de negociação e Forex

Acredita-se que o mercado Forex tenha uma grande liquidez. Além disso, ao contrário de muitos outros mercados, ele permite negociar 24 horas por dia. Dessa forma, muitos negociadores tentam criar robôs de negociação especificamente para o mercado Forex, visto que ele oferece um grande número de instrumentos de negociação.

Entretanto, os céticos afirmam que todos os pares de moeda atuais estão fortemente correlacionados um com o outro, oferecendo muito baixa volatilidade no mercado. Mas os seus oponentes respondem que cada par tem as suas próprias características e que a baixa volatilidade é compensada por uma alta alavancagem.

De qualquer forma, os instrumentos do mercado Forex são atrativos para a criação de robôs de negociação e a maioria dos que apóiam a negociação automatizada aperfeiçoam suas habilidades em relação a pares de moeda.

Os terminais MetaTrader 4 e MetaTrader 5 são especificamente projetados para desenvolver sistemas de negociação automatizados facilmente, mas, ao mesmo tempo, a interface deles também é conveniente para negociação manual.


Como começar a criar um robô de negociação?

Há muitas abordagens para a criação de um sistema de negociação automatizado. Descreveremos somente algumas das principais.

A primeira abordagem é baseada em matemática. Um desenvolvedor tenta criar um tipo de equação que pode considerar muitos fatores. Esta abordagem está baseada na crença firma de que os movimentos de preço são controlados por um modelo que pode ser encontrado com o uso dos dados históricos disponíveis.

Na maioria dos casos, os seguidores desse tipo de abordagem têm amplo conhecimento matemático mas não sabem nada ou não estão interessados no mercado. Para eles, o mercado é uma abstração pura, um tipo de jogo intelectual. Esta abordagem geralmente leva a muitos anos de estudo e desenvolvimento, enquanto que um resultado definido na forma de um sistema de negociação automatizado funcional não é tão importante.

A segunda abordagem é baseada no estudo das leis do mercado. Não são feitas tentativas de entender por que razão os preços sobem ou descem quando diversos números de análise técnica aparecem em um gráfico. A vantagem desta abordagem é que ela não requer qualquer conhecimento especial de matemática e não faz suposições sobre a força motriz do mercado.

É muito clara e conveniente para o estudo de negociação. É a mais popular entre os negociadores que são reconhecidos mundialmente. A desvantagem desta abordagem é a necessidade de monitorar constantemente todos os símbolos necessários.

Mais cedo ou mais tarde, um negociador começa a pensar sobre a automatização dos processos de negociação e o problema mais considerável aparece nesta etapa – a complexidade de formalizar as regras de negociação ao tentar expressá-las na forma de algoritmos. Em alguns casos, negociadores que tentam comprar um robô de negociação não conseguem descrever as regras de negociação e chegar a um acordo com os programadores.

A terceira abordagem é baseada na tentativa de criar uma «caixa preta» baseada em redes neurais com o uso de ferramentas prontas para uso que estão facilmente disponíveis em pacotes especiais de software e matemática. A criação de um sistema de negociação automatizado com os elementos de inteligência artificial é uma tarefa excitante e desafiadora, mesmo para iniciantes, pois não requer nem um profundo conhecimento matemático nem experiência de programação - tudo é feito através do uso de recursos visuais.

Um negociador devem saber o básico sobre indicadores técnicos, possuir uma habilidade de preparar os dados de preço necessários e ter experiência em alguns pacotes definidos para trabalhar com redes neurais. A principal desvantagem desta abordagem é que o robô de negociação obtido com o uso dessas ferramentas especializadas para trabalhar com redes neurais é na verdade uma "caixa preta". Os negociadores não conhecem os seus princípios de funcionamento e, em geral, é impossível predizer qual fase do mercado será mais problemática para o robô.

Os programadores geralmente escolhem a quarta abordagem – eles começam a criar um robô de negociação desde o começo, sem perder tempo com negociação manual. Por que fazer negociações manuais? Dessa forma, você pode perder alguns meses para criar um robô e aproveitar os resultados do seu esforço.

Mas «sem sacrifícios, não há recompensas». Na maioria dos casos, os programadores começam a criar toda a infraestrutura necessária utilizando uma linguagem de programação familiar em vez de simplesmente criar um robô de negociação - obtendo e processando dados de preço, representação visual de gráficos e indicadores, médias personalizadas de estratégias de teste em dados históricos e assim por diante.

Eles obtêm muita experiência no processo. Mas na maioria dos casos, essa experiência não aproxima eles do resultado final – a criação de um sistema de negociação automatizado. E mesmo se um robô de negociação for criado, não há garantia de que ele será lucrativo. E se o programador quiser escrever outro sistema de negociação? Uma reestruturação profunda e novos erros de programação são inevitáveis.

Também há uma quinta abordagemcomprar um sistema de negociação pronto para uso na forma de um robô de negociação. Nesse caso, um negociador atua como um operador ou um afinador. Esta abordagem economiza muito tempo (não há necessidade de aprender muitas coisas novas) e permite que os negociadores entrem rapidamente no mundo da negociação automatizada.

A principal desvantagem desta abordagem deriva das suas vantagens – você não conhece a estrutura e os princípios de operação do seu robô de negociação. E mesmo que um vendedor tenha lhe fornecido uma descrição detalhada do sistema de negociação implementado, você nunca estará totalmente seguro em relação a isso.

Entretanto, nenhuma das abordagens mencionadas pode lhe fornecer uma garantia absoluta, com exceção de um depósito bancário. Mas esta não é uma solução muito adequada para pessoas interessadas em negociar no mercado e em formas de aumentar os seus ativos particulares.


Qual é a melhor abordagem de negociação automática para um negociador?

Cada uma das cinco abordagens descritas tem as suas vantagens e corresponde a um tipo específico de negociador. Não é provável que você escolha a primeira abordagem (descrição analítica de mercado) se você não tiver uma boa base matemática. É igualmente improvável que você inicie criando robôs de negociação baseados em redes neurais. Entretanto, essas duas abordagens são muito excitantes e proporcionam um ótimo exercício intelectual.

Abaixo, discutiremos apenas a segunda abordagem, que já é considerada a abordagem clássica. Esta é geralmente a abordagem escolhida pelos novos seguidores da negociação automatizada, visto que a análise técnica permanece a área de conhecimento fundamental na aprendizagem dos princípios básicos de negociação.

Outra vantagem da segunda abordagem é que, após você gastar algum tempo com a negociação manual e obter uma ideia sobre o mercado, você já terá um bom entendimento a respeito das ferramentas de análise técnica. Além disso, você será capaz de programar estratégias de negociação ou criar redes neurais em um nível superior.


Os primeiros passos da criação de um robô de negociação

Para criar um sistema de negociação automatizado, você precisa de habilidades de programação e conhecimento sobre todos os detalhes do processamento de solicitações de negociação. Mas primeiro, você pode iniciar com os Expert Advisors prontos para uso – robôs de negociação da biblioteca da Base de Códigos gratuita.

Faça o download de qualquer Expert Advisor (robô de negociação) e o execute no Strategy Tester dos terminais do cliente MetaTrader 4 ou MetaTrader 5. Selecione um intervalo histórico que apresenta uma forte tendência e um intervalo plano. Realize a otimização dos parâmetros de entrada de um Expert Advisor e verifique as suas diferenças em relação a esses dois intervalos.

Execute um Expert Advisor com parâmetros ótimos para um plano em um intervalo de tendência e com os parâmetros ótimos para uma tendência em um intervalo plano. Examine as diferenças dos resultados de negociação, distribuição de negócios e outros parâmetros estatísticos. Como resultado, você saberá o quanto o comportamento do seu sistema de negociação pode variar quando a situação de mercado muda.

Seria melhor tentar diversas estratégias de negociação padrão utilizando esse método em diferentes partes do histórico e em diversos símbolos. Essa execução de teste evite os ajustes de um sistema de negociação para algum intervalo histórico definido e proporciona uma melhor compreensão sobre sistemas de tendência e tendência contrária.

O próximo passo seria a criação de sistemas de negociação mais complexos baseados na combinação de sinais simples já existentes, disponíveis no conjunto do MQL5 Wizard. Você pode testar e desenvolver a sua intuição de negociação separando sinais ruins de um sistema com o uso de um filtro baseado em outro sistema sem recursos de programação.

O principal aqui é não se esforçar mais do que o necessário. Quanto mais parâmetros de entrada tem um sistema de negociação, mais fácil será ajustá-lo. Há muitas discussões sobre as diferenças entre otimização e ajuste. Não há qualquer consenso em relação a isso. Mas a visualização de resultados de teste/otimização e o seu próprio bom senso podem lhe ajudar.

Aprenda a identificar os parâmetros de entrada mais críticos, dentre todo o conjunto de dados de entrada, que estão afetando o seu sistema de negociação. Não preste muita atenção a parâmetros secundários que demoram durante a otimização mas não afetam a lógica do sistema em si. Lembre-se de que um bom sistema de negociação sempre apresenta um pequeno movimento livre de parâmetros secundários, mas ele não exibe volatilidade dramática em caso de mudanças inexpressivas de mercado.

Você pode demorar o tempo que quiser nesta etapa, até que você esteja seguro de que entende qualquer resultado de teste de estratégia de negociação e qualquer resultado de otimização. O conhecimento das forças e fraquezas dos sistemas padrão também permitirão que você esteja melhor preparado ao criar o seu próprio robô de negociação.


Programar um robô de negociação

Imagine que você tenha aprendido/esteja aprendendo a linguagem de programação MQL4 ou MQL5 e agora esteja pronto para escrever o seu primeiro primeiro Expert Advisor para o terminal do cliente MetaTrader. Diversos casos são possíveis aqui.

Primeiramente, você pode examinar diversos robôs de negociação prontos para uso descritos nos artigos, para melhor compreender os detalhes da programação.

Em segundo lugar, você pode fazer perguntas nos sites MQL4.community ou MQL5.community, caso você ainda tenha quaisquer problemas não resolvidos. Os participantes experientes que fazem parte da comunidade geralmente ajudam os iniciantes, demonstrando um interesse sincero no assunto apresentado.

Em terceiro lugar, você pode fazer um pedido de melhoria ou desenvolvimento de um Expert Advisor ou de um indicador no serviço Empregos, caso você não consiga escrever um programa requerido sozinho. Porém, mesmo se você fizer um pedido via serviço de freelancer, você deve ter algum conhecimento sobre teste de estratégia para conseguir conversar em uma linguagem comum com o desenvolvedor.

Além disso, um conhecimento básico de linguagem de programação permite que você implemente pequenos reparos e mudanças no código após o trabalho ter sido finalizado. No final das contas, não é muito conveniente chamar um programador para corrigir todos os pequenos erros que você encontrar. Seria muito mais fácil e rápido corrigir o problema você mesmo.


Não há necessidade de reinventar a roda

Como encontrar a sua própria estratégia de negociação, ou ao menos como saber em que direção você deve focar a sua pesquisa? Todos os negociadores protegem os seus próprios sistemas de negociação, caso eles tenham algum. Todos os iniciantes desejam criar um sistema lucrativo ou obter um sistema pronto para uso. Ao mesmo tempo, qualquer solução já obtida parece muito simples em comparação às ideias que os iniciantes têm a respeito de um sistema de negociação genuíno.

Como encontrar a sua própria estratégia de negociação, ou ao menos como saber em que direção você deve focar a sua pesquisa?

Os militares de todo o mundo estão acostumados a níveis excessivos de confidencialidade. Há muitas piadas sobre isso, inclusive a seguinte: "O segredo militar não está naquilo que você está estudando, - um oficial diz aos alunos da escola militar, - mas exatamente no fato de que você o está estudando". A situação com os sistemas de negociação é bastante similar: a maioria dos negociadores utilizam ideias de negociação simples e bem conhecidas, com pequenas modificações. Por exemplo, adicionando limite móvel ou confirmações de indicadores de tendência.

Há muitos fóruns de negociação com acesso limitado em que os participantes reúnem esforços para desenvolver ou melhorar alguns sistemas de negociação secretos. O mais interessante é que esses sistemas sequer contêm alguma coisa especial. Frequentemente, uma ideia bem conhecida (como "negociar com uma tendência") é usada como base. Então ela é aperfeiçoada com alguns novos indicadores desconhecidos do público em geral.

Assim, você pode facilmente utilizar os códigos fonte de robôs de negociação disponíveis e tentar usá-los corretamente com diversos símbolos e períodos de tempo. Outro ditado popular pode ser mencionado aqui: "Você não gosta de gatos? Você apenas não sabe como cozinhá-los!" É difícil acreditar, mas a probabilidade de você desenvolver algo realmente novo é muito pequena. O principal objetivo aqui é criar um sistema utilizando os ingredientes disponíveis. Não pense que alguns gênios têm acesso a alguns sistemas secretos dos laboratórios da NASA. Este é o segredo do Graal.


Apenas alguns terão êxito

Então por que motivo ninguém utiliza ideias de negociação, se elas estão literalmente a curto alcance? A resposta provavelmente pode ser encontrada na psicologia humana. O corpo de funcionários de muitos bancos e grandes fundos de investimentos inclui negociadores que realizam negócios de acordo com regras muito estritas e volumes limitados. Mas, por algumas razões, apenas alguns negociadores de instituições deixam as suas empresas e começam a negociar com o seu próprio dinheiro.

Pode-se concluir que você não precisa somente de uma estratégia de negociação, mas também de uma disciplina de ferro para seguí-la. Muitos negociadores descobriram com pesar que eles tinham os mesmos problemas psicológicos descritos nos livros. Após chegar a conclusão de que os piores inimigos dos negociadores são eles mesmos, um iniciante começa a pensar sobre criar um robô de negociação para eliminar um peso psicológico.

Embora saindo brevemente do tópico, devemos mencionar os lendários negociadores tartaruga que negociaram com sucesso em diversos mercados no fim do século XX. Leia "O caminho da tartaruga" e você verá que o mais importante para um negociador é autodisciplina e não algum sistema altamente secreto. Ai dos iniciantes! A maior parte deles não será capaz de seguir uma estratégia lucrativa, mesmo se eles a obtiverem gratuitamente.

O problema é que a maioria das estratégias de negociação que são perfeitamente adequadas para negócio manual pode muito arduamente ser formalizada e transcrita para uma linguagem de programação. As estratégias que podem ser facilmente formalizadas (por exemplo, as que envolvem a intersecção de duas médias móveis) são muito simples e requerem muitos aperfeiçoamentos e melhorias ara que possam ser utilizadas na prática. Assim, uma ideia simples é gradativamente complicada por diversos parâmetros externos que evitam entradas falsas e erros que são claramente perceptíveis para um desenvolvedor. Surge um problema de otimização do robô de negociação. Este processo não deve se transformar em uma otimização excessiva e em ajuste para um intervalo histórico específico.

Para resolver o problema, o teste progressivo com o uso dos parâmetros de sistema obtidos foi implementado no terminal MetaTrader 5. Se os resultados do teste progressivo não diferem significativamente dos resultados obtidos na seção de otimização, há probabilidade de que um robô de negociação seja estável o suficiente por algum tempo após o seu lançamento em uma conta de negociação. O comprimento de um intervalo para otimização de parâmetros e um valor real desse "algum tempo" depende de um sistema de negociação específico.

Assim, a otimização de um robô de negociação antes de lançá-lo em uma conta de negociação lembra atirar com um estilingue - quanto mais cuidadosamente soltarmos e arremessarmos um projétil com ele, mais longe ele voará e mais precisa será a sua trajetória. Um robô de negociação minuciosamente desenvolvido manterá um resultado positivo em uma conta de negociação por um tempo maior que um robô de negociação obtido como resultado de um ajuste. Podemos afirmar que o Graal é uma ideia de trabalho e ajuste correto de parâmetros realizados de tempos em tempos nos momentos em que as condições de mercado mudam.

Isso pode ser ilustrado pelos resultados do Campeonato de negociação automatizada que já é realizado há muitos anos. Os Expert Advisors enviados por todos os participantes passam por testes automáticos no intervalo de tempo de janeiro ao final de julho. O principal requisito para passar no teste automático é um lucro obtido para oito meses de teste. Mas menos da metade dos robôs de negociação inscritos no Campeonato se mantêm lucrativos após três meses de trabalho autônomo.

Você também pode testar as suas habilidades de criação e ajuste do seu robô de negociação para participar do Campeonato e obter os resultados do teste progressivo do seu Expert Advisor. Além disso, a participação é gratuita e os prêmios são impressionantes. Esperamos ver você lá!


Conclusão

Os negociantes intra-dia profissionais passam horas sentados na frente de seus computadores e aguardando o momento certo para realizar um negócio. É claro que eles não podem estar sempre na melhor forma.

A maioria dos negociadores chega a conclusão de que suas ações violam suas próprias regras de negociação. Nem todos os sistemas de negociação podem ser totalmente formalizados, mas mesmo esses sistemas podem, na maioria dos casos, adotar ferramentas adicionais, tais como indicadores, sistemas analíticos e filtros de sinais falsos.

Não fazemos aqui nenhuma recomendação específica em relação à aprendizagem das linguagens MQL4 ou MQL5, visto que há muitos outros artigos úteis que tratam sobre esse assunto. O objetivo deste artigo foi apresentar uma ideia sobre como começar a criar o seu robô de negociação para os terminais MetaTrader 4 e MetaTrader 5.

Esperamos que este artigo ajude os iniciantes a economizarem tempo e que mostre a direção certa na difícil tarefa de desenvolver um sistema de negociação automatizado.

Traduzido do russo por MetaQuotes Software Corp.
Artigo original: https://www.mql5.com/ru/articles/443

Últimos Comentários | Ir para discussão (1)
Marcos Kronhardt
Marcos Kronhardt | 30 set 2014 em 20:57
Nossa tem muita coisa para ler, quem apenas é TRADER e vai se aventurar em programação BOA SORTE.
Provedores de Sinal Johnpaul77: "Nossa estratégia continua a ser rentável por mais de três anos. Então, por que devemos mudar isso?" Provedores de Sinal Johnpaul77: "Nossa estratégia continua a ser rentável por mais de três anos. Então, por que devemos mudar isso?"

Vamos revelar um pequeno segredo: Os visitantes do site MQL5.com passam a maior parte do seu tempo na página do sinal Johnpaul77. Ele é líder em nosso ranking de sinais, com cerca de 900 assinantes e com fundos de contas reais no valor total de $5.7 milhões. Entrevistamos o provedor deste sinal. Acontece que há quatro deles! Como são distribuídos os deveres entre os membros da equipe? Quais são as ferramentas técnicas que eles usam? Por que eles se auto-denominam de John Paul? E, finalmente, como que simples jogadores da Indonésia se tornaram os principais provedores de sinais no MQL5.com? Descubra tudo neste artigo.

Criando Filtros Digitais Sem Atraso Criando Filtros Digitais Sem Atraso

O artigo descreve uma das abordagens para a determinação de um sinal útil (tendência) num fluxo de dados. Pequenos testes de filtragem (suavização) aplicados às cotações do mercado demonstram o potencial para a criação de filtros digitais sem atrasos (indicadores) que não são redesenhados nas últimas barras.

Fundamentos básicos da Programação MQL5: Lista Fundamentos básicos da Programação MQL5: Lista

A nova versão da linguagem de programação MQL (MQL5) para o desenvolvimento de estratégias de negociação fornece recursos mais poderosos e eficazes em comparação com a versão anterior (MQL4). A vantagem reside essencialmente nos aspectos da programação orientada a objetos. Este artigo analisa a possibilidade de uso de tipos de dados personalizados complexos, como nós e listas. Ele também fornece um exemplo prático de como usar listas na linguagem MQL5.

Resumo do Mercado MetaTrader (infográfico) Resumo do Mercado MetaTrader (infográfico)

Duas semanas atrás nós publicamos o infográfico do serviço Freelance. Nós também prometemos revelar algumas estatísticas sobre o mercado MetaTrader. Agora, nós convidamos você a examinar os dados que reunimos.