Preciso de um expert advisor que utiliza preço de fechamento do dia anterior e preço de abertura do dia atual para a tomada de posição

Termos de Referência

Versão: MT5

Mercado: B3 

IMPORTANTE: O Código fonte do EA deve ser fornecido junto com o EA.

Boa noite,

Preciso de um robô que execute ordens assim que o mercado sai do leilão. O funcionamento é muito simples, se o papel abrir com uma variação de x,xx % positiva tenho um sinal de venda, o robô vende a mercado na abertura e meu alvo é y,yy% do tamanho do gap, ou seja y,yy % de x,xx %. Vice-versa, se temos uma abertura em um preço mais baixo que o de fechamento do dia anterior, então iremos entrar comprados. Vamos a um exemplo que acredito que ficará mais compreensível:

Suponhamos que o robô iria operar no dia de hoje (29/10/2019):

Capital disponível: R$ 100.000,00


TICKER: PETR4

Preço de fechamento do dia anterior (28/10/2019): R$ 29.60

Preço de abertura do dia de operação (29/10/2019): R$ 29.40

GAP Abertura = 29.40/29.60 = -0.676%


Configuração do robô: 

1- Tamanho do gap: >= R$ 0,10 (quero que seja possível colocar também valor %, no caso seria >= 0.10/29,60 = 0.338%)

2- Alvo da operação: 1,00 * GAP (sempre em relação ao tamanho do gap, neste exemplo seria buscar R$ 0.20 ou seja, 0.676%)

3- Tamanho da mão: 20% do capital (20.000,00)


Operação esperada:

Já que o GAP é de baixa, ou seja, o preço de abertura do dia de hoje é menor que o preço de fechamento do dia de ontem o robô deverá entrar comprado.
Portanto o robô abre uma posição a mercado no momento em que a ação PETR4 sair do leilão. Comprando R$ 20000,00/R$29,60 = 675, arredondando para baixo, o robô entraria comprado em 600 açoes de PETR4 a um preço de R$29,40.

Imediatamente o robô já enviaria a ordem Take Profit, ou seja, mirando 1,00*GAP = 1,00*R$ 0,20 = 0,20. Sendo assim, colocaria uma ordem de venda de 600 ações a um preço de R$ 29,60.

Se a ordem não for executada até 16:40, sair da posição a mercado. Se a ordem for executada, porém apenas paricalmente (exemplo: vendeu 500 ações apenas) o robô deverá executar uma ordem a mercado saindo do restante da posição daquele papel.

O robô deve ser capaz de fazer isto em até 5 papéis diferentes sem que influenciem os comportamentos mutuamente. Ou seja, cada papel opera independentemente. 
O robô deve ser capaz de não ser influenciado caso uma posição seja aberta em outro terminal do MT5 na mesma conta, por exemplo, se eu abrir uma posição em PETR4 pelo celular enquanto o terminal do meu computador executa o robô, a minha posição pelo celular e pelo computador deverão ser independentes.

Além disso necessito de um botão de pânico, que quando pressionado, verifica as posições em cada um dos papéis escolhidos para se operar e executa uma ordem de saída das posições (zeragem de pânico).

Listo agora o conteúdo do painel de controle:

Botão Pânico -> Verifica as posições abertas e zera todas elas.

Botão de seleção de papéis -> Até 5 TICKERS digitando o código de negociação e adicionando numa lista que é mostrada no menu ao lado, exemplo: PETR3, GGBR4, VALE3, ABEV3, EMBR3, etc...

Tela de STATUS: Mostra todas as posições abertas pelo robô, seu atual GAIN ou LOSS e a distância para o alvo.

Tela de configurações contendo:

O tamanho mínimo da diferença entre o preço de abertura do dia atual e o preço de fechamento do dia anterior para que o robô opere naquele TICKER. (Sendo possível escolher entre diferença % ou diferença absoluta em R$ e sendo possível escolher o valor 0,00, ou seja, entrar em qualquer tamanho de gap e no caso de não haver diferença entre os preços o robô deverá entrar comprado, buscando um alvo determinado para cada papel)

Alvo da operação: qual será o preço que o papel enviará a ordem take profit (sempre em relação à diferença de preço observada no dia em relação ao preço de fechamento do dia anterior)

Tamanho da mão para cada um dos papéis: sempre em relação ao capital disponível.


Se possível desejo que seja possível fazer um backtest desta estratégia selecionando um papel específico e configurando o robô.


Acredito que dá para mensurar o tamanho do trabalho com esta explicação. Qualquer dúvida estou à disposição.

Respondido

1
Desenvolvedor 1
Classificação
(2423)
Projetos
3045
66%
Arbitragem
77
48% / 14%
Expirado
340
11%
Livre
2
Desenvolvedor 2
Classificação
(11)
Projetos
17
59%
Arbitragem
2
0% / 100%
Expirado
2
12%
Livre
3
Desenvolvedor 3
Classificação
(253)
Projetos
408
38%
Arbitragem
86
43% / 19%
Expirado
70
17%
Carregado
4
Desenvolvedor 4
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
5
Desenvolvedor 5
Classificação
(475)
Projetos
504
53%
Arbitragem
10
60% / 20%
Expirado
3
1%
Livre
6
Desenvolvedor 6
Classificação
(563)
Projetos
932
47%
Arbitragem
301
59% / 25%
Expirado
124
13%
Trabalhando
Pedidos semelhantes
Olá Já possuo um código de um EA que opera entrando e invertendo o movimento conforme o rompimento do candle. Ou seja quando o preço rompe a maxima/minima anterior, ele entra na direção do movimento. Já tenho esse código, preciso que somente seja otimizado, pois eu mesmo quem fiz. Porém minha solicitação é que ele rode em renko também, pois não consigo fazer ele rodar em renko, somente em candle, preciso que o
Hello. I open this work with the intention of changing the indicator that is present in my EA code. This is an EMA 200 code, called STR-EMA. I will send a FINAL-EMA file for the exchange to take place. Furthermore, I would like a simple modification to FINAL-EMA, which is the possibility of changing the period in X candles (it is currently set to pattern 200) Please note that the functionality of the EA should not be
//+------------------------------------------------------------------+ //| SimpleEA.mq5| //| Copyright 2023, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2023, MetaQuotes Software Corp." #property link " https://www.mql5.com " #property version "1.00" #property strict input int FastMAPeriod = 12; // Período da média

Informações sobre o projeto

Orçamento
30 - 200 USD
Desenvolvedor
27 - 180 USD
Prazo
para 90 dias