Autoapprendimento del linguaggio MQL5 da zero - pagina 27

 
Vasiliy Sokolov:

Questo è un cavallo sferico nel vuoto, non un diagramma di flusso di un EA funzionante. Alcuni blocchi potrebbero non esistere affatto. I blocchi possono essere riorganizzati. Qualsiasi programma MCL è un gestore di eventi. Questo è il postulato principale che non si trova nello schema, il che significa che inganna i lettori. Il mio consiglio: non leggete questa roba vecchia. Il manuale di Kovalev è superato. Molte delle informazioni in esso contenute non sono corrette, soprattutto per quanto riguarda il sistema di ordini di MT5. Kovalev offre essenzialmente di memorizzare questo schema ridicolo, poi memorizzare insiemi di eventi, e poi tira il gufo sul globo: dove presumibilmente questo schema è implementato nel programma Expert Advisor. Non ci sono schemi in MKL. Ci sono modelli tipici di utilizzo dell'ambiente di trading. Ma non esiste uno schema universale, che deve essere compreso e ricordato. Tutti gli "schemi" sono composti utilizzando funzioni e reazioni di queste funzioni agli eventi. Inoltre, ci sono dati che vengono richiesti... di nuovo per funzioni.

Con tutto il rispetto. Non esiste una cosa del genere. È solo che gli studenti capiscono che questo è un Expert Advisor educativo e non è permesso fare trading con esso. E per fare trading, devi imparare le strategie di trading... Ma questo dopo aver imparato la lingua. A proposito, la spiegazione è buona e chiara. Quello che spesso ci sfugge qui, soprattutto nei commenti nel kodobase. A volte è difficile capire cosa c'è scritto)))) Sono d'accordo, non esiste un buon codice)

 
MrBrooklin:

Nel libro di testo MQL4 di Sergei Kovalev ho trovato quello che stavo cercando. Ecco un estratto del libro:"Struttura di un semplice Expert Advisor . Di seguito è riportata la struttura di base di un semplice Expert Advisor basato su diversi blocchi funzionali, ogni blocco esegue una certa parte indipendente di calcoli".


A questo proposito, ho bisogno del consiglio di qualche esperto, questo schema strutturato è applicabile per scrivere un Expert Advisor in MQL5, o devo aggiungere qualche altro blocco?

Cordiali saluti, Vladimir.

Sì, questo schema è adatto a te. È semplice e ordinato. Una volta che hai imparato la lingua, puoi complicare/cambiare/aggiungere blocchi come meglio credi, ma puoi iniziare con questo. Lo schema giusto.
 
Vasiliy Sokolov:

Questo è un cavallo sferico nel vuoto, non un diagramma di flusso di un EA funzionante. Alcuni blocchi potrebbero non esistere affatto. I blocchi possono essere riorganizzati. Qualsiasi programma MCL è un gestore di eventi. Questo è il postulato principale che non si trova nello schema, il che significa che inganna i lettori. Il mio consiglio: non leggete questa roba vecchia. Il manuale di Kovalev è superato. Molte delle informazioni in esso contenute non sono corrette, soprattutto per quanto riguarda il sistema di ordini di MT5. Kovalev offre essenzialmente di memorizzare questo schema ridicolo, poi memorizzare insiemi di eventi, e poi tira il gufo sul globo: dove presumibilmente questo schema è implementato nel programma Expert Advisor. Non ci sono schemi in MKL. Ci sono modelli tipici di utilizzo dell'ambiente di trading. Ma non esiste uno schema universale, che deve essere compreso e ricordato. Tutti gli "schemi" sono composti utilizzando funzioni e reazioni di queste funzioni agli eventi. Inoltre, ci sono dati che vengono richiesti... di nuovo per funzioni.

Non capisco la sua critica. Lo schema è logico, tutte le azioni sono ordinate in modo sequenziale. Dà un'idea della struttura corretta dell'EA. Certo, si possono mescolare le cose, tagliare alcune cose e aggiungerne altre, ma la stabilità di un tale programma ne risentirebbe drammaticamente. In generale, non vedo cosa ci sia da lamentarsi nello schema.
 
Реter Konow:
Non capisco la sua critica. Lo schema è logico, tutte le azioni sono ordinate in modo sequenziale. Dà un'idea della struttura corretta di un EA. Certo, possiamo mescolare le cose e buttare via alcune cose, ma la stabilità di questo programma cambierà drammaticamente. In generale, non vedo cosa ci sia da lamentarsi nello schema.

Ok, va bene. Lasciatemi provare a spiegare.

1) Ecco uno schema. Alcuni blocchi sono dati (cosa sia un blocco, applicato al programma mql, non è spiegato. Forse è una funzione, forse un insieme di procedure, forse qualcos'altro, ma va bene, cerchiamo di capire intuitivamente cos'è un blocco allo stesso livello dell'autore).

2) I blocchi formano una catena dall'inizio del programma alla sua fine. In alcuni blocchi, la catena di esecuzione del programma è divisa in due (ma perché, a proposito, solo due? Non si possono dividere i tre in quattro? E se sono necessari quattro, come mostrarli in un diagramma? Passiamo al formato A1?). Apparentemente, è un modo per mostrare la ramificazione.

3) Ci sono dei blocchi molto strani, come "messaggi", che tipo di blocco è questo? Probabilmente una sorta di notifica da parte del programma che non ci sono condizioni adatte: ad ogni spunta arriverà un messaggio: "Troppo caro per comprare, troppo caro per comprare, troppo...". - figo, naturalmente, ma sono tutte congetture.

4) Il blocco più strano, è il blocco "gestione degli errori". Puoi entrarci, ma non puoi uscirne. Il programma ha preso un errore e si siede in questo blocco (si blocca probabilmente fino a un riavvio completo, ancora meglio fare in modo che il terminale si blocca in modo permanente, cosa non farebbe più errori - questa è l'idea!)

5) Se avviamo il programma per la prima volta, o non ci sono posizioni aperte nel conto, allora il blocco di chiusura degli ordini cosa fa? Niente. Ma questo schema logico dovrebbe comunque portarci al blocco di chiusura dell'ordine. Ci arriviamo perché lo schema è strettamente e gerarchicamente strutturato. Tutti i blocchi devono essere processati uno per uno, anche se questa è un'inutile e spietata elaborazione di una lista vuota di posizioni.

6) Il blocco di calcolo del valore dell'ordine è posto sotto il blocco di chiusura dell'ordine. Come può essere? Forse chiudiamo un ordine in base al suo "valore". Non è chiaro cosa stia succedendo qui.

E io guardo questo schema e non capisco davvero come questa "cosa" possa essere raccomandata per essere studiata? Come può essere considerato buono, grande ed educativo?

 
Vasiliy Sokolov:

Ok, va bene. Lasciatemi provare a spiegare.

1) Ecco uno schema. Alcuni blocchi sono dati (cosa sia un blocco, applicato al programma mql, non è spiegato. Forse è una funzione, forse un insieme di procedure, forse qualcos'altro, ma va bene, cerchiamo di capire intuitivamente cos'è un blocco allo stesso livello dell'autore).

2) I blocchi formano una catena dall'inizio del programma alla sua fine. In alcuni blocchi, la catena di esecuzione del programma è divisa in due (ma perché, a proposito, solo due? Non si possono dividere i tre in quattro? E se sono necessari quattro, come mostrarli in un diagramma? Passiamo al formato A1?). Apparentemente, è un modo per mostrare la ramificazione.

3) Ci sono dei blocchi molto strani, come "messaggi", che tipo di blocco è questo? Probabilmente una sorta di notifica da parte del programma che non ci sono condizioni adatte: ad ogni spunta arriverà un messaggio: "Troppo caro per comprare, troppo caro per comprare, troppo...". - figo, naturalmente, ma sono tutte congetture.

4) Il blocco più strano, è il blocco "gestione degli errori". Puoi entrarci, ma non puoi uscirne. Il programma ha preso un errore e si siede in questo blocco (si blocca probabilmente fino a un riavvio completo, ancora meglio fare in modo che il terminale si blocca in modo permanente, cosa non farebbe più errori - questa è l'idea!)

5) Se avviamo il programma per la prima volta, o non ci sono posizioni aperte nel conto, allora il blocco di chiusura degli ordini cosa fa? Niente. Ma questo schema logico dovrebbe comunque portarci al blocco di chiusura dell'ordine. Ci arriviamo perché lo schema è strettamente e gerarchicamente strutturato. Tutti i blocchi devono essere processati uno per uno, anche se questa è un'inutile e spietata elaborazione di una lista vuota di posizioni.

6) Il blocco di calcolo del valore dell'ordine è posto sotto il blocco di chiusura dell'ordine. Come può essere? Forse chiudiamo un ordine in base al suo "valore". Non è chiaro cosa stia succedendo qui.

E io guardo questo schema e non capisco davvero come si possa raccomandare questa "cosa" da studiare? Come può essere considerato buono, meraviglioso ed educativo?

OK. Ora la critica è più chiara. Beh, per molti versi si può essere d'accordo se lo si guarda "sotto la lente d'ingrandimento", ma non ha senso farlo. Un principiante dovrebbe farsi un'idea rapida, generalizzata e semplificata della composizione EA più comune e corretta (nel senso globale).

Un blocco è un insieme logicamente isolato di condizioni, controlli, funzioni e programmi.

Il design dei blocchi di programma implementa la corretta esecuzione del programma.

La ramificazione e la profonda gerarchia dei collegamenti dei blocchi non è mostrata nel diagramma per non confondere lo studente. Tutto è semplificato deliberatamente e questo è corretto dal punto di vista pedagogico. Se Kovalev avesse descritto una "galleria" di possibili gerarchie di strutture per 20 pagine, sarebbe stato meglio? Probabilmente non dopo tutto...) Ma, sì, tutto è in effetti più complicato e vario nella vita che sul diagramma. Ma bisogna iniziare con uno semplice.
 
Реter Konow:
Un principiante deve farsi un'idea di base, generalizzata e semplificata della composizione più comune e corretta (in senso globale) dell'EA.

Aha, bene, cioè globalmente Kovalev ha ragione, quindi che dire degli errori nello schema - un principiante capirà dove sono questi errori e dove è disegnato correttamente. È un principiante per ottenere l'essenza della rappresentazione generalizzata del dispositivo del consigliere. E cos'è un blocco, cosa sono le frecce, e perché devo bloccarmi dopo aver gestito degli errori- un principiante ci penserà su con il suo spirito potente.

 
Реter Konow:
Ok. Ora la critica è più chiara. Beh, per molti versi si può essere d'accordo se lo si guarda "sotto la lente d'ingrandimento", ma non ha senso farlo. Un principiante dovrebbe farsi un'idea rapida, generalizzata e semplificata della composizione EA più diffusa e corretta (in senso globale).

Un blocco è un insieme logicamente isolato di condizioni, controlli, funzioni e programmi.

La struttura a blocchi implementa la corretta esecuzione del programma.

Le ramificazioni e i collegamenti gerarchici dei blocchi non sono mostrati nel diagramma per non confondere lo studente. Tutto è semplificato deliberatamente e questo è corretto dal punto di vista pedagogico. Se Kovalev avesse descritto una "galleria" di possibili strutture gerarchiche per 20 pagine, sarebbe stato meglio? Probabilmente non dopo tutto...) Ma, sì, tutto è in effetti più complicato e vario nella vita che sul diagramma. Ma bisogna iniziare con uno semplice.

Ciao Peter! Sto riassumendo le informazioni di tutti i messaggi. Nel linguaggio di programmazione MQL5 non esiste un algoritmo di base chiaramente definito per la creazione e l'esecuzione di un programma (script, Expert Advisor). Tutti gli algoritmi sono unici a loro modo e non possono avere un cosiddetto "kernel", che può poi essere espanso. Poi si scopre che il mio programma di autoapprendimento è a un punto morto? Se qualcuno ha notato, tutti i miei script scritti in precedenza seguono uno schema di complicazione, cioè dal semplice al complesso. In sostanza, ho bisogno di rompere la nozione stessa di organizzare i pensieri nella mia testa. Funziona così?

Con rispetto, Vladimir.

 
MrBrooklin:

Ciao Peter! Riassumerò le informazioni di tutti i messaggi. Nel linguaggio di programmazione MQL5 non esiste un algoritmo di base chiaramente definito per creare ed eseguire un programma (script, Expert Advisor). Tutti gli algoritmi sono unici a loro modo e non possono avere un cosiddetto "kernel", che poi può essere espanso. Poi si scopre che il mio programma di auto-apprendimento è a un punto morto? Se qualcuno ha notato, tutti i miei script scritti in precedenza seguono uno schema di complicazione, cioè dal semplice al complesso. In sostanza, ho bisogno di rompere la nozione stessa di organizzare i pensieri nella mia testa. Funziona così?

Con rispetto, Vladimir.

No, assolutamente no. La critica di Vassily non ha in alcun modo diminuito la correttezza logica dello schema EA. Sì, si possono trovare alcuni difetti e "prenderli", ma in generale, è corretto, e questa è la cosa più importante. Questo schema ti aiuterà ad iniziare a scrivere i tuoi EA quando ci arriverai. In generale, non c'è differenza tra mql4 e mql5. I dettagli sono diversi, ma sono facili da capire. Continuate a imparare come prima.
 
Vasiliy Sokolov:

Aha, bene, cioè globalmente Kovalev ha ragione, quindi che dire degli errori nello schema - un principiante capirà dove sono questi errori e dove è disegnato correttamente. È un principiante per ottenere l'essenza della rappresentazione generalizzata del dispositivo del consigliere. Cos'è un blocco, cosa sono le frecce, e perché ci si deve bloccare dopo aver gestito degli errori - un principiante ci penserà con la sua mente potente.

Non abbiamo comunque un libro di testo migliore, quindi....

Piccoli errori non sono una scusa per fermarsi e "incollare" insieme parti di codice di altre persone, come molti fanno. Inoltre, si ignora la correttezza di base della presentazione del materiale, di cui c'è molto.
 
MrBrooklin:

Ciao Peter! Riassumerò le informazioni di tutti i messaggi. Nel linguaggio di programmazione MQL5 non esiste un algoritmo di base chiaramente definito per creare ed eseguire un programma (script, Expert Advisor). Tutti gli algoritmi sono unici a loro modo e non possono avere un cosiddetto "kernel", che poi può essere espanso. Poi si scopre che il mio programma di autoapprendimento è a un punto morto? Se qualcuno ha notato, tutti i miei script scritti in precedenza seguono uno schema di complicazione, cioè dal semplice al complesso. In sostanza, ho bisogno di rompere la nozione stessa di organizzare i pensieri nella mia testa. Funziona così?

Con rispetto, Vladimir.

Giusto! Tutti cercano di imparare la programmazione, usando concezioni errate del programma, basate sull'esperienza di vita. Per esempio, che un programma è come un testo in un libro con un indice, introduzione, sommario e conclusione. Cioè, il programma è una specie di schema sequenziale dall'inizio alla fine. All'inizio questa idea funziona, ma poi, man mano che il programma diventa più complesso, sorgono difficoltà e non è possibile scrivere un programma funzionante in modo affidabile. Kovalev è molto bravo a rendere servizi ribassisti: cerca di spiegare al lettore, utilizzando il suo accessibile apparato concettuale, che il programma è lo stesso libro con tale e tale schema. Ma non ci sono schemi! Lo script ha uno "schema" fondamentalmente diverso dall'Expert Advisor, e l'Expert Advisor ha uno schema diverso dall'indicatore.

Motivazione: