English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Programmatori Migliori (Parte 01): devi smettere di fare queste 5 cose per diventare un programmatore MQL5 di successo

Programmatori Migliori (Parte 01): devi smettere di fare queste 5 cose per diventare un programmatore MQL5 di successo

MetaTrader 5Esempi | 28 febbraio 2022, 10:41
340 0
Omega J Msigwa
Omega J Msigwa

Introduzione

'La mente dell'uomo, una volta ampliata da una nuova idea, non riacquista più le sue dimensioni originali.'
— Oliver Wendell Holmes

Per diventare Programmatori Migliori non solo abbiamo bisogno di imparare il codice 24/7 , ma abbiamo anche bisogno di conoscere le migliori pratiche, se non altro per capire come imparare a programmare. Capire come imparare il codice, insieme alle migliori pratiche da applicare, è cruciale per tutti coloro che vogliono avere una carriera di successo nella programmazione. Conoscendo i come e i perché, diventiamo consapevoli di ciò che stiamo facendo—questo aumenta la nostra capacità di ricordare e ci aiuta a migliorare il nostro codice in generale.

I seguenti modi sono i metodi collaudati che possono cambiare la tua esperienza di programmazione e il modo in cui lo fai, quasi da un giorno all'altro, se applichi attentamente tutto ciò che stai per leggere in questo articolo.


01: Abbandona l'abitudine di fare copia e incolla ciecamente

"Il piacere più nobile è la gioia della comprensione."
— Leonardo Da Vinci

Questa è la più grande abitudine dei neofiti e talvolta anche i programmatori esperti lo fanno. Ricordo che quando ho iniziato a programmare per la prima volta nel 2019, la maggior parte delle volte sul forum cercavo quel "Codice che funziona". Non ho prestato molta attenzione a ciò che è stato spiegato ogni volta che ho fatto una ricerca su un determinato argomento; tutto quello che stavo cercando era quel commento quando qualcuno ha risposto come "Grazie ora funziona" o qualsiasi altro commento che la gente ha detto che è stato utile (soprattutto la persona che ha posto la domanda al primo posto nel forum)… Non c'è bisogno di dire cosa ho fatto una volta trovato quel pezzo di codice che funziona!!!

È imbarazzante ora quando mi rendo conto che una volta ho dichiarato che il Grafico della Libreria Standard non funziona

  


Ora so cosa non ha funzionato in quel periodo—ero io perché anche il codice stesso era stato copiato da qualche parte che non ricordo. Il punto qui è il seguente:

Assicurati di capire cosa stai facendo. Non copiare e incollare alla cieca il codice dal forum solo per completare le cose e sistemarle rapidamente

La maggior parte delle volte, il modo in cui molti sviluppatori esperti rispondono alle persone nel forum è difficile da seguire per le persone con questa abitudine, perché rispondono solo fornendo un collegamento alla documentazione di MQL5, su un determinato argomento, per non parlare delle funzionalità automatiche su questo sito Web che forniscono collegamenti correlati a un problema specifico. La ragione di ciò è che la maggior parte dei problemi sono causati dalla mancata comprensione dei fondamenti e delle basi.

SEMPRE: Cerca la comprensione, non una soluzione!

Una volta che compresi i fondamenti, codificare diventa naturale e automatica.

L'abitudine di fare copia e incolla non solo danneggerà la tua reputazione, ma ti causerà anche più problemi che soluzioni.

02: Rinuncia ai problemi di hacking

Prima di voler risolvere il problema nel codice, cerca di comprendere perché hai il problema. Sapere questo ti aiuterà a porre domande migliori nel forum, piuttosto che denigrare il tuo codice in attesa di un codice sostitutivo che risolva il problema che è stato causato dal fatto che non sei del tutto consapevole di cosa e perché stai codificando. Ad esempio, io nell'immagine sopra: prima di tutto ho copiato il codice da qualche parte sperando in questo modo di cambiare il formato del grafico, non conoscendo e comprendendo completamente il grafico della libreria standard—ecco perché ho finito per dire che la Libreria non funziona.

Una volta che ti imbatti in un problema o in un errore, assicurati di conoscere a fondo la libreria e il codice che hai e che non funziona. Esistono diversi modi per farlo su MQL5, i due principali sono

  • Documentazione MQL5
  • Forum

Documentazione MQL5:

Fortunatamente per noi abbiamo tutta la documentazione a portata di mano e non è necessario essere online sui motori di ricerca. I programmatori professionisti lo sanno, ma per i principianti ecco dove e come accedervi molto rapidamente: apri MetaEditor, quindi vai alla sezione Aiuto e fai clic sull'opzione a discesa MQl5 Riferimento e il gioco è fatto.

Accesso alla documentazione

Forum MQL5:

Questo è il posto migliore per imparare e ascoltare ciò che non hai visto attraverso il tuo codice è condividere i problemi che hai con altri sviluppatori. Ma non fare il mio stesso errore, NON COPIARE!

 "È il percorso dell'Artigianato che conduce alla vera comprensione e Maestria."

I novellini fanno parte di quello che io chiamo Ciclo dei Novellini

Ciclo dei Novellini

03: Lascia perdere il perfezionismo

"Fatto è meglio che perfetto."
— Idea popolare alla Silicon Valley

Non posso dirti quanto e per quanto tempo questo mi ha impedito di condividere cose. Sono sempre stato alla ricerca del Santo Graal in modo da poterlo condividere con altri utenti su questo sito web. Mi ci è voluto del tempo per capire che se ho qualcosa da condividere, allora dovrei condividerlo e non essere fermato dal mio stesso pensiero.

Cos'è meglio?

Fare un indicatore, Expert Advisor, Libreria o pezzo di codice nei prossimi anni, o essere prolifici e ottenere centinaia di risultati imperfetti in un anno?

Scrivi un codice sufficientemente buono per i tuoi colleghi sviluppatori o clienti, non un codice perfetto per te stesso. Avrai sempre tempo e opportunità per migliorare il codice che deve essere migliorato; in altri casi risparmierai tempo inviando il codice più velocemente.

Puoi vedere che questo vale per quasi tutto ciò a cui i programmatori possono pensare, ogni giorno:

  • Le nostre App mobili vengono aggiornate 
  • I nostri sistemi operativi e software per computer e telefoni vengono aggiornati
  • Anche i linguaggi di programmazione come MQL5, Python e altri vengono migliorati giorno dopo giorno 

Vedi, se anche i nostri linguaggi e framework di programmazione vengono aggiornati, probabilmente sai che migliorare nel tempo non è una brutta cosa.

Su MQL5.com questo vale praticamente ovunque—puoi pensare di aggiornare i programmi nel Market.

Aggiornamento Versioni

Sul forum, puoi modificare il post del forum, eliminare o semplicemente aggiornare la tua risposta e persino il tuo commento quanto è pazzesco !! , ahah

04: Evita di Scrivere Smart Code

"In primo luogo, il debug è due volte più difficile della scrittura del codice. Pertanto, se scrivi il codice nel modo più intelligente possibile, per definizione non sei abbastanza intelligente per eseguirne il debug."
— Brian Kernighan

Il codice che segue le migliori pratiche apprese dalla documentazione è già intelligente !! 

Scrivi codice buono, pulito e semplice che sia facile da leggere e da capire. Nessuno trarrà vantaggio da quello smart code, compreso te tre mesi dopo. È estremamente difficile lavorare con il cosiddetto smart code da molti neofiti (gli sviluppatori freelance possono dirlo). Hai mai incontrato il codice di un lavoro di modifica di EA o di CodeBase che è stato estremamente complicato per motivi che non riesci a capire? Non fraintendermi, non sto né insultando nessuno né incoraggiando un codice facile per compiti complessi; tutto quello che sto dicendo è che c'è un modo per assicurarsi che anche il codice complicato possa essere facile da lavorare (penso che la creatività sia questo). Un codice pulito può aiutare.

Ecco alcuni suggerimenti per scrivere codice pulito:

  • Dagli uno stile 
  • Rendilo coerente
  • Commentalo
  • Mantienilo ASCIUTTO 

Dagli uno stile :

Userò semplicemente una funzione per contare la posizione in base al tipo come esempio

int CountPosByType(ENUM_POSITION_TYPE type){
 int counter = 0; 
  for (int i=PositionsTotal(); i>=0; i--)
     if (m_position.SelectByIndex(i))
     if (m_position.Magic()==MagicNumber && m_position.Symbol()==Symbol() && m_position.PositionType()==type)
      { counter++; }
  return counter;
}

La funzione è abbastanza facile da capire ma non segue i suggerimenti per un codice pulito di cui sopra, quindi prima gli darò uno stile. Farlo è semplice: basta fare clic sul pulsante blu che sembra un pettine per capelli nel tuo MetaEditor

syler di codice mql5

Ecco come appare il nostro codice dopo avergli dato uno stile:

int CountPosByType(ENUM_POSITION_TYPE type)
  {
   int counter = 0;
   for(int i=PositionsTotal(); i>=0; i--)
      if(m_position.SelectByIndex(i))
         if(m_position.Magic()==MagicNumber && m_position.Symbol()==Symbol() && m_position.PositionType()==type)
            { 
                counter++; 
            }
   return counter;
  }

Vedi, semplicemente applicando uno stile il nostro codice è cambiato da difficile da leggere a leggibile. Questo non sta nemmeno cambiando il nostro codice, perché dobbiamo fare il primo passo per scrivere codice pulito e questo è renderlo leggibile perché una volta che puoi leggerlo, puoi cambiarlo --Punto.

Rendilo Coerente:

Non so dirti neanche quante volte abbia finito per creare troppe variabili per praticamente lo stesso lavoro su diversi livelli di funzione, quindi perché non creare una variabile globale? Ti incoraggerei anche a utilizzare nomi di funzioni coerenti, facili da usare e da ricordare, che spieghino chiaramente di cosa tratta la funzione, in modo che tu possa ricordare anche tra 6 mesi. Ciò accelererà il tempo di consegna del tuo lavoro 3 volte rispetto al passato perchè non dovrai più ricominciare da zero creando una funzione che è già nel tuo precedente EA, mentre puoi semplicemente copiarlo dai tuoi lavori precedenti.

Per il nome della funzione facciamolo:

int CountPositionsByType(ENUM_POSITION_TYPE type)

Poiché siamo Coerenti con il nostro codice, possiamo semplicemente andare a cercare e impostare l'opzione trova nei file       findinFiles


Da lì puoi cercare la tua funzione all'interno di tutti gli EA e gli indicatori e questo semplifica il lavoro. La prossima volta che vogliamo creare la funzione, possiamo semplicemente copiarla e riutilizzarla di nuovo in altri EA.

Il modo migliore per scrivere codice coerente è utilizzare OOP (Programmazione orientata agli oggetti).

Il codice coerente è facile da usare, mentre il debug deve essere eseguito solo in un'unica posizione

Commentalo:

Anche le cose che i niubbi chiamano piccole come scrivere commenti nel tuo codice possono fare un'enorme differenza sulla tua produttività. Non solo renderà leggibile il codice, ma i commenti possono anche rappresentare un promemoria sulla natura di una variabile, ad esempio.

Ora definiamo di nuovo il contatore, questa volta con Comment che spiega di cosa si tratta:

int counter = 0; //Variabile per memorizzare il numero di posizioni

La prossima volta che vorremo accedere al contatore sarà così:

mql5 code Intellisense

La cosa grandiosa di commentare il codice in MetaEditor è che il commento fungerà da promemoria su cosa sia una variabile o un pezzo di codice. Questa cosa è molto utile quando si hanno troppe variabili, le cui funzioni magari si possono essere dimenticate facilmente.

Mantienilo asciutto:

OOP può aiutare molto quando si tratta di mantenere il codice ASCIUTTO (non ripeterti). Fai anche attenzione a non avere diverse funzioni che fanno praticamente lo stesso lavoro. Ad esempio, non è necessario disporre di una funzione che controlli se una posizione esiste in base al tipo quando si dispone già di una funzione per contare le posizioni in base al tipo.

05: Rinuncia a scrivere il codice più breve possibile

"Prima la leggibilità, poi tutto il resto."

Gli sviluppatori pensano di scrivere un buon codice se utilizzano il minor numero possibile di righe o il minor numero di caratteri in una riga. Neanche questo è saggio.

Il codice scritto verrà letto dozzine se non centinaia di volte, quindi cerca di scrivere codice leggibile indipendentemente dalla sua lunghezza.

Posso mettere in relazione questo con il fatto che gli sviluppatori che sono pigri a volte (Io lo sono stato) ci sentiamo di implementare poche cose solo per portare a termine il lavoro su Freelance o qualcosa del genere.

Considera la possibilità di fornire input di facile utilizzo sul tuo EA. Scrivi il codice per gestire tutte le eccezioni e avvisare l'utente su cosa c'è che non va, ad esempio avvisare l'utente se un input è impostato su zero, nel qual caso l'EA potrebbe non funzionare correttamente senza di esso.

Ecco cosa ti sto dicendo,

   I codici di errore, i codici trade return, gli errori di compilazione e le eccezioni nel sistema sono a tua disposizione, non agli utenti. Quindi, considera la possibilità di scrivere codice per fornire avvisi, commenti sul grafico o altro; ma assicurati che l'utente possa vedere solo ciò che dovrebbe e quale azione deve essere intrapresa per sistemare le cose.

So che è noioso implementarli tutti da zero, ma c'è sempre un modo migliore per scoprirlo! Puoi tenerli da qualche parte nei file di inclusione per includerli o per copiarli e incollarli—puoi trovare un modo.


Conclusione

La cosa buona delle buone pratiche è che sono difficili da seguire e sviluppare, ma una volta sviluppate ti seguiranno per il resto della tua carriera.

 Grazie per aver letto!


Tradotto dall’inglese da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/en/articles/9643

Programmatore migliore (Parte 02): Smetti di fare queste 5 cose per diventare un programmatore MQL5 di successo Programmatore migliore (Parte 02): Smetti di fare queste 5 cose per diventare un programmatore MQL5 di successo
Questo è l'articolo da leggere per chiunque voglia migliorare la propria carriera di programmatore. Questa serie di articoli ha lo scopo di renderti il miglior programmatore che puoi essere, non importa quanto tu sia esperto. Le idee discusse funzionano sia per i neofiti della programmazione MQL5 che per i professionisti.
Suggerimenti per l'acquisto di un prodotto sul mercato. Guida passo-passo Suggerimenti per l'acquisto di un prodotto sul mercato. Guida passo-passo
Questa guida dettagliata fornisce suggerimenti e trucchi per una migliore comprensione e ricerca del prodotto desiderato. L'articolo tenterà di trovare diversi metodi di ricerca di un prodotto, eliminando i prodotti indesiderati, determinando se questo sarà per l’utente efficiente ed essenziale.
Programmatore migliore (Parte 03): Rinuncia a fare queste 5 cose per diventare un Programmatore MQL5 di successo Programmatore migliore (Parte 03): Rinuncia a fare queste 5 cose per diventare un Programmatore MQL5 di successo
Questo è l'articolo da leggere per chiunque voglia migliorare la propria carriera di programmatore. Questa serie di articoli ha lo scopo di renderti il miglior programmatore che puoi essere, non importa quanto tu sia esperto. Le idee discusse funzionano sia per i neofiti della programmazione MQL5 che per i professionisti.
Idee di trading basate sulla direzione dei prezzi e sulla velocità di movimento Idee di trading basate sulla direzione dei prezzi e sulla velocità di movimento
L'articolo fornisce la revisione di un'idea basata sull'analisi della direzione del movimento dei prezzi e della loro velocità. Abbiamo eseguito la sua formalizzazione nel linguaggio MQL4 presentato come Expert Advisor per esplorare la fattibilità della strategia in esame. Determiniamo anche i migliori parametri tramite controllo, esame e ottimizzazione dell’esempio fornito nell'articolo.