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
x100intraday:
La cosa principale che voglio sapere: è possibile riempire i buffer di tempo direttamente come i buffer di prezzo (senza ricorrere a CopyTime e altre funzioni regolari di copia in un array), e come, e se no, perché?
2. È davvero necessario avere un altro paio di buffer per memorizzare i secondi dall'inizio del 1970, ma con il tipo non datetime, ma qualche doppio o lungo, per esempio, e nei momenti necessari per convertire attraverso TimeToString in formato tempo come stringa letterale?
1. impossibile. con "perché?" - agli sviluppatori.
Nel tuo caso, questa è la soluzione più semplice. (Garantito per funzionare.) Dal momento che si solleva la questione riguardante il riempimento di buffer simili a quelli dei prezzi.
Se fossi io, cercherei di evitare questo spreco di memoria a livello algoritmico, e in nessun caso creerei buffer con dati utili riempiti al 3%.
Se fossi io, cercherei di evitare questo spreco di memoria a livello algoritmico, e di non creare buffer con il 3% di dati utilizzabili.
si, bada))
"Costanti di data e ora... " e "...può essere rappresentato come una stringa letterale".
può essere rappresentato o meno... è per i dati di ingresso/uscita nella solita forma data/ora.
Inoltre, non possiamo associare array di questo tipo a buffer di indicatori (e non ce n'è bisogno?), non possiamo applicare SetIndexBuffer agli array di questo tipo di dati per ragioni ben note.
non c'è nulla che impedisca al tipo datetime di essere nel buffer dell'indicatore (è auspicabile).
E noi non lo facciamo.
E invano)
Compilare il codice risultante. Otteniamo l'avvertimento"truncation of constant value" rispetto alle stringhe con =EMPTY_VALUE(siamo tristemente sorpresi) e un errore nel rapporto Expert del terminale: "Array out of range " rispetto alle stesse stringhe (ci arrabbiamo alla fine). Sembra cheEMPTY_VALUE non vogliaentrare nel tipo datetime , mentre la dimensione dell'array rimane zero. CambiandoEMPTY_VALUE a 0, l'errore scompare ma l'array haancora dimensione zero.
EMPTY_VALUE è di tipo doppio.
Sarebbe più facile con un buffer indicatore - non abbiamo bisogno di determinare la dimensione dell'array.
Un' altra cosa strana è che la dimensione di ExtUpperBuffer e ExtLowerBuffer non è zero, significa che si riempiono, ma i frattali non appaiono. Perché dovrebbe essere così?
eh, non lo so).
La cosa principale che mi interessa: è possibile riempire i buffer di tempo direttamente in modo simile ai buffer di prezzo (senza ricorrere al CopyTime e altre funzioni regolari di copia nell'array), e come, e se no, perché? Davvero, per questo scopo devo creare un altro paio di buffer per memorizzare i secondi dall'inizio del 1970, ma con il tipo non datetime, ma qualche doppio o lungo, per esempio, e nei momenti necessari per convertire attraverso TimeToString in formato tempo come stringa letterale?
L'accesso a dati come datetime è simile all'accesso ai dati sui prezzi.
datetime è essenzialmente lo stesso int/long.
P.S.: chi è troppo pigro per riprodurre il codice di Fractals.mq5, mi dica solo come memorizza i dati temporali specifici calcolati (senza chiamare gli handle degli indicatori integrati e lavorare con essi)?
è lo stesso che con i dati interi, int/datetime/long è lo stesso.
Si, badaada))
niente impedisce al tipo datetime di essere nel buffer dell'indicatore (questo è auspicabile).
E invano)
È più facile con il buffer dell'indicatore - non è necessario determinare la dimensione dell'array.
E cosa sto facendo esattamente di sbagliato? Tutto è descritto in dettaglio, il codice sorgente è standard, testato nel tempo, il più semplice! Le modifiche sono semplici e ovvie... Sono perso nelle congetture della mia mente annebbiata... Quando sono bloccato su qualcosa, potrei anche chiamare un meccanico d'auto con una chiave a croce...
E qual è l'incantesimo runico per legare gli array datetime ai buffer degli indicatori? Di nuovo:
SetIndexBuffer
Lega il buffer di indicatori specificato a una matrice dinamica unidimensionale di tipo double, dichiarata globalmente.
E cosa sto facendo esattamente di sbagliato? Dopo tutto, ho descritto tutto in dettaglio, il codice sorgente è generalmente standard, testato nel tempo, il più semplice! Le modifiche sono semplici e ovvie... Sono perso nelle speculazioni della mia mente annebbiata... Quando sono bloccato su qualcosa, potrei anche chiamare un meccanico d'auto con una chiave a croce...
E qual è l'incantesimo runico per legare gli array datetime ai buffer degli indicatori? Di nuovo:
SetIndexBuffer
Lega il buffer di indicatori specificato a una matrice dinamica unidimensionale di tipo double, dichiarata globalmente.
Non hai bisogno di questo datetime. Scrivere tutto in un array doppio e convertirlo in datetime prima di usarlo (se necessario).
Fondamentalmente, l'unica differenza tra datetime e double è nella presentazione. È possibile convertire senza perdite il tempo scritto in double in datetime.
Entrambi sono tipi da 8 byte.
E cosa sto facendo esattamente di sbagliato? Dopo tutto, ho descritto tutto in dettaglio, il codice sorgente è generalmente standard, testato nel tempo, il più semplice! Le modifiche sono semplici e ovvie... Sono perso nelle speculazioni della mia mente annebbiata... Quando mi blocco su qualcosa, voglio un meccanico d'auto con una chiave a brugola...
Posso solo indovinare i dettagli del codice con le modifiche...
E come usare l'incantesimo runico per legare array di tipo datetime a buffer di indicatori? Di nuovo:
SetIndexBuffer
Lega il buffer di indicatori specificato a una matrice dinamica unidimensionale di tipo double, dichiarata globalmente.
Urain ha già risposto. Bene, affinché il compilatore non imprechi, qualcosa del genere:
Quindi... Già...
Niente di innovativo, ma il terreno è ben piantato, per così dire.
Grazie a tutti per il calcio medicinale. Farò un tentativo...
Grazie a tutti per i calci alla medicina.
Esiste un analogo interno della funzione di libreria array.Add()?
P.S.: se no, date una scorta di sonniferi per un anno.
Esiste un analogo interno della funzione di libreria array.Add()?
P.S.: se no, date una scorta di sonniferi per un anno.
Perché non memorizzare la data nell'indicatore...... o nel buffer...... tipo double
Molti punti aggiunti, altrimenti appare una specie di collegamento.
Tutto si converte correttamente senza errori