com respeito à programação na MQL4 Sou um verdadeiro novato, mas estou aprendendo todos os dias. Atualmente estou tentando o seguinte:
no loop principal da minha EA, quando certas condições são cumpridas, uma ordem é aberta. Esta ordem é com uma determinada entrada, stoploss e takeprofit usando a função OrderSend.
Apenas uma ordem no momento é permitida:
total = OrderTotal();
if(total < 1)
{ etc etc
O que eu gostaria de construir é que, quando o stoploss ou takeprofit do pedido for atingido, a EA espera com a aceitação de novos pedidos até que a barra horária atual (a barra dentro do stoploss ou takeprofit é atingida) termine.
O problema no momento é que, assim que o stoploss ou takeeprofit é atingido, imediatamente outra ordem é tomada no laço principal.
Qualquer um pode me ajudar a criar uma função de ranking
por exemplo, eu tenho algum valor duplo como osese:
a=3,0; b=4,0; c=5,0; d=2,0; e=1,0; f=6,0; g=0,0;
de valor maior para menor (6,0, 5,0, 4,0, 3,0, 2,0, 1,0, 0,0)
ou o valor de (f,c,b,a,d,e,g)
Portanto, os rank's devem ser assim
número do ranking: (th)
f=1; c=2; b=3; a=4; d=5; e=6; g=7;
O que eu preciso é de uma função do que retornar a classificação se eu inserir o valor
int rank (valor duplo)
{
processar todos os valores;
retorno (a classificação de um valor de todos os valores)
}
Eu sei que é fácil se apenas fizermos uma função como esta
por exemplo, o valor de "a".
int rank (valor duplo)
{
if(a>b && a>c && a>c && a>d && a>e && a>f && a>g)
retorno (1);
.
.
.
if(a<b && a<c &&& a<d &&& a<e && a<f && a<g)
retorno(7);
}
O problema é quando as variações de valor são 2 a combinação apenas algumas, mas quando as variações aumentam por exemplo 5,7 ou 10 etc., então a combinação para fazer a classificação será muito grande.
Espero que alguém possa me ajudar para este tipo de problema...
Obrigado Berfore, desculpe pelo meu pobre inglês, mas estou aprendendo...
Gosto muito desta estocada indiana, mas preciso de ajuda para mudá-la, porque preciso do alerta quando a estocada se toca sobre a área comprada sobre a área vendida. E quando ele alerta, ele pode mostrar qual moeda também.
primajaya: Cada EA tem uma lógica diferente, então o método para combinar duas EA depende de sua lógica... Então, onde estão as EA que você gostaria de combinar?
Olá primajaya,
Obrigado por seu feedback. Quero dizer que a 1ª EA é uma negociação aberta e a 2ª EA é uma negociação fechada, se a 1ª EA é uma negociação aberta e tem alguns lucros e eu quero que a 2ª EA seja uma negociação fechada com XXX lucros, então como devo fazer ? Eles são trabalho se eu me apego a 2 conversas, mas eu quero combinar 2 em 1 do que eu só preciso abrir 1 EA apenas.
Obrigado por seu feedback. Quero dizer que a 1ª EA é uma negociação aberta e a 2ª EA é uma negociação fechada, se a 1ª EA é uma negociação aberta e tem alguns lucros e eu quero que a 2ª EA seja uma negociação fechada com XXX lucros, então como devo fazer ? Eles são trabalho se eu me apego a 2 conversas, mas eu quero combinar 2 em 1 do que eu só preciso abrir 1 EA apenas.
Obrigado por sua ajuda!
Ainda não conheço a lógica da 1ª e 2ª EA para abrir comércios.
Mas talvez isto possa ajudá-lo...
Tente combinar as duas EA em uma única EA...
Assim, a EA deve ter dois sinais para abrir negócios:
1º sinal da 1ª EA e 2º sinal da 2ª EA...
você pode usar OrderMagicNumber() como a identidade para cada negociação aberta feita por dois sinais...
por exemplo:
se as negociações abertas pelo 1º sinal então -- o número mágico é 1111
se o comércio for aberto pelo 2º sinal então -- o número mágico é 2222
Portanto, se quisermos fechar o comércio a partir do segundo sinal, podemos usar a OrderMagicNumber() como identidade para fechar:
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
ordem de suspensão
Olá pessoal,
com respeito à programação na MQL4 Sou um verdadeiro novato, mas estou aprendendo todos os dias. Atualmente estou tentando o seguinte:
no loop principal da minha EA, quando certas condições são cumpridas, uma ordem é aberta. Esta ordem é com uma determinada entrada, stoploss e takeprofit usando a função OrderSend.
Apenas uma ordem no momento é permitida:
total = OrderTotal();
if(total < 1)
{ etc etc
O que eu gostaria de construir é que, quando o stoploss ou takeprofit do pedido for atingido, a EA espera com a aceitação de novos pedidos até que a barra horária atual (a barra dentro do stoploss ou takeprofit é atingida) termine.
O problema no momento é que, assim que o stoploss ou takeeprofit é atingido, imediatamente outra ordem é tomada no laço principal.
Vocês podem me ajudar, por favor?
FXX
Combinar a EA precisa de ajuda
Olá a todos,
Qualquer um sabe como combinar 2 EA diferentes em 1 EA ? Por favor, mostre-me passo a passo como fazer isso ?
Obrigado antecipadamente por sua ajuda!
Depende da lógica da EA
Cada EA tem uma lógica diferente, portanto, o método para combinar duas ea's depende de sua lógica.
Então, onde estão as EA's que você gostaria de combinar?
Olá a todos,
Qualquer um sabe como combinar 2 EA diferentes em 1 EA ? Por favor, mostre-me passo a passo como fazer isso ?
Obrigado antecipadamente por sua ajuda!Como Classificar Valores ? Necessidade de Ajuda
Qualquer um pode me ajudar a criar uma função de ranking
por exemplo, eu tenho algum valor duplo como osese:
a=3,0; b=4,0; c=5,0; d=2,0; e=1,0; f=6,0; g=0,0;
de valor maior para menor (6,0, 5,0, 4,0, 3,0, 2,0, 1,0, 0,0)
ou o valor de (f,c,b,a,d,e,g)
Portanto, os rank's devem ser assim
número do ranking: (th)
f=1; c=2; b=3; a=4; d=5; e=6; g=7;
O que eu preciso é de uma função do que retornar a classificação se eu inserir o valor
int rank (valor duplo)
{
processar todos os valores;
retorno (a classificação de um valor de todos os valores)
}
Eu sei que é fácil se apenas fizermos uma função como esta
por exemplo, o valor de "a".
int rank (valor duplo)
{
if(a>b && a>c && a>c && a>d && a>e && a>f && a>g)
retorno (1);
.
.
.
if(a<b && a<c &&& a<d &&& a<e && a<f && a<g)
retorno(7);
}
O problema é quando as variações de valor são 2 a combinação apenas algumas, mas quando as variações aumentam por exemplo 5,7 ou 10 etc., então a combinação para fazer a classificação será muito grande.
Espero que alguém possa me ajudar para este tipo de problema...
Obrigado Berfore, desculpe pelo meu pobre inglês, mas estou aprendendo...
Pj...
Use um array e dê uma olhada na função ArraySort().
Boa sorte.
Lux
Stoch OBOS
Gosto muito desta estocada indiana, mas preciso de ajuda para mudá-la, porque preciso do alerta quando a estocada se toca sobre a área comprada sobre a área vendida. E quando ele alerta, ele pode mostrar qual moeda também.
Obrigado antecipadamente.
Use um array e dê uma olhada na função ArraySort().
Boa sorte.
LuxEu tinha tentado isso, mas ainda estava confuso,
precisam de alguém que possa ensinar ou mostrar-me como fazer essa coisa.
Talvez você pudesse Lux?
Agradecemos antecipadamente
Cada EA tem uma lógica diferente, então o método para combinar duas EA depende de sua lógica... Então, onde estão as EA que você gostaria de combinar?
Olá primajaya,
Obrigado por seu feedback. Quero dizer que a 1ª EA é uma negociação aberta e a 2ª EA é uma negociação fechada, se a 1ª EA é uma negociação aberta e tem alguns lucros e eu quero que a 2ª EA seja uma negociação fechada com XXX lucros, então como devo fazer ? Eles são trabalho se eu me apego a 2 conversas, mas eu quero combinar 2 em 1 do que eu só preciso abrir 1 EA apenas.
Obrigado por sua ajuda!
Olá primajaya,
Obrigado por seu feedback. Quero dizer que a 1ª EA é uma negociação aberta e a 2ª EA é uma negociação fechada, se a 1ª EA é uma negociação aberta e tem alguns lucros e eu quero que a 2ª EA seja uma negociação fechada com XXX lucros, então como devo fazer ? Eles são trabalho se eu me apego a 2 conversas, mas eu quero combinar 2 em 1 do que eu só preciso abrir 1 EA apenas.
Obrigado por sua ajuda!Ainda não conheço a lógica da 1ª e 2ª EA para abrir comércios.
Mas talvez isto possa ajudá-lo...
Tente combinar as duas EA em uma única EA...
Assim, a EA deve ter dois sinais para abrir negócios:
1º sinal da 1ª EA e 2º sinal da 2ª EA...
você pode usar OrderMagicNumber() como a identidade para cada negociação aberta feita por dois sinais...
por exemplo:
se as negociações abertas pelo 1º sinal então -- o número mágico é 1111
se o comércio for aberto pelo 2º sinal então -- o número mágico é 2222
Portanto, se quisermos fechar o comércio a partir do segundo sinal, podemos usar a OrderMagicNumber() como identidade para fechar:
Espero que ajude...
Pj
10 pontos3
PLEAASEEE, PROGRAMADORES!
Precisamos em 10 pontos3 EA, que quando o terceiro comércio abrir, o primeiro feche, estou tentando, mas ainda está fechando todas as posições.
Na verdade, nós temos:
se (PreviousOpenOrders>OpenOrders)
{
for(cnt=OrdensTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
mode=OrderType();
if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic)
{
if (mode===OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); }
if (mode===OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); }
return(0);
}
}
}
Eu estava pensando em fazer isso:
1. mudar o número mágico para o primeiro comércio quando o segundo abrir, por exemplo, número mágico+1
2. Quando o terceiro comércio abrir, feche o primeiro, com o número mágico+1 atribuído.
Estou certo?
ou qual outra forma posso identificar o primeiro comércio aberto para fechá-lo depois?
Se você puder me orientar ou fazer as mudanças, melhor porque eu não sou programador, estou apenas aprendendo.
Esta mudança seria o começo do Holly Grail!!!