EA Comunitário com Correlação de Moedas - Vamos Construir Juntos - página 4

 
Malacarne:

Olá pessoal, a pedido do Paulo eu escrevi o "protótipo" do EA comunitário. Passei aqui apenas para deixar alguns comentários com relação ao código. Primeiramente, queria parabenizar o Paulo pela iniciativa e agradecê-lo pela oportunidade de escrever o EA!

O fato de ser "comunitário" foi justamente a maior dificuldade da escrita desse EA. Como ele vai ser publicado na comunidade em português, minha maior preocupação foi fazer um código "legível" por quem fosse o utilizar... eu evitei ao máximo utilizar bibliotecas "padrão" do MetaTrader, porque muitos iniciantes na linguagem ainda não estão familiarizados com elas.

Outra coisa que acabou demorando mais que o esperado foram os comentários internos no código... praticamente todas as linhas de código estão comentadas em português, visando justamente facilitar o entendimento e aprendizado. Também evitei também utilizar recursos mais avançados de programação.

Por fim, de acordo com as demandas do Paulo, e visando otimizar as ideias que ele me passou, o protótipo de EA tem as seguintes características:

■ Entradas baseadas no indicador X-bar_Fractal (logo, você precisa ter ele instalado na sua máquina para o EA funcionar)

■ Entradas apenas do tipo buy stop e sell stop

■ Opção de escolher os períodos do fractal (tanto barras à esquerda como barras à direita)

■ Abertura de ordens apenas com o fechamento da barra, para evitar "falsos" fractais

■ Uma espécie de "trailing stop", de acordo com as características que o Paulo me passou

No mais, esse é apenas um protótipo funcional. Novas ideias para melhorar o EA serão sempre bem-vindas.

Abraços,
Malacarne 

Paulo, Malacarne, ótima iniciativa, esse EA também será muito importante para a prova de conceito na BM&FBovespa, principalmente porque é aberto e permite identificar problemas de falhas e erros sistêmicos. Mesmo que a estratégia não gere retorno (o que não acredito, pois me parece muito competitiva), apenas pela questão da prova de conceito já terá valido todo esforço.
 
Malacarne:

Olá pessoal, a pedido do Paulo eu escrevi o "protótipo" do EA comunitário. Passei aqui apenas para deixar alguns comentários com relação ao código. Primeiramente, queria parabenizar o Paulo pela iniciativa e agradecê-lo pela oportunidade de escrever o EA!

O fato de ser "comunitário" foi justamente a maior dificuldade da escrita desse EA. Como ele vai ser publicado na comunidade em português, minha maior preocupação foi fazer um código "legível" por quem fosse o utilizar... eu evitei ao máximo utilizar bibliotecas "padrão" do MetaTrader, porque muitos iniciantes na linguagem ainda não estão familiarizados com elas.

Outra coisa que acabou demorando mais que o esperado foram os comentários internos no código... praticamente todas as linhas de código estão comentadas em português, visando justamente facilitar o entendimento e aprendizado. Também evitei também utilizar recursos mais avançados de programação.

Por fim, de acordo com as demandas do Paulo, e visando otimizar as ideias que ele me passou, o protótipo de EA tem as seguintes características:

■ Entradas baseadas no indicador X-bar_Fractal (logo, você precisa ter ele instalado na sua máquina para o EA funcionar)

■ Entradas apenas do tipo buy stop e sell stop

■ Opção de escolher os períodos do fractal (tanto barras à esquerda como barras à direita)

■ Abertura de ordens apenas com o fechamento da barra, para evitar "falsos" fractais

■ Uma espécie de "trailing stop", de acordo com as características que o Paulo me passou

No mais, esse é apenas um protótipo funcional. Novas ideias para melhorar o EA serão sempre bem-vindas.

Abraços,
Malacarne 

Obrigado Malacarne! Realmente é muito bom ter a sua participação neste projeto! D+

Esta é uma primeira versão, e como em qualquer programa, na medida que vai sendo usado, vão aparecendo as divergências do algoritmo(setup) inicial para serem corrigidas, bem como modificações para melhor funcionalidade.

Abaixo, a idéia do funcionamento do algoritmo para que possamos comparar no Testador de Estratégia e também, aqueles que puderem, testar numa conta Demo. Verificando algum problema, tenho certeza que Malacarne terá o máximo de carinho para consertar.

Faça  testes com vários timeframes, período do histórico, ativos diferente e etc, quando terminar um teste verifique o Gráfico, insira o indicador x-bar_fractal no gráfico com os mesmos parâmetros do EA, marque as entradas segundo a lógica do sistema e compare com a entradas e saídas do EA, se houver divergências coloque aqui no fórum para corrigirmos.

1º Passo - baixar o indicador x-bar_fractal  para a sua plataforma MT5!

Qual é a idéia do fractal, na sua essência ele é um indicador de Preço e Ação, o famoso "swing" do preço. A grosso modo podemos dizer que o fractal nada mais é do que a confirmação de um ponto de resistência ou de suporte, e bem como lembrou o nosso amigo Figurelli, "...assim como no Zig-Zag, o Fractal busca a combinação que já aconteceu no passado que melhor representa um cenário presente".

No indicador fractal tradicional que vem nos Terminais MT 4/5 temos o seguinte setup:

  • quando acontece o fechamento de uma barra com preço HIGH (máximo)  maior que duas barras a esquerda e maior que duas barras a direita, temos um fractal UP acima desta barra que fechou com o preço máximo.
  •  quando acontece o fechamento de uma barra com preço LOW (mínimo)   menor que duas barras a esquerda e menor que  duas barras a direita, temos um fractal DOWN abaixo desta barra que fechou com o preço mínimo.
No indicador  x-bars_fractal , o autor ampliou esta perspectiva, o trader pode determinar quantas barras a esquerda e quando barras a direita são necessárias para plotar um Fractal UP acima de uma barra no seu preço máximo ou plotar um Fractal DOWN abaixo  de uma barra no seu preço mínimo.

IMPORTANTE: Qualquer indicador é influenciado pela barra de preço que está em andamento, portanto somente podemos confiar no sinal do indicador após o fechamento de tal barra de preço, nos fractais esta premissa também é verdadeira.

Então:

  • No indicador Fractal Tradicional, a confirmação de um Fractal UP ou Fractal DOWN numa barra de preço é o fechamento do preço da segunda barra a direita.
  • No indicador X-bars_fractal,  a confirmação de um Fractal UP  ou Fractal DOWN numa barra de preço é o fechamento do preço da última barra a direita configurado pelo usuário do indicador.

Ok! Esta informação acima referente ao x-bars_fractal é muito importante para entender o funcionamento do algoritmo do EA.

Parâmetros do EA: 

input string               StrategyManagement   =  "Parâmetros das operações.";     // Gerenciamento da estratégia
input int                  EA_Magic             =  123456;                          // Magic number do EA
input int                  TP                   =  300;                              // Target profit (em pips)
input int                  SL                   =  1500;                             // Stop loss (em pips)
input int                  Slippage             =  50;                              // Slippage
input int                  MargemDeSeguranca    =  200;                              // é o ESCAPE da ideia original, MS é um nome mais adqequado (em pips)
//---
input string               MoneyManagement      =  "Tamanho do lote.";              // Gerenciamento de risco
input double               Lote                 =  0.01;                            // Tamanho do lote
//---
input string               IndicatorManagement  =  "Parâmetros dos indicadores.";   // Gerenciamento de indicadores
input int                  BarrasEsquerda       =  2;                               // Barras à esquerda do fractal
input int                  BarrasDireita        =  2;                               // Barras à direita do fractal

 

Condição para Posição Comprada - ordem pendente BUY STOP

  1.  No preço mínimo de uma barra de preço deve estar plotado um Fractal DOWN.
  2.  Para utilizar o parâmetro "Margem de Segurança", deve ser plotado uma linha de resistência no maior valor de preço entre as barras de preço onde está desenhado o fractal down e as barras a direita usadas para a confirmação dele. No exemplo de parâmetros acima temos duas barras a direita confirmando um fractal, então vamos verificar o preço máximo entre a barra de preço onde está plotado o fractal down e as DUAS barras a direita usadas para a confirmação. No maior preço entre esta barras relacionadas será desenhada uma linha de resistência. Neste caso serão avaliadas 3 barras de preço para desenhar esta linha, caso o nosso x-bar_fractal fosse plotado com 5 barras a direita, a nossa avaliação seria em cima de 6 barras de preço.

Exemplo: Barra nº 1 (onde está plotado o fractal)                             = 1.38605 (preço máximo da barra)

             Barra nº 2 (primeira barra a direita do fractal)                       = 1.38803 (preço máximo da barra)

             Barra nº 3 (esta a barra que ao fechar confirmou o fractal)    = 1.38772 (preço máximo da barra)

     3. Então o maior preço entre as três barras é 1.38803, neste preço desenhamos uma linha de resistência. Continuando o exemplo acima, a nossa"Margem de Segurança" é igual a 20 (no EA o valor 200 é igual a 20 PIPs), então para lançarmos a nossa ordem pedente BUY STOP vamos usar a seguinte fórmula:  Linha Resistência + Margem de Segurança, assim 1.38803 + 200 = 1.39003. Nossa entrada na posição comprada será no preço  1.39003.

Take Profit da Posição Comprada

  • Preço Buy Stop + Parâmetro do EA  >> 1.39003 + 300 = 1.39303 
Stop Loss da Posição Comprada

  • Preço Buy Stop - Parâmetro do EA  >> 1.39003 - 1500 = 1.37503 

Condição para Posição Vendida - ordem pendente SELL STOP

  1.  No preço máximo de uma barra de preço deve estar plotado um Fractal UP.
  2.  Para utilizar o parâmetro "Margem de Segurança", deve ser plotado uma linha suporte no menor valor de preço entre as barras de preço onde está desenhado o fractal up e as barras a direita usadas para a confirmação dele. No exemplo de parâmetros acima temos duas barras a direita confirmando um fractal, então vamos verificar o preço mínimo entre a barra de preço onde está plotado o fractal up e as DUAS barras a direita usadas para a confirmação. No maior preço entre esta barras relacionadas será desenhada uma linha suporte. Neste caso serão avaliadas 3 barras de preço para desenhar esta linha, caso o nosso x-bar_fractal fosse plotado com 5 barras a direita, a nossa avaliação seria em cima de 6 barras de preço.

Exemplo: Barra nº 1 (onde está plotado o fractal)                             = 1.38605 (preço mínimo da barra)

             Barra nº 2 (primeira barra a direita do fractal)                       = 1.38505 (preço mínimo da barra)

             Barra nº 3 (esta a barra que ao fechar confirmou o fractal)    = 1.38403 (preço mínimo da barra)

     3. Então o menor preço entre as três barras é 1.38403, neste preço desenhamos uma linha suporte. Continuando o exemplo acima, a nossa"Margem de Segurança" é igual a 20(no EA o valor 200 é igual a 20 PIPs), então para lançarmos a nossa ordem pedente SELL STOP vamos usar a seguinte fórmula:  linha suporte Margem de Segurança, assim 1.38403 - 200 1.38203. Nossa entrada na posição vendida será no preço  1.38203

Take Profit da Posição Vendida

  • Preço Buy Stop - Parâmetro do EA  >> 1.38203 - 300 = 1.37903 
Stop Loss da Posição Vendida

  • Preço Buy Stop + Parâmetro do EA  >> 1.38203+ 1500 = 1.39703

Observações:

1. Sobre Trailing Stop, por questões técnicas não foi possível seguir a idéia original, onde a cada entrada de posição uma nova ordem pendente seria aberta. Aqui foi implementado um Trainling Stop interno, a ideia do stop móvel  é que após determinada corrida do preço na direção do lucro em PIPS, arrasta o Stop Loss, primeiro para o Break Even (empate com o preço de entrada) e depois para o primeiro lucro e assim sucessivamente até fechar a posição. Exemplo: entrei com um posição vendida no preço 1.38203, se o trailing stop for 30 pontos, toda vez que o preço correr para o lucro 30 PIPs eu arrasto o preço do Stop Loss.

Pegando o exemplo: 1.38203 - 300 = 1.37903 - neste momento eu arrasto o stop loss para o preço 1.38203

                             1.37903 - 300 = 1.37603 - neste momento eu arrasto o stop loss do preço 1.38203 - 300 = 1.37903 

                             1.37603 - 300 = 1.37303 - neste momento eu arrasto o stop loss do preço 1.37903 - 300 = 1.37603 ..... e assim até fechar a posição

2. Eu somente não sei qual o valor padrão que o Malacarne implementou no EA para esta mudança de Stop Loss, eu sei que acontece, mas não sei o padrão, então eu passo esta palavra para ele explicar mais detalhadamente como funciona a idéia dentro do código fonte para nós.

Esta é contigo Malacarne!

3. O interessante é que no sistema que o Malacarne colocou, o Stop Loss Móvel funciona mesmo quando o preço está abaixo do valor da entrada da posição. Se o preço começa a despencar, onde o Stop Loss é muito grande, mas neste meio termo o preço  volta para a direção do lucro, se o preço andar de tal forma que  acione o Trailing Stop, isto fará com que se o preço retrair novamente, você não vai perder todo o valor estipulado no Stop Loss Inicial. Este sistema possibilitou uma estratégia lucrativa desse EA, onde vou mostrar no próximo post.

4. São quatro forma de fechamento da posição: Stop Loss - Take Profit - Trailing Stop e abertura de uma nova posição de negociação no sentido contrário

5. Se estiver em progresso uma posição comprada e novamente é plotado um sinal de Compra, este sinal não é executado. Somente será executada nova ordem quando fechar a posição em andamento. A mesma regra vale para a posição vendida.

6. Não existe um gerenciamento de risco automático, onde o tamanho do Volume (lote) vai aumentando ou diminuindo conforme o balanço, ou ainda, outro tipo. Neste momento é um valor de tamanho do lote colocado manualmente. No Testador de Estratégia será o mesmo lote em todas as operações.


Segue anexo o arquivo mq5 para compilação e diversão dos amigos! Aqueles novatos que ainda tem dificuldades para encontrar a pasta MetaTrader para colar o arquivo mq5, veja este tópico e siga os passos.  

  

 

Arquivos anexados:
 

Agora Vamos aos primeiros resultados!

Sinceramente eu acho que o resultado obtido foi excelente pela simplicidade da proposta e pela perspectiva de direcionamento desta estratégia com novos incrementos e filtros!

Vou colocar aqui dois relatórios completamente opostos e bem incomuns, acho vamos poder explorar bem estas duas propostas . 

  • No Relatório A - Coloquei um Stop Loss de 1000 Pontos e um Take Profit de 8 PIPS - Parece loucura, mas o lucro foi de  867% em 6 anos
  • No Relatório B - Fiz o inverso, Stop Loss de 3 PIPs e Take Profit de 100 PIPs -( a ressalva aqui é que eu acho que 3 PIPs seria um problema para colocar, devido as restrições das corretoras)

Os demais parâmetros do EA foram os mesmos!

                                                                              

                                                                               RELATÓRIO A

  

  Nestes resultado acima e abaixo, acho o grande mérito foi o sistema de Trainling Stop que o Malacarne Implantou, talvez se pudessemos configurá-lo com outros parâmetros externos, poderíamos ter outros resultados! Olhando o resultado anexo veremos que existem muitas transações com vitórias acima de 8 PIPs, eu é um bug, onde o Take Profit não funcionou (santo bug... hehehehe), ou presumo eu, que foi o sistema Trainling Stop!

                                                                                         

                                                                        RELATÓRIO B 

 

 

 

 Ver relatório completos nos documentos anexo!

 

Arquivos anexados:
RElatorioA.zip  258 kb
RElatorioB.zip  236 kb
 

Como as postagem vão aumentado, vou fazendo um índice dos comentários mais importante para o objetivo deste tópico. Este índice vai crescendo na medida que formos evoluindo.

ÍNDICE 

1 - Post Inicial

2 - Ideia do sistema e estratégia para o 1º Modulo do EA Comunitário

3 -  Disponível para download da Primeira Versão do EA "Sistema Fractal", comentários do desenvolvedor Rodrigo Malacarne, e uma síntese do setup

4 - Primeiros Resultados : Anexo dois relatórios que correram durante 6 anos com lucro e constância no gráfico de crescimento

 

Paulo, então vamos ao item 5 - Primeiras Críticas ;-)

Fiz uma análise do EA, ainda é muito cedo para qualquer conclusão, pois não temos nenhum resultado em operação demo/real, mas já teria algumas sugestões e críticas:

- Como o Malacarne fez a codificação (aliás com excelente estruturação e documentação dos comentários), sugiro fazer uma referência a isso no código fonte.

- Já esperava resultados excelentes como os apresentados, em qualquer período de tempo. E a razão para isso está no indicador que ele utiliza, que para mim induz a uma expectativa falsa de precisão de conhecimento do passado. Considero esse EA é um bom exemplo para testes de filtragem de algoritmos que são basicamente um reflexo de combinações precisas do passado, já que assim como no Zig-Zag, o Fractal busca a combinação que já aconteceu no passado que melhor representa um cenário presente. 

Talvez os testes em contas demonstração (e quem sabe reais) mostrem que o EA é realmente vencedor (ao contrário de minhas críticas), o que seria muito bom para tentarmos descobrir alguma nova lógica de descoberta de inteligência do passado, mas para ser franco não acredito nisso e me parece que o EA é muito dependente do ajuste dos parâmetros e setups para conseguir gerar resultados concretos. 

 
analisei os dois backtests.... no fim das contas, não vi muita diferença de um para outro.. LL parecidos, drawdowns parecidos também, número de negociações também próximos um ao outro, enfim... o sistema parece ser teoricamente vencedor no longo prazo... Paulo, se não for pedir muito, faz backtests usando o timeframe de 1 minuto, 5 minutos e 15 minutos, depois publica aqui pra a gente ver
 
figurelli:

Paulo, então vamos ao item 5 - Primeiras Críticas ;-)

Fiz uma análise do EA, ainda é muito cedo para qualquer conclusão, pois não temos nenhum resultado em operação demo/real, mas já teria algumas sugestões e críticas:

- Como o Malacarne fez a codificação (aliás com excelente estruturação e documentação dos comentários), sugiro fazer uma referência a isso no código fonte.

- Já esperava resultados excelentes como os apresentados, em qualquer período de tempo. E a razão para isso está no indicador que ele utiliza, que para mim induz a uma expectativa falsa de precisão de conhecimento do passado. Considero esse EA é um bom exemplo para testes de filtragem de algoritmos que são basicamente um reflexo de combinações precisas do passado, já que assim como no Zig-Zag, o Fractal busca a combinação que já aconteceu no passado que melhor representa um cenário presente. 

Talvez os testes em contas demonstração (e quem sabe reais) mostrem que o EA é realmente vencedor (ao contrário de minhas críticas), o que seria muito bom para tentarmos descobrir alguma nova lógica de descoberta de inteligência do passado, mas para ser franco não acredito nisso e me parece que o EA é muito dependente do ajuste dos parâmetros e setups para conseguir gerar resultados concretos. 

Figurelli, críticas construtivas são muito bem vindas ! :D

Eu concordo com você, o indicador fractal somente por si não traz segurança para operações em tempo real e que está muito dependente do ajustes dos parâmetros para resultados positivos, mas a idéia deste tópico é que a partir deste princípio possamos agregar novas idéias  neste algoritmo, de tal forma que tenhamos operações concretas em conta real com lucro! 

Quanto ao código fonte, no meu entender ele está livre para qualquer usuário desenvolvedor fazer alterações e disponibilizar aqui no tópico, desde que ele explique os detalhes das alterações para podermos acompanhar e continuar no processo, tenho certeza que o Malacarne não vai sentir-se melindrado se você ou qualquer outro fizer alguma modificação, acredito que ele vai é ficar feliz em ver outras idéias agregadas nas que ele começou. Até por que o código fonte está no no meu nome e estou disponibilizando a todos para alterar quanto quisermos, como a própria descrição está dizendo é "Expert Advisor comunitário"

Hoje estarei começando o processo para postar na Base de Código este, acho que vai ser o primeiro código livre em português disponibilizado.

//+------------------------------------------------------------------+
//|                                              Sistema Fractal.mq5 |
//|                                                      Paulo Berft |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright     "Paulo Berft"
#property link          "http://www.mql5.com"
#property version       "1.000"
#property description   "Expert Advisor comunitário baseado no indicador X-bars Fractal."

Uma pequena observação, o Malacarne provavelmente somente estará nos visitando novamente após a virada do ano, pois acredito que ele está descansando e curtindo a sua linda família!  

A discussão está aberta para implementarmos soluções! Que venham as idéias! 

 
rafaeltoscano:
analisei os dois backtests.... no fim das contas, não vi muita diferença de um para outro.. LL parecidos, drawdowns parecidos também, número de negociações também próximos um ao outro, enfim... o sistema parece ser teoricamente vencedor no longo prazo... Paulo, se não for pedir muito, faz backtests usando o timeframe de 1 minuto, 5 minutos e 15 minutos, depois publica aqui pra a gente ver

Rafael, estarei fazendo outros testes principalmente em timeframes menores, mas acho que vai ser necessário antes consertar uma pequena inconsistência que descobri comparando os resultados gráficos com a estratégia, estarei publicando estas inconsistência até o final do dia.

Mas Rafael, você pode também fazer testes e colocar seus comentários aqui, isto torna mais dinâmico e rápido o desenvolvimento deste projeto ao invés de somente um a frente!  

Fique a vontade!

Abraços 

 
PauloBrasil:


A discussão está aberta para implementarmos soluções! Que venham as idéias! 

Excelente Paulo, conte comigo, vamos trabalhar então, o desafio é grande, mas minha filosofia é sempre testar sem paradigmas, portanto, seja como for, é importante fazermos testes com conta Demo da versão atual com os dois Setups que você fez backtesting para análise.

Enquanto isso, me comprometo em colocar a mão na massa em duas melhorias, que descrevo abaixo:

1) Forward testing: meu método de otimização sempre utiliza o recurso de teste para frente, acredito que para esse EA baseado em fractais esse teste será essencial para retirar os vícios do backtesting (overfitting).

2) Inserção de um filtro baseado nos suportes e resistências: acredito que esse pode ser um bom contraponto para o indicador Fractal utilizado, pois irá identificar os melhores momentos de mercado para a adoção do indicador (e talvez seja possível descobrir algo assim).

A vantagem dos suportes e resistências é que eles não são tão dependentes de backtesting (isso considero um ponto muito importante para um EA).

A desvantagem é que milhões de investidores usam suportes e resistências, retirando o fator novidade ou inovação (que também considero muito importante para um EA).

Se tivermos uma boa identificação de momento, não viciada no passado, e um bom sistema de testes, na minha opinião já viramos a página para um trading system mais competitivo. 

Anyway, como você diz, esse é um EA comunitário e o importante é isso ai, o trabalho cooperativo e a troca de ideias.

Abs. 

 
figurelli:

Excelente Paulo, conte comigo, vamos trabalhar então, o desafio é grande, mas minha filosofia é sempre testar sem paradigmas, portanto, seja como for, é importante fazermos testes com conta Demo da versão atual com os dois Setups que você fez backtesting para análise.

Enquanto isso, me comprometo em colocar a mão na massa em duas melhorias, que descrevo abaixo:

1) Forward testing: meu método de otimização sempre utiliza o recurso de teste para frente, acredito que para esse EA baseado em fractais esse teste será essencial para retirar os vícios do backtesting (overfitting).

2) Inserção de um filtro baseado nos suportes e resistências: acredito que esse pode ser um bom contraponto para o indicador Fractal utilizado, pois irá identificar os melhores momentos de mercado para a adoção do indicador (e talvez seja possível descobrir algo assim).

A vantagem dos suportes e resistências é que eles não são tão dependentes de backtesting (isso considero um ponto muito importante para um EA).

A desvantagem é que milhões de investidores usam suportes e resistências, retirando o fator novidade ou inovação (que também considero muito importante para um EA).

Se tivermos uma boa identificação de momento, não viciada no passado, e um bom sistema de testes, na minha opinião já viramos a página para um trading system mais competitivo. 

Anyway, como você diz, esse é um EA comunitário e o importante é isso ai, o trabalho cooperativo e a troca de ideias.

Abs. 

Na realidade o sistema que idealizei de certa forma ele trabalha com suportes e resistência pontuais, após a confirmação dos fractais.

Acrescentar também  suportes e resistências através de outros sistemas para confirmar uma entrada e também os alvos é muito interessante, andei lendo alguma coisa a respeito e temos alguns métodos para isto, tipo: Clássico, Fibonacci,  Camarilla,  Woodie's e DeMark's . Seria utilizado um destes, Figurelli,  ou você tem outro método?

Aproveitando o gancho,  andei verificando algumas inconsistência no EA dentro daquilo que eu imaginei,  ou talvez eu não tenha conseguido expressar o sistema claramente para o Malacarne ou talvez seja necessário alguns ajustes mesmos! Então antes de fazer alguma atualização é bom corrigirmos estes detalhes.

 

Acima um teste que fiz num período pequeno: note que no BAR1 temos um fractal UP, o BAR2 é o que confirma o Fractal. Segundo a idéia do sistema, seria plotado um preço base para cálculo da ordem pendente a partir da do menor preço entre a barra de preço onde está o fractal UP e a barra de preço que confirmou este fractal,  onde para este cálculo da ordem pendente este preço é adicionado ao  parâmetro Margem de Segurança (neste exemplo = 20 PIP). Na prática este preço é um suporte (linha vermelha) a ser vencido e que é  justamente este o objetivo da Margem de Segurança. Veja a imagem acima. O menor preço entre as duas barras é 1.35230, em consequência o SELL Stop teria de ser no preço 1.35039.

Note que o EA entrou com a operação antes do momento certo, em consequência houve prejuízo. Observei que isto tem acontecido direto, outras vezes o EA não emite a ordem. Veja abaixo um outro teste!

 

                                                           (clique na lupa para melhor visualização)

  • Seta Número 1 -  Aqui o mesmo problema acima, a EA entrou antes da hora correta
  • Número 2 - Aqui temos uma situação interessante, o EA entrou com a operação Comprada antes da confirmação deste fractal nr 2. Se o EA tivesse seguido a lógica que eu estou demonstrando, teríamos dois Fractal Down e nenhuma ordem. Qual dos dois fractal Down o EA iria seguir, na minha opinião o EA iria escolher aquela configuração cujo preço seja o menor para lançar o BUY Stop, neste caso seria o Fractal nr 1. 
  • Número 3 - foi desenhado o fractal UP, mas o preço não caminhou o suficiente para acionar uma SELL Stop. 
  • Seta Número 4 - foi desenhado o fractal UP, mas o EA não lançou a SELL Stop no preço 1.36561, então provavelmente houve uma falha aqui.
  • Número 5 - foi desenhado o Fractal Downmas o preço não caminhou o suficiente para acionar uma BUY Stop.
  • Seta Número 6 -  situação idêntica a ao "seta nr 1", EA entrou antes do tempo correto, deveria ter entrado com um posição comprada no preço 1.36009
  • Número 7 - foi desenhado o fractal UP, mas o preço não caminhou o suficiente para acionar uma SELL Stop. 
  • Número 8 situação idêntica a ao "nr 2", porém no momento que o EA executou a operação comprada, haviam dois fractais Down, então eu não sei dizer em qual destes dois fractais  down foi usado nesta posição comprada (aqui precisamos da ajuda do Malacarne, para nos explicar). Na minha opinião o EA iria escolher aquela configuração cujo preço seja o menor para lançar BUY Stop e futura ordem comprada, neste caso seria o Fractal nr 6. 
  • Número 9 - foi desenhado o fractal UP, mas o preço não caminhou o suficiente para acionar uma SELL Stop.  
  • Seta Número 10 - situação idêntica a ao "seta nr 4", foi desenhado o fractal UP, e coincidentemente não lançou a SELL Stop no mesmo preço 1.36561, então provavelmente houve uma falha aqui. 
  • Número 7 - foi desenhado o fractal UP, mas o preço não caminhou o suficiente para acionar uma SELL Stop, até onde estamos vendo.

  Bom gente, para olharmos estas, talvez, inconsistência, vamos aguardar o Malacarne retornar ao trabalho, somente após a virada do ano.

PS: aqueles que estão chegando e querem encomendar um programa, percebam o quanto temos que nos preocupar com os detalhes ao solicitar um EA para um desenvolvedor, recomendo ler o artigo Como encomendar um Expert Advisor e Obter o Resultado Desejado, é muito bom, ele ainda está e inglês, mas em janeiro estarão publicando a versão traduzida. O autor,Andrey Khatimlianskii, é um programador experiente, e gostaria de deixar uma frase dele aqui, retirada deste artigo:"não existe nenhum software sem erros, existem somente programas mal-testados". Ou seja, o ajuste fino de um software é mediante muitos testes, até chegar ao ponto certo! Vejam o exemplo do tópico Metodologia de teste de qualidade de dados, a plataforma Metatrader 5 está tendo defasagens na transmissão dos Ticks reais, ou seja, você ainda não está tendo a informação correta do preço que esta sendo negociado na Bovespa. 

Razão: