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

 

Alguns meses atrás eu me aventurei em fazer um EA buscando trabalhar com correlacionamento, ele pode até ser promissor, mas é preciso  mudar a estratégia de entrada e saída das operações e com certeza algumas coisa mais.

Então eu deixei de lado para quando eu tiver com a cabeça mais fria, voltar para ele novamente.

Então aproveitando o o gancho do proposta do Rafael nesse tópico, estou disponibilizando o EA em anexo, com a melhor otimização que consegui. Segue abaixo a explicação do funcionamento também. A idéia desta otimização foi seguir a tendência primaria para as entradas, para isto usei o timeframe W1,  o "x" da questão é quando vai ser o momento da virada. É neste ponto que se encontra o "calcanhar de aquiles".

Para definir a direção da tendência e as ordens de entrada, usei o indicador X-bar_fractal, disponível no codeBase.

Se algum dos participantes deste tópico tiver uma idéia para acrescentar, vamos discuti-la e  implementá-la, que sabe não teremos um EA Comunitário que seja rentável!  

Bem segue abaixo a descrição :

input string   StartTimeDaily = "00:01";  /*  Opening hours of the Trade */
input string   EndTimeDaily = "23:59";    /*  Close Time of Trade*/
input string   EndTimeFriday = "19:00";   /*  Close Time on Friday*/
input bool     CorrectionRun = true;      /*  With Orders Correction  */
input string   PairCorrection = "USDJPY"; /*  Parity Correlation (ex. EURUSD - USDJPY) */
input int      DirectionOrder = 1;        /*  Direct Correlation ( 0 ) or Reverse (1)? */
/* Volume Size */
input double   PercentageRisk = 5;        /* Percentage of Investment Risk */
input int      TicksLimiter = 500;        /* Ticks Limit  */
input double   MultiplierVolumeSizeToPairCorrelated = 1.2; /* Fator Lot-Multiplicativo do Par Corr. -  Multiplicative Factor Lot of the Par Corr */
/* Open and Close Order */
input double   TakeProfitDayEnd = 1.5;    /* profit of  Day End  */
input double   TakeProfitFull = 3.0;      /* Lucro Máximo - Maximum Profit */
input double   StopLoss = 5.0;            /* Percentage of Risk - StopLoss*/
input int      BarRight = 1;
input int      BarLeft = 25;
input bool     HasStopLoss = false;       /* Will use the Stop Loss? */
Vou explicar parâmetro por parâmetro
input string   StartTimeDaily = "00:01";  /*  Opening hours of the Trade */
input string   EndTimeDaily = "23:59";    /*  Close Time of Trade*/
input string   EndTimeFriday = "19:00";   /*  Close Time on Friday*/

Aqui funcionalidade simples, se vc quiser testar outras horas, fique a vontade! 

input bool     CorrectionRun = true;      /*  With Orders Correction  */

Se True, a EA vai fazer correlação

Se False, EA só vai no par principal 

input string   PairCorrection = "USDJPY"; /*  Parity Correlation (ex. EURUSD - USDJPY) */

Aqui está claro, você escolhe o par quer correlacionar com o para principal! 

input int      DirectionOrder = 1;        /* Same Direct Correlation ( 0 ) or Reverse (1)? */

Exemplo:

DirectionOrder = 1  - Se a ordem aberta pelo EA é comprar (BUY), então EA vai vender (SELL) USDJPY - 

DirectionOrder = 0  - Se a ordem aberta pelo EA é comprar (BUY), então EA vai comprar (BUY) USDJPY - 

/* Volume Size */
input double   PercentageRisk = 5;        /*  Percentage of Investment Risk */
input int      TicksLimiter = 500;        /* Limite de Ticks -Ticks Limit  */
input double   MultiplierVolumeSizeToPairCorrelated = 1.2; /*  Multiplicative Factor Lot of the Par Corr */

 1.  1. Aqui temos os parametros para o calculo do Volume do par principal: PercentageRiske e TicksLimiter 

Este cálculo é realizado em cima da margem livre da conta do corretor, o EA vai calcular o tamanho do volume sobre a margem livre multiplicado pela percentagem de risco (parâmetro PercentageRisk) em proporção com o valor do parâmetro TicksLimiter, este resultado é multiplicado por um valor padrão inalterado (0,10), o resultado final será o tamanho do volume.

Nota: Para o cálculo do tamanho do volume, independente de qualquer par de moedas principais, sempre considerar o valor monetário de um pip como 0,10 (10 centavos), este é um valor imutável, que é definido código fonte da EA. A margem livre é automaticamente identificado pela EA na conta do corretor. 

Exemplo :
PercentageRisk : 5 %
TicksLimiter : 400 (valor em PIP)
Free Margin : 10,500 (identificado pelo EA na corretora )
A PIP Value : 0.10 ( valor fixo) )
Formula : [ ( PercentageRisk * Free Margin ) / TicksLimiter ] * Value ONE PIP

                 [ ( 10500 * 5 % ) / 400 ] = 0.13 * 0.10 - O volume desta operação é 0.13

2. Tamanho Volume do Par Correlacionado (neste exemplo USD JPY)

Ela é definida por um valor de multiplicador, chamamos esse parâmetro MultiplierVolumeSize_to_PairCorrelation

Exemplo:

O tamanho do volume par principal = 0,13

MultiplierVolumeSize_to_PairCorrelation: 1,5

EA vai multiplicar o tamanho do volume 0,13 (par principal) por 1,5, de modo que o tamanho do volume do par correlacionado é de 0,19

Se MultiplierVolumeSize_to_PairCorrelation = 1,  o tamanho do volume do par está correlacionado será 0.13

/* Open and Close Order */
input double   TakeProfitDayEnd = 1.5;    /* profit of  Day End  */
input double   TakeProfitFull = 3.0;      /* Lucro Máximo - Maximum Profit */
input double   StopLoss = 5.0;            /* Percentage of Risk - StopLoss*/
input int      BarRight = 1;
input int      BarLeft = 25;
input bool     HasStopLoss = false;       /* Will use the Stop Loss? */

 Vamos ver agora o método para abrir as encomendas.

Aqui eu acho que vou ter que mudar, eu não consegui obter um lucro histórico no longo prazo no Testador de Estratégia.

Eu preciso encontrar um outro método. Estou aceitando idéias :)


1.Para definir a direção do comércio (compra ou venda), usamos um único indicador, o fractal modificação: x - bar_fractal  
Os parâmetros do x - bar_fractal para utilização por EA serão dois: BarLeft: e BarRight

ATENÇÃO: O EA não aceita:

a. Valores BarLeft = BarRight, exemplo, BarLeft = 5 e BarRight = 5
b. Valores BarLeft <BarRight, exemplo, BarLeft = 5 e BarRight = 6
c. Diferença de um dígito entre BarLeft e BarRight, exemplo, BarLeft = 5 e BarRight = 6

2. Regras para ABRIR ordens pelo EA, vender ou comprar, no par principalde moeda no tempo determinado pelo parâmetro StartTimeDaily

PARA COMPRAR
Depois de desenhar Fractal Down(baixo) do x-bars_fractal,  no momento determinado pelo parâmetro StartTimeDaily, todos os pedidos serão executados como  BUY.

PARA VENDER

Depois de desenhar Fractal UP(alto) do x-bars_fractal, no momento determinado pelo parâmetro StartTimeDaily, todos os pedidos serão executados como SELL

3. Segue os pares a serem utilizados para correlacionar: cruzes, grande, XAG / USD e XAU / USD.

4. Regras para o fechamento das ordens.

4.1 - Para o fechamento de ordens com o lucro foi estabelecido dois parâmetros: TakeProfitDayEnd e TakeProfitFull

4.1.1 - TakeProfitDayEnd: valor percentual sobre a  margem livre do saldo da conta do corretor.

4.1.1.1 - O comerciante coloca um valor percentual neste parâmetro, quando chegar o tempo definido pelos parâmetro EndTimeDaily e EndTimeFriday, se houver um lucro positivo entre o par principal e par correlacionado neste percentual, ou sobre a margem livre da conta de corretor, EA fecha a posição diária.

4.1.1.2 - Se o lucro é menor ou negativa entre o par principal e par correlacionado desse percentual sobre a margem livre da conta de corretor, a EA NÃO VAI FECHAR posição diária.

4.1.2 - TakeProfitFull: valor percentual sobre a margem livre do saldo da conta do corretor. Independentemente do tempo definido no parâmetro EndTimeDaily ou EndTimeFriday, o lucro chegou a esse percentual sobre a margem livre da conta de corretor, a EA fecha posições diárias imediatamente, independentemente do tempo. As ordens de negociação seguinte somente serão abertas no dia seguinte, no horário definido pelo parâmetro StartTimeDaily.

4.2 - As posições de negócios do par e correlacionado  apenas serão fechadas quando houver lucro estabelecido por parâmetros TakeProfitDayEnd ou TakeProfitFull. Se não houver posições de lucro, as posições permanecerá aberta enquanto for necessário, ou pelo Stop Loss

5. Regras para Stop Loss

O SL será definido por PIPs através cálculo sobre o preço de entrada inicial na operação de negócio

Abaixo um exemplo para o principal par EURUSD a ser correlacionado com o USDJPY.

Para calcular o Stop Loss vai seguir o raciocínio abaixo:

StopLoss: 3 (Este é um parâmetro determinado pelo trader, este valor é uma percentagem calculada sobre a margem livre)

Margem livre: 10000 (identificado pela EA na conta de corretagem)

O cálculo do Stop Loss é muito simples, este exemplo acima, 300 é  3% de margem livre sobre 10000, então o Stop Loss será de 300 PIP

Então:

Se a ordem para o comércio EURUSD foi no preço  1,34560, SL para vender igual 1,37560 ou compra equivale a 1,31560.

Se a ordem para o comércio USDJPY foi no preço 92.500, SL para vender igual 95.500 ou comprar igual 89.500

Outros exemplos:

StopLoss = 5

Margem livre: 2000 (EA verifica na corretora)

SL = 2000 * 5 = 100 PIP

StopLoss = 8

Margem livre: 4500 (EA verifica na corretora)

SL = 4500 * 8 = 360 PIP  

 Obrigado

Paulo Berft 

 
PauloBrasil:


Vamos ganhar dinheiro juntos, ninguém faz nada sozinho neste mundo! ; D 

Obrigado

Paulo Berft 

Sobre o indicador X-bars Fractals ele pode servir para duas coisas, pode servir como um indicador de topos e fundos verdadeiros, como pode servir como  indicador para entradas e saídas, desde que, os pontos de entradas e saídas não sejam demorados para serem plotados no gráfico, eles tem que ser plotados na hora... Um ou dois candles a mais que você demora para entrar ou para sair, nós podemos perder nossa operação inteira... O Forex é assim... Por isso aqui vai minha pergunta, esse indicador tem alguma demora para ser plotado no gráfico? Se sim, quantos candles à frente ele demora para isso?

Na minha opinião, se ele demorar mais de dois candles à frente para ser plotado, ele não serve como indicador para entradas ou saídas!

Quanto à esse setup que você está desenvolvendo Paulo, é aquela coisa que eu já disse no meu tópico que abri, e que você citou aqui, Não entendo nada de programação, e pelo o que vi voce mostrou aqui toda a "engenharia" por trás do setup, justamente a parte em que sou leigo hahaha!!!

Porém, tenho mais uma pergunta a fazer, como ele vai ficar no gráfico, visualmente falando?

 

Abraço

 
rafaeltoscano:

Sobre o indicador X-bars Fractals ele pode servir para duas coisas, pode servir como um indicador de topos e fundos verdadeiros, como pode servir como  indicador para entradas e saídas, desde que, os pontos de entradas e saídas não sejam demorados para serem plotados no gráfico, eles tem que ser plotados na hora... Um ou dois candles a mais que você demora para entrar ou para sair, nós podemos perder nossa operação inteira... O Forex é assim... Por isso aqui vai minha pergunta, esse indicador tem alguma demora para ser plotado no gráfico? Se sim, quantos candles à frente ele demora para isso?

Na minha opinião, se ele demorar mais de dois candles à frente para ser plotado, ele não serve como indicador para entradas ou saídas!

Quanto à esse setup que você está desenvolvendo Paulo, é aquela coisa que eu já disse no meu tópico que abri, e que você citou aqui, Não entendo nada de programação, e pelo o que vi voce mostrou aqui toda a "engenharia" por trás do setup, justamente a parte em que sou leigo hahaha!!!

Porém, tenho mais uma pergunta a fazer, como ele vai ficar no gráfico, visualmente falando?

 

Abraço

A vantagem do x-bar_fractal em relação ao fractal tradicional é que você pode colocar quantos candles quiser  nos parâmetros a frente(right)  e para trás (left) para ele ser desenhado. 

Quando você fizer ou mandar fazer o seu primeiro EA ou indicador não vai querer parar mais, vá por mim é viciante.... hehehee 

Quanto a sua pergunta, a minha sugestão é que você insira o EA no Terminal MT5 e abra o provador de estratégia e faça quantos testes quiser, cada vez que você termina um teste, o Terminal automaticamente mostra a visualização gráfica do EA trabalhando. No arquivo zipado tem uma imagem do EA trabalhando.

Acho que vou postar um tutorial básico para usar o Testador de Estratégia por aqui! A

 O que você acha? 

 

Paulo, parabéns pela iniciativa do EA comunitário, minha sugestão para simplificar o entendimento de todos é fazer ele de forma modular.

Acredito que é uma ótima oportunidade para o desenvolvimento de um software livre em conjunto, conte com meu apoio nisso. 

Por exemplo, definir claramente várias etapas, onde cada etapa é de simples entendimento, e seriam exibidos aqui as atualizações, backtestings e experiências em contas demo/real.

 
figurelli:

Paulo, parabéns pela iniciativa do EA comunitário, minha sugestão para simplificar o entendimento de todos é fazer ele de forma modular.

Acredito que é uma ótima oportunidade para o desenvolvimento de um software livre em conjunto, conte com meu apoio nisso. 

Por exemplo, definir claramente várias etapas, onde cada etapa é de simples entendimento, e seriam exibidos aqui as atualizações, backtestings e experiências em contas demo/real.

Ok, Figurelli, vou planejar algo neste sentido! 

 
PauloBrasil:

Ok, Figurelli, vou planejar algo neste sentido! 

Paulo, tem alguma novidade sobre o EA comunitário?
 
rafaeltoscano:
Paulo, tem alguma novidade sobre o EA comunitário?
Sim Rafael, estou trabalhando nisto, até sexta vou postar uma abordagem em módulos, para ver se conseguimos algo promissor.
 
PauloBrasil:
Sim Rafael, estou trabalhando nisto, até sexta vou postar uma abordagem em módulos, para ver se conseguimos algo promissor.

Beleza Paulo... Cara, eu tive um tive um pequeno problema a respeito daquele indicador, o X-Bars fractals, que você anexou em algum destes seus posts... Sei que a minha dúvida é uma besteira, mas de qualquer forma vou falar...

Veja bem, quando coloquei para testar na prática o X-Bars fractals no indicador, coloquei ele com a configuração 17, 17, ou seja  17 (left) e 17 (right)... O que percebi, é que ele plotou o sinal de entrada ou saída depois de 17 ou 18 candles depois, o que não faz muito sentido, o resultado é que na hora estava acontecendo uma tendência de alta, mas perdi o tempo de entrada, o preço já estava lá em cima, só aí foi que ele plotou o sinal de entrada no fundo para comprar, mas já não adiantava mais nada, porque o preço já tinha subido...

O que houve de errado? Foi comigo? com a configuração do indicador? Me ajuda por favor

Obrigado 

 
rafaeltoscano:

Beleza Paulo... Cara, eu tive um tive um pequeno problema a respeito daquele indicador, o X-Bars fractals, que você anexou em algum destes seus posts... Sei que a minha dúvida é uma besteira, mas de qualquer forma vou falar...

Veja bem, quando coloquei para testar na prática o X-Bars fractals no indicador, coloquei ele com a configuração 17, 17, ou seja  17 (left) e 17 (right)... O que percebi, é que ele plotou o sinal de entrada ou saída depois de 17 ou 18 candles depois, o que não faz muito sentido, o resultado é que na hora estava acontecendo uma tendência de alta, mas perdi o tempo de entrada, o preço já estava lá em cima, só aí foi que ele plotou o sinal de entrada no fundo para comprar, mas já não adiantava mais nada, porque o preço já tinha subido...

O que houve de errado? Foi comigo? com a configuração do indicador? Me ajuda por favor

Obrigado 

Bom Rafael, se entendi bem o seu relato, para mim faz sentido, pois este é o objetivo deste indicador, ele serve para dar maior flexibilidade nas estratégias com fractal, por exemplo, o indicador ZigZag repinta e você quer filtrar os pontos que estão repintando, então você coloca um x-bar_fractal com right=5, você terá um excelente filtro para o zigzag, faça o teste. Existe n estratégias para este indicador.

Veja as imagens abaixo do funcionamento do indicador:

 

 

Opa... vejo que pode ser uma boa oportunidade para todos nós este EA. Eu recomendaria também para definição de tendência o indicador Heiken Ashi Classico, pois é um indicador que estou estudando para criar uma estratégia baseada nele. Não somente em HA, mas também com alguns indicadores para auxiliar nas entradas.

Só não entendi algo: Este EA abre o ordem correlacionada ao mesmo tempo da primeira ordem, ou após alguns pips de percas da primeira ordem?

Heiken-Ashi
Heiken-Ashi
  • votos: 10
  • 2010.01.26
  • MetaQuotes Software Corp.
  • www.mql5.com
The Heiken-Ashi indicator is looks like the candlestick chart, but it has some difference.The advantage of the Heiken-Ashi charts is a simple trend determination, the upward trend candles are blue,the downward trend candles are red.
 
PauloBrasil:

Bom Rafael, se entendi bem o seu relato, para mim faz sentido, pois este é o objetivo deste indicador, ele serve para dar maior flexibilidade nas estratégias com fractal, por exemplo, o indicador ZigZag repinta e você quer filtrar os pontos que estão repintando, então você coloca um x-bar_fractal com right=5, você terá um excelente filtro para o zigzag, faça o teste. Existe n estratégias para este indicador.

Veja as imagens abaixo do funcionamento do indicador:

 

Bom tarde Paulo. Olha, testei esse indicador junto com o zig zag como recomendou, realmente gera um bom filtro para entradas e saídas. Essas imagens que voce colocou são ótimas, e é baseada nelas que eu vou tentar explicar melhor minha duvida. Em primeiro lugar imagino que voce colocou o x-bars fractals na mesma configuração que eu (17,17)

Talvez eu que não peguei o real significado disso, de entender como ele funciona, mas vamos olhar para a segunda imagem que você colocou... veja que a última seta plotada, a seta vermelha, indicou um fundo, recomendando entrar comprado. Porém, como é da própria natureza do indicador, ele plotou essa ultima seta somente depois de o preço ter caminhado para a frente 17 candles, consegue entender o que quero dizer? 

A meu ver, ele plota as entradas e saídas, e muito bem por sinal, mas faz isso com "atraso". Digo atraso porque como o preço já tinha caminhado muito para a frente, se fosse pra tentar pegar esse trade, seria perdido, porque a entrada mais  correta do trade foi a 17 candles atrás, pra mim aí é que está o problema, se ele plota a entrada ou saída 17, 5, 7 candles depois, ou como quiser configurar, perdemos o tempo certo de entrar e sair...

Espero que tenha entendido, e me corrija se estiver errado

Grato pela sua atenção 

Razão: