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!
Sì, sul primo punto sono chiaramente confuso. Spiegare cosa c'è esattamente di sbagliato nella descrizione, che una copia dovrebbe essere restituita?
E riguardo alla concatenazione, nel tuo caso avresti dovuto scrivere qualcosa come
Per chiarire. Dice"Restituisce una copia della stringa con un valore modificato del carattere nella posizione specificata. "Il prototipo della funzione è boolStringSetCharacter(...). Ovviamente, non si può mettere una stringa in un bool. Se effettivamente viene restituito un booleano, allora apparentemente questo è un segno di successo/errore. Normalmente altre pagine di documentazione hanno una sezione separata sulvalore restituito, ma questa pagina non ne ha una. Dovrebbe essere aggiunto, e nella descrizione testuale formulare una frase riguardante la semantica della funzione, non il valore di ritorno.
Per quanto riguarda la concatenazione, se quello che hai scritto è corretto, anche la descrizione della funzione StringConcatenate dovrebbe essere cambiata. La descrizione dice che il parametrostring_var è una stringa [in][out] che sarà generata come risultato della concatenazione. Lei afferma che questo parametro è solo [out].
Purtroppo, il problema è che il terminale pubblica solo gli ordini di chiusura delle posizioni con commenti nella scheda "Risultati".
L'ordine corrispondente non viene aggiunto alla lista di HistoryDealsTotal().
Nella lista generale degli ordini HistoryOrdersTotal(), manca anche l'ordine, anche se si seleziona un periodo con una certa ridondanza.
Vi posso assicurare che sia gli ordini che gli affari, nel caso di chiusura per 'fine test', sono presenti nella storia. Il mio multicurrency calcola il profitto guadagnato su ogni simbolo. Le compravendite chiuse nel tester entro la "fine del test" sono corrette nella deinizializzazione per riflettere queste compravendite. Il profitto totale per tutti i simboli coincide con i dati del rapporto di prova. Questo è il codice;
Colleghi, c'è un modo per far funzionare SymbolInfoSessionTrade nello strategy tester?
Una voce banale non funziona:
Un'altra domanda, se possibile. Vorrei capire il significato del nuovo operatore. Qual è l'idea di fondo? Perché non creare l'oggetto nel solito modo? Dopo tutto, dopo la fine del blocco l'accesso all'oggetto dichiarato attraverso new sarà perso, quindi perché ne abbiamo bisogno?
P.S. Onestamente non l'ho trovato nella documentazione :)
Un'altra domanda, se possibile. Vorrei capire il significato del nuovo operatore. Qual è l'idea di fondo? Perché non creare l'oggetto nel solito modo? Dopo tutto, dopo la fine del blocco l'accesso all'oggetto dichiarato attraverso new sarà perso, quindi perché ne abbiamo bisogno?
P.S. onestamente non l'ho trovato nella documentazione :)
Grazie! L'ho capito. È necessario e sufficiente usareTimeTradeServer() invece di TimeCurrent().
Alla fine della settimana di trading non ci sono quotazioni fresche ed è per questo che TimeCurrent() non viene aggiornato per molto tempo.
Quando si deinizializza l'Expert Advisor, TimeCurrent() mostra l'ora 23:00; TimeTradeServer() mostra l'ora 23:59, che coincide con la fine del test.
Grazie! L'ho capito. È necessario e sufficiente usareTimeTradeServer() invece di TimeCurrent().
Alla fine della settimana di trading non ci sono nuove quotazioni e quindi TimeCurrent() non viene aggiornato per molto tempo.
Un'altra domanda, se possibile. Vorrei capire il significato del nuovo operatore. Qual è l'idea di fondo? Perché non creare l'oggetto nel solito modo? Dopo tutto, dopo la fine del blocco l'accesso all'oggetto dichiarato tramite new sarà perso, quindi perché ne abbiamo bisogno?
P.S onestamente non è riuscito a trovarlo nella documentazione :)
Non create oggetti dinamici - non dovrete usare ora e tutto ciò che è associato a questi oggetti (anche se poi non potrete fare molto).
Vuoi capire non il significato di adesso, ma il significato di lavorare con oggetti dinamici...
Inizializzazione e deinizializzazione di oggetti posizionati dinamicamente
I puntatori agli oggetti sonoun caso speciale, perché la dichiarazione di un puntatore non richiede l'inizializzazione dell'oggetto in questione. Gli oggetti posizionati dinamicamente sono inizializzati solo al momento della creazione di un'istanza di una classe tramite l'operatore new. L'inizializzazione di un oggetto implica una chiamata al costruttore della classe corrispondente. Se non c'è un costruttore corrispondente in una classe, i suoi membri di tipo semplice non saranno inizializzati automaticamente; i membri di tipo stringa, array dinamico e oggetto complesso saranno inizializzati automaticamente.
Ipuntatori possono essere dichiarati localmente o globalmente, e possono essere inizializzati con un valore NULL vuoto o con un puntatore dello stesso tipo o di uno spawned . Senew vienechiamato su un puntatore dichiarato a livello locale , anche la dichiarazione di cancellazioneper quel puntatore deve essere eseguita prima di lasciare il livello locale. Altrimenti, il puntatore sarà perso e l'oggetto non può essere cancellato esplicitamente.
Tutti gli oggetti creati dall'espressione pointer_object=new_ClassName devono essere distrutti successivamente con l'operatore delete(pointer_object).Se, per qualche motivo, questa variabile non è stata distrutta dall'operatore di cancellazione, il messaggio relativo apparirà nel Diario degli esperti. Potete dichiarare più variabili e assegnare a tutte loro dei puntatori allo stesso oggetto.
Se l'oggetto creato dinamicamente ha un costruttore, questo costruttore sarà chiamato quando viene eseguito il nuovooperatore . Se l'oggetto ha un distruttore, il distruttore sarà chiamato quando viene eseguito l'operatore dicancellazione.
Così, gli oggetti posizionati dinamicamente sono creati solo quando vengono creati utilizzando l'operatore new, e sono garantiti per essere eliminati o dall'operatore delete o automaticamente dal sistema di esecuzione MQL5 al momento dello scarico del programma.L'ordine di dichiarazione dei puntatori degli oggetti creati dinamicamente non influenza l'ordine della loro inizializzazione. L'ordine di inizializzazione e deinizializzazione è completamente controllato dal programmatore.