Como Rodar Varios EAs em um Mesmo Ativo

Para adicionar comentários, por favor Faça o login ou registrar
Paulo Carvalho
2144
Paulo Carvalho  

Preciso rodar varios EAs em um mesmo ativo. 

Objetivo: aumentar a segurança e diluir o tam do lote no book 

Ex: Tres melhores resultados de optmização de um cruzamento de MA:

EA1 = 12 x 36

EA2 = 13 x 39

EA3 =  7 x 13

Ativo: petr4

Meta: Rodar os tres EAs em tres graficos de petr4 no mesmo time frame de forma que um EA nao enxergue/interfira no outro (Max Lot Position...virade de mao de PosVolume etc)

Pensei em identificar no historico de ordens os ultimos deals de cada um verificando o magic number e o DEAL_Entry_...

SE o DEAL_ENTRY for DEAL_ENTRY_IN  entao CanTrade = false

Porem nao esta dando certo:

Alguem poderia me ajudar?

SEg o Codigo:

 // Check for the last deal_type of order ------------------------------------------------------------------|

  CDealInfo mydeal;                             // opening the class

 

  if(HistorySelect(0,TimeCurrent()))         // Select all history deals

 {

  int tot_deals = HistoryDealsTotal();         // get total deals in history

  

  ulong d_ticket;                                           // history deal ticket   - get all of details off all deals

  

  for(int u=tot_deals-1;u>=0;u--)

  {

  d_ticket = HistoryDealGetTicket(u);

  }  

   if(d_ticket == 0) 

      { 

         Print("M-",_Symbol," Error in HistoryDealGetTicket; no trade History!");           

      }      

       if( (HistoryDealGetInteger(d_ticket,DEAL_ENTRY)== DEAL_ENTRY_IN) && (HistoryDealGetInteger(d_ticket,DEAL_MAGIC) == 119122014 || 219122014))    

       {

     CanTrade = false; 

          }

   }

 

 Desde ja Grato

ainda mais se a resposta vier com o código pronto 

Rodrigo Malacarne
Moderador
8090
Rodrigo Malacarne  
PH2000:

Preciso rodar varios EAs em um mesmo ativo.  

 Desde ja Grato

ainda mais se a resposta vier com o código pronto 

Olá PH2000,

para trabalhar com múltiplas estratégias no mesmo ativo e na mesma conta, realmente, no MT5, é necessário que você utilize algum gerenciador virtual de ordens (em inglês, VOM - Virtual Order Manager)... Não basta abrir diferentes gráficos e colocar o EA pra rodar em todos esses gráficos.

Certamente qualquer EA mais simples irá facilmente confundir as lógicas e operar da forma errada.

Abraços,
Malacarne 

Rogerio Figurelli
Moderador
58557
Rogerio Figurelli  
PH2000:

Preciso rodar varios EAs em um mesmo ativo. 

Objetivo: aumentar a segurança e diluir o tam do lote no book 

Ex: Tres melhores resultados de optmização de um cruzamento de MA:

EA1 = 12 x 36

EA2 = 13 x 39

EA3 =  7 x 13

Ativo: petr4

Meta: Rodar os tres EAs em tres graficos de petr4 no mesmo time frame de forma que um EA nao enxergue/interfira no outro (Max Lot Position...virade de mao de PosVolume etc)

Pensei em identificar no historico de ordens os ultimos deals de cada um verificando o magic number e o DEAL_Entry_...

... 

 Desde ja Grato

ainda mais se a resposta vier com o código pronto 

Olá PH2000, desculpe a sinceridade, mas acredito que tua abordagem não tem nenhuma garantia de aumentar a segurança, pelo contrário, você não tem nenhuma otimização dela, apenas três independentes.

Mas em um ponto concordo com você, uma estratégia baseada apenas no cruzamento de duas médias móveis também tem pequena chance de sucesso. Com o potencial do MT5 de criarmos e testarmos estratégias avançadas, buscar a solução apenas com uma otimização de cruzamento de duas médias é como ir pescar com uma Ferrari.

Seja como for, como esse EA é muito simples, e isso pode ser uma vantagem, minha sugestão é modificares ele para executar os três cruzamentos, ajustados e operando de forma independente.

Em outras palavras, criar um EA que faz o que os três fariam de forma independente, solucionando o problema de rodar as estratégias e 3 ajustes independentes no mesmo ativo. Na prática, o EA teria 6 parâmetros de entrada com as médias, ao invés de 2.

Com isso você teria, a meu ver, uma solução ainda melhor do que está buscando, já que pode otimizar o que seriam 3 EAs rodando em paralelo em um único, fazendo um backtesting completo do modelo operacional que pretende operar. E para um EA simples como esse isso parece muito simples e rápido de ser feito.

A má notícia é que, agora podendo otimizar e simular de fato os três cruzamentos independentes, você chegue à conclusão de que o esforço foi inócuo, já que está aumentando as chances de sobreajuste e interferência das estratégias entre si. 

Paulo Carvalho
2144
Paulo Carvalho  
figurelli:

Olá PH2000, desculpe a sinceridade, mas acredito que tua abordagem não tem nenhuma garantia de aumentar a segurança, pelo contrário, você não tem nenhuma otimização dela, apenas três independentes.

Mas em um ponto concordo com você, uma estratégia baseada apenas no cruzamento de duas médias móveis também tem pequena chance de sucesso. Com o potencial do MT5 de criarmos e testarmos estratégias avançadas, buscar a solução apenas com uma otimização de cruzamento de duas médias é como ir pescar com uma Ferrari.

Seja como for, como esse EA é muito simples, e isso pode ser uma vantagem, minha sugestão é modificares ele para executar os três cruzamentos, ajustados e operando de forma independente.

Em outras palavras, criar um EA que faz o que os três fariam de forma independente, solucionando o problema de rodar as estratégias e 3 ajustes independentes no mesmo ativo. Na prática, o EA teria 6 parâmetros de entrada com as médias, ao invés de 2.

Com isso você teria, a meu ver, uma solução ainda melhor do que está buscando, já que pode otimizar o que seriam 3 EAs rodando em paralelo em um único, fazendo um backtesting completo do modelo operacional que pretende operar. E para um EA simples como esse isso parece muito simples e rápido de ser feito.

A má notícia é que, agora podendo otimizar e simular de fato os três cruzamentos independentes, você chegue à conclusão de que o esforço foi inócuo, já que está aumentando as chances de sobreajuste e interferência das estratégias entre si. 

Fala Rogerio!

Esse é somente um exemplo bem simples para facilitar o entendimento. Esquece tudo e imagine os tres melhores resultados retirados de uma optimização genetica de mais de 1 trilhao de combinações

Meu objetivo é rodar o mesmo ativo em tres graficos diferentes com tres calibragens do mesmo EA diferentes. Podendo assim tbm diluir o tamanho do lote por tres; ja que me parece que nao possuimos aqui no mt5 a figura do Best Offer...

SDS 

Rogerio Figurelli
Moderador
58557
Rogerio Figurelli  
PH2000:

Fala Rogerio!

Esse é somente um exemplo bem simples para facilitar o entendimento. Esquece tudo e imagine os tres melhores resultados retirados de uma optimização genetica de mais de 1 trilhao de combinações

Meu objetivo é rodar o mesmo ativo em tres graficos diferentes com tres calibragens do mesmo EA diferentes. Podendo assim tbm diluir o tamanho do lote por tres; ja que me parece que nao possuimos aqui no mt5 a figura do Best Offer...

SDS 

Entendo, mas a pergunta que não quer calar é quais são os três melhores resultados?

O que penso é que o ideal é que esses três fossem o de melhor resultado em conta real no futuro, mas tua métrica para medir isso no passado não irá nunca te dar essa certeza.

Mas se tua ideia é testar em três gráficos e comparar os resultados isso me parece um bom caminho, pois já foge dos paradigmas do backtesting. 

Para adicionar comentários, por favor Faça o login ou registrar