Discussione sull’articolo "MQL5 - Anche voi potete diventare maestri di questo linguaggio" - pagina 2

 

Io stesso sto affrontando questo viaggio in questo momento, quindi di seguito fornisco alcune brevi note sull'argomento dell'articolo dal punto di vista di un trader che vuole operare sui mercati finanziari con Metatrader utilizzando i propri algoritmi. Tenete presente che l'obiettivo principale del trader è il trading, mentre quello dell'ingegnere informatico è la programmazione.

1. L'ostacolo più grande sarà quello di guadare il fango dell'irrilevanza che al giorno d'oggi ha reso l'apprendimento su Internet una vera e propria palude. Trovare fonti valide richiederà più tempo e fatica che imparare da quelle giuste, una volta trovate.

2. Per quanto ne so, non esiste una buona fonte a basso costo per imparare l'MQL. I corsi di Udemy non sono granché (parlo per esperienza), vale la pena acquistarli solo quando sono profondamente scontati (10 euro o meno). Video su Youtube: ci sono alcuni canali che sono abbastanza buoni - se si cercano cose specifiche. Alcuni forniscono solo le nozioni di base. Nessuno pubblica un corso sistematico che vi insegni tutto ciò che dovete sapere, non gratuitamente. La maggior parte dei buoni video gratuiti sono di solito un imbuto di marketing per i corsi a pagamento. Non c'è niente di male in questo, ma solo qualcosa di cui bisogna essere consapevoli.Non posso commentare i corsi a pagamento, non ne ho mai fatti.

3. Nell'ingegneria del software in generale, l'MQL semplicemente non esiste. Esistono uno o due libri che insegnano il linguaggio nella sua interezza. Sono scritti per i programmatori, non per i trader. Quindi, imparare tutto questo consumerà molti mesi se non anni del vostro tempo, anche se avete la pazienza e il tempo. Tempo che potreste dedicare al trading. Il sottoinsieme di conoscenze necessarie per creare EA e indicatori sufficientemente sofisticati da poter essere utilizzati sui propri conti live è notevolmente inferiore. Molte cose non sono semplicemente necessarie per i codici di uso proprio. Se volete fare i freelance o vendere codici MQL preconfezionati, dovete ovviamente padroneggiare una parte maggiore del linguaggio. Una nota a margine:anche se siete un trader, potrebbe valere la pena spendere tempo e fatica per imparare l'ingegneria del software generale (in uno dei grandi linguaggi come C++ o C#, ma non MQL) a margine. Se il vostro conto va in fumo, fare soldi come codificatore può permettervi di evitare la fame e di accumulare lentamente il capitale per entrare di nuovo in gioco.

4. MQL L'insieme delle pagine di riferimento di questo sito web è un riferimento, non un libro di testo. È inestimabile conoscere l'interno e l'esterno di specifici elementi del linguaggio MQL. È un incubo da cui studiare (lo so, ci ho provato).

5. A mio parere, la cosa migliore è imparare le basi con il C++. Ci sono molti corsi eccellenti su C++ a costi molto bassi o gratuiti. Anche C# o Java (NON JavaScript, JS è come Python ma peggio!) sono adatti, anche se un po' più lontani. Inoltre, secondo me non è utile imparare il C. Nel 2023, il C è un linguaggio di nicchia per la programmazione di sistemi (OS, driver, ecc.). Il C++ incorpora tutto il C classico di cui si ha bisogno.

6. La funzionalità di base di MQL è praticamente C++. Al linguaggio di base viene aggiunto un intero gruppo di enumerazioni, funzioni integrate e classi specifiche per il trading sulla piattaforma MT. Questi elementi specifici per il trading non esistono in C++, ovviamente. Una volta che si sa come si comportano le variabili, le costanti, i tipi di dati, le funzioni e gli oggetti in generale in C++, è molto facile ottenere questi elementi aggiuntivi specifici di MQL. È necessario imparare l'OOP abbastanza da sapere cos'è, cosa fa e come utilizzare gli oggetti delle classi della libreria MT integrata nei codici procedurali insieme alle funzioni. Utilizzare le classi disponibili è molto più semplice che programmare le proprie classi, creare librerie, gestire decine o centinaia di file header (.mqh), ecc. Programmare la propria OOP è come costruire un'azienda automobilistica multinazionale solo per costruire una singola auto, in modo da poter andare da casa al lavoro ogni giorno.

7. Dimenticate Python. Potrei scrivere pagine su questo argomento, ma credetemi sulla parola. Python semplifica alcune cose, ma crea complicazioni in altre. Il vero problema di Python è che ha troppa libertà. La rigida sintassi del C++, i tipi statici e soprattutto il Sergente Compilatore alla fine portano a codici molto univoci e affidabili. La libertà di Python è spesso la libertà di entrare in acqua e affogare. Le "difficoltà" dell'apprendimento del C++ sono più un mito che una realtà. Considerate questo: i {} e i ; del C++ sono sostituiti in Python da : e dall'indentazione obbligatoria, alla fine lo sforzo è più o meno lo stesso. Non è comunque necessario imparare tutto il C++ per padroneggiare MQL5. Ho imparato Python fino all'OOP, poi mi sono reso conto dopo 16 mesi che ero ancora al punto zero del mio viaggio come programmatore di algoritmi, quindi ho reimparato il C++ (ho dimenticato circa il 99% del corso di C++ che ho seguito come studente universitario STEM quasi 30 anni fa). In seguito sono stato in grado di scrivere EA e indicatori MQL5 utilizzabili.

6. Per molti aspetti MQL5 è più vicino a C++ che a MQL4. Questo fa sì che molte cose siano più difficili in MQL5 che in MQL4. Tuttavia, nel 2023, non è consigliabile per chi è agli inizi imparare l'MQL4. L'MQL4 è tenuto in vita dalla sua base di utenti installata ai tempi in cui era in uso. Anche se le due lingue fossero uguali, MT5 è dotata di un backtester superiore e della possibilità di scaricare una piattaforma MT indipendente con un conto demo non affiliato al broker e senza scadenza per giocare a proprio piacimento. Se necessario, è facile tradurre i vostri EA MQL5 in MQL4 una volta che avete imparato a conoscere MQL5. Gli indicatori richiedono un po' più di impegno, ma sono comunque abbastanza fattibili.

7. Ecco il percorso di apprendimento che ha funzionato per me:

- Imparare le basi della programmazione con un linguaggio di programmazione generale, il più semplice è il C++ perché è il più vicino all'MQL. Tutti i corsi di programmazione insegnano le basi con semplici programmi per console. MetaEditor non ha una console. Stampare "Helllo World!" nel Terminal Journal è un'esperienza di gran lunga inferiore a quella che si può fare direttamente su una console con "cout >>". È possibile interagire con un codice MQL solo indirettamente attraverso i parametri di input, non in tempo reale con "cin >>".

- Una volta acquisite le basi della programmazione, andate su youtube e cercate dei video che spieghino passo per passo come costruire un EA o un indicatore funzionante (al momento in cui scrivo ce ne sono molti). Per prima cosa, guardate l'intero video, in modo più efficiente disattivando l'audio, attivando i sottotitoli e accelerando a 1,5x o 2x per afferrare il contenuto. Poi, guardate di nuovo e digitate il codice, mettendo in pausa il video e riavvolgendolo se necessario, con l'audio acceso.

- Non seguite altri corsi di programmazione: limitatevi a codificare il codice, a eseguire backtest backtest backtest. Sfortunatamente, MQL non offre la possibilità di eseguire test unitari (indispensabili per una corretta ingegneria del software), ma con un po' di creatività potete sviluppare i vostri modi per utilizzare il backtester a questo scopo. Guardate altri video su argomenti specifici di quando ne avete bisogno. Anche gli articoli e i post di questo sito possono essere utili. Premete F1 in MetaEditor tutte le volte che ne avete bisogno. Anche se non è necessario, basta imparare qualcosa di nuovo o perfezionare ciò che si è già imparato ogni giorno.

 
Eric A. Kantchev un conto demo mai scaduto e non affiliato al correttore per eseguire le operazioni desiderate. Se lo desiderate, è facile tradurre i vostri EA MQL5 di volta in volta in MQL4 dopo aver dominato l'MQL5. Gli indicatori richiedono un po' più di impegno, ma sono molto concreti.

7. Ecco il percorso di apprendimento che ha funzionato per me:

- Imparare le basi della programmazione con un linguaggio di programmazione generale, più facile con C++ perché è il più vicino a MQL. Tutti i corsi di programmazione prevedono l'insegnamento di base con programmi di console semplici. MetaEditor non possiede una console. Imprimere "Olá, Mundo!" in Terminal Journal è un'esperienza molto inferiore a quella di una console con "cout >>". È possibile interagire con un codice MQL solo indirettamente tramite i parametri di ingresso, non in tempo reale tramite "cin >>".

- Dopo aver dominato i fondamenti del programma, accedete a youtube e trovate video che spiegano passo per passo la costruzione di un EA o di un indicatore funzionale completo (ce ne sono molti nel momento in cui sto scrivendo). In primo luogo, si assiste a un video interno, in modo più efficiente, scollegando o som, nas legendas e accelerando a 1,5x o 2x per apprezzare il contenuto. In seguito, assiste novamente e digita il codice insieme, mettendo in pausa il video e riabbinandolo se necessario, con il cavo.

- Non si fanno più corsi di programmazione - si codifica solo il codice del codice, si fa un backtect backtest backtest. Purtroppo, MQL non offre la possibilità di effettuare test unitari (indispensabili per un'adeguata progettazione di software), ma con un po' di pazienza è possibile sviluppare le proprie modalità di utilizzo del backtester. Assisti a più video su quando lo desideri. Gli articoli/postagens di questo sito possono essere ugualmente úteis. Premere F4 nel MetaEditor sempre che sia necessario. Accertatevi anche di no, solo per imparare qualcosa di nuovo o per approfondire quello che già imparate da un giorno all'altro.

Grazie per le prove. Questo è più o meno ciò che volevo scrivere in questo articolo. Perché molte persone che iniziano non sanno in che direzione andare e finiscono per abbandonare lo studio o l'apprendimento, immaginando che sia qualcosa di molto difficile o poco pratico.

 
Ottimo articolo.
 
Molto utile.
 
MetaQuotes:

È stato pubblicato il nuovo articolo MQL5 - Anche tu puoi diventare un maestro del linguaggio:

Di Daniel Jose

Anch'io voglio diventare un maestro

 
Articolo prezioso e approfondimenti ancora migliori da parte dei commentatori!
 
Questo è utile. Grazie per la condivisione.
 
Ottimo consiglio. Pensavo che con l'AI sarebbe stato facile creare degli EA, ma mi sbagliavo. È meglio imparare C, C++ dalla chat GPT. Sono nuovo nel trading di Algo e non conosco alcun linguaggio di codice, ma è comunque molto interessante come gioco. Sono molto soddisfatto di questo consiglio e mi diverto a giocare.
 

Articolo molto bello. Mi ha riportato indietro nel tempo, all'infanzia, quando disegnavo grafica primitiva con la sintassi DOS su un Apple IIe.

In base alla mia esperienza successiva, MQL4 era facile da imparare perché era fondamentalmente una versione scheletrica di C. Mi piaceva pensare che fosse "C-" (C meno). Anni dopo, ho letto le prime 50 pagine di un libro cartaceo sulla programmazione MQL5 EA (ora fuori stampa) e poi sono passato alla programmazione MQl5. A distanza di anni, quel libro si trova ancora su uno scaffale con un segnalibro a pagina 50. Tutto ciò dimostra il suggerimento dell'autore dell'articolo di imparare facendo.

Sebbene mi sia dilettato con Easylanguage e Python, e più che altro con MS Excel, rimango fedele a MQL5 perché il codice nativo è sempre più veloce di una pipe o di un bridge esterno a MT5. Inoltre, gli elementi "opzionali" di programmazione orientata agli oggetti (OOP) di MQL5 sono una necessità per l'auto-trading nella borsa dei futures su cui ora opero. Se volete imparare l'MQL5, vi consiglio di leggere prima un manuale generale su cosa sia l'OOP.

Peggio della paura di imparare un nuovo linguaggio di programmazione è la prospettiva di rimanere indietro.

 
Sergey Pavlov #:
Un articolo elogiativo su di me come genio: qualcosa del tipo, vi insegnerò come diventare un guru della programmazione partendo da zero, ma si scopre che per questo è necessario conoscere il C++ e avere un'esperienza di utilizzo di 23 anni. E la cosa sorprendente è che con questo bagaglio (C/C++) ci sono voluti 2 anni per imparare a programmare in MQL5. Alla fine, bla-bla-bla, io sono un genio e voi sarete in grado di farlo in 25 anni. È un peccato che tali articoli vengano pubblicati....

E allora? Un uomo brasiliano ha passato 23 anni a scrivere "Hello World!" in C++, non tutti hanno questa pazienza. Io di certo non ce l'ho. Forse nella sua patria gli faranno un monumento in bronzo! Quindi lo invidiamo silenziosamente.

Vorrei precisare che il valore false è in realtà zero quando si convertono implicitamente i tipi int in bool, mentre true è qualsiasi valore diverso da zero. Quando si converte bool->int, tutto è limitato a 0 e 1.

    bool b1 = 0, b2 = -5, b3 = 5;
    Print(b1,", ", b2,", ", b3);
    Print((int)true,", ", (int)false);

2025.04.15 01:48:32.862 BuySellStop (USDCAD,M15)        false, true, true
2025.04.15 01:48:32.862 BuySellStop (USDCAD,M15)        1, 0