Come assicurarsi che l'EA funzioni solo sul grafico in cui è stato lanciato per la prima volta - pagina 6

 

ForexTools:

Poiché gli oggetti del grafico e le variabili globali devono sopravvivere sia ai riavvii che alle ricompilazioni - il controllo funzionerà sempre correttamente. a meno che non si cancelli manualmente uno dei due oggetti globali dalla lista degli oggetti - ma questo è quasi paranoico :)))

Basta sostituire la variabile globale con qualcosa di più affidabile. Ma sembra essere lo stesso.
 
sanyooooook:
Quando il terminale si blocca, gli oggetti grafici creati nell'ultima sessione non vengono salvati. Correggetemi se sbaglio.


Sì, non lo fanno. Ma la dichiarazione del problema qui non è completa. Dobbiamo essere più specifici.

Se, per esempio, vogliamo collegare gli indicatori - Expert Advisor, l'oggetto grafico dovrebbe essere creato dagli indicatori. Questa sarà una connessione robusta.

Se volete solo legarvi a una particolare finestra, diciamo a un certo timeframe, allora dovreste usare questa caratteristica come attributo identificativo - il timeframe.

Ma se avete bisogno di una resistenza totale alle esplosioni nucleari, allora solo il lancio con i parametri della linea di comando vi aiuterà.

 
sanyooooook:
Quando il terminale va giù...

Beh, in QUESTO caso nulla è garantito.

In linea di principio - la soluzione con l'oggetto etichetta e una variabile globale va bene, con una buona rete di sicurezza. non permetterà di partire una seconda volta, e mi sgriderò i messaggi in modo da non dimenticare di cancellarlo e la seconda volta né al crash né al riavvio del terminale ci saranno due copie ;)

 
TheXpert:
Basta sostituire la variabile globale con qualcosa di più affidabile. Ma sembra essere lo stesso.

Perché non ti piacciono le variabili globali? Beh, a volte scompaiono :) Anche se sono riscrivibili :))) Beh, cosa vuoi, è un prodotto, è modellato. Bisogna solo tenerne conto nell'algoritmo. I file, a proposito, possono anche scomparire quando il file system fallisce.
 

Opzione 1 (per gli utenti sani di mente): creare una variabile globale all'avvio di Expert Advisor. Se viene rilevata una variabile globale all'avvio, si apre la casella di messaggio "Tra la la... L'esperto è bloccato, permette una sola istanza, rimuovere il superfluo".

Variante 2 (se i servizi di programmazione sono forniti a pazienti psichiatrici): PostMessageA(,WM_CLOSE,,); - uccidere la finestra con EA superfluo.

 

Integer:

Variante 2 (se i servizi di programmazione sono resi ai pazienti della clinica psichiatrica): PostMessageA(,WM_CLOSE,,); - chiudere la finestra con EA inutile.

Troppo crudele - è più facile fare Expert Advisors come uno script in loop - l'effetto è lo stesso. Cavolo, dovrò riavviarlo manualmente... Chiuderlo è troppo brutale comunque :)
 
ForexTools:

Perché è esattamente quello che voglio una "raccomandazione di soluzione". è quello che ho chiesto nel mio primo post - ecco perché ho preso anche la tua idea in questo modo.

ed è per questo che vedo la validità di molte "idee" anche di DOTO come loro..... ;)

se mi sbaglio su di te - scrivi del codice EA che non fa altro che impedire l'esecuzione della tua seconda copia. controlla che funzioni davvero quando ricompili e riavvii il terminale e posta il codice qui - tutto andrà a posto ;)

Quindi mi stai offrendo di lavorare per te. Perché non mi dice un prezzo?
 
TheXpert:
Troppo crudele - è più facile fare gli EA come uno script in loop - stesso effetto. Cavolo, allora dovresti riavviarlo manualmente... È troppo brutale per chiudere comunque :)


Naturalmente si chiude troppo forte, ma si chiude :)

 
Integer:
Se i servizi di programmazione sono forniti a pazienti in un ospedale psichiatrico

:)))))))

ma tuttavia: creato una variabile globale, la seconda esecuzione di EA ha controllato la sua presenza - non è partita. dopo un minuto il terminale è andato in crash ma: la variabile globale è rimasta.

quando si riavvia il terminale, una sola copia controlla se esiste e NON parte. quindi l'oggetto sul grafico è ancora necessario per identificare il "suo grafico" e partire.

 
Candid:
Quindi mi state offrendo di lavorare per voi. Perché non mi dice il prezzo?

Rilassati ;)

Comunico su questo forum con i colleghi artigiani. quelli che pensano di potermi aiutare - aiutano. quelli che vogliono soldi per il loro aiuto - lo scrivono e io decido se pagarmi o no. ci sono stati casi (e più di una volta) in cui ho pagato.

Ma oltre al pagamento, per un programmatore, c'è interesse a risolvere i puzzle. così ho piantato uno di loro. chi voleva - ha avuto divertimento, addestrato il suo pensiero, chi non voleva - silenziosamente è andato a leggere altri argomenti.