Pergunte! - página 104

 
Kalenzo:
Tente usar o NormalizeDouble(preço,Dígitos). Às vezes o preço do metatrader não é 1.2000 mas 1.20020031023012 e o resto dos dígitos é um problema para o metatrader ao fazer um pedido pendente. Use o NormalizeDouble e estará ok

Muito obrigado Kalenzo, agora está funcionando.

 

Definir dias de negociação

Eliminado

Solução encontrada!

Olá Codificadores

Tento inserir uma função no meu EA para escolher os dias de negociação.

A função para os horários de negociação funciona bem.

Para os horários de negociação que uso a seguir:

Horário de negociação de fio externo = "TRADING HOURS";

horário de negociação externo UseHourTrade = Verdadeiro;

extern int FromHourTrade = 8;

ToHourTrade externo int = 18;

e mais tarde após o início da int:

if (UseHourTrade){

if (!(Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {

Comentário ("Não chegou a hora do comércio!");

retorno(0);

Mas o que é necessário para selecionar os dias de negociação?

Quando eu defino o exterior como segue:

dias de negociação de cadeia externa = "TRADING Days" (Dias de negociação);

exterior bool UseDayTrade = Verdadeiro;

extern int FromDayTrade = " DayOfWeek";

ToDayTrade int externo = " DayOfWeek";

então eu tenho seguido duas mensagens:

DayOfWeek" -variável esperado

o que fazer?

Alguém pode me ajudar?

Obrigado por qualquer ajuda.

 

GURU!!! Por favor, ajudem!

Nevermind.....

 

Por favor, ajude a todos

tive um problema , como fazer apenas 1 posição aberta e 2 pendentes.

vamos apenas dizer Buy and Buystop , Sellstop.

eu tinha uma informação antes de alguém em mql4, ele usa :

if(compra compratoporder>0 && vendetoporder>0)return(0);

e antes disso, ele usa switch(OrderType()).

Estou confuso, onde tenho que mudar o código?

Eu sou finalizado no buystop e selltop aberto várias vezes quando eu mudo o código, enquanto que se não, ele espera até que um seja trigido , alcance seu SL ou TP e então faça um novo 2 pendente.

Meu objetivo é 1 aberto e 2 pendentes, portanto, quando o aberto alcançar o SL ou TP, um dos pendentes é trigerenciado, um não é trigerenciado será excluído. e fazer outros 2 pendentes.

e É possível colocar o número mágico na opção switch()?

Muito obrigado por sua ajuda.

 

O que é uma declaração fácil para verificar se 2 médias móveis cruzaram dentro de 5 barras antes da barra atual? Alguém pode me ajudar com isso??

Dave ...

-OR-

Como você declara 5 declarações condicionais? Se todas as 5 são aceitáveis, um valor de compra=1 é declarado.

Eu não sei se isso funcionaria abaixo?? Alguém pode comentar se isso funcionaria, se não, como deve ser declarado?

se(Condição1)

if(Condição2)

if(Condição3)

if(Condiition4)

if(Condição5)

{

buyvalue=1;

}

Dave

 
if(Condition1)

if(Condition2)

if(Condition3)

if(Condiition4)

if(Condition5)

{

buyvalue=1;

}

Esta é a maneira mais econômica e rápida de escrever testes multicondicionais.

É a mais rápida porque se a condição 1 não for preenchida, as condições 2, 3, ... não são avaliadas, o que não é o caso se você colocar "&&" operador entre elas.

Portanto, comece com a condição mais provável de não ser freqüente.

Portanto, isto funcionará sem dúvida.

Agora, como você está frequentemente perguntando se algo vai funcionar, o melhor é tentar, é uma boa maneira de aprender também.

Abraço.

 
Dave137:
O que é uma declaração fácil para verificar se 2 médias móveis cruzaram dentro de 5 barras antes da barra atual? Alguém pode me ajudar com isto??Dave

ma1_0 = iMA(....,0);

ma2_0 = iMA(....,0);

ma1_5 = iMA(....,5);

ma2_5 = iMA(....,5);

if((ma1_0 - ma2_0) * (ma1_5 - ma2_5) < 0) cross = true;
 

Como eu...

Olá,

Por favor, pode me mostrar se quiser, como posso dizer:-

"se a posição anterior se fechou na vela "0" ou vela "1", então não abra outra posição nessa mesma vela" ou, mesmo que a vela "0" preencha as condições necessárias para abrir outra posição... se a posição anterior se fechou nessa vela, então impeça-a de abrir outra posição, aguarde que as condições estejam de novo certas.

Posso dizer isto em inglês, mas ainda sou um pouco novo demais para mql4 isto.

obrigado

amatrader

 

Você pode usar o seguinte trecho de código:

bool last_order_closed_rather_recently = false;

for ( int i = OrdersHistoryTotal() - 1; i >= 0;i-- ) {

if ( ! OrderSelect( i, SELECT_BY_POS, MODE_HISTORY ) ) continue;

if ( OrderCloseTime() >= Time[ 1 ] ) {

last_order_closed_rather_recently = true;

break;

}

}

[/PHP]

after which you have the bool variable "last_order_closed_rather_recently" telling whether there was an order closed after the opening of bar 1. Then somewhere you'd have:

[PHP]if ( last_order_closed_rather_recently ) return( 0 );

antes de entrar em uma nova profissão.

 

Muito obrigado, senhor, muito apreciado.