Errori, bug, domande - pagina 2297
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Grazie, ma non ho visto nessuna risposta alle mie domande.
Non capisco perché il distruttore non viene chiamato quandoA *a= new A;
https://www.mql5.com/ru/docs/basis/variables/object_live
Tutti gli oggetti creati dall'espressione pointer_object=newClass_name devono essere distrutti successivamente dall'operatore delete(pointer_object). Se, per qualche motivo, questa variabile non è stata distruttadall'operatore di cancellazione, il messaggio relativo apparirà nel giornale "Experts". È possibile dichiarare diverse variabili e assegnarle tutte allo stesso puntatore all'oggetto.
Chiedo a MQL di controllare la funzione OnTimer().
Per qualche motivo non funziona in strategy tester per MT4 (nessun errore, solo niente all'interno di questa funzione viene eseguito), mentre online è OK.
Per MT5 la funzione funziona sia nel tester che online.
Grazie!
In OnInit vengono confrontati solo due numeri, e ci vuole più tempo per un passaggio errato che per un passaggio completo! Come mai?
Eseguiamo questo Expert Advisor in piena ottimizzazione
Otteniamo il risultato del lavoro di 8 agenti
Ecco il nostro Expert Advisor ora
Finalmente, come questo
Due uscite
Sul secondo punto, c'è chiaramente una sorta di errore. È più vantaggioso in termini di tempo eseguire una corsa a vuoto, piuttosto che uscire da OnInit. Per favore correggetelo, perché i vantaggi di Incorrect-Init e ExpertRemove saranno quasi completamente persi.
Lascheda dei preferiti con EAs/indicatori/scripts e conti viene ricordata solo dopo l'uscita dal terminale. Per questo motivo, un'uscita anomala (spegnimento) resetta questa scheda. È possibile salvarlo quando lo si cambia?
A volte si capisce che sarebbe molto utile se le cartelle potessero essere aggiunte ai preferiti.
Allora provate così:
Risultato:
1:PUNTATORE_AUTOMATICO
1:PUNTATORE_DINAMICO
2:PUNTATORE_DINAMICO
2:PUNTATORE_AUTOMATICO
Grazie! Una bella soluzione.
Ma probabilmente è meglio che il compilatore non giuri:
È un bug o cosa?
Quando si crea un'istanza di una classe tramite new , non si chiama il distruttore.
È l'unica soluzione per creare una classe speciale per chiamare il distruttore? O possiamo farne a meno?
Creare con new e cancellare con delete
La questione è mettere la cancellazione in un distruttore, ma quando si crea un'istanza di una classe tramite new (A *a=newA ;) il distruttore non viene chiamato.
È possibile, e se sì, come, ricavare in qualsiasi indicatore ZigZag i valori corrispondenti degli estremi di prezzo High e Low,
assicurando il loro legame stabile e la loro vicinanza alle cime e ai fondi formati?
Vedi esempio daOBJ_TEXT
https://www.mql5.com/ru/docs/basis/variables/object_live
Grazie.
È esattamente quello che c'è scritto qui.
Quindi non è un bug, è una caratteristica che si traduce in un circolo vizioso.
Se voglio automatizzare il processo di cancellazione di un oggetto dinamico, il distruttore viene chiamato solo alla cancellazione, quindi è inutile mettere la cancellazione nel distruttore stesso.
Ma l'automazione può essere implementata attraverso un'altra istanza di un'altra classe, come @A100 ha suggeritoqui.
Grazie per il suggerimento. Sono già esausto di leggere e provare e provare e leggere. Mi piacerebbe vedere un esempio funzionante dello ZigZag...
Come nel mio avatar con uno zigzag, ma con una legatura GIUSTA degli estremi superiori, perché la legatura degli estremi inferiori è OK!
Il modo di legare con k=(WindowPriceMax()-WindowPriceMin())/30 non funziona quando la dimensione della finestra cambia molto, vorrei qualcos'altro...
Nell'esempioOBJ_TEXT si legano sia in alto che in basso. Seguire il link, eseguire l'esempio ...
Quindi non è un bug, ma una caratteristica, con il risultato di un circolo vizioso.
Vi è già stato detto in precedenza che il modo per risolvere il controllo delle risorse allocate non gestibili è quello di utilizzare puntatori intelligenti. L'analogia completa con C++.
Forse il problema è che la soluzione non è stata presentata su un piatto d'argento, scusate.
Tutti possono digitare "shared_ptr" nella ricerca del sito e seguire il primo risultato, non è difficile, consiglio vivamente di provare.