Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1396

 
Artyom Trishkin #:

Hmmm...

Ad un certo punto la chiamata di funzione viene bloccata dal sottosistema. Forse non dovresti aspettare, ma semplicemente abbandonare fino al prossimo accesso?

Il servizio accede solo quando il terminale viene avviato, o quando il servizio stesso viene avviato. Di conseguenza, se si esce, la prossima chiamata sarà al riavvio di uno dei due... ma entrambi sono fatti manualmente...

 
Alexey Viktorov #:

Il servizio accede solo quando il terminale viene avviato, o quando il servizio stesso viene avviato. Di conseguenza, se si esce, il prossimo login sarà quando si riavvia uno dei due... ma entrambi sono fatti manualmente...

Capito. Cioè, il servizio è in esecuzione in un ciclo? O in un timer?

 
Artyom Trishkin #:

Capito. Voglio dire, il servizio funziona in un ciclo? O in un timer?

Il servizio funziona come uno script. L'unica differenza è che il servizio parte con l'avvio di MT, e lo script, si sa... Di conseguenza, se qualcosa non funziona, non funzionerà finché MT non sarà riavviato. Si scopre che è auspicabile mettere in pausa e ripetere... credo di sì.

 
Alexey Viktorov #:

Il servizio funziona come uno script. L'unica differenza è che il servizio si avvia all'avvio della MT, mentre lo script, si sa... Quindi, se qualcosa non funziona, non funzionerà finché la MT non sarà riavviata. Si scopre che è auspicabile mettere in pausa e ripetere ... credo di sì.

Non hai capito la mia domanda. O forse non mi sono spiegato bene ¯_(ツ)_/¯

 
Artyom Trishkin #:

Non hai capito la mia domanda. O forse non mi sono spiegato bene ¯_(ツ)_/¯

Uno dei due. Ma il servizio non funziona nel loop e non funziona nel timer.

 
Alexey Viktorov #:

Uno dei due. Ma il servizio non funziona in un ciclo e non funziona in un timer.

Stai dicendo che si attiva solo una volta quando si avvia il terminale? No. Come allora?

 
Artyom Trishkin #:

Stai dicendo che si attiva solo una volta quando si avvia il terminale? No. Come allora?

Finché non l'ho capito o non hanno reso possibile disabilitare la visualizzazione della cronologia di trading su un grafico, ho usato questo servizio

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

Oserei dire che funziona con successo. Sono troppo pigro per cercarlo. È molto più facile ripeterlo.

Questo servizio

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

Viene stampato una volta all'avvio del terminale. Quindi è facile da controllare.

 
Alexey Viktorov #:

Finché non l'ho capito o non hanno reso possibile disabilitare la visualizzazione della storia del trading sul grafico, ho usato il seguente servizio

Oserei dire che funziona con successo. Sono troppo pigro per trovare dove ne ho scritto prima. È molto più facile ripeterlo.

Questo servizio

Viene stampato una volta all'avvio del terminale. Quindi è facile da controllare.

State dicendo che il servizio stampa SOLO una volta all'avvio del terminale? Come un copione? Solo lo script viene eseguito manualmente o programmaticamente, e il servizio viene eseguito all'avvio del terminale. È così? E sta dicendo che il servizio non funziona più? Cioè, si attiva solo UNA volta?

 
JRandomTrader #:

Per esempio, così.

Le macro sono globali.

puoi spiegare dove devi scriverli?

nella classe o nel consulente

 
Artyom Trishkin #:

Stai dicendo che il servizio viene eseguito SOLO una volta quando si avvia il terminale? Come la sceneggiatura? Solo lo script viene eseguito manualmente o programmaticamente, e il servizio viene eseguito all'avvio del terminale. È così? E sta dicendo che il servizio non funziona più? Cioè, funziona solo UNA volta?

Artem, perché a me per dimostrare qualcosa a te? Scrivi una riga e controlla.

Motivazione: