Auguri per MQL5 - pagina 16

 
Inviateci il vostro feedback su MQL5.

Lo sviluppo di MQL5 è in pieno svolgimento ed è una delle nostre caratteristiche chiave della nuova piattaforma di trading. Per il momento non partecipiamo volutamente alle discussioni per motivi di tranquillità. Ma tra un po' inizieremo a pubblicare informazioni sul nuovo linguaggio, le librerie e l'ambiente di programmazione.
 
Renat:
Per favore, dateci il vostro feedback su MQL5.
Solo per la lingua o anche per l'editor con il terminale?
 
komposter:
Renat:
Per favore, esprimete i vostri desideri per MQL5.
Solo alla lingua o anche all'editor con il terminale?
Per la lingua e l'editore. Al terminale - questo è in un thread separato. Per ora, sarebbe meglio discutere di MQL5 e dell'editor.
 
  • In Fortran c'era una cosa meravigliosa: il sottoprogramma. L'elenco dei parametri non era solo in entrata ma anche in uscita. Ora tutto è attraverso il globale...
  • È auspicabile avere proprietà personalizzabili di funzioni speciali. Per esempio, un inizio tick-by-tick, inizio con una data frequenza, in loop conaggiornamento automatico dell' ambiente.
  • Possibilità di chiamare un altro programma applicativo dall'Expert Advisor, ad esempio un indicatore (sia standard che personalizzato) con possibilità di visualizzarlo sul grafico.
  • Accesso ai nomi dei programmi caricati nella finestra
  • Accesso all'elenco dei programmi applicativi e delle librerie disponibili (.
  • Accesso a tutti gli array di indicatori, caricati manualmente, da Expert Advisor e script.
  • Scambio di informazioni tra terminali e accesso programmatico alla corrispondenza (è possibile che il commercio prenda la via dei segnali di vendita).
  • Strati grafici multipli e completa libertà (per esempio, strato indicatore in alto) (o: uno strato separato per ogni ordine, perché nell'ambiente attuale a strato singolo le linee dell'ordine superiore non possono essere selezionate se ci sono più ordini a un prezzo - orizzonte grafico).

----

  • L'editor, ovviamente, ha bisogno di un debugger.
  • Possibilità di far collassare gruppi di linee in una linea.
  • Le etichette non dovrebbero scomparire quando ME è chiuso.
  • Evidenzia i nomi delle funzioni personalizzate a colori.
  • Parentesi lampeggianti (se si evidenzia la sinistra, la destra lampeggia).
 
Possibilità di stampare a colori direttamente dal ME.
 
Per editore:
  • completamento automatico quando si inseriscono le variabili e le funzioni dell'utente;
  • tooltips quando si inseriscono i parametri per le funzioni definite dall'utente (come per le funzioni normali);
  • commentare/non commentare un blocco;
  • finestra "immediatamente" - esecuzione istantanea della stringa di codice inserita;
  • rimuovere i bug con la ricerca di linee brevi e l'"ombreggiatura" del testo non commentato.

Per l'interazione con il terminale:
  • quando compilate l'EA, riavviatelo solo sul grafico o non riavviate nulla!
  • quando si compila un file che fa riferimento a un altro file, si compila anche questo;
  • avviare/arrestare lo script/esperto/indicatore dal codice (dalla stessa finestra "immediatamente").
Per lingua:
  • elenco di simboli dal codice;
  • TUTTI i parametri dei simboli dal codice (in modo da poter calcolare tutto ciò che il terminale calcola);
  • eventi - commercio, interfaccia, eventi di errore;
  • Funzione di commento - ampliare la funzionalità (non cancellare il testo precedente, selezionare il carattere e il colore, l'angolo di rilegatura, ...);
  • Global Variables Terminal - capacità di nascondere all'utente, salvare su disco a comando o immediatamente dopo il cambiamento.
Bene, e mi associo a quasi tutti gli oratori precedenti, ho finito per ora.
 

Senza conoscere le proprietà delle funzioni speciali di MQL5, è difficile dirlo in anticipo, ma MQL4 ha un problema simile.

Start() viene messo in loop. Funziona. Un utente si connette a un altro account. Le informazioni ambientali del nuovo conto diventano disponibili per l'Expert Advisor nella sessione corrente prima che start() venga forzatamente chiuso. L'Expert Advisor (in base alla sua analisi interna) segnala che gli ordini (che erano nel conto precedente) sono stati chiusi, gli swap, i livelli di stop, ecc. sono stati cambiati, ecc. con tutte le conseguenze che ne derivano.

Neanche l'Expert Advisor traccia esplicitamente l'informazione di un nuovo conto seguita da una decisione di deinit-init-start(). Non sono riuscito a cogliere lo schema, ma la deinizializzazione non avviene sempre. Per esempio, se il terminale è stato appena caricato e la connessione al conto A è stata stabilita, la transizione al conto B viene eseguita senza deinit-init-start. Dopo un minuto il passaggio da B ad A avviene con il previsto deinit-init-start e anche il successivo passaggio da A a B o tra qualsiasi altro account è normale. Sembra che il problema sia in qualche modo legato al fatto della prima connessione all'account. L'effetto è persistente.

In generale, il desiderio è: quando si passa a un altro account, prima si disattiva l'account corrente nell'ambiente attuale, e poi - come se si partisse da zero (collegarsi a un nuovo account ed eseguire nel terminale i valori del nuovo ambiente).

 

Se avete implementato un modello di oggetto, allora guardate quel modello di oggetto, i metodi disponibili, le proprietà, ecc.

Altrimenti, tutto ciò che è stato suggerito sopra fa parte di ciò che è disponibile nella maggior parte degli ambienti di sviluppo moderni, tutto quello che dovete fare è replicare, per esempio, Visual Studio di Microsoft. Per esempio, quando si passa da VB 6 a VB .NET, non è cambiato molto, le funzioni sono semplicemente diventate parte di una classe separata, per chi non trova subito le alternative, solo la scala degli approcci è aumentata. Solo le funzioni di basso livello sono state rimosse, grazie alle quali ho ampliato le mie conoscenze e anche cambiato il linguaggio di programmazione, naturalmente chi non conosceva funzioni come objptr non ne aveva bisogno :) Naturalmente, dopo che tutte le funzioni e le classi alternative sono state apprese, ma la facilità di accessibilità di tali piccole caratteristiche come il lavoro con i puntatori, non mi ha permesso di tornare al secolo scorso e aprire nuovi campi, senza ragionamenti logici nella nebbia del C++, mentre ho provato a scrivere in VB, ho studiato ASM e ho cercato di creare un linguaggio di programmazione, ma l'ulteriore apprendimento della programmazione di sistema, mi ha portato al fatto che il meglio di tutto ciò che è stato creato per la programmazione applicata è .NET, non ho mai capito la logica di Java e prima

P.S.: Questo è un esempio di ciò a cui tendere:)

La cosa più importante che ha provocato il serio sviluppo della tecnologia .NET è Reflection e l'opportunità di studiare il codice sorgente per capire come funziona fino al più piccolo dettaglio, nessuna descrizione ed esempi non darà più che la possibilità di vedere alla radice. Tutti i disassemblatori e molti altri strumenti che sono stati sviluppati per approcci di basso livello impallidiscono. Per esempio conosco molti dettagli e differenze tra .NET 1.0 e 1.1 e ancora di più tra .NET 2.0, non perché so che la nuova versione è buona o migliore, ma perché ho visto la differenza nel codice sorgente e nel codice macchina e vedo ancora tutte le nuove altezze che .NET raggiunge.

Supponiamo che anche io abbia studiato il terminale e il suo linguaggio e supponiamo che ci sarà qualcosa da confrontare in considerazione di ciò che abbiamo:) Non mi fido delle parole, mi fido dei miei occhi:)

 

1) trascinamento degli ordini come in un programma, ora non ricordo il nome, è bellissimo))

2) nel tester W1

3) Editor visivo di EA, in modo che qualsiasi principiante, non conoscendo affatto il linguaggio MQL, potesse implementare le proprie idee negli EA per verificarle sulla storia, perché le idee si sono rivelate essere illusioni, e senza un programmatore non c'è possibilità di rinunciare alle illusioni))

l'ultimo sembra fantastico lo capisco, ma se viene implementato, mt farà un salto di qualità, diventerà davvero massicciamente popolare e lascerà i concorrenti indietro per sempre))

 
Possibilità di creare strategie visivamente, in base alle regole applicate agli indicatori. Proprio come è implementato nell'ambiente visivo di Trading Solutions. È conveniente che non ci sia bisogno di preoccuparsi dell'indicatore, creando il codice dell'Expert Advisor solo per controllare i suoi segnali.