작업 종료됨
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
명시
Olá.
Preciso da criação de um expert advisor que tenha as seguintes funções para rodar em especial no ativo BRA50 da corretora Activtrades, em regime de Swing Trade:
1) Opera somente na posição "comprada"
2) O robô abre a primeira de todas as compras no preço em que o ativo está e as demais compras a cada queda de determinado número de pontos no índice negociado. Por exemplo, o robô abre a primeira posição comprada de X lotes do BRA50 assim que inicia a operação, no preço em que o ativo está. Se houver uma queda de 200 pontos, o robô abre mais uma compra de X lotes. Assim, se a operação começa quando o ativo valia 120.000 pontos, se o índice foi para 119.800, abre uma outra compra; se for para 119.600, abre-se outra compra. E assim por diante.
3) Cada entrada deve ter um TP fixo em pontos, contados a partir do preço de entrada. Assim, por exemplo, se for um TP de 200 pontos, a compra em 119.600 fecha em 119.800, a compra em 119.800 fecha em 120.000, e assim por diante. Se o índice subir e o TP da primeira compra for atingido, o robô deve reconhecer automaticamente que deve abrir uma nova compra no preço vigente do ativo.
4) A partir de um determinado número de operações abertas, o robô automaticamente começa a entrar com um lote menor. Por exemplo, a partir de 100 operações abertas, começa a abrir posições não mais com lote de X, mas X/2, por exemplo.
5) E depois de atingir determinado número de posições abertas com lote de X/2, deve reconhecer isso automaticamente e começar abrir um número de posições X/3.
6) O robô deve lidar da seguinte forma com os gaps. Gap de baixa na abertura: por exemplo, índice tinha fechado no dia anterior em 115.000 e abre em 112.000. Um gap de 3.000 pontos de baixa. O robô deve reconhecer que há um espaço de 3.000 pontos em que não foram abertas posições, e assim começar a abrir posições a partir de 112.000. Se estiver programado para abrir com lote X a cada 200, vai abrir em 112.000, 111.800, 111.600, etc. Se o índice abre em 112.000, mas começa a subir, o EA deve reconhecer que não foram abertas posições entre 115.000 e 112.000 e começar a abri-las. Assim, se o índice abre em 112.000 e pega o TP de 200 pontos, no exemplo, em 112.200, o EA deve abrir outra posição no 112.200 com TP de 112.400, e assim por diante. No caso de gap de alta, o EA deve fechar as posições que estavam compradas mais abaixo com um TP ainda mais elevado. Assim, se a última posição comprada no dia anterior era em 112.000 e o índice abre o dia seguinte em 114.000, as operações todas entre 112.000 e 113.800 (essa última tinha o TP justamente em 114.000) devem ser fechadas, sendo que a operação comprada em 112.000 que tinha o TP em 112.200 (no exemplo) vai fechar não no TP 112.200, mas no TP 114.000, e assim por diante, gerando um lucro maior.
7) O robô deve ter a função de, ao reconhecer que o open balance atingiu determinado percentual em relação ao saldo, abrir automaticamente uma posição vendida do tamanho de todos os lotes comprados no ativo, para travar a conta. Assim, por exemplo, ao se atingir um "open balance" de 60% da conta, que tem 300X de lotes comprados no ativo, o robô abre automaticamente uma venda de 300 lotes de X no mesmo ativo.
8) Desenvolvimento do painel com as informações de lucro, posição, quantidade de contratos, posições abertas.
9) Por fim, deve ser desenvolvida uma boleta para que o usuário possa atuar manualmente, no caso em que tiver que fazer uma rolagem se estiver posicionado em um ativo com vigência determinada.
10) Robô precisa ter magic number.