Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 249

 
Sepulca:

Talvez seja melhor assim.

Basta trocar de lugar. Hora()>OpenHHH mais vezes do que hora e minutos.
 
artmedia70:
Apenas trocar de lugar. Ainda assim, Hora()>OpenHHH mais vezes do que hora e minutos.


Você acha que isso vai aumentar a velocidade da EA? Eu me pergunto, talvez... Francamente falando, eu nunca pensei em ordem de condições no IF...)
 
Sepulca:

Você acha que isso vai aumentar a velocidade da EA? Interessante, talvez... Honestamente, nunca pensei na ordem de estabelecer condições no IF...)
Bem... Não estou falando de um grande aumento, mas mesmo assim... até que o terminal atualizado com o novo MQL4 seja lançado, todas as condições lógicas são lidas até o final, mesmo que a primeira seja falsa
 
Sepulca:


Tudo parece estar correto, deve funcionar. Tentei seu código no meu - funciona com minutos. Mas somente das 14:25 às 14:59, das 15:25 às 15:59 etc.


Obrigado pela pronta resposta, mas - infelizmente, algo não está funcionando... O código só funciona desta forma, tanto no corpo do roteiro quanto no corpo da EA. Pelo tempo e funcionalidade - tudo está bem. As encomendas são feitas apenas por relógio!
int start()
{
int OpenHH=14,OpenMM=25;
bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH ) // В назначенный час
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}

Mas assim que eu adicionar minutos ( TimeMinute(TimeCurrent())) >= OpenMM ) - sem resultado.

A EA também se recusa a fazer pedidos por minutos ao usar a função StrToTime().

Mais uma vez, obrigado... Vou continuar cavando...

 
Sepulca:

Talvez seja melhor assim.

Nah... Isto também não funciona...

Mesmo quando uso outra função StrToTime() - se eu especificar tempo em horas inteiras - tudo está bem, mas assim que eu acrescentar minutos - nenhum resultado. Embora, como escrevi no 1º correio, as encomendas fechem às 23h45 das sextas-feiras sem qualquer problema.

bool Trade=true;

string OpenTime = "14:00"; // Вот так работает!!!

string OpenTime = "14:25"; // А вот так - не работает!!!

if ( StrToTime(OpenTime) == TimeCurrent() && Trade )

{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}

 
Crosswert:

Nah... Isto também não funciona...

Mesmo quando se usa outra função StrToTime() - se eu especificar o tempo em horas inteiras - tudo está bem, mas assim que são adicionados minutos - nenhum resultado. Embora, como escrevi no 1º correio, as encomendas fechem às 23h45 das sextas-feiras sem nenhum problema.

bool Trade=true;

string OpenTime = "14:00"; // Вот так работает!!!

string OpenTime = "14:25"; // А вот так - не работает!!!

if ( StrToTime(OpenTime) == TimeCurrent() && Trade )

{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}


Eu não sei... Este código funciona para mim também....

 
Como você o testa? Se, por exemplo, no H1 e a preços de abertura, provavelmente não vai funcionar.
 
Sepulca:
Como você o testa? Se, por exemplo, no H1 e a preços de abertura, provavelmente não vai funcionar
Aconselhamento para testar a preços de abertura na ata.
 
Sepulca:
Como você testa? Se, por exemplo, no H1 e a preços de abertura, provavelmente não funcionará.

Veja, é tão simples quanto isso... A ata deve ser um múltiplo de TF ...

Agora / se ( TimeCurrent() == StrToTime(OpenTime) && Trade ), se OpenTime = 14:25 / funcionará, mas somente em TF=M1 e M5 ... As ordens de abertura de função precisam de citações atuais, mas as ordens de fechamento de função não precisam delas...

Eu perdi este ponto de alguma forma (por causa da minha inexperiência).

Muito obrigado, eu já resolvi isso...

 

Sepulca:

Como você testa? Se, por exemplo, no H1 e a preços de abertura, provavelmente não vai funcionar.


Ha ha... E aqui está uma mentira...

O problema acabou se revelando na função OpenOrders(). Esqueci completamente de remover o controle da abertura do pedido em caso de quebra de uma vela (barra):

if (Volume[0] > 1) return;

Então, no que a TF, a Expert Advisor, estava testando, estava abrindo ordens naquelas atas...

Estúpido em geral, em uma difícil...

Obrigado...