Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1202

 
Igor Makanu:

è quello che sto scrivendo, è più facile da controllare, entro 10 minuti.... controllato, FileWriteArray() non scrive la dimensione dell'array nell'intestazione o nel primo byte, quindi dovete scrivere voi stessi questi valori

Igor, non ho affatto detto che è impossibile. Leggete attentamente le mie parole.

Alexey Viktorov:

...

Come potete leggere una struttura e tre array da un file che non sapete come è stato scritto?

...

Inoltre, in quell'esempio c'è un file aperto, una struttura letta, tre array letti e nessuna chiusura di file. A questo punto bisogna chiedersi se il file viene chiuso dopo essere stato scritto.

Nel tuo esempio sta leggendo array ed elementi della struttura, non FileReadStruct().

Grazie per l'esempio. Me ne ricorderò e lo userò se necessario.

 
Alexey Viktorov:

Igor, non ho affatto detto che è impossibile. Beh, leggete le mie parole un po' più attentamente.

Inoltre, quell'esempio ha l'apertura del file, la lettura della struttura, la lettura di tre array e nessuna chiusura del file. A questo punto si comincia a chiedersi se il file viene chiuso dopo essere stato scritto.

Il tuo esempio mostra la lettura di array ed elementi di struttura, non FileReadStruct().

Grazie per l'esempio. Me ne ricorderò e lo userò se necessario.

Non so come altro spiegare ))))

voi credete in una sorta di magia - che programmi di terze parti possano capire il formato dei dati scritti in un file binario - nessuno può leggere dati da un file binario senza conoscere la struttura dei dati!

Un file binario è un grande array di byte a cui si accede in modo sequenziale - cosa avete scritto, cosa avete letto? - solo tu lo sai, se non lo sai leggerai un sacco di dati binari.

)))

SZZ: Naturalmente voglio scrivere (leggere) un array con un comando ArrayWrite e una struttura allo stesso modo, sì, è possibile, ma se usiamo una dimensione fissa dei dati e scriviamo ogni struttura/array in un file separato

 

Igor Makanu:

Beh, voi credete in una specie di magia - che programmi di terze parti possano scoprire il formato dei dati scritti in un file binario - nessuno può leggere i dati da un file binario senza conoscere la struttura dei dati!

Lei mi ha frainteso. Ho detto esattamente la stessa cosa solo con altre parole. Non era una domanda su come fare, era... nemmeno un punto interrogativo...

 

Potete dirmi per favore come creare un simbolo personalizzato in mt5 se voglio metterci un grafico azionario con dei fondi? Broker di apertura, semmai)

Ho provato a fare quanto segue:

1. Scarico una cronologia in csv da finam

2. Convertire csv in json

{
    "root": {
        "row": [
            {
                "TICKER": "FXRU",
                "PER": "1",
                "DATE": "20190502",
                "TIME": "100100",
                "OPEN": "748.7000000",
                "HIGH": "749.7000000",
                "LOW": "747.7000000",
                "CLOSE": "749.7000000",
                "VOL": "115"
            },
               ]
           }
}

3. non funziona.

 
Igor Makanu:

è quello che sto scrivendo, è più facile da controllare, entro 10 minuti.... controllato, FileWriteArray() non scrive la dimensione dell'array nell'intestazione o nel primo byte, quindi dobbiamo scrivere noi stessi questi valori

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1. d_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 3,14159 3,14159 3,14159 3,14159

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. i_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1234567890 1234567890

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. c_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 127 127 127 127 127

2020.03.25 10:18:36.058 tst (EURUSD,H1) mstruct.a = 666 , mstruct.b = 123.123000

Cioè, se le dimensioni degli array sono dinamiche, significa che scriviamo le dimensioni dell'array quando scriviamo e leggiamo le dimensioni dell'array dal file e impostiamo le dimensioni degli array della struttura quando leggiamo

nel mio esempio 2 strutture - una è stata inizializzata e scritta, la seconda è stata letta, inizializzazione dai dati del file

Grazie, molto impressionante.

E se scrivete 2 strutture nel file, potete ovviamente leggerle allo stesso modo.


PS Una struttura semplice (in qualsiasi quantità) viene scritta e letta dalla funzione regolare senza problemi.
 
Per favore, come si imposta la dimensione della seconda dimensione di un array dinamico bidimensionale al volo?
 
Сергей Таболин:
Per favore, siate gentili, come si imposta la dimensione della seconda dimensione di un array dinamico bidimensionale al volo?

o avvolgere un array unidimensionale in un array di strutture

struct Sarr
{
   double            y[];
};
struct Sarr2x2
{
   Sarr              x[];
};

void OnStart()
{
   Sarr2x2 arr;
   ArrayResize(arr.x,10);
   for(int i=0; i<ArraySize(arr.x); i++)
   {
      ArrayResize(arr.x[i].y,10);
   }
   arr.x[0].y[0] = 5.0;
}
//+------------------------------------------------------------------+

o usare una classe che farà il lavoro - non voglio cercarla, vi ho già dato i link un centinaio di volte

https://www.mql5.com/ru/forum/6729/page3#comment_674794


sì, c'è una classe matrice in alglib

#include <Math\Alglib\matrix.mqh>

void OnStart()
  {
      CMatrixDouble d_arr;
      d_arr.Resize(10,10);
 

Cosa significa la scala temporale nella storia del trading?

Scala X. Cosa significano i valori sulla scala?

 

come usare MQL per creare un'immagine .bmp e salvarla in un file senza legarsi a un grafico, cioè senza creare prima un oggetto Canvas o CGraphic su un grafico

Ho cercato cursoriamente sugli articoli non ho visto tali informazioni, ho bisogno di un'istruzione su come iniziare, scriverò il codice da solo

 
Igor Makanu:

come usare MQL per creare un'immagine .bmp e salvarla in un file senza legarsi a un grafico, cioè senza creare prima un oggetto Canvas o CGraphic su un grafico

Ho cercato cursoriamente sugli articoli non ho visto tali informazioni, ho bisogno di un'istruzione su come iniziare, scriverò il codice da solo

Nelle risorse
Motivazione: