Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1396

 
Artyom Trishkin #:

Hmmm...

A dada altura, a chamada de função é bloqueada pelo subsistema. Talvez não devesse esperar, mas simplesmente desistir até ao próximo login?

O serviço só entra no sistema quando o terminal é iniciado, ou quando o próprio serviço é iniciado. Consequentemente, se sair, a próxima chamada será no reinício de uma das duas... mas ambas são feitas manualmente...

 
Alexey Viktorov #:

O serviço só entra no sistema quando o terminal é iniciado, ou quando o próprio serviço é iniciado. Consequentemente, se sair, o próximo login será quando reiniciar um dos dois... mas ambos são feitos manualmente...

Já está. Isto é, o serviço está a funcionar em loop? Ou num temporizador?

 
Artyom Trishkin #:

Já está. Quer dizer, o serviço funciona em loop? Ou num temporizador?

O serviço funciona como um guião. A única diferença é que o serviço começa com o início do MT, enquanto o guião, sabe... Assim, se algo não funcionar, não funcionará até que o MT seja reiniciado. Acontece que é desejável fazer uma pausa e repetir... Penso que sim.

 
Alexey Viktorov #:

O serviço funciona como um guião. A única diferença é que o serviço começa quando o MT começa, enquanto o guião... Por isso, se algo não funcionar, não funcionará até que o MT seja reiniciado. Acontece que é desejável fazer uma pausa e repetir ... Penso que sim.

Não compreendeu a minha pergunta. Ou talvez não me esteja a fazer entender ¯\_(ツ)_/¯

 
Artyom Trishkin #:

Não compreendeu a minha pergunta. Ou talvez não me esteja a fazer entender ¯\_(ツ)_/¯

Uma das duas. Mas o serviço não funciona no laço e não funciona no temporizador.

 
Alexey Viktorov #:

Um dos dois. Mas o serviço não funciona em loop e não funciona num temporizador.

Está a dizer que só se activa uma vez quando se liga o terminal? Não. Então como?

 
Artyom Trishkin #:

Está a dizer que só se activa uma vez quando se liga o terminal? Não. Então como?

Até que o descobri ou eles tornaram possível desactivar a exibição do histórico comercial num gráfico, tenho utilizado este serviço

//+------------------------------------------------------------------+
//| Service program start function                                   |
//+------------------------------------------------------------------+
void OnStart()
 {
  long currChart = ChartNext(0);
  while(currChart >= 0)
   {
    ObjectsDeleteAll(currChart, "autotrade");
    currChart = ChartNext(currChart);
   }
 }
//+------------------------------------------------------------------+

Atrevo-me a dizer que funciona com sucesso. Sou demasiado preguiçoso para o procurar. É muito mais fácil repeti-lo.

Este serviço

//+------------------------------------------------------------------+
//| Service program start function                                   |
//+------------------------------------------------------------------+
void OnStart()
 {
  Print("Запуск произведён успешно");
 }
//+------------------------------------------------------------------+

Imprime-se uma vez quando se inicia o terminal. Portanto, é fácil de verificar.

 
Alexey Viktorov #:

Até o descobrir ou até que tornaram possível desactivar a exibição do histórico de negociação no gráfico, utilizei o seguinte serviço

Atrevo-me a dizer que funciona com sucesso. Sou demasiado preguiçoso para encontrar onde escrevi sobre isso antes. É muito mais fácil repeti-lo.

Este serviço

Imprime-se uma vez no arranque do terminal. Por isso, é fácil de verificar.

Está a dizer que o serviço imprime SOMENTE uma vez no início do terminal? Como um guião? Apenas o script é executado manualmente ou programmaticamente, e o serviço é executado no arranque do terminal. É assim? E, está a dizer que o serviço já não funciona? Ou seja, é desencadeada apenas UMA vez?

 
JRandomTrader #:

Por exemplo, como este.

As macros são globais.

pode explicar onde precisa de os escrever?

na classe ou no conselheiro

 
Artyom Trishkin #:

Está a dizer que o serviço é executado SOMENTE uma vez quando se liga o terminal? Como o guião? Apenas o script é executado manualmente ou programmaticamente, e o serviço é executado quando o terminal é inicializado. É assim? E, está a dizer que o serviço já não funciona? Ou seja, funciona apenas UMA VEZ?

Artem, bem, porquê provar-vos algo? Escrever uma linha e verificar.