Errori, bug, domande - pagina 1524
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
Cosa documentare? "Fratelli, rilassatevi e prendetevela comoda, deinizializzatevi come volete. Gli sviluppatori l'hanno permesso.
Ma quando si chiude il terminale, il terminale innesca condizioni rigorose, che sono già state esplicitamente menzionate nella documentazione. E la prossima volta che aprite il terminale, potreste non aver aperto i grafici, perché non sono riusciti a salvare nel tempo assegnato.
Cosa c'entra questo?
Provate a inondare il log in un ciclo infinito e vedete quanto velocemente cresce e come 64 MB taglierà i record duplicati e troncherà l'inizio del log. Stai esagerando con la tua affermazione sulla mancanza di protezione. Avremmo avuto tutti i dischi dei siti di hosting intasati da tempo.
Documentare come è o fare come documentato... OK, sono affari vostri.
Provato, rischiando la salute del computer, tasso di riempimento ~1,5 GB/min. Ma il terminale non si blocca, rispetto al 4).
Ugh, quindi il bug non è tornato - puoi chiudere il terminale ed essere sicuro che tutti i grafici siano salvati.
In origine si trattava di un indicatore in loop. Il che è categoricamente sconsigliato. Anche come illustrazione
Qualsiasi indicatore utilizza almeno un ciclo.
Un ciclo senza controllo IsStopped rende questo ciclo potenzialmente infinito. Perché ci possono essere milioni di dati sui prezzi nell'array, e ogni iterazione può essere scritta in modo non ottimale.
Un programmatore che crea deliberatamente un ciclo infinito non deve appellarsi alla mancanza di informazioni nella documentazione; inoltre, la documentazione afferma esplicitamente
В одном потоке с индикаторами также последовательно выполняются остальные действия по данному символу - обработка тиков и синхронизация истории. Это означает, что если в индикаторе выполняется бесконечное действие, все остальные события по его символу никогда не выполнятся.
Il programmatore cosciente capisce subito che in questo caso, è lui/lei il responsabile dell'efficienza dell'indicatore, non la documentazione. Inoltre, ci sono state molte discussioni e articoli su questo argomento
Il programmatore coscienzioso capisce subito che in questo caso è responsabile dell'efficienza dell'indicatore, non della documentazione. Inoltre, ci sono state molte discussioni e articoli su questo argomento
Ha detto che quando si chiude il terminale, il programma è costretto a terminare già dopo 3 secondi. Questo è il modo in cui funziona ora e continuerà a funzionare. Non vogliono riportare l'arresto forzato quando si rimuove il programma dal grafico senza terminare il terminale.
Tutto questo è corretto, mi sono pentito di non aver fatto il controllo di IsStopped e quindi ho avuto problemi di interruzione della costruzione di indicatori complessi solo per colpa mia. Ma, d'altra parte, mi sono abituato al fatto che il funzionamento del programma e la sua documentazione devono coincidere.
La documentazione non può prendere in considerazione tutte le sfumature. Soprattutto quando si parla di secondi, GHz, megabyte - i valori che sono misurabili ma dipendono fortemente dal loro ambiente
Cerchiamo di riempire gli spazi vuoti della documentazione (anche se segretamente speriamo in una presunzione di coscienziosità)
Um, ho fatto un commento su quadruplo - sembra completare e chiudere tutto correttamente ora, ma perdeva i grafici con gli EAs.
Il quartetto ha messo in parallelo i processi di chiusura di ogni grafico. Perciò sono stati in grado di aumentare il timeout per ciascuno di essi.
In passato, le tabelle venivano memorizzate una per una, e ad ognuna veniva dato lo stesso timeout. Più grafici e più EAs inibiti su di essi, più lungo era il processo di chiusura.
Il quartetto ha messo in parallelo i processi di chiusura di ogni grafico. Quindi sono stati in grado di aumentare il timeout per ciascuno di essi.
In passato, le tabelle venivano memorizzate una per una, e ad ognuna veniva dato lo stesso timeout. Più grafici e su di essi, più lungo era il processo di chiusura.
Approssimativamente capito.
Lento non lento, molto dipende dall'hardware e dai compiti che l'EA esegue, e si deve tener conto del fatto che i programmi sono spesso scritti non da programmatori professionisti - è per questo che esiste un linguaggio di programmazione, credo.
MT4. Vorrei richiamare la vostra attenzione ancora una volta sulle peculiarità dell'inizializzazione delle variabili globali del programma.
Le variabili globali sono inizializzate una volta quando si installa il programma su un grafico o si ricompila il codice.
Se volete cambiare timeframe, simbolo o parametri di input, allora le variabili globali non vengono reinizializzate (per esempio, non vengono cancellate), e mantengono i loro valori, che hanno ottenuto durante il lavoro con timeframe, simboli o parametri di input precedenti.
Si scopre che se non si cancellano tutte le variabili globali programmaticamente, allora quando si cambia il TF, lo strumento o i parametri di ingresso, il codice funzionerà con i valori precedenti, cioè in modo errato.
È ragionevole? Non sarebbe meglio farlo nello strategy tester? Lì, le variabili globali sono reinizializzate ad ogni cambio di TF, di strumento o di parametri d'ingresso.