In MT4 c'è un modo per rilevare se un EA è già in esecuzione su un altro grafico?
Saluti
Scoobs.
Publi |
Publi |
In MT4 c'è un modo per rilevare se un EA è già in esecuzione su un altro grafico?
Saluti
Scoobs.
Vai al grafico della coppia e guarda nell'angolo a destra. Se c'è un'icona, questo è per l'EA. Come la scelta del menu Finestra ha una scelta chiamata più finestre se hai molti grafici aperti. Ti fornirà un elenco delle coppie e il nome di qualsiasi EA associato a quel grafico.
Forse non ho spiegato molto bene. Voglio che l'EA controlli automaticamente per vedere se non è già cario e in esecuzione su un altro grafico. Scoobs.Originariamente Scritto da ;
Non penso che esista una funzione come IsTesting () o IsDemo (). Puoi farlo con un po 'di codice aggiuntivo usando una variabile Globale che memorizza il nome dell'EA e la coppia di valute. Un altro EA potrebbe verificare l'esistenza della variabile.
Pensavo che la variabile globale fosse vista solo da un'istanza EA e non da altri?Originariamente Scritto da ;
una vera variabile globale è disponibile per tutto ciò che riguarda la piattaforma su quel computer ..... come ha detto il codemiester, il global vairable potrebbe essere impostato .... l'EA potrebbe guardare su init e vedere cosa sta attualmente girando sulla piattaforma ... .. poi ti avverto se è necessario ..... a volte lo stesso EA è richiesto più volte sulla stessa coppia e periodo di tempo ....../---/--- puoi anche programmare per diverse piattaforme in esecuzione su diversi computer in diversi paesi per essere in grado di dire se gli altri sono in esecuzione e solo quello che è ..... così, e questo è un esempio estremo, se il computer in esecuzione a Mosca ha perso la connessione a Internet, quello a Los Angeles sarebbe vedere e prendere in consegna ..... se entrambi perdessero la connessione, un'altra in Austria potrebbe prendere il controllo ...... e così via ...... backup ridondanti ... l'uso pratico sarebbe se tu avessi computer nel tuo ufficio, casa tua e case del figlio ...... h
C'è un conflitto confuso nella terminologia. Non sono realmente variabili nel senso consueto (dichiarate nel codice), queste altre variabili globali sono coppie nome-valore a cui è possibile accedere tramite un'API speciale, sono accessibili da tutti gli EA nel terminale in esecuzione, sono persistenti su disco e sopravvivere anche a un arresto impuro (crash). Sono accessibili con GlobalVariableSet (), GlobalVariableGet () e alcune altre funzioni che iniziano con GlobalVariable *. Avrebbero dovuto dare loro un nome diverso per evitare questa confusione.Originariamente Scritto da ;
Pensi che il seguente potrebbe funzionare? if (CheckInstance) {double EA_RUNNING = GlobalVariableGet (WindowExpertName ()); if (EA_RUNNING == 0) {GlobalVariableSet (WindowExpertName (), 1); CheckInstance = false; } if (EA_RUNNING! = 0) {return (0); }}Originariamente Scritto da ;
Scooby, vorrei usare GlobalVariableCheck piuttosto che Get. ?? anche importante ricordare di cancellare la variabile globale su deinit. Sto lavorando ad un EA nel forum indo che fa questo. Verifica la presenza dell'EA sulla stessa coppiaTF e rimuove se stesso dal grafico corrente se risulta in esecuzione.
1 Attachment (s) Ok ho fatto in questo modo e sembra funzionare molto bene. Grazie per l'aiuto di tutti. Scoobs.
https://www.forexmad.com/attachments...5576789423.mq4