Por que NÃO existe uma EA completa dentro da Base de Código? - página 4

 

Algumas coisas a acrescentar como opções da EA:

- cálculo de número mágico único, talvez infalível para dar o mesmo resultado quando o corretor muda o nome do símbolo (por exemplo, de "EURUSD" para "EURUSD.m")

- opções de gerenciamento de pedidos (parada móvel, break even (estes em pips ou outros valores como psar, x barras alta/baixa, ma, etc.), fechamento do pedido)

- tratamento extensivo de informações de pedidos por pedido (para o qual um arquivo de texto (ou csv) parece ser a forma mais simples apropriada). GV é limitado, OrderComment() pode ser alterado pelo corretor.

 
Construindo em IsNYOnDst
datetime TimeSrvToNY(datetime timeSrv=EMPTY){      // Server time to NY time
   if(timeSrv == EMPTY) timeSrv = timeCur_srv;
      #define NY_TZ_STD -5                   // NY is UTC-5 (STD) or UTC-4 (DST)
   int utcToNY = NY_TZ_STD + IsNYonDST(timeSrv);
   return(TimeSrvToUTC(timeSrv) + utcToNY * 3600);  // Previous called TimeGMT
}
datetime TimeNyToSrv(datetime timeNY){
   int utcToNY = NY_TZ_STD + IsNYonDST(timeNY);
   return( TimeUtcToSrv(timeNY - utcToNY * 3600) ); // Previous called TimeServer
}
 
WHRoeder, você está atualizando o link de download ou precisamos "remendar" manualmente a fonte WHRea com todas as atualizações que você fornece neste tópico?
 
Não é possível atualizar as postagens uma vez que elas tenham alguns dias de vida.
 
Estou vendo... Você poderia publicar aqui novamente a versão mais recente então?
 
mbirrell:

Estou um pouco preocupado em compartilhar meus indicadores e EAs personalizados porque se eu os usasse e todos começassem a usá-los, não funcionariam mais... Alguém mais concorda?

Sei que isto parece um pouco egoísta... mas quando eu chegar a 5 milhões eu vou compartilhar ;-)

Na verdade, se todos usaram seu Ea, o preço de mercado será zero ou infinito. Todos vão querer comprar ou vender ao mesmo tempo.
 

Olá pessoal, o exemplo no tutorial MQL4 é suficiente se queremos apenas uma solução simples e geral ?

Minha EA negocia e faz cálculos por barra e não por carrapato.


int Fun_Error(int Error) // Função dos erros de processamento
{
interruptor(Erro)
{// Erros não cruciais
caso 4: Alerta("Servidor comercial está ocupado. Tentando mais uma vez...");
Sleep(3000);// Solução simples
retorno(1);// Sair da função
caso 135:Alerta("Preço alterado. Tentando mais uma vez...");
RefreshRates();// Refresh rates
retorno(1);// Sair da função
caso 136:Alerta ("Sem preços. À espera de um novo tick...");
while(RefreshRates()==false) // Até um novo tick
Dormir(1);// Pausa no laço
retorno(1);// Sair da função
caso 137:Alerta ("Corretor está ocupado. Tentando mais uma vez...");
Sleep(3000);// Solução simples
retorno(1);// Sair da função
caso 146:Alerta("O subsistema de comércio está ocupado. Tentando mais uma vez...");
Sleep(500);// Solução simples
retorno(1);// Sair da função
// Erros críticos
caso 2: Alerta ("Erro comum");
retorno(0);// Sair da função
caso 5: Alerta ("Versão terminal antiga");
Trabalho=falso;// Terminar a operação
retorno(0);// Sair da função
caso 64: Alerta("Conta bloqueada.");
Trabalho=falso;// Terminar a operação
retorno(0);// Sair da função
caso 133:Alerta ("Comércio proibido");
retorno(0);// Sair da função
caso 134:Alerta ("Não há dinheiro suficiente para executar a operação");
retorno(0);// Sair da função
padrão: Alerta("Erro ocorrido: ",Erro); // Outras variantes
retorno(0);// Sair da função
}
}

 

Esta pode ser a base de um bom Shell/Template EA: WHR é um codificador de MT experiente.

Ele foi originalmente concebido como uma fonte de código EA útil, não é uma Shell "plug and play".

Eu atualizei esta EA de algumas maneiras:

1. Modifiquei a sintaxe, nomes de variáveis para que ele compila nas versões atuais do MQL4.
Também acrescentei mudanças muito pequenas para que compila, comentei com "Big Be".

2. Incorporei todas as seções de código adicionais que a WHR colocou no tópico.
Eu deixei no lugar, mas comentei as seções que foram substituídas.
Erros na adição dessas seções são possíveis, embora eu tenha sido o mais cuidadoso possível.
A falta de integração total com o resto da EA também é possível.

3. Também o executei através de um programa que limpa o formato do texto para facilitar a leitura.

Ele começará a ser executado no Testador de Estratégia.
Ele não aceitará negócios, pois a configuração das regras de entrada é deixada a seu critério.
Eu não levei isto mais longe, pois tenho outras exigências em relação ao meu tempo.

NECESSIDADE DE TRABALHO:
Embora haja comentários ao longo de todo o processo, muitos precisam ser esclarecidos. Ou escrever se não existirem. O que cada seção ou função faz?
Um exemplo: CallAgain() diz "Saltar carrapatos inúteis". Qual é o método ou lógica? Provavelmente, só se está levando carrapatos que estão longe o suficiente e/ou estão na direção comercial se uma Trailing Stop, mas será necessário algum estudo para verificar.

Fazendo isso, ele cumprirá melhor seu papel como fonte de idéias e permitirá ainda mais a trabalhabilidade como uma concha / modelo EA.

MAIS TESTES:
Adicione algumas regras de entrada, e teste que cada seção está fazendo o que deve fazer. Isto requer muito estudo no Testador de Estratégia. E provavelmente alguma codificação aqui e ali para que ele faça o que é suposto fazer. Quando ele funciona lá, então muitos testes em uma conta demo.

ADVERTÊNCIAS:
Pelo menos uma função está incompleta, e pode haver erros neste código, ou mudanças no Metatrader desde que o whrea foi escrito que não são permitidas.

Codificar / usar um EA sem entender é como tentar pilotar um jato sem entender todos os controles e como usá-los.
Mas, faça como quiser: o dinheiro é seu.

SOLICITE
Por favor, ajude se você tiver o amplo conhecimento necessário e um pouco de tempo.


Big Be (BigBe)

Arquivos anexados:
whrea_v1.2.mq4  188 kb
 
William Roeder:

Por favor, você poderia explicar o que é pips2dbl?

 
Pooya Khamooshi: Por favor, você poderia explicar o que é pips2dbl?

Para converter PIPs em um carrapato.

Um PIP não é um Ponto ou um Tick.
O que é um TICK? -Fórum de programação MQL4

Usar Ponto significa que o código quebra em corretores de 4 dígitos, exóticos (por exemplo, USDZAR onde o spread é superior a 500 pontos) e metais. Calcule o que é um PIP e use-o, e não pontos.
Como gerenciar pares JPY com parâmetros? -Fórum de programação MQL4
Slippage definido em pontos de índice - Pares de moedas - Expert Advisors e Automated Trading - Fórum de programação MQL5