Errori, bug, domande - pagina 568

 
x100intraday:

https://www.mql5.com/ru/docs/basis/function/events dice alla fine:"Per una migliore comprensione sarà utile eseguire l'indicatore il cui codice è allegato qui sotto. "

Eseguire il codice. Durante il fine settimana. Non c'è stata una migliore comprensione - andava bene così com'era, credo, ma sono state aggiunte le peggiori impressioni. Non ci sono tick nel fine settimana, quindi prev_calculated = 0 in questo momento sempre, quando si passa da timeframe a timeframe:

Tuttavia, a un certo punto appare questo valore (nessun ricollegamento, onestamente nobile!):


Devo aspettarmi che il comportamento erratico del terminale venga eliminato? O devo imparare la matematica?


Studiare, perché è scritto nella documentazione - Indicatori tecnici:

Tutte le funzioni come iMA, iAC, iMACD, iIchimoku, ecc., creano una copia dell'indicatore tecnico corrispondente nella cache globale del terminale client. Se esiste già una copia dell'indicatore con questi parametri, non viene creata una nuova copia, ma viene aumentato il contatore dei riferimenti a questa copia.

...

Nota: l'uso ripetuto di una funzione indicatore con gli stessi parametri all'interno di un programma mql5 non aumenta il contatore di riferimento molte volte, il contatore sarà aumentato solo una volta di 1.

Questo significa che quando si avvia l'indicatore per la prima volta (quando si passa a un nuovo timeframe per la prima volta), i valori dell'indicatore non sono ancora stati calcolati, quindi prev_calculated=0. Quando si ritorna a questo timeframe, l'indicatore non viene creato di nuovo, poiché il suo handle è ancora vivo. Pertanto, prev_calculato!=0
 
x100intraday:

Tuttavia, a un certo punto appare questo valore (nessun ricollegamento, onestamente nobile!):

e linee divertenti sul grafico:

o la metà di quello allegro, come questo:

C'erano anche delle linee all'inizio della storia a forma di ZigZag(ahimè, ho dimenticato di fare uno screenshot e non ho potuto riprodurlo).

Le linee appaiono anche su altri TF, ma più raramente. Lo si può vedere facilmente da soli.

Era esattamente quello che gli autori volevano dire?

In realtà, c'è una sezione chiamata Inizializzazione delle variabili:

Qualsiasi variabile può essere inizializzata quando viene definita. Se una variabile non è esplicitamente inizializzata, il valore memorizzato in quella variabile può essere qualsiasi cosa. L'inizializzazione implicita non viene fatta.

Avete dichiarato un buffer di indicatori, ma i valori in esso contenuti non sono definiti. Pertanto, il sistema esecutivo del terminale alloca per esso qualsiasi parte di memoria disponibile, dove può verificarsi il buffer indicatore con i valori di Zigzag.
 
x100intraday:

C'è stata una situazione recente in cui il design:

Il programma ha stampato solo il valore della prima stampa, ma era inutile aspettare che venissero stampati i valori degli elementi dell'array. Dopo aver rimosso il primo Print e ricompilato l'output ciclico degli elementi dell'array è iniziato immediatamente. È una cospirazione segreta di Prints contro la comunità MQL5 o sono l'unico ad essere sfortunato?

Inoltre, voglio notare che questi strani casi di comportamento del terminale non sono stati osservati su un'istanza MT5 sovraccarica di finestre grafiche, oggetti grafici e programmi MQL, ma solo in una singola finestra grafica pulita (senza contare un contorno di un indicatore in esecuzione).

Scrivete al Service Desk, risolveranno il problema.

PS E leggere la sezione Programma in esecuzione

 
Karlson:

Sì... è tutto uguale in linea di principio...

Su 5 funzioni che usano OrderSend(), due di loro danno invariabilmente errore Invalid Request.

Non vedo errori o differenze fondamentali rispetto alle varianti funzionanti.

Il problema è nella versione Terminal (build 540 della 11.11.11). La profezia si è avverata!!!

 
MoneyJinn:

Su 5 funzioni che usano OrderSend(), due di esse danno costantemente l'errore Invalid Request.

Non trovo errori o differenze fondamentali rispetto alle varianti funzionanti.

Il problema è nella versione Terminal (build 540 della 11.11.11). La profezia si è avverata!!!

Ho riscritto tutto attraverso CTrade molto velocemente, funziona bene, facile ed efficiente.
 

fine settimana divertente con la build 540:


Dopo averlo installato, continua ad apparire ==>

codice di ritorno 10013 e richiesta non valida quando si imposta un ordine.

 
blef:

fine settimana divertente con la build 540:


Dopo averlo installato, continua ad apparire ==>

codice di ritorno 10013 e richiesta non valida quando si imposta un ordine.

Puoi fornire il codice sorgente per la riproduzione? Scrivete al Service Desk per favore.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
Rosh:

In realtà, c'è una sezione chiamata Inizializzazione delle variabili:

Avete dichiarato un buffer di indicatori, ma i valori in esso contenuti non sono definiti. Pertanto, il sistema esecutivo del terminale alloca per esso qualsiasi pezzo di memoria disponibile, al quale può capitare il buffer di indicatori con valori Zigzag.

Rosh, l'ironia della mia situazione è che non ho eseguito l'indicatore ZigZag o le sue controparti per secoli e la macchina è sottoposta a un riavvio quotidiano dell'hardwar. Non ho alcun residuo di ZigZags o altro nella mia memoria.

Per quanto riguarda l'apprendimento delle basi - questo è sicuro, non puoi farne a meno. L'unica domanda è se mi deluderà...

 
x100intraday:

Rosh, l'ironia della mia situazione è che non ho eseguito l'indicatore ZigZag o le sue controparti per secoli, e la macchina è sottoposta a un riavvio quotidiano dell'hardwar. Non ho alcun residuo di ZigZags o altro nella mia memoria.

Per quanto riguarda l'apprendimento delle basi - questo è sicuro, non puoi farne a meno. Si tratta solo di vedere se mi deluderà...

Non importa, la spazzatura nei buffer può disegnare qualsiasi cosa se non li inizializzi.

Mi stai chiedendo in modo così civettuolo di convincerti dell'inutilità dello sforzo, non possiamo dare garanzie, dato che so più di MQL5 di voi due - l'Apprendista e MQL5.

 
Rosh:

Chiedete in modo così civettuolo di convincervi dell'inutilità dei vostri sforzi, nessuna garanzia può essere data,

Tali richieste non sono così preziose, perché non sono il punto; personalmente, ricordo una grande richiesta esplicita per aiutare a trovare il problema con il non disegno primario, anche postato tre codici sorgente con spiegazioni. La richiesta è passata inosservata - ho dovuto contare su me stesso. Poi un suggerimento di guardare un codice più complesso, che ancora non potevo risolvere da solo. Questo è tutto ciò che mi manca al momento.

E per le preziose spiegazioni e i link alla documentazione - grazie come sempre, ci darò assolutamente un'occhiata.

Rosh:

...Dato che so più di voi due su MQL5 - l'Expert Advisor e MQL5.


Si può riconoscere un uccello dal suo volo, e un programmatore dal suo codice. L'offerta di dargli un'occhiata è ancora valida, facepalm garantito.