Criação de robo para forex no metatrader 5, utilizando pontos fixos configuráveis e movering average, além de seguir varias outras regras

MQL5 Experts

Specification

Gostaria de um código para um robô Forex para MetaTrader 5 com as seguintes características e funcionalidades.

O robô deverá permitir a configuração de um movering average, Ponto Fixo Inicial e de uma configuração chamada "Intervalo entre Pontos ", definida em pips.

A partir do Ponto Fixo Inicial, o robô deverá gerar automaticamente uma sequência de novos pontos fixos acima e abaixo dele, sempre respeitando exatamente a distância configurada entre cada ponto. Assim, quando o robô for iniciado, toda essa grade de pontos fixos será criada automaticamente, formando uma sequência contínua de níveis igualmente espaçados.

À medida que o mercado evoluir, caso o preço ultrapasse o último ponto fixo existente acima ou abaixo, o robô deverá criar automaticamente novos pontos fixos, mantendo sempre a mesma distância configurada. Dessa forma, a grade de pontos será praticamente infinita, acompanhando continuamente a movimentação do mercado.

Todos os pontos fixos permanecerão existentes, porém apenas um único ponto fixo poderá estar ativo por vez.

O ponto fixo ativo não será definido quando o preço o atingir, mas sim quando a Média Móvel (Moving Average) configurada pelo usuário tocar esse ponto fixo.

Assim que a Média Móvel tocar um dos pontos fixos pela primeira vez, esse ponto será imediatamente ativado. Todos os demais pontos permanecerão inativos, aguardando uma futura ativação.

Enquanto existir um ponto fixo ativo, nenhum outro poderá ser ativado simultaneamente.

As operações somente poderão ocorrer após existir um ponto fixo ativo.

Regras de Entrada

Após um ponto fixo ser ativado pela Média Móvel, as operações deverão seguir as seguintes regras:

  • Se, após o fechamento de uma vela do preço, a Média Móvel estiver acima do ponto fixo ativo, o robô deverá abrir uma operação de COMPRA.

  • Se, após o fechamento de uma vela do preço, a Média Móvel estiver abaixo do ponto fixo ativo, o robô deverá abrir uma operação de VENDA.

A abertura das operações deverá ocorrer sempre após o fechamento da vela que confirmou a posição da Média Móvel em relação ao ponto fixo ativo.

Reversão de Operações

Sempre que houver uma operação aberta e ocorrer inversão do sinal da Média Móvel em relação ao ponto fixo ativo, o robô deverá inverter automaticamente a posição.

Exemplo:

  • Se existir uma operação de compra aberta e, após o fechamento de uma vela, a Média Móvel passar para abaixo do ponto fixo ativo, o robô deverá:

    • fechar imediatamente a compra;

    • abrir imediatamente uma venda.

Da mesma forma:

  • Se existir uma operação de venda aberta e, após o fechamento de uma vela, a Média Móvel passar para acima do ponto fixo ativo, o robô deverá:

    • fechar imediatamente a venda;

    • abrir imediatamente uma compra.

Em nenhum momento poderá existir mais de uma operação aberta simultaneamente.

Take Profit

O robô deverá possuir uma configuração para definir o valor do Take Profit em pips.

Sempre que uma operação atingir o Take Profit configurado, ela deverá ser encerrada automaticamente.

Após o encerramento da operação pelo Take Profit:

  • o ponto fixo atualmente ativo será desativado;

  • todos os demais pontos fixos voltarão a ficar disponíveis para uma nova ativação;

  • o próximo ponto fixo ativo será aquele cuja Média Móvel tocar primeiro.

Funcionalidade "Meta Final"

O robô deverá possuir uma funcionalidade chamada Meta Final.

Nessa configuração, o usuário definirá um valor de lucro em dólares, já considerando todos os custos operacionais, como spread e comissões.

O cálculo deverá considerar:

  • o lucro acumulado das operações já encerradas;

  • mais o lucro da operação atualmente aberta.

Quando esse valor atingir exatamente a Meta Final definida:

  • a operação aberta deverá ser encerrada imediatamente;

  • o ponto fixo ativo deverá ser desativado;

  • o robô deverá encerrar seu funcionamento automaticamente, não realizando novas operações.

Funcionalidade " Prejuízo máximo"

O robô deverá possuir uma configuração chamada "Prejuízo Máximo", na qual o usuário definirá o valor máximo de prejuízo acumulado em dinheiro (na moeda da conta) que o robô poderá suportar desde o momento em que foi iniciado.

O robô deverá controlar o resultado financeiro acumulado de todas as operações realizadas desde que foi ligado, considerando todos os custos operacionais, como spread, comissões e swap (quando houver).

Não importa quantas operações tenham sido realizadas. O controle será feito exclusivamente pelo prejuízo financeiro acumulado.

Quando o prejuízo acumulado atingir o valor definido na configuração Prejuízo Máximo, o robô deverá:

  • fechar imediatamente qualquer operação que estiver aberta;

  • desativar o ponto fixo que estiver ativo naquele momento;

  • reiniciar a contagem do prejuízo acumulado, iniciando um novo ciclo de controle;

  • manter todos os demais pontos fixos disponíveis para uma nova ativação;

  • aguardar até que a Moving Average toque outro ponto fixo disponível. Quando isso ocorrer, esse novo ponto será ativado e o robô voltará a operar normalmente, seguindo todas as regras da estratégia.

Regra para evitar a reativação do mesmo ponto fixo

Quando um ponto fixo for desativado por ter atingido o Prejuízo Máximo, esse mesmo ponto fixo não poderá ser reativado imediatamente.

O próximo ponto fixo ativo deverá ser, obrigatoriamente, qualquer outro ponto fixo disponível, desde que seja o primeiro a ser tocado pela Moving Average, exceto o ponto fixo que acabou de ser desativado.

Somente após a ativação de um ponto fixo diferente é que o ponto fixo anteriormente desativado voltará a ficar disponível para futuras ativações.

Essa regra tem como objetivo impedir que o robô permaneça operando repetidamente no mesmo nível de preço durante períodos de lateralização do mercado, reduzindo a possibilidade de novas sequências de prejuízos geradas pelo mesmo ponto fixo





Permanência do Ponto Fixo Ativo

Depois de ativado, o ponto fixo permanecerá ativo continuamente.

Ele somente será desativado quando ocorrer uma das seguintes situações:

  • a operação atingir o Take Profit;

  • a Meta Final for atingida;

  • o limite de perdas consecutivas definido na funcionalidade Prejuízo maáimo for alcançado.

Enquanto nenhuma dessas condições ocorrer, o ponto fixo continuará sendo utilizado para todas as entradas e saídas das operações.

Após sua desativação, todos os demais pontos fixos voltarão a ficar disponíveis, e o próximo ponto fixo ativo será aquele que for tocado primeiro pela Média Móvel.

Valor do Lote

O robô deverá permitir configurar livremente o valor do lote utilizado em todas as operações.







Visualização dos Pontos Fixos e Painel de Monitoramento

Além de toda a lógica operacional descrita anteriormente, o robô deverá possuir um sistema de visualização gráfica completo, permitindo ao usuário acompanhar, em tempo real, todos os pontos fixos gerados pela estratégia e o estado atual do robô diretamente no gráfico do MetaTrader 5.

Exibição dos Pontos Fixos

Todos os pontos fixos gerados automaticamente pelo robô deverão ser desenhados no gráfico através de linhas horizontais.

Cada linha deverá permanecer exatamente no preço correspondente ao seu ponto fixo.

Sempre que um novo ponto fixo for criado acima ou abaixo da grade existente, sua linha deverá aparecer automaticamente no gráfico. Da mesma forma, caso algum ponto seja removido ou desativado definitivamente, sua linha também deverá ser removida automaticamente.

O objetivo é que o gráfico represente fielmente, em tempo real, toda a estrutura de pontos utilizada pelo robô.


Destaque do Ponto Fixo Ativo

Como apenas um ponto fixo poderá permanecer ativo por vez, ele deverá ser facilmente identificado visualmente.

Quando um ponto fixo for ativado pela Moving Average:

  • sua linha deverá mudar automaticamente para uma cor exclusiva (por exemplo, verde);

  • sua espessura deverá ser maior que a dos demais pontos;

  • opcionalmente poderá utilizar um estilo de linha diferente (contínua, tracejada ou pontilhada).

Todos os demais pontos fixos deverão permanecer com a aparência padrão, indicando que estão inativos e disponíveis para futuras ativações.

Sempre que houver mudança do ponto fixo ativo, a identificação visual deverá ser atualizada imediatamente.


Atualização Automática da Grade

Toda alteração realizada pelo robô deverá ser refletida instantaneamente no gráfico, sem necessidade de reiniciar o Expert Advisor.

A atualização deverá ocorrer automaticamente nas seguintes situações:

  • ativação de um novo ponto fixo;

  • desativação do ponto fixo ativo;

  • criação de novos pontos acima da grade;

  • criação de novos pontos abaixo da grade;

  • encerramento por Take Profit;

  • encerramento por Meta Final;

  • encerramento por Prejuízo Máximo;

  • troca do ponto fixo ativo.


Identificação dos Pontos

Cada ponto fixo deverá possuir um identificador único para facilitar seu gerenciamento interno pelo robô.

Opcionalmente, poderá ser exibido ao lado de cada linha:

  • número do ponto;

  • preço do ponto;

  • indicação "ATIVO" quando aquele for o ponto atualmente utilizado.

Exemplo:

  • Ponto -5

  • Ponto -4

  • Ponto -3

  • Ponto -2

  • Ponto -1

  • PONTO ATIVO

  • Ponto +1

  • Ponto +2

  • Ponto +3

  • Ponto +4

  • Ponto +5


Grade Dinâmica de Pontos

Como a estratégia prevê a geração contínua de novos pontos fixos, a grade deverá crescer automaticamente conforme o mercado avançar.

Sempre que o preço ultrapassar o último ponto existente acima ou abaixo da grade:

  • um novo ponto fixo deverá ser criado automaticamente;

  • sua linha deverá aparecer imediatamente no gráfico;

  • todos os pontos deverão manter exatamente o intervalo configurado pelo usuário na opção "Intervalo entre Pontos".

Essa expansão deverá ocorrer continuamente, permitindo que a grade acompanhe toda a movimentação do mercado sem limitação prática de níveis.


Painel de Informações do Robô

O robô deverá exibir um painel informativo diretamente no gráfico, atualizado em tempo real, contendo as principais informações operacionais.

O painel deverá apresentar, no mínimo, os seguintes dados:

  • Status do robô (Operando, Aguardando Ativação, Meta Final Atingida, Prejuízo Máximo Atingido ou Desligado);

  • Ponto Fixo atualmente ativo;

  • Preço do ponto fixo ativo;

  • Quantidade total de pontos fixos gerados;

  • Valor configurado do Intervalo entre Pontos;

  • Tipo da Moving Average utilizada;

  • Período da Moving Average;

  • Valor do lote configurado;

  • Take Profit configurado;

  • Meta Final configurada;

  • Lucro acumulado no ciclo atual;

  • Prejuízo acumulado no ciclo atual;

  • Valor do Prejuízo Máximo configurado;

  • Operação atual (Compra, Venda ou Nenhuma);

  • Preço de entrada da operação atual;

  • Lucro ou prejuízo da operação aberta em tempo real;

  • Quantidade total de operações realizadas desde que o robô foi iniciado;

  • Horário da última atualização do painel.

Todas essas informações deverão ser atualizadas automaticamente sempre que ocorrer qualquer alteração operacional.


Cores Sugeridas

Para facilitar a leitura do gráfico, recomenda-se utilizar um padrão de cores:

  • Ponto Fixo Ativo: verde e linha mais espessa.

  • Pontos Fixos Inativos: cinza e linha fina.

  • Moving Average: cor configurável pelo usuário.

  • Operações de Compra: seta verde.

  • Operações de Venda: seta vermelha.

  • Fechamento por Take Profit: marcador azul.

  • Fechamento por Meta Final: marcador dourado.

  • Fechamento por Prejuízo Máximo: marcador vermelho.

Essas marcações deverão ser desenhadas automaticamente no gráfico sempre que os respectivos eventos ocorrerem.


Objetivo

Essas funcionalidades possuem finalidade exclusivamente visual e de monitoramento, não alterando nenhuma regra operacional da estratégia.

O objetivo é permitir que o usuário acompanhe, de forma clara e intuitiva, toda a execução do robô em tempo real, incluindo a posição da Moving Average, a grade de pontos fixos, o ponto atualmente ativo, as operações realizadas e o estado geral do sistema.



Parâmetros Configuráveis

O robô deverá possuir os seguintes parâmetros configuráveis:

  • Ponto Fixo Inicial

  • Intervalo entre Pontos (em pips)

  • Período da Média Móvel (Moving Average)

  • Tipo da Média Móvel (SMA, EMA, SMMA, LWMA etc.)

  • Preço aplicado da Média Móvel (Close, Open, Median, Typical, etc.)

  • Valor do Lote

  • Take Profit (em pips)

  • Meta Final (em dólares)

  • Prejuízo máximo



Responded

1
Developer 1
Rating
(611)
Projects
711
33%
Arbitration
45
49% / 42%
Overdue
14
2%
Working
2
Developer 2
Rating
(28)
Projects
34
35%
Arbitration
0
Overdue
2
6%
Free
3
Developer 3
Rating
(8)
Projects
14
21%
Arbitration
2
0% / 50%
Overdue
3
21%
Loaded
4
Developer 4
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
Published: 4 articles
5
Developer 5
Rating
(35)
Projects
61
23%
Arbitration
4
50% / 25%
Overdue
15
25%
Free
6
Developer 6
Rating
(60)
Projects
74
59%
Arbitration
4
75% / 25%
Overdue
1
1%
Loaded
7
Developer 7
Rating
(32)
Projects
55
5%
Arbitration
35
0% / 94%
Overdue
24
44%
Working
8
Developer 8
Rating
(2)
Projects
3
0%
Arbitration
0
Overdue
2
67%
Free
9
Developer 9
Rating
(549)
Projects
838
61%
Arbitration
33
27% / 45%
Overdue
24
3%
Free
Published: 1 code

Project information

Budget
100 - 200 USD
Deadline
to 30 day(s)

Customer

Placed orders1
Arbitrage count0