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
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.
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
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.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
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