Autoapprendimento del linguaggio MQL5 da zero - pagina 47

 

Vladimir Simakov:

Il mio amico ha guardato questa merda e ha detto: 250 mila dollari per me e 75 mila ciascuno per i miei due rottami, e riscriveremo questa merda in sei mesi o ce ne libereremo.

questa è la decisione giusta a giudicare dall'assetto, con l'approccio descritto ci saranno sempre problemi con i medici di base.

 
MrBrooklin:

Ho letto tutti i post sulle variabili globali e ho capito quello che tutti i partecipanti a questa discussione stavano cercando di dirmi. Imparerò a scrivere il codice del programma senza usare variabili globali. Grazie a tutti per questi consigli costruttivi!

Sinceramente, Vladimir.

I programmatori hanno paura di usare le variabili globali a causa degli errori che si possono fare quando si cambiano i loro valori. Si crea una situazione in cui un errore è difficile da localizzare, perché ogni funzione può cambiarli. Naturalmente, solo le variabili devono esistere nell'ambito globale che tutte le funzioni del programma devono vedere. Non può essere altrimenti.

Mi è sempre piaciuto usare le variabili globali, perché assicuravano una rapida crescita delle funzionalità, mentre il programma si trasformava in un enorme cantiere attivo. La gente spesso mi rimprovera per il modo in cui scrivo il codice, ma questo è il motivo per cui è un cantiere, perché la pulizia viene fatta dopo la costruzione di base dell'edificio, e quando la casa è costruita, si può iniziare a piastrellare, dipingere, pulire la zona. Fino ad allora, la priorità è montare le casseforme e versare il calcestruzzo).

Tuttavia, i programmatori la pensano diversamente. Essi "puliranno" e "cancelleranno" il loro codice, anche se si tratta di due righe e mezzo. Si pulirà il loro codice anche se è lungo due righe e mezzo, ma brillerà come una moneta nuova). Questa attitudine al codice è giustificata dalla loro professione di cui vivono, ma dal punto di vista creativo sono rigidi e poco sviluppati. È così che va...

Il mio consiglio: imparate a scrivere correttamente, ma a volte permettetevi di allontanarvi dalle regole e sperimentate per ottenere un'esperienza più varia. Questo aiuterà il vostro apprendimento e imparerete più velocemente.
 
MrBrooklin:

Continuo a studiare il linguaggio di programmazione MQL5. Sto incollando di nuovo il codice rivisto dello script, tenendo conto dei consigli dei partecipanti a questo thread. Ho testato lo script in tutte le modalità. Nessun problema rilevato. Per cominciare ho applicato il numero minimo di parametri di input. Il codice dello script è scritto in inglese, i commenti al codice sono in russo, in modo che sia più facile da digerire. Come ho promesso prima, ho cercato di descrivere lo script in un modo comprensibile per uno studente di prima classe della scuola di programmazione.

Spero di aver fatto esattamente come mi è stato detto dai partecipanti a questo thread, ma potrei sbagliarmi.

Saluti, Vladimir.

È fantastico che abbiate capito da soli come e dove spostare la variabile globale bool enough_time. State facendo progressi.
 
Реter Konow:
È fantastico che abbiate capito come e dove spostare la variabile globale bool_timе. State facendo un ottimo lavoro.

Grazie, Peter, per il tuo sostegno e aiuto. Ho spostato le variabili globali all'interno della funzione grazie ai consigli che mi sono stati dati in precedenza dai partecipanti a questo thread. Ora, quando le informazioni sono ordinate nella mia testa, diventa molto più facile afferrare le cose nuove.

Saluti, Vladimir.

 

Buongiorno a tutti e buon umore!

Cari esperti di programmazione! Vorrei esprimere la mia sincera gratitudine per tutti i suggerimenti e i consigli costruttivi che condividete con me!

Sinceramente, Vladimir.

 
MrBrooklin:

Buongiorno a tutti e buon umore!

Cari esperti di programmazione! Vorrei esprimere la mia sincera gratitudine per tutti i suggerimenti e i consigli costruttivi che condividete con me!

Sinceramente, Vladimir.


Vi muovete velocemente ... :-)
È a causa della mia educazione tecnica superiore di base, se non mi sbaglio...

 
Aleksey Masterov:

Ti stai muovendo velocemente... :-)
È a causa di un'istruzione tecnica superiore di base, se non mi sbaglio...

Ciao Alexey! Sì, è vero, ho una formazione tecnica superiore sovietica legata all'automazione dei processi nella produzione e un'esperienza come ingegnere elettronico in un'organizzazione che proprio in quei giorni sovietici riparava computer elettronici.

Saluti, Vladimir

 
MrBrooklin:

Ciao Alexey! Sì, è vero, ho una formazione tecnica superiore legata all'automazione dei processi nella produzione e un'esperienza di lavoro come ingegnere elettronico nell'organizzazione che si occupava, nella stessa epoca sovietica, della riparazione di ECM.

Sinceramente, Vladimir.


Si nota subito, per me... Al livello e alla velocità dei vostri progressi in questa "arte" di tradurre le fantasie in codice, soprattutto quelle filosofiche come nel vostro ultimo scritto! :-)
IMHO, se si continua a questo ritmo, si strofinerà il naso di molti a la expert progamers qui ... :-)
Fai domanda per un lavoro a distanza con il team di MT5 methaquotes!!!
 
Vasiliy Sokolov:

Continua a

Era chiaro dal post sopra che il focus era sulle funzioni. Tutto era dedicato a loro e a nient'altro che a loro. Si potrebbe pensare che questo sia un ovvio pregiudizio soggettivo o qualche arcana "filosofia". Tuttavia, qui non c'è nessuna filosofia. E tale attenzione alle funzioni non è casuale. Il punto è che nella programmazione, la funzione è di fondamentale importanza. Inoltre, la funzione è una nozione molto importante e fondamentale in matematica. Negli anni '20 del secolo scorso, Alonzo Church sviluppò un sistema di calcolo basato sulle funzioni. Questo è stato chiamato lambda-calculus. Questo sistema formalizzò la nozione di calcolabilità e legò strettamente i calcoli del computer e la matematica. I principali programmatori del mondo svilupparono i cosiddetti linguaggi di programmazione funzionale basati sul lambda-calculus, in cui le funzioni occupano il posto principale. Per esempio, nel linguaggio di programmazione funzionale Haskell, non c'è nemmeno un ciclo for o qualcosa di simile. Invece, si propone di chiamare una funzione in modo speciale, ricorsivamente, per calcolare il valore desiderato. Si può dimostrare che con solo le funzioni e nessun incarico, è possibile scrivere un linguaggio di programmazione completo alla Turing. Questo è un linguaggio che permetterebbe di scrivere tutto ciò che è possibile in qualsiasi altro linguaggio turing-completo, come un linguaggio procedurale o OOP.

MQL non è un linguaggio funzionale, ma piuttosto un linguaggio procedurale, estensibile per classi, con una tipizzazione rigorosa e una ricca API orientata al soggetto (sotto forma delle stesse funzioni, oh sorpresa). D'altra parte, la teoria delle funzioni si basa su una solida base matematica, offre modelli semplici ed efficaci di utilizzo di qualsiasi linguaggio di programmazione dove ci sono funzioni, quindi non è almeno lungimirante abbandonare le funzioni e le basi matematiche dietro di esse. Ecco perché faccio così tanta attenzione alle funzioni. Non importa quanto bene comprendiate il design dell'array, o se fate un errore con un certo tipo di dati. Questo può essere rapidamente aggiustato e corretto. Ma se non capite le funzioni e come sono collegate, non diventerete nemmeno un programmatore medio.

Così, per imparare a progettare normalmente, cioè linearmente nel tempo per espandere la funzionalità del vostro programma, dovete imparare quanto segue:

  • Rappresentare chiaramente (se non completamente, ma chiaramente necessario) il modello di eventi di MetaTrader 4.5.
  • Sapere come lavorare con le funzioni del sistema. Riassumono i loro risultati nelle loro funzioni. Combinate le chiamate delle funzioni di sistema nelle vostre funzioni.
  • Essere capaci e appassionati di scrivere le proprie funzioni.
  • Essere in grado di capire le catene di chiamate di funzioni: per esempio quando la funzione a() chiama la funzione b(), e b() chiama c() ed e() chiama la funzione c().
  • Sapere come scrivere funzioni pulite e capire perché dovreste scrivere funzioni pulite. Più tardi spiegherò cos'è una funzione pura.

Le funzioni sembrano semplici. "Cosa c'è da imparare? Basta leggere un paragrafo qui, ed è tutto. E poi gli array, per, mentre..." - No, non lo sono. Le funzioni sono davvero apparentemente semplici (e questo va bene). Ma perché possano davvero risolvere compiti in modo efficiente, le funzioni devono avere certe proprietà ed essere combinate tra loro in un certo modo. Come fare tutto questo lo scriverò probabilmente più tardi.

Ciao Vasiliy! Per favore, se non è difficile per voi, scrivete un seguito sulle proprietà delle funzioni. Per me, come per altri novizi della programmazione, è molto importante e utile sapere che le funzioni devono avere certe proprietà e unirsi tra loro in un certo modo.

Tutti i vostri blocchi di messaggi relativi alle funzioni sono già raccolti in un unico documento Word per me.

Sinceramente, Vladimir.

 
Aleksey Masterov:

... Fai domanda per un lavoro a distanza con il team di MT5 methaquotes!!!

Alexei, stai scherzando? Sì, vorrei prima imparare le basi!

Sinceramente, Vladimir.