- Errori, bug, domande
- Riunire un team per sviluppare un IO (albero delle decisioni/foresta) in relazione alle strategie di tendenza
- Quanto è necessario....
Salve.
Quanto è troppo? È così tanto che non può essere suddiviso in file?
- 2016.03.20
- www.mql5.com
Salve.
Due principi fondamentali:
1. Dividere il codice in funzioni. Una funzione dovrebbe essere più o meno completa dal punto di vista logico e non essere più di una schermata da coprire con uno sguardo.
2. Ridurre il numero di variabili globali. Dalle variabili globali, è desiderabile usare solo i parametri che non cambiano durante l'esecuzione del programma.
...e altro ancora:
3. programmazione orientata agli oggetti.
4. Mettere il codice in più file (questo complica un po' il debugging, ma ha un senso).
È molto semplice: dobbiamo documentare con precisione le singole funzioni e allocarle in un file separato. Il file principale diventerà immediatamente più piccolo e più leggibile
Ho sempre un file mq4/mq5 e un mucchio di file mqh con classi, per ogni classe un file separato. In generale, è così che si fa nello sviluppo industriale. Niente file chilometrici dove tutto è mischiato.
A volte si può vedere un capolavoro dove l'intero EA è impacchettato in OnTick con gli stessi pezzi di codice per aprire gli ordini 20 volte ciascuno in questo brutto foglio. Voglio tirare fuori subito il sacchetto del vomito ))
Salve.
Non scrivere funzioni che sono sempre costanti e non cambiano mai in questo stile
void CloseOrders(int cmd) { for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY && cmd==OP_BUY) { if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue)) { Print("Order BUY not close! Error = ",GetLastError()); } } if(OrderType()==OP_SELL && cmd==OP_SELL) { if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red)) { Print("Order SELL not close! Error = ",GetLastError()); } } } } } }
Scriveteli in modo conciso, tanto nessuno li guarda mai, e occupano la metà dello spazio.
void CloseOrders(int cmd) { for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY && cmd==OP_BUY) { if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue)) Print("Order BUY not close! Error = ",GetLastError()); } if(OrderType()==OP_SELL && cmd==OP_SELL) { if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red)) Print("Order SELL not close! Error = ",GetLastError()); } }}}}
Commentare il codice tutto il tempo, di cosa è responsabile questo pezzo di codice, non è difficile, e ora saprete sempre qual è il codice, e ridurre il tempo per studiarlo
Non scrivere funzioni che sono sempre costanti e non cambiano mai in questo stile
Scriveteli in modo conciso, tanto nessuno li guarda mai, e occupano la metà dello spazio.
Commentare il codice tutto il tempo, di cosa è responsabile questo pezzo di codice, non è difficile, e ora saprete sempre qual è il codice, e ridurre il tempo per studiarlo
Il commento deve occupare la metà del testo del programma
Non scrivere funzioni che sono sempre costanti e non cambiano mai in questo stile
Scriveteli in modo conciso, tanto nessuno li guarda mai, e occupano la metà dello spazio.
Commentare il codice tutto il tempo, ciò che questo pezzo di codice è responsabile per, non è difficile, e qui al completamento sarà sempre sapere che cosa il codice, e ridurre il tempo di studiarlo
Riordinare le parentesi non rende il ritardo minore. Prima di dare consigli, alza almeno il tuo livello ad un livello medio.
Il commento dovrebbe occupare metà del testo del programma
No, beh, allora il 90% del codice è costituito da commenti. E avete bisogno di quanto più codice inutile e poco leggibile possibile, in modo da poter mettere più commenti!
Anche le tue idee sono degne di nota. Dovreste discuterne più spesso
È da molto tempo che volevo chiederlo. Se in mcl5 si ottengono i dati degli indicatori dai file di inclusione, dalle classi, l'ottimizzazione sarà più veloce?
Cioè, non vengono chiamati gli handle degli indicatori nel codice dell'Expert Advisor stesso.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso