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
Quindi fate una fabbrica. Questo risolverebbe il problema.
È abbastanza facile lavorare lì dentro così com'è. L'oggetto è strutturato abbastanza rigidamente. Chiama un metodo virtuale Load di ogni suo membro, che a sua volta fa lo stesso. All'inizio di ogni blocco di dati (oggetto) viene scritto l'ID del tipo (per il controllo durante il caricamento). Non c'è altro da dire. È una specie di fabbrica autocostruita.
Ha senso fare una fabbrica se il tipo precedentemente sconosciuto può essere nel file. Allora la fabbrica e la tabella del registro dei tipi saranno necessarie. Anche se il problema non era così risolto, ci sono riuscito con graffette e nastro adesivo. :)
Il fan di Gunn.
Se il secondo punto di ancoraggio è nel futuro, l'angolo cambia.
Inoltre, questo oggetto ha alcuni problemi con la copia (con Ctrl premuto). Molto spesso non copia, ma trascina l'originale, e ci vuole il terzo o quinto tentativo per copiare.
Ok, perfetto.
Slava, posso chiedere (per lo sviluppo generale) perché non puoi inizializzare la tabella dei metodi virtuali all'inizio del costruttore (dopo l'inizializzazione dell'antenato)?
Te l'ho già detto. I costruttori elaborano la gerarchia. Finché un antenato viene costruito, non ci sono informazioni sui discendenti.
L'ho già letto. E l'ho capito molto bene. E ho fatto una domanda basata sulla mia comprensione di ciò che ho letto. Cercherò di renderlo più chiaro, con immagini.
Capisco tutto, è più difficile da fare, ci sono ogni sorta di sottigliezze. È molto più facile e versatile (per voi) scrivere tutta l'inizializzazione implicita alla fine. E credo anche prima che "nessuno lo fa" e che "non è usuale in C++" ecc.
Ma per noi (utenti), è più semplice, universale, ragionevole e logico considerare il costruttore MySecond() come un territorio della classe MySecond e non MyFirst. Pensate a cosa è più facile: far funzionare le funzioni virtuali nei costruttori o esprimere importanti e serie restrizioni sul codice dei costruttori nella documentazione in diversi punti, e, nonostante ciò, ricevere regolarmente importanti e seri messaggi dai neofiti al Service Desk e al Forum "riguardo ai bug virtuali nei costruttori". Anche questo è un fattore serio - i neofiti sono attesi molto presto...
L'operatore tensore con strutture porta a un errore di generazione del codice (anche se se lo sostituite con if, funziona)
Ricevo regolarmente l'errore 4401
ERR_HISTORY_NOT_FOUND
Il seguente codice indicatore
produrrà un errore immediatamente all'avvio (se non su D1). O meglio, una volta dopo l'avvio del terminale e l'apertura del grafico - per mettere l'indicatore, otterremo un errore. Se il terminale non è chiuso, allora non ci sarà questo errore all'inizio.
Ma dopo un po' di tempo (un paio d'ore - 2 ore sono state sufficienti per me) vedremo che otterremo l'errore sul grafico già aperto. (L'ho eseguito su m30)
Salve, signori sviluppatori!
Possiamo fare dei cambiamenti nel compilatore MQL5 per darci almeno un avvertimento?
per errori di questo tipo nel codice.
if(Flag_Exitl=true) {break;}
La condizione di confronto qui non è corretta (dovrebbe essere == ), ecco perché sarà sempre break.
Come affrontare questa situazione nel compilatore (se è possibile), in modo che io possa avere meno scossoni quando scrivo il codice?
(Ho pensato che non funzionerà, sembra separare l'assegnazione e il confronto in if, poi la domanda viene rimossa).
Salve, signori sviluppatori!
È possibile cambiare il compilatore MQL5 per dare almeno un avvertimento?
per errori di questo tipo nel codice.
if(Flag_Exitl=true) {break;}
La condizione di confronto non è corretta (dovrebbe essere == ), ecco perché sarà sempre break.
Come affrontare questa situazione nel compilatore (se possibile), in modo che io possa avere meno scossoni quando scrivo il codice?
(Ho pensato che non funzionerà, potrei dividere l'assegnazione e il confronto in if, così la domanda viene rimossa).
La condizione può essere scritta in modo errato, ma è consentita in MQL5.
Traduco quello che hai codificato: assegna un valore vero alla variabile Flag_Exitl e poi controlla se Flag_Exitl è vero, quindi interrompi.
La sequenza delle azioni è esattamente così.
Non capisco bene come lavorare con i buffer che non devono essere mostrati sullo schermo.
Secondo il codice qui sotto per qualche motivo
1) non disegna nulla
2) entrambi i buffer si chiamano Label1
anche se contengono i dati giusti
Salve. Forse sto scrivendo nella direzione sbagliata, ma spero che tu possa indicarmi la direzione giusta. Dove andare con una domanda su Web API per mt5? )
Cercherò di spiegare la situazione, nel caso. Ho МТТ manager e WEB API con php... La fattura in russo viene creata, i dati vengono inviati e anche visualizzati nel manager МТ, ma c'è un problema - i dati nel manager МТ vengono visualizzati in unicode ("044404300c0438043b0438044f" - così sembra il nome utente). Quando si inviano dati non c'è niente di codificato o decodificato, dal client MT tutto viene creato normalmente... Almeno da che parte guardare? (