Aceitar o segundo pedido na mesma barra
7 respostas
ryanbrignac9764
8 anos atrás #114680
Tentei pesquisar nos fóruns, mas não consegui encontrar a resposta para minha pergunta.
Na parte superior de minhas REGRAS, sempre coloco "Is bar open is true" (O bar está aberto é verdadeiro) e, em seguida, listo minhas regras.
Então, eu entro no mercado ou na ordem de limite.
Portanto, se eu entrar com uma ordem de mercado quando a abertura da barra for verdadeira e, nessa mesma barra, ele atingir minha meta de lucro e sair da negociação com lucro... Como posso dizer a ele que, se durante a mesma barra o preço voltar ao preço de entrada na mesma barra, há apenas alguns segundos, e ele tiver saído com lucro, ele deverá ENTÃO entrar novamente na posição com o mesmo preço e na mesma direção em que estava?
Mas, quando a barra termina e passa para a próxima barra, não quero que ele faça a negociação.
Só quero que ele faça a segunda negociação se voltar ao meu preço de entrada depois que o primeiro preço de entrada for bem-sucedido.
R.B.
tomas262
8 anos atrás #135263
Quando você entra em uma posição usando uma ordem de mercado, pode definir uma variável waitForLimit = 1 e salvar seu preço-alvo de lucro.
Em seguida, o EA aguarda se o mercado atingir esse preço e a posição de mercado NÃO estiver estável até o fechamento da barra e coloca a ordem de limite.
Adicione a condição "if isBarOpen = true AND waitForLimit = 1" que você definiu como waitForLimit = 0 para evitar a colocação de ordem de limite após o fechamento da barra.
Observe que isso requer um backtesting preciso para obter resultados significativos
Se precisar de um exemplo para isso no WIzard, entre em contato comigo
Fx Mena
8 anos atrás #135825
MESMO problema
Preciso de uma função para verificar a última ordem fechada (a maioria das ordens fechadas manualmente, o EA abre uma nova negociação).
O que eu preciso :
COMPRAR se apenas a última ordem fechada foi VENDER
SELL se apenas a última ordem fechada foi BUY
Como adicionar ao EA?
tomas262
8 anos atrás #135835
Isso pode fazer o trabalho. Há duas funções: Last Order (Último pedido) e Last Order Today (Último pedido hoje)... depende de qual você preferir mais
Fx Mena
8 anos atrás #135847
Isso pode fazer o trabalho. Há duas funções: Last Order (Último pedido) e Last Order Today (Último pedido hoje)... depende de qual você preferir mais
Bom, isso resolveu uma parte do sistema. Se eu pur SL=0 e ativar a negociação reversa CloseSell/OpenBuy vs CLoseBuy openSell, depois de algumas negociações, o EA deixará de fazer Reset/Set traded=0 ou 1 e continuará com uma negociação (curta/longa) que não poderá ser fechada se o TP não for atingido
O problema da : Último pedido & Último pedido hoje que nos retorna a negociação ATIVA atual, não as negociações fechadas, certo?
Como modificar a seguinte função personalizada e extrair as regras de estratégia como : || ou && Para retornar as regras se a última posição fechada foi SELL ou BUY .
Fonte :
http://forum.mt5.com/showthread.php?434-Mql4-useful-functions&p=1547&viewfull=1#post1547
int sqGetLastOrderHist(int type = -1) { int ticket = -1; datetime dt = 0; int cnt = HistoryTotal(); for (int i=0; i dt) { dt = OrderCloseTime(); ticket = OrderTicket(); } } return (ticket); }
tomas262
8 anos atrás #135885
A função Last Order retorna qual foi a última ordem. Como exemplifiquei, o EA espera que a posição seja igual a zero e avalia qual foi a última negociação. Em seguida, ele negocia o oposto.
tomas262
8 anos atrás #136135
Tentei editar seu arquivo. Veja o projeto do assistente em anexo.
Basicamente, removi a condição "Market Position is Flat" e substituí "Last Order Was" por minha própria variável.
Me avise se isso ajudou
Fx Mena
8 anos atrás #136154
Muito obrigado, agora tudo mistérios e Problem resolvido com o assistente do EA.
Esse exemplo inclui todas as ações e regras necessárias para as estratégias completas.
🙂 Estou muito feliz, 1 ano tentando resolver esse problema, você merece tudo de bom Sr. Tomas
Visualizando 7 respostas - 1 até 7 (de um total de 7)