![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
La descrizione delle regole di uno stilista non può essere riassunta in poche righe di narrativa.
Formatta il modo in cui abbiamo stabilito.
Ciao!
Il fatto che la styler formatti solo il modo in cui hai steso e nient'altro è un po' strano. Lasciatemi spiegare.
MT è una piattaforma Windows. Il principale strumento di sviluppo per Windows è MSVC, mentre MT è scritto in MFC. Questa libreria adotta la variante di Kernighan e Ritchie dello standard di indentazione e formattazione. Così, per una persona che ha passato tutta la sua vita in MSVC (e ce ne sono molti in Windows) vedere 3 spazi come tab e 2 spazi extra prima di "{" e anche nessuno spazio tra gli stretti (se, per...) e le parentesi seguenti è un po' ridicolo e disturba la lettura del codice. Capisco che avete adottato questo formato come standard aziendale, ma non si applica ad altri sviluppatori.
Quindi suggerisco di introdurre alcune impostazioni di styler, tutti diranno un grande grazie.
Ciao!
Il fatto che lo styler formatti solo il modo in cui vuoi tu e non lo formatti in nessun altro modo è un po' strano. Lasciatemi spiegare.
MT è una piattaforma Windows. Il principale strumento di sviluppo per Windows è MSVC, la libreria MT è scritta in MFC. Questa libreria adotta la variante di Kernighan e Ritchie dello standard di indentazione e formattazione. Così, per una persona che ha passato tutta la sua vita in MSVC (e ce ne sono molti in Windows) vedere 3 spazi come tab e 2 spazi extra prima di "{" e anche nessuno spazio tra gli stretti (se, per...) e le parentesi seguenti è un po' ridicolo e disturba la lettura del codice. Capisco che avete adottato questo formato come standard aziendale, ma non si applica ad altri sviluppatori.
Quindi suggerisco di introdurre alcune impostazioni di styler, tutti diranno un grande grazie.
Una piccola correzione, il codestyle Microsoft non è uno standard K&R. Lo standard K&R è fondamentalmente una differenza tra parentesi graffe, è progettato per adattarsi al maggior numero possibile di linee sullo schermo del PDP-11 e altri display alfanumerici - 80 caratteri * 25 linee. A proposito, ecco un link al libro, forse qualcuno lo troverà utile http://rabus.ru/KernighanRitchie_C/index.html#content
Per il resto sono d'accordo ed è già stato scritto circa 100500 volte. Personalmente, porto tutti i testi di terzi MQL allo studio e li riformatto lì.
Piccola correzione, il codestyle di Microsoft non è uno standard K&R. Lo standard K&R è per lo più una differenza tra parentesi graffe, è progettato per adattarsi al maggior numero possibile di linee sullo schermo del PDP-11 e altri display alfanumerici - 80 caratteri * 25 linee. A proposito, ecco un link al libro, forse qualcuno lo troverà utile http://rabus.ru/KernighanRitchie_C/index.html#content
Per il resto sono d'accordo ed è già stato scritto circa 100500 volte. Personalmente, porto tutti i testi di terzi MQL allo studio e li riformatto lì.
Sì, la differenza è con la parentesi di apertura, per il resto simile, ecco perché l'ho chiamata "variante".
Sarebbe più facile se l'ambiente МТТ avesse User Tools, così potrei allegare l'abbellitore di terze parti, ma non è possibile. Opzionalmente usate un editor di terze parti con supporto per l'output stdout degli strumenti utente (Editplus è un classico, ma ci sono soluzioni più interessanti), ma è solo una stampella in più. Uso Unscrutify configurato in UniversalIndentGUI.
Per favore:
https://www.mql5.com/ru/forum/35326
https://www.mql5.com/ru/forum/1111/
Nominate un linguaggio di uso comune in cui non posso assegnare un indirizzo diverso a un puntatore? Nominate un altro linguaggio molto usato in cui non posso assegnare un riferimento dello stesso tipo a un oggetto diverso? Dove altro sarei costretto a descrivere un costruttore o una funzione di copia a causa di queste limitazioni del vostro linguaggio?
E se la controllabilità è fondamentale per voi, perché gli altri linguaggi controllati non impongono restrizioni simili?
Personalmente, per me, non è la sicurezza e la controllabilità che viene prima, ma la velocità con cui posso implementare un'idea; questo è estremamente vero nel contesto delle idee di trading; coloro che non sono d'accordo con questo o sopravvalutano il valore dei loro sistemi, o programmano per il gusto di programmare, non per un risultato specifico.
C# si sa, è un linguaggio industriale ora, ha già ampiamente sostituito C++ nelle applicazioni business/internet. Quindi non ci sono puntatori, o meglio ci sono, ma non sicuri, e nessuno ha bisogno di codice non sicuro, solo per l'artigianato personale.
E perché un puntatore nudo è così brutto? Se non si fa con ottimizzazioni rigorose dell'aliasing, i puntatori sono abbastanza sicuri in generale (msvc lo ha fatto).
In generale, tutti questi discorsi sulla sicurezza non fanno che velare le vere ragioni, come è stato detto prima. E la ragione è semplice, credo - non permettere di conoscere in alcun modo gli indirizzi delle funzioni da passare alla dll. Un sistema sepolto non ha bisogno del mondo esterno.
C# si sa, è ormai un linguaggio industriale, ha già ampiamente sostituito C++ nelle applicazioni business/internet. Quindi non ci sono puntatori, o meglio, ci sono, ma non sicuri, e nessuno ha bisogno di codice non sicuro, solo per l'artigianato personale.
A proposito!
Una volta ho incontrato un confronto tra i linguaggi C e Pascal
Il linguaggio C è guidare una Ferrari su una strada di montagna a 180 km/h,
e il linguaggio di Pascal è un viaggio tranquillo in una limousine su una strada larga e a senso unico a 40 km/h.
C doveva essere, tipo, un linguaggio da veri uomini).
Nella C, devi tenere gli occhi sui cartelli :-) Il linguaggio C non è per i deboli di cuore, perché se non si seguono le indicazioni si rischia di volare fuori pista su un tornante.
Il C è il linguaggio dei sistemi operativi e delle utility, dei driver. Il C è stato originariamente scritto da professionisti che scrivevano i sistemi operativi e le utility per gli utenti.
Pascal è stato originariamente scritto in C per gli studenti. Pascal è stato scritto come un linguaggio didattico.
La differenza di scopo e di uso degli strumenti è evidente.
MQL è essenzialmente un derivato del C, la scelta degli sviluppatori di MetaQuotes è professionalmente molto corretta.
A proposito!
Una volta ho incontrato un confronto tra C e Pascal .
Il linguaggio C è come una vera Ferrari che guida su una strada di montagna a 180 km/h,
e il linguaggio di Pascal è un viaggio tranquillo in una limousine su una strada larga e a senso unico a 40 km/h.
C doveva essere, tipo, un linguaggio da veri uomini).
Nella C, devi tenere gli occhi sui cartelli :-) Il linguaggio C non è per i deboli di cuore, perché se non si seguono le indicazioni si rischia di volare fuori pista su un tornante.
Il C è il linguaggio dei sistemi operativi e delle utility, dei driver. Il C è stato originariamente scritto da professionisti che scrivevano i sistemi operativi e le utility per gli utenti.
Pascal è stato originariamente scritto in C per gli studenti. Pascal è stato scritto come un linguaggio didattico.
La differenza di scopo e di uso degli strumenti è evidente.
MQL è essenzialmente un derivato del C. La scelta degli sviluppatori di MetaQuotes è professionalmente molto corretta.
Che differenza fa la lingua in cui scrivere?
(Per esempio, si possono scrivere driver e tutto il resto in Pascal).
È importante capire cosa e come si fa, e il linguaggio di programmazione è una doppia questione!