Il futuro di MQL5 è MQL5+ o addirittura MQL6 - pagina 10

 
Vorrei vedere i goto, si potrebbe semplificare notevolmente il codice, per non parlare della leggibilità. dopo tutto, un ciclo con una condizione è essenzialmente un'uscita prematura anche dal ciclo.
 
dimka8:
Vorrei vedere i goto, si potrebbe semplificare notevolmente il codice, per non parlare della leggibilità. infatti, un ciclo con una condizione è anche un'uscita prematura dal ciclo.
No, non voglio :)
 
dimka8:
Vorrei vedere i goto, si può semplificare notevolmente il codice, per non parlare della leggibilità. infatti, un ciclo con una condizione è anche un'uscita prematura dal ciclo.

Da dove vieni...

 

Una parola o due:

Cross-platforming obbligatorio ....

 
Vasiliy Sokolov:

Da dove vieni...

da BASIC
 
Alexander Bereznyak:
dal BASIC.

Hiasm ancora più semplice.

e i classici?

for(...) {
for (...) {
while (...) {
if (...) goto stop;
...
}
}
}
printf("error in program\n");
 

Sarebbe bello introdurre il concetto di progetto. Con l'adozione di OOP, tutti i programmi sono ora composti da diversi file. È scomodo andare costantemente alla scheda con il file principale prima della compilazione, se si modifica un plugin. O una stampella: introducete un pulsante programmabile Compile, a cui potete legare il file master del progetto con cui state lavorando.

EMPTY_VALUE può essere esteso a tutti i tipi che lo permettono (int, double, string, ecc.). È una piccola cosa, ma si può usare in molti posti e non inventare il proprio.

Nel tester, fate uno strumento a croce come in MT.

Sicuramente si può inventare la variante con la sovrapposizione di diversi indicatori in una finestra di indicatori sotto il grafico del prezzo.


Il comfort è fatto di piccoli dettagli. Gli sviluppatori non vogliono davvero accettare questa idea, e stanno costantemente globalizzando qualcosa. Forse dovremmo fermarci ogni tanto, e dedicare del tempo a piccole correzioni - comfort dell'utente? ))))))

Esempi: per misurare qualcosa su un grafico tre volte, devi cliccare tre volte sul pulsante del mirino (o premere una combinazione di tasti). Le finestre degli indicatori in ME sotto il grafico non possono essere scambiate: tutti gli indicatori devono essere rimossi, poi devono essere impostati nel giusto ordine. Anche in questo caso, per impostare diversi indicatori, è necessario andare nel menu-sottomenu-selezionare l'indicatore più volte. E per qualche motivo c'è uno strumento Lista di indicatori, che non semplifica questo caso e non dà nulla di nuovo.... Penso che tutti daranno tali esempi in MQL, in ME, in MT, nel tester senza pensare.... Inferno! Un bel po' di confusione! Per tutta la chiarezza e la semplicità del pacchetto, è molto scomodo, poco sviluppato.

https://www.mql5.com/ru/docs/basis/types/integer/enumeration è l'articolo di aiuto sui trasferimenti. È chiaro cosa sono e che aspetto hanno... Ma come usarlo e qual è il vantaggio? Fammi un esempio semplice se sei troppo pigro per scriverlo a parole.

Penso che se si vuole davvero migliorare qualcosa, si dovrebbe stabilire un contatto con gruppi regolari di utenti che usano attivamente il pacchetto in diverse direzioni (programmazione, trading manuale, test, ecc.) e raccogliere suggerimenti ragionevoli da loro per migliorare ciò che si ha, piuttosto che chiedere in una folla dove tutti vorranno tutto. Altrimenti, tutto rimarrà in lettere.

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Sul debugger:

Per esempio, c'è un'espressione della forma

(int)(MathFloor((ticks_stored-1)/ticks_in_candle)-MathFloor(i/ticks_in_candle));

nell'attuale implementazione del debugger, il risultato del calcolo dell'espressione nel debugger sarà disponibile se si fa

CandleNumber=(int)(MathFloor((ticks_stored-1)/ticks_in_candle)-MathFloor(i/ticks_in_candle));

e aggiungere la variabile CandleNumber alla lista delle osservazioni tramite Shift+F9

Se voglio ottenere un risultato dal calcolo di una parte dell'espressione, per esempio MathFloor(i/ticks_in_candle), aggiungo questa espressione alla watch list

Ottengo un'espressione che non può essere valutata.

Forse sto facendo qualcosa di sbagliato, condividete la vostra esperienza, ma il punto è che nel debug non posso vedere non solo i valori delle variabili dichiarate ma anche i risultati del calcolo di espressioni arbitrarie (naturalmente, sto parlando di quelle espressioni in cui tutte le variabili al momento attuale di osservazione sono già inizializzate).

Inoltre, voglio vedere le informazioni sugli array nel debug. Per esempio, abbiamo l'array UpTick[] e solo un elemento dell'array è disponibile per il monitoraggio al momento.

Perché non implementare la possibilità di aggiungere un array alla supervisione con l'apertura di una finestra modale separata dove sono disponibili tutti gli elementi con i loro indici:

indice tipo valore

0 int 1

1 int 2 ecc.

Se l'array è grande e richiede molta memoria - limitate il campionamento.

E in generale come risultato - per realizzare funzionalità più ampie del debugger in termini di possibilità di monitorare espressioni arbitrarie, variabili, array.

 
agvozdezkiy:
EstendereEMPTY_VALUE a tutti i tipi che lo permettono (int, double, string, ecc.). È una piccola cosa, ma si può usare in molti posti e non inventare il proprio.

Tutti l'hanno già inventato. Usa la costante NULL.

Nel tester, create uno strumento a croce, come in MT.

Esempi: per misurare qualcosa sul grafico tre volte, è necessario cliccare tre volte sul pulsante del mirino (o premere una combinazione di tasti).

Lasciate che vi dica un segreto: è già stato implementato. È necessario fare clic sulla rotella del mouse e sarà un mirino.

Probabilmente si può trovare un'opzione per sovrapporre diversi indicatori in una finestra di indicatori sotto il grafico del prezzo.

È stato possibile farlo per molto tempo. Si trascina l'indicatore dal navigatore alla finestra con l'indicatore già collegato.

Le finestre degli indicatori in ME sotto il grafico non possono essere scambiate: tutti gli indicatori devono essere rimossi, poi li metti nel giusto ordine.

IMHO, non è la cosa più utile.

Devi andare in menu - menu - seleziona indicatore diverse volte per impostare diversi indicatori. Inoltre, c'è uno strumento List of indicators per qualche motivo, che non semplifica e non dà nulla di nuovo in questo caso....

C'è un navigatore, preferiti, modelli e profili. Tutto può essere impostato. Leggete l'aiuto sul terminale, scoprirete molte cose nuove!

https://www.mql5.com/ru/docs/basis/types/integer/enumeration - Articolo di aiuto sui trasferimenti. È chiaro cosa sono e che aspetto hanno... Ma come usarli e qual è il vantaggio? Fai un esempio semplice, se sei troppo pigro per scrivere a parole.

Le enumerazioni sono usate per rendere il codice più leggibile e per rimuovere le costanti e sostituirle con entità che sono familiari agli umani.

Per esempio, i valori dell'enumerazione ENUM_DAY_OF_WEEK possono essere usati per il confronto con il valore day_of_week della struttura MqlDateTime. Cioè si può scrivere così

        MqlDateTime dt;
        TimeCurrent( dt );
        if( dt.day_of_week == 0 )
           {
            // Что-то делаем в воскресенье
           }

Oppure puoi scriverlo in modo diverso:

        MqlDateTime dt;
        TimeCurrent( dt );
        if( dt.day_of_week == SUNDAY )
           {
            // Что-то делаем в воскресенье
           }

SUNDAY è una costante denominata di tipo int con valore 0.

Come pensi che sarebbe più chiaro per una persona che legge il codice?
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Kozitsyn:

Le liste sono usate per rendere il codice più leggibile

C'è un'altra applicazione infinitamente utile. Per esempio:

enum ENUM_OPEN_DIRECTION {
     OPEN_BUY,       // только Buy
     OPEN_SELL,      // только Sell
     OPEN_BOTH,      // Buy + Sell
     OPEN_NONE       // не торговать
};
input ENUM_OPEN_DIRECTION  Trade_Direction = OPEN_BOTH;    // Направление торговли:

E l'utente ottiene un elenco a discesa con una scelta di 4 elementi di ciò che hai scritto lì nei commenti - "Compra solo", "Vendi solo", ecc. Molto utile per elencare un insieme di indicatori, timeframes, un insieme di condizioni ecc. nella finestra delle impostazioni utente