Errori, bug, domande - pagina 1520
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
Non c'è ancora un altro modo.
Abbiamo discusso l'introduzione di un nuovo comando di uscita che terminerebbe immediatamente il programma, ma ci sono questioni irrisolte qui
Che peccato. Sì, un exit() come in C++ sarebbe bello. Oggi, tirare la risposta delle funzioni annidate in quella chiamante è piuttosto problematico. E non ci sono biblioteche universali.
In alternativa, si può creare una funzione separata per eliminare tutti gli oggetti del programma e chiamarla quando la condizione per eliminare il programma dal terminale è soddisfatta, seguita daExpertRemove(), in questo caso tutto dovrebbe essere completato più velocemente... anche se non per certo :)
Come ho scritto prima, ed è stato suggerito prima in un articolo su questo sito, in caso di errore in una funzione annidata profonda, si può chiamare la divisione per 0 o uscire dall'array. Ma non è bello.
Sì, e non si tratta solo di OOP (per quanto ho capito, tu lo intendi). Semplicemente - se un errore non può essere risolto, il programma sarà terminato.
Si ferma, ma non immediatamente
Non capisco, è corretto lavorare con ExpertRemove() negli indicatori o no?
Penso che ci sia una funzione per gli indicatori, o non è più rilevante
ChartIndicatorDelete();
Non capisco, è corretto lavorare con ExpertRemove() negli indicatori o no?
No. ExpertRemove() si sovrappone agli indicatori.
"Si ferma, ma non immediatamente" si dice di ExpertRemove in generale. Questa funzione non interrompe il funzionamento del programma.
No. ExpertRemove() si sovrappone negli indicatori.
"Si ferma, ma non immediatamente" si dice di ExpertRemove in generale. Questa funzione non interrompe il funzionamento del programma.
Per favore, faccia un esempio. Dare il codice sorgente dell'indicatore per illustrare il problema
Allo stesso tempo, l'aiuto della funzione IsStopped dice che il funzionamento del programma si ferma dopo 3 secondi se c'è un comando per terminare un programma mql.
E se while(true) viene sostituito con while(!IsStopped()), l'indicatore si completa con successo quando viene rimosso dal grafico.
Un motivo divertente per l'errore interno del compilatore (funzione utilizzata nell'indicatore):
void SaveData ( uint handle_, int wrdata_, int interv_, string dpath_, int tmode_, int tmult_, long ctime_, long& ltime_ )
{
int ierr, wrtint;
// ----
if ( interv_ > 0 ) // modalità di lavoro
{
se ( MQLInfoInteger ( MQL_TESTER ) == 0 ) { wrtint = interv_; } // non ha significato
else{ wrtint = interv_ * tmult_; } // non importa
//
if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) ) // se questa linea è commentata, l'errore scomparirà
{
// un po' di codice per salvare i dati ... non ha significato - testato
//
ltime_ = ctime_; // in generale non ha importanza
} // se ( ( ctime_ - ltime_ ) >= ( wrtint * 60 )
} // se ( interv_ > 0 )
// ----
ritorno;
} // void SaveData
(Scusa, non ho usato il pulsante SRC intenzionalmente, perché non posso selezionare le parti necessarie del testo con esso)
La cura è ovvia, ma dovreste essere d'accordo - è un glitch piuttosto divertente. :)))
Una società di intermediazione ha una commissione di 16x2 dollari per un fatturato di 1 milione. Sembra che abbiano impostato una commissione di 16 dollari nelle impostazioni del server. E ora durante il test sul loro server la commissione 16x2 viene detratta da ogni transazione indipendentemente dalla dimensione del lotto, cioè un test adeguato può essere fatto solo con 10 lotti.
È la loro mancanza di abilità nell'impostare i server o una reale limitazione di MT5? Cosa posso consigliare loro di fare esattamente sui server, in modo che la commissione sia elaborata correttamente nel tester?