Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 602
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
In un indicatore o in un EA/script?
Yuri Evseenkov:
fromme2you:
Un'altra domanda: come stressare lo sviluppatore di MT4 e l'ambiente di esecuzione del codice MQL, in modo che metta mente e mano nello sviluppo di un linguaggio per gestire le eccezioni, come nel mio esempio o simile nel significato?
Contatta il servesdesk, crea un thread/sondaggio sul forum.
Non è passato molto tempo da quando MT4 è stato sepolto. Non hanno una visione chiara del mercato, hanno una visione chiara della regolamentazione del mercato.
Vedi il post di Renat di oggi:
...
Losviluppo di MT4 è fermo e ci saranno solo correzioni e cosmetici.
Salve. Potete per favore consigliarmi come risolvere questo problema. Ho bisogno di trovare i prezzi aperti delle barre ad una certa ora, per esempio alle 01:00, analizzando per esempio le ultime 50 barre. Non sono sicuro di come affrontare questo compito in mql5.
Sia calcolando la data attuale + aggiungendovi il tempo richiesto e poi aggiungendo ventiquattro ore, questo metodo ha funzionato su mql4.
Per quanto ho capito, mql5 ha strutture speciali con output temporale, ma per qualche motivo non posso usarle.
Grazie in anticipo per la risposta.
Sarei molto grato se qualcuno potesse lanciarmi un po' di codice per capire il processo di pensiero.Nell'indicatore.
Qui, per una migliore comprensione, consiglio di guardare prima la numerazione delle barre. Per prima cosa dobbiamo capire esattamente come viene numerata la barra più a destra nell'indicatore MQL5.
Per farlo, mettete il seguente commento nell'indicatore in OnCalculate:
Questo codice produrrà questo risultato:
Cioè, di default la barra più a destra negli array di indicatori MQL5 ha un indice uguale a "rates_total-1".
Tornando alla tua domanda - devi prendere le ultime 50 barre e passarci attraverso. E analizza il tempo aperto della barra (l'array time[]), se il tempo della barra è uguale a quello specificato, ricorda l'indice della barra. Quindi ottenere il prezzo aperto dall'array open[] utilizzando questo indice.
Sembra simile a questo:
Qui, per capire meglio in seguito, vi consiglio di cominciare a guardare la numerazione delle barre. Cioè, si dovrebbe prima capire esattamente come viene numerata la barra più a destra nell'indicatore MQL5.
Per farlo, mettete il seguente commento nell'indicatore in OnCalculate:
Questo codice produrrà questo risultato:
Cioè, di default la barra più a destra negli array di indicatori MQL5 ha un indice uguale a "rates_total-1".
Tornando alla tua domanda - devi prendere le ultime 50 barre e passarci attraverso. E analizza il tempo aperto della barra (l'array time[]), se il tempo della barra è uguale a quello specificato, ricorda l'indice della barra. Quindi ottenere il prezzo aperto dall'array open[] utilizzando questo indice.
Assomiglia approssimativamente a questo
Karputov Vladimir, grazie mille. Lo apprezzo molto. Penso che mql5 abbia un accesso più flessibile alle serie temporali, ma è un po' complicato per i programmatori "principianti". :))
È una questione di abitudine. Allora scoprirete che tutto è strutturato, facile e corretto.
Un'altra domanda. I parametri
Penso che siano responsabili della coppia a cui è applicato l'indicatore. Quindi, è impossibile ottenere le stesse informazioni su altre coppie di valute? In altre parole, la soluzione più universale è quella di creare gli stessi array di OCHL, solo attraverso la funzione Copy...?Un'altra domanda. Parametri
Capisco che sono responsabili della coppia a cui viene applicato l'indicatore. E tirare fuori con il loro aiuto le stesse informazioni su un'altra coppia di valute è impossibile? Quindi, la soluzione più universale è quella di creare gli stessi array OCHL solo attraverso la funzione Copy...?Quando si accede ai personaggi di altre persone, ci sono delle sfumature che bisogna capire e di cui bisogna essere consapevoli:organizzare l'accesso ai dati. In altre parole, se richiedete i dati delle serie temporali dei simboli di qualcun altro, dovete prima assicurarvi che questi dati siano stati preparati ed esistano. Solo in questo modo puoi essere sicuro che i dati che richiedi al personaggio alieno siano corretti.
Capito. Grazie.
Un'altra domanda: si convertono sempre i valori nel tipo stringa nella funzione Print(). Qual è lo scopo di fare questo? Senza traduzione, i tipi int, double, ecc. sono visualizzati nella funzione Print() esattamente allo stesso modo.
Capito. Grazie.
Un'altra domanda: si convertono sempre i valori al tipo di stringa nella funzione Print(). Qual è lo scopo di fare questo? Senza traduzione, i tipi int, double, ecc. sono visualizzati in Print() esattamente allo stesso modo.
Il modo in cui un numero viene memorizzato nella memoria del computer e il modo in cui viene emesso sono due grandi differenze. Specialmente con i numeri in virgola mobile, è sempre meglio limitare il numero di cifre decimali.
Ecco perché cerco sempre di formattare correttamente l'output - usoIntegerToString eDoubleToString.
Il modo in cui un numero viene memorizzato nella memoria del computer e il modo in cui viene emesso sono due grandi differenze. Specialmente con i numeri in virgola mobile, è sempre meglio limitare il numero di cifre decimali.
Ecco perché cerco sempre di formattare correttamente l'output dei numeri usandoIntegerToString eDoubleToString.
Grazie per le vostre risposte e la vostra pazienza.
Vladimir, probabilmente sono stanco di te :) Ma i progressi nelle basi sono molto lenti. Ho provato a fare un compito di prova con la funzione Copy... L'indicatore non è disegnato, anche se ci sono numeri in Printe... Non capisco niente.