Pergunte! - página 136

 

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?

Bill FX:
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.

Arquivos anexados:
 
luxinterior:
Use um array e dê uma olhada na função ArraySort().

Boa sorte.

Lux

Eu 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

 
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 sua ajuda!

 
Bill FX:
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!!!

Arquivos anexados:
10p3v0.03_1.mq4  12 kb
Razão: