VasiliKolchanov: Olá a todos, vocês poderiam me dizer como pausar uma função, não toda a EA, mas apenas uma função, por exemplo, um alerta?
Como é isso? Até agora, apenas uma situação bastante cômica aparece: o homem continua, mas deixe-o deixar sua cabeça neste lugar por um tempo. Depois a traremos de volta.
VasiliKolchanov: Olá a todos! Poderiam me dizer como pausar uma função, não toda a EA, mas apenas uma função, por exemplo, alertas?
Você pode fazer tudo com um programa que pode ser descrito com palavras, em sua pergunta, você descreveu o que tem que fazer. É assim que se faz: você descreve a variável global (bem, quase no topo do programa) no programa: bool pauza=false; Quando é falsa - a função funciona, verdadeira - a função é pausada. Agora a função deve reagir ao pauza. Para isso, ou acrescente se(pauza)retornar; no início da função, ou algo semelhante no local de chamada da função.
Permanece na função principal para verificar a condição e administrar a função através da variável pauza.
Se você precisar controlar de fora do programa (de outro script, Expert Advisor, indicador), então use a variável global do terminal
Como é isso? Até agora, apenas uma situação bastante cômica aparece: o homem continua, mas deixe-o deixar sua cabeça neste lugar por um tempo. Depois a traremos de volta.
Acionei o alerta a um determinado nível de preço, há muitos instrumentos e o preço não se afastará imediatamente do nível de alerta, é claro que continuará perseguindo e perseguindo. Você pode desativar o alerta usando a bandeira, mas como há muitos instrumentos, é fácil esquecer de ativar o alerta, então para isso preciso desativá-lo temporariamente e ativá-lo (ou melhor, sua função) novamente após um período de tempo especificado.
VasiliKolchanov: Tenho um alerta disparado a um determinado nível de preço, há muitos instrumentos, e o preço não se afastará imediatamente do nível de disparo do alerta, é claro que cortará e cortará mais. Você pode desativar o alerta usando uma bandeira, mas como há muitos instrumentos, é fácil esquecer de ativar o alerta, então preciso desativá-lo temporariamente e ativá-lo (ou melhor, sua função) após um período de tempo especificado.
Para este caso, você pode definir um período de acionamento do Alerta. Digamos em segundos:
inputuint i_uAlertPeriod = 120; // Период отображения Alert, сек.
...
void DoAlert(string sText)
{
staticdatetime dtLastTime = 0;
if (TimeCurrent() - dtLastTime < i_uAlertPeriod)
return;
dtLastTime = TimeCurrent();
Alert(sText);
}
Para este caso, você pode definir um período de acionamento do Alerta. Digamos em segundos:
Agradeço pela resposta, apenas uma pergunta, não será um atraso de ação, ou seja, durante a pausa os alertas se acumularão a cada tique, e quando o tempo expirar a EA ainda me dará (todos acumulados) ? Pode parecer ridículo, mas desculpe novato - estou aprendendo.
Tudo isso é bastante viável
Olá a todos, vocês poderiam me dizer como pausar uma função, não toda a EA, mas apenas uma função, por exemplo, um alerta?
Como é isso? Até agora, apenas uma situação bastante cômica aparece: o homem continua, mas deixe-o deixar sua cabeça neste lugar por um tempo. Depois a traremos de volta.
Provavelmente algo mais está destinado.
Olá a todos! Poderiam me dizer como pausar uma função, não toda a EA, mas apenas uma função, por exemplo, alertas?
Você pode fazer tudo com um programa que pode ser descrito com palavras, em sua pergunta, você descreveu o que tem que fazer.
É assim que se faz: você descreve a variável global (bem, quase no topo do programa) no programa: bool pauza=false;
Quando é falsa - a função funciona, verdadeira - a função é pausada.
Agora a função deve reagir ao pauza.
Para isso, ou acrescente se(pauza)retornar; no início da função, ou algo semelhante no local de chamada da função.
Permanece na função principal para verificar a condição e administrar a função através da variável pauza.
Se você precisar controlar de fora do programa (de outro script, Expert Advisor, indicador), então use a variável global do terminal
Como é isso? Até agora, apenas uma situação bastante cômica aparece: o homem continua, mas deixe-o deixar sua cabeça neste lugar por um tempo. Depois a traremos de volta.
Deve ser algo mais.
Tenho um alerta disparado a um determinado nível de preço, há muitos instrumentos, e o preço não se afastará imediatamente do nível de disparo do alerta, é claro que cortará e cortará mais. Você pode desativar o alerta usando uma bandeira, mas como há muitos instrumentos, é fácil esquecer de ativar o alerta, então preciso desativá-lo temporariamente e ativá-lo (ou melhor, sua função) após um período de tempo especificado.
Para este caso, você pode definir um período de acionamento do Alerta. Digamos em segundos:
Preciso pegar dados do último comércio fechado, mais precisamente, preciso de muito valor, como posso registrar isso em Mt4
Procurei em todos os lugares, há um para Mt5, mas não para Mt4
Preciso pegar dados do último comércio fechado, mais precisamente, preciso de muito valor, como posso registrar isso em Mt4
Procurei em todos os lugares, há um para Mt5, mas não para Mt4
Na verdade deveria ser o contrário)
Para este caso, você pode definir um período de acionamento do Alerta. Digamos em segundos: