Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1439

 
ANDREY:

Grazie per il prezioso consiglio. Ora leggo solo la documentazione mentre scrivo il codice, quando mi imbatto in una domanda di cui non conosco la risposta. Non ho mai incontrato la necessità di scrivere dati su file mentre scrivevo codice in passato, quindi è un argomento totalmente nuovo per me.
Dimmi, la mia idea non può essere realizzata in modo più semplice, senza scriverla su un file? Come nel mio codice. Questo non è un codice funzionante ma per illustrare la mia idea di come trovare il minimo tra due ordini adiacenti aperti su una candela al minuto
Grazie per l'aiuto.

Cioè, ho scritto il prezzo di ogni tick direttamente nell'array, non in un file.

Beh, non so come si possa leggere così. Quando ho iniziato a programmare, quando entravo nella documentazione per qualsiasi cosa banale, la programmazione si fermava. Ne ho capito sempre di più... Hai letto di una funzione che scrive su un file e non hai visto nulla accanto ad essa. Ti hanno parlato di un altro e sei euforico per quello che hai sentito. Cos'altro c'è? Hai letto qualcosa? Quali altre funzioni ci sono per scrivere su un file? E come si deve leggere per fare queste domande? Vi ho detto di scrivere un array e di leggere un array. E vuoi scrivere .csv e leggere in un array. Non è così che funziona. E se vi serve solo tutto... al momento, perché scriverlo su un file?
 
Valeriy Yastremskiy:

Si ottiene il loro prezzo, si può fissare il tempo ma si aspetta un nuovo ordine. e poi si chiede il tempo massimo o minimo del tick. un tick è un tick dopo tutto.

Il prezzo di un tick è sempre un tick. Questa non è la variabile x bassa, ma l'espressione X =LoY[1]. LoY[1] è price..... senza opzioni.
"..... e poi si chiede il tempo massimo o minimo del tick ...."

Questa è la cosa di questa idea, il tempo non è affatto coinvolto ..... solo il prezzo minimo della candela, che scopro solo due volte. La prima volta quando viene aperto il primo ordine e la seconda volta quando viene aperto il secondo ordine. Poi confronto questi prezzi e faccio una conclusione: se il primo ordine è stato aperto prima della formazione di LoY[] o dopo la sua formazione. All'inizio, ho pensato che avevo bisogno di informazioni sul tempo per risolvere il mio problema. Ma poi mi è venuto in mente .... ed è apparso che possiamo fare a meno del tempo e che basta il prezzo minimo di una candela.

 
Alexey Viktorov:
Beh, non so come si possa leggere così. Quando ho iniziato a programmare, entrare nella documentazione per qualcosa di banale avrebbe fermato la programmazione. Ne ho capito sempre di più... Hai letto di una funzione che scrive su un file e non hai visto nulla accanto ad essa . Ti hanno parlato di un altro e sei euforico per quello che hai sentito. Cos'altro c'è? Hai letto qualcosa? Quali altre funzioni ci sono per scrivere su un file? E come si deve leggere per fare queste domande? Vi ho detto di scrivere un array e di leggere un array. E vuoi scrivere .csv e leggere in un array. Non è così che funziona. E se vi serve solo tutto... al momento, perché scriverlo su un file?

Penso che sia utile guardare cosa c'è accanto all'altro quando il materiale è collegato logicamente nel significato e presentato in una sequenza comprensibile. Come avviene di solito nei libri di testo. Non sento questa connessione e coerenza nel Manuale. Ammetto che potrei averli, ma il problema sono le mie peculiarità cognitive.

Non ho ancora capito la cosa principale. Perché dovrei scrivere i dati del mio codice nel file se non ne ho bisogno? In quali circostanze ha senso scrivere i dati di un programma in un file .... in generale e nel mio caso. Come mi sembra dalle tue parole, la ragionevolezza di scrivere dati in un file è in qualche modo condizionata da quanto spesso userò il mio codice. Ma continuo a non capire il senso di questa condizionalità. Forse il punto è che gli stessi dati del file possono essere usati anche dal mio altro programma? Ma poi un altro programma avrebbe bisogno esattamente di questi dati scritti nel file. E questo è tutt'altro che una certezza...
Grazie per l'aiuto.

 
Colleghi, salve! Sto cercando un indicatore di equity che mostri la percentuale di drawdown attuale sull'equity, così come le curve in tempo reale del saldo e dell'equity. Non faccio monitoraggio al volo per il gusto di farlo.
 
Alexey Viktorov:
Vi ho detto di scrivere un array e di leggere un array. E vuoi scrivere .csv e leggere un array. Non funziona così. E se vi serve solo tutto... al momento, perché scrivere su un file?

Mi ha incuriosito anche la frase rossa. Perché non volevo scrivere un .csv e leggere in un array. Perché non so ancora come fare. So che esistono file di testo con estensione .csv. Ma ho toccato in qualche modo un file con questa estensione nel mio codice? Dall' array .... read.... Midispiace :=)... manon so nemmeno comeleggerenell'array e non capisco ancora cosa significa.
Ti sarei grato se potessi riscrivere il mio codice (è piuttosto corto) in modo che abbia la funzione
di scrittura nel file e la funzione di lettura dal file.
Poiché questo codice è mio, imparerò rapidamente nuove informazioni per me.
Grazie ancora una volta, e scusatemi se non sono avanzato come voi e faccio domande probabilmente stupide (secondo la vostra opinione professionale).

Voglio imparare mql4 e poi mql5 in modo stabile. Questa non è una moda momentanea. Inoltre, ora ho più tempo per farlo.
Un'altra cosa è che sto ricevendo nuove informazioni non così velocemente come vorrei.... ma lo sto facendo. Grazie a te e agli altri partecipanti di questo forum. Per quello che sono grato a tutti.

 
ANDREY:

Mi ha incuriosito anche la frase rossa. Perché non volevo scrivere un .csv e leggere in un array. Perché non so ancora come fare. So che esistono file di testo con estensione .csv. Ma ho toccato in qualche modo un file con questa estensione nel mio codice? Dall' array .... read.... Midispiace :=)... manon so nemmeno comeleggerenell'array e non capisco ancora cosa significa.
Ti sarei grato se potessi riscrivere il mio codice (è piuttosto corto) in modo che abbia la funzione
di scrittura nel file e la funzione di lettura dal file.
Poiché questo codice è mio, imparerò rapidamente nuove informazioni per me.
Grazie ancora una volta e scusatemi se non sono avanzato come voi e faccio domande probabilmente stupide alla vostra opinione professionale.

Andriy, non scavo nei codici degli altri. Preferisco spiegare, se non riesco a capire ciò che è scritto nella documentazione. Se non avete letto la documentazione o non l'avete approfondita, ovviamente non avete capito nulla. E il modo in cui suggerisci non sarà una formazione, ma una "boccia di pesce" per la quale si vuole fare qualcosa di simile in futuro. Ma questo approccio non sempre funziona.

 
ANDREY:

Grazie per il consiglio. Ma...... Ecco uno screenshot della documentazione sulle operazioni su file

Mi sembra che la guida sia progettata per utenti già avanzati. Kovalev nel suo tutorial ha spiegato in dettaglio cosa è necessario e per quale scopo prima di entrare nei dettagli.

Ma il suo tutorial, come si dice qui, è irrimediabilmente superato, e persino pericoloso per i principianti.

No, non lo è. Dovete solo leggerlo capendo che ci sono stati miglioramenti e cambiamenti linguistici. È meglio inserire prima il codice creando un modello nel meta-editor. Ci saranno meno errori. Nella logica degli algoritmi il libro di testo è rilevante. E la scrittura sul file è corretta. Date un'occhiata al libro di Dmitry Fedoseyev su µl5. Credo che abbia messo il suo su Googleplay.

 
Valeriy Yastremskiy:

No, non è superato. Basta leggere capendo che ci sono stati miglioramenti linguistici e ci sono cambiamenti. È meglio inserire il codice creando prima un modello di programma nel meta-editor. Ci saranno meno errori. Nella logica degli algoritmi il libro di testo è rilevante. E la scrittura sul file è corretta. Date un'occhiata al libro di Dmitry Fedoseyev su µl5. Credo che abbia messo il suo su Googleplay.

Grazie per il suggerimento. Ho già iniziato a leggere FILE OPERATIONS dal tutorial di Kovalev. Infatti... qualcosa comincia a diventare chiaro. Ho capito che tutti gli EA che stavo testando leggono i file di testo con i prezzi delle barre (anche se non creati dal mio programma) con estensione .cvv situati nella cartella del terminale Tester.
In altre parole, le informazioni (dati) di qualsiasi programma vengono scritte nel file e leggere questi dati dal file, anche da qualsiasi programma. Mi sembra che i file memorizzino una grande quantità di dati che non è ragionevole memorizzare nel programma. Qualcosa come il file mqh.
Se volete spiegarmi cosa significa la frase di Alexey Victorov : "....Vuoi scrivere .csv e leggere array....." dal post con riferimento al mio codice dal post
. Pensavo intendesse il file di testo .cvv, con i prezzi delle barre dalla directory del tester. Ma cosa intenda esattamente, ancora non lo capisco. Non sono io a scrivere questi file .cvv, ma il programma del rivenditore Alpari... Come il programma legge da un array - in generale capisco un po' ... Accede a una cella di una matrice tramite il suo indirizzo, entra nella cella e accede al valore della cella (cioè lo legge). Come può un programma leggere in un array invece che da esso? Questa è una contraddizione irrisolvibile .... mi sembra nella mia opinione di profano. Credo, per qualche ragione, che in un array si possano scrivere solo alcuni valori. E si può leggere solo da un array

 
ANDREY:

...
Se non ti dispiace spiegarmi cosa significa la frase di Alexey Victorov "....E vuoi scrivere .csv e leggere nell'array....." del post in relazione al mio codice del post
Come mi è sembrato lui intende il file di testo .cvv, con i prezzi a barre del catalogo Tester. Ma cosa intenda esattamente, ancora non lo capisco. Non sono io a scrivere questi file .cvv, ma il programma del rivenditore Alpari... Come il programma legge da un array - in generale capisco un po' ... Accede a una cella di una matrice tramite il suo indirizzo, entra nella cella e accede al valore della cella (cioè lo legge). Come può un programma leggere in un array invece che da esso? Questa è una contraddizione irrisolvibile .... mi sembra nella mia opinione di profano. Credo, per qualche ragione, che in un array si possano scrivere solo alcuni valori. E si può leggere solo dall' array.

Sì, e non mi dispiace. Non sta scavando nel codice.

FileWrite

Scrive i dati in un file CSV o TXT

FileWriteArray

Scrive array di qualsiasi tipo, tranne gli array di stringhe, in un file di tipo BIN .


Leggere in un array, cioè da un file. Guarda la funzione

uint  FileReadArray( 
   int    file_handle,               // handle файла 
   void&  array[],                   // массив для записи 
   int    start=0,                   // стартовая позиция для записи в массив 
   int    count=WHOLE_ARRAY          // сколько читать 
   );

Passa un array preparato e vi scrive.

Potete solo usare la funzione read array da un file scritto con la funzione write array.

In linea di principio, potete leggere qualsiasi file che non contenga stringhe in un array. Ma sarà solo il riempimento dell'array elemento per elemento.

ps;

Grazie al caso, almeno ho letto io stesso la documentazione e ho trovato nuove funzioni di scrittura e lettura di array in mql5.

Документация по MQL5: Файловые операции / FileSave
Документация по MQL5: Файловые операции / FileSave
  • www.mql5.com
FileSave - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Non è difficile neanche per me. Non si tratta di scavare nel codice.

FileWrite

Scrive i dati in un file CSV o TXT

FileWriteArray

Scrive qualsiasi tipo di array, tranne gli array di stringhe, in un file di tipo BIN .



Grazie al caso, almeno ho letto la documentazione e ho trovato nuove funzioni in mql5 per la scrittura e la lettura di array.

Felice di averti aiutato :=) :=) :=)

Ora riguardo al mio codice, che probabilmente è così brutto che è sgradevole frugarci dentro. Ma ditemi almeno quale sarebbe il vantaggio del mio codice, se scrivessi un singolo array (con valori di prezzo) di questo codice in un file, e poi il programma lo leggesse da questo file e usasse i suoi valori in ulteriori calcoli? E l'array di soli 60 elementi. Cosa esattamente nel mio codice sarebbe ottimale?
Grazie per il tuo aiuto.