Discussione sull’articolo "Comprendere le funzioni in MQL5 con le applicazioni"

 

Il nuovo articolo Comprendere le funzioni in MQL5 con le applicazioni è stato pubblicato:

Le funzioni sono elementi critici in qualsiasi linguaggio di programmazione, aiutano gli sviluppatori ad applicare il concetto di (DRY), che significa non ripetersi, e molti altri vantaggi. In questo articolo troverete molte altre informazioni sulle funzioni e su come creare le nostre funzioni in MQL5 con semplici applicazioni che possono essere utilizzate o richiamate in qualsiasi sistema per arricchire il vostro sistema di trading senza complicare le cose.

Supponiamo di aver bisogno che il software esegua l'operazione di chiusura di tutti gli ordini aperti se l'equity ha raggiunto un drawdown massimo e di dover eseguire questa operazione in molte parti del software, sarebbe meglio qui, creare una funzione e includere tutto il codice o la logica necessari per eseguire questa operazione e poi richiamare questa funzione in altre parti, poiché non sarebbe bello o eccessivo scrivere e ripetere lo stesso codice in molte parti per eseguire l'operazione.

Se vi state chiedendo perché dobbiamo usare questo tipo di funzione, la risposta a questa domanda ci porterà a conoscere le caratteristiche dell'uso delle funzioni definite dall'utente:

  • Aiutano ad applicare il concetto di DRY (non ripetersi): L'uso di funzioni definite dall'utente ci aiuterà a non ripetere sempre lo stesso codice, ma a creare una funzione in grado di eseguire il nostro compito una sola volta e di richiamarla in qualsiasi parte del software.
  • Riutilizzabilità: Dopo aver creato la nostra funzione, possiamo riutilizzarla in qualsiasi momento.
  • Aiuta ad applicare il concetto di "divide et impera": Quando creiamo un software, il codice può essere complesso per risolvere un problema, ma se dividiamo il grande problema in piccoli problemi e risolviamo ognuno di essi attraverso le funzioni, questo può essere molto utile per raggiungere il nostro obiettivo di risolvere il grande problema.
  • Aiuta a rendere il codice più leggibile e comprensibile: L'uso delle funzioni aiuta a rendere leggibile il codice, che diventa più organizzato grazie alla loro presenza, e ognuno gestisce un problema specifico e ha un compito specifico.
  • Aiuta ad applicare il concetto di astrazione: L'uso delle funzioni fornisce un metodo per astrarre il nostro codice, perché se non le usiamo possiamo scoprire che è necessario scrivere più righe di codice rispetto all'uso delle funzioni.
  • Aiuta ad applicare il concetto di incapsulamento: L'uso delle funzioni ci permette di proteggere e gestire il nostro codice e i nostri dati in modo più efficace rispetto a quando non le usiamo.
  • Migliora il processo di debug: L'uso delle funzioni aiuta a migliorare l'esplorazione degli errori e a risolverli in modo molto più semplice.

In base a quanto detto a proposito delle caratteristiche dell'uso delle funzioni, possiamo facilmente capire quanto sia vantaggioso utilizzare queste funzioni definite dall'utente nel nostro software.


Autore: Mohamed Abdelmaaboud

 

utile

molti ringraziamenti

spero di trovare lo stesso per i puntatori e le questioni correlate

 
Mohamed Hassan Mohamed Hassan Alsherbiny #:

utile

molti ringraziamenti

spero di trovare lo stesso per i puntatori e le questioni correlate

Grazie per il suo gentile commento.

Cercherò di farlo.

 

Grazie all'autore per questo articolo! Penso che sia un'informazione molto utile per tutti i principianti che vogliono imparare il linguaggio di programmazione MQL5. L'ho aggiunto ai miei preferiti.

Saluti, Vladimir.

Aggiunto: Il mio unico desiderio quando si pubblicano articoli su un forum in lingua russa è che tutti i commenti siano in russo. È molto più facile digerire le informazioni. Ecco un esempio. Invece di:

//funzione di aggiunta
// il tipo di dato restituito è un intero - il nome della funzione è add - i parametri o argomenti sono due variabili int val1 e val2
int add(int val1, int val2)
  {
   //il corpo della funzione che la funzione deve eseguire quando la si chiama
   //creare una nuova variabile risultato da assegnare al risultato dell'addizione di val1 e val2
   int result = val1+val2;
   /Stampa dei risultati nella scheda degli esperti
   Print(result);
   //valore di ritorno
   return 0;
  }

sarebbe bello vedere subito la traduzione:

//funzione di aggiunta
//il tipo di dati restituiti è un intero. Il nome della funzione è add. I parametri o argomenti sono due variabili di tipo int, val1 e val2.
int add(int val1, int val2)
   {
    //il corpo della funzione che vogliamo che la funzione esegua quando viene richiamata
    //crea una nuova variabile di risultato a cui verrà assegnato il risultato della somma di val1 e val2
    int result = val1+val2;
    /Stampa del risultato nella scheda Esperti
    Print(result);
    //ritorno del valore
    return 0;
   }

A proposito, mentre traducevo i commenti in russo, ho avuto un'ulteriore aggiunta sotto forma di domanda: perché return in questa funzione restituisce zero invece di risultato?

Non è un errore dell'autore?

 
MrBrooklin #:

A proposito, mentre traducevo i commenti in russo, ho avuto un'ulteriore aggiunta sotto forma di domanda: perché in questa funzione return restituisce zero e non il risultato?

Non è un errore dell'autore?

Signori programmatori!!! Il mio cervello si è prosciugato a tal punto da non capire lo scopo dell'operatore return o è ancora un errore dell'autore?

Saluti, Vladimir.

 
MrBrooklin #:

Signori programmatori!!! Ho il cervello talmente prosciugato da non capire lo scopo dell'operatore return o è un errore dell'autore?

Saluti, Vladimir.

Ciao Vladimir. Penso che tu sia già diventato un programmatore abbastanza esperto da capire che si tratta solo di un errore...

 
Alexey Viktorov #:

Ciao Vladimir. Penso che tu sia già diventato un programmatore abbastanza esperto da capire che si tratta solo di un errore....

Buongiorno, Alexey! Grazie, naturalmente, ma sono ancora lontano da un programmatore esperto come lo sono da Pechino. )) Mi chiedo solo come facciano a far entrare nel forum articoli con errori del genere.

Saluti, Vladimir.

 
MrBrooklin #:

Buongiorno, Alexey! Grazie, naturalmente, ma sono ancora lontano da un programmatore sufficientemente esperto come lo sono da Pechino. )) Mi chiedo solo come facciano a far entrare nel forum articoli con tali errori.

Saluti, Vladimir.

Vladimir, "abbastanza esperto" non significa guru. Non si tratta di adulazione.

La funzione è stata scritta e non è stata sottoposta a debug, quindi tali errori sono possibili a causa della disattenzione. E cosa si perdono......... Quanto personale vi serve per rileggere attentamente tutti gli articoli e correggere tali errori? Non è realistico... Se si nota un errore, lo si segnala, viene corretto e tutti sono contenti.

 
Alexey Viktorov #:

Vladimir, "abbastanza esperto" non significa guru. Non è un'adulazione.

La funzione è stata scritta e non è stata sottoposta a debug, quindi tali errori sono possibili a causa della disattenzione. E cosa si perdono......... Quanto personale vi serve per rileggere attentamente tutti gli articoli e correggere tali errori? Non è realistico... Se si nota un errore, lo si segnala, viene corretto e tutti sono contenti.

Il punto è che i principianti imparano da questi articoli, compresi quelli con conoscenze nulle, e non hanno la possibilità di valutare se il codice è corretto o meno, ma solo di prenderlo sulla fiducia. ))

Saluti, Vladimir.

 
MrBrooklin il linguaggio di programmazione MQL5. L'ho aggiunto ai miei preferiti.

Saluti, Vladimir.

Aggiunta: il mio unico desiderio quando si pubblicano articoli su un forum in lingua russa è che tutti i commenti siano in russo. È molto più facile digerire le informazioni. Ecco un esempio. Invece di:

sarebbe bello vedere subito una traduzione:

A proposito, mentre traducevo i commenti in russo, ho avuto un'ulteriore aggiunta sotto forma di domanda: perché return in questa funzione restituisce zero e non il risultato?

Non è un errore dell'autore?

Salve, signor Brooklyn!

Grazie per il suo commento e la sua notifica. L'errore è stato modificato e inviato per la pubblicazione.


Grazie mille

 
Mohamed Abdelmaaboud #:

Salve, signor Brooklyn!

Grazie per il suo commento e la sua notifica. Questo errore è stato modificato e inviato per pubblicare quello corretto.

Grazie mille

Buon pomeriggio, grazie per la risposta.

Distinti saluti, Vladimir.