Domande da un "manichino" - pagina 67

 
sergeev:

il numero di elementi è specificato da una costante

Se il numero di elementi non è noto in anticipo, usate ArrayResize.

Queste sono le basi del c++

const int elements=4;
Se è così, non ha aiutato.
 
x100intraday:
Se è così, non ha aiutato.

#define  elements 4
 
sergeev:

Grazie.
 

Salve.

Potete dirmi per favore come impostare un'area evidenziata in MetaTrader 5 per essere in grado di tracciare gli ordini correnti?

Vedere lo screenshot allegato.

Grazie in anticipo.

File:
uf2mcfxvni.JPG  285 kb
 
Dimm-ua:

Salve.

Potete dirmi per favore come impostare un'area evidenziata in MetaTrader 5 per essere in grado di tracciare gli ordini correnti?

Vedere lo screenshot allegato.

Grazie in anticipo.


La finestra "Toolbox", scheda "Trade".
 
Karlson:
Scheda Strumenti.
Devo essere un completo idiota, ma non esiste una cosa del genere
 
 
Karlson:

OK, grazie mille - risolto
 

Domanda agli sviluppatori - un'inversione di posizione cambia il tempo di apertura di una posizione? Se no, come si ottiene il tempo di rollover della posizione?

Si scopre che una posizione può essere invertita solo in due richieste - per chiudere la posizione corrente e aprirne una nuova nella direzione opposta, allora il tempo di apertura della posizione sarà uguale al tempo di inversione. E se si capovolge di una richiesta, allora non possiamo ottenere il tempo di rollover della posizione usando la funzione PositionGetInteger...?

 

Ha preso l'esempio più semplice di un indicatore interno - Frattali: https://www.mql5.com/ru/code/viewcode/30/5540/fractals.mq5. Ci sono queste pile di codice:

ExtUpperBuffer[i]=High[i];
ExtLowerBuffer[i]=Low[i];

Questi buffer sono dinamici di tipo doppio.

Più avanti la necessità di memorizzare non solo i dati di prezzo - High e Low - ma anche gli specificati HighTime e LowTime delle barre estreme (come sapete, tutti i TF, tranne M1, hanno valori di tempo approssimativi, quindi ho dovuto calcolare il tempo esatto per me stesso per aggiungerlo nei buffer di tempo per un ulteriore utilizzo). Capitan Ovvio suggerisce che abbiamo bisogno di dichiarare array appropriati di tipo datetime, quindi riempire in modo simile:

ExtUpperTimeBuffer[i]=exactTime[0]; // правая часть - элемент массива, вычисленный заранее
ExtLowerTimeBuffer[i]=exactTime[0]; // правая часть - элемент массива, вычисленный заранее

e altro:

ExtUpperTimeBuffer[i]=EMPTY_VALUE;
ExtLowerTimeBuffer[i]=EMPTY_VALUE;

ma prima di questo, andate su aiuto datetime e scoprite:

"Costanti di data e ora... " e "...può essere rappresentato come una stringa letterale". Inoltre, non possiamo associare array di questo tipo a buffer di indicatori (e non ne abbiamo bisogno?), non possiamo applicare SetIndexBuffer agli array di questo tipo di dati per ragioni ben note. E noi non lo facciamo. Ci riflettiamo a lungo e arriviamo alla conclusione che va bene così. Compiliamo il codice risultante. Otteniamo un avvertimento"troncamento del valore costante" per le stringhe con =EMPTY_VALUE(ci sentiamo tristi) e un errore nel rapporto dell'Expert Advisor: "Array out of range " per le stesse stringhe (ci sentiamo tristi 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 la dimensione dell'array è ancora zero. C'è anche un'altra cosa strana: le dimensioni dei buffer ExtUpperBuffer e ExtLowerBuffer sono non-zero, il che significa che sono riempiti e tuttavia i frattali non appaiono. Perché questo è improvvisamente il caso?

La cosa principale che mi interessa: è possibile riempire i buffer di tempo direttamente come i buffer di prezzo (senza ricorrere a CopyTime e altre funzioni regolari di copia in array) e come, e se no, perché? Davvero, per questo scopo dovrei fare 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?

P.S.: chi è troppo pigro per riprodurre il codice completo di Fractals.mq5, mi dica solo come memorizza i dati calcolati specifici per il tempo (senza chiamare gli handle degli indicatori integrati e lavorare con essi)?

Grazie.

Motivazione: