Lavorare su un file da più chart

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
madellaf
Messaggi: 3
Iscritto il: 08/11/2020, 0:09

Lavorare su un file da più chart

Messaggio da madellaf »

Buongiorno a tutti

a causa della limitazione del virtual Hosting, mi trovo costretto a non utilizzare le Global Variables su cui si basava il mio EA, e a utilizzare uno o più files in loro vece.

IL problema che non riesco a risolvere è come poter aprire un file in read only in MQL4.
Mentre posso ovviamente aprirlo da qualsiasi altra app (Excel o quant'altro), mi è impossibile aprirlo in lettura da un expert mentre è aperto in un altra chart.

Esiste un modo? Se si, qual'è?

Grazie in anticipo
senapazio
Messaggi: 107
Iscritto il: 13/09/2015, 1:47

Re: Lavorare su un file da più chart

Messaggio da senapazio »

Ciao madellaf,
puoi usare FileOpen() per aprire il file con il flag FILE_READ. Quando finisci di leggere il file devi ricordarti di chiudere la lettura del file con la funzione FIleClose() per permettere al file di essere letto da altri EA.

Per sincronizzare la lettura tra i vari EA puoi usare un file di lock.
Es.: prima di leggere un file_dati controlli che non esista il relativo file_lock;
quindi se non c'è il file_lock lo crei e subito dopo apri in lettura il tuo file_dati;
un eventuale EA che tenta la lettura del file_dati dovrà prima controllare l'esistenza del file_lock con FIleIsExist()
e cosi via, a grandi linee
madellaf
Messaggi: 3
Iscritto il: 08/11/2020, 0:09

Re: Lavorare su un file da più chart

Messaggio da madellaf »

Quindi di fatto, è possibile solo una lettura alternata. L'accesso a un file in utilizzo (o comunque aperto da un altro EA) non è possibile
senapazio
Messaggi: 107
Iscritto il: 13/09/2015, 1:47

Re: Lavorare su un file da più chart

Messaggio da senapazio »

madellaf ha scritto: 08/11/2020, 16:47 Quindi di fatto, è possibile solo una lettura alternata. L'accesso a un file in utilizzo (o comunque aperto da un altro EA) non è possibile
Ti dico la verità, non ho mai provato a fare letture di un file da più EA conteporaneamente.
Meglio se fai dei test usando FileOpen con flag FILE_READ, nella documentazione ufficiale trovi più dettagli.
Poi fammi sapere come vanno i test, sono curioso.
madellaf
Messaggi: 3
Iscritto il: 08/11/2020, 0:09

Re: Lavorare su un file da più chart

Messaggio da madellaf »

In realtà è stato piuttosto semplice.
Bastava uno SHARED_WRITE nei diversi FileOpen
senapazio
Messaggi: 107
Iscritto il: 13/09/2015, 1:47

Re: Lavorare su un file da più chart

Messaggio da senapazio »

madellaf ha scritto: 19/11/2020, 13:20 In realtà è stato piuttosto semplice.
Bastava uno SHARED_WRITE nei diversi FileOpen
Ottimo!
Ci mettiamo pure i link alla doc ufficiale per chi vuole dare un'occhiata
https://www.mql5.com/en/docs/constants/ ... /fileflags
https://docs.mql4.com/constants/io_constants/fileflags

Chi c’è in linea

Visitano il forum: CC [Bot] e 0 ospiti