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

Specifiche

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.

Con risposta

1
Sviluppatore 1
Valutazioni
(2423)
Progetti
3045
66%
Arbitraggio
77
48% / 14%
In ritardo
340
11%
Gratuito
2
Sviluppatore 2
Valutazioni
(11)
Progetti
17
59%
Arbitraggio
2
0% / 100%
In ritardo
2
12%
Gratuito
3
Sviluppatore 3
Valutazioni
(253)
Progetti
408
38%
Arbitraggio
86
43% / 19%
In ritardo
70
17%
Caricato
4
Sviluppatore 4
Valutazioni
Progetti
0
0%
Arbitraggio
0
In ritardo
0
Gratuito
5
Sviluppatore 5
Valutazioni
(475)
Progetti
504
53%
Arbitraggio
10
60% / 20%
In ritardo
3
1%
Gratuito
6
Sviluppatore 6
Valutazioni
(563)
Progetti
932
47%
Arbitraggio
301
59% / 25%
In ritardo
124
13%
In elaborazione
Ordini simili
Desejo criar um site, onde, extraia informações da B³, passe-as pelo algoritmo que eu desenvolvi e, apresente o resultado ao usuário. Ele deve possuir uma página de demonstração para não assinantes e uma página de análise para assinantes. Deve apresentar os 5 melhores e os 5 piores investimentos do mês corrente
//+------------------------------------------------------------------+ //| 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

Informazioni sul progetto

Budget
30 - 200 USD
Per lo sviluppatore
27 - 180 USD
Scadenze
a 90 giorno(i)