È ora di convertire le librerie in MQL5 - pagina 5

 

A proposito, i comandi di memorizzazione non potrebbero essere in un linguaggio umano? - Sai, tipo:

"Invia al deposito".

"Scarica dal repository".

"Sincronizzare con il repository".

"Sincronizzare con ME".

E i comandi che sono ora - beh, non è chiaro. E in questo sono solidale con Urain. E se qualcosa che qualcuno non capisce intuitivamente, è improbabile che questa persona voglia passare del tempo a studiare i comandi per usare la nuova funzionalità, specialmente se prima ne faceva a meno (funzionalità).

 

Questo thread si sta trasformando in una wishlist, metterò anche la mia qui.

Per quanto riguarda le biblioteche numeriche, queste sono:

  • interpolazione, lisciatura e approssimazione
  • gestione della matrice
  • Ottimizzazione (ricerca di un estremo), metodi:

Univariata: metodo del rapporto aureo, dicotomia, metodo della parabola, ricerca a rete, metodo di Fibonacci, ricerca trinaria
Metodi diretti: Metodo Gauss, Metodo Nelder-Meade, Metodo Hook-Jeeves, Metodo della configurazione, Metodo Rosenbrock
Primo ordine: Discesa del gradiente, metodo Zoytendijk, discesa delle coordinate, metodo del gradiente coniugato, metodi Quasi-Newton, algoritmo Levenberg-Marquardt
Secondo ordine: Metodo Newton, Metodo Newton-Raphson
Stocastico: Metodo Monte Carlo, Simulated Annealing, Algoritmi evolutivi, Algoritmi genetici, Evoluzione differenziale, Algoritmo delle formiche, Metodo dello sciame di particelle

Elenco di Wikipedia, probabilmente non serve tutto.

  • reti neurali?

Oltre alle librerie di metodi numerici:

  • graficizzazione

E nel linguaggio per costruire un analogo dell'API Java Reflection

  • Definizione della classe dell'oggetto.
  • Ottieni informazioni su modificatori, campi, metodi, costruttori.
  • Crea un'istanza della classe, il cui nome è sconosciuto fino all'esecuzione del programma (specificato dalla stringa).
  • ...

E le espressioni regolari.

E a questo, una bella aggiunta sarebbe la possibilità di eseguire il programma, non in una finestra del grafico dei caratteri. Ma in una finestra normale. È già ovvio che non c'è scampo dalle "applicazioni" personalizzate, quindi perché collegarsi a un simbolo, visto che si può accedere a qualsiasi, per qualsiasi operazione. In generale, in 5, il passaggio di default sul simbolo è completamente inutile. Questo è il lotto di indicatori e applicazioni esperte per le quali è davvero utile.

E, come minimo, fare un blocco degli eventi "popping" al grafico dagli elementi dell'interfaccia, ora è fastidioso trascinare un oggetto finestra insieme allo scorrimento del grafico (o forse lo è già?).

Grazie per i metodi statici - i miei singleton non sono più funzioni globali.

 
Renat:
Abbiamo fatto una grande quantità di lavoro per mettere a punto il compilatore MQL5 per rendere più facile la conversione delle librerie esistenti scritte in altri linguaggi.

E il linguaggio MQL5 continua ad evolversi. Nuove caratteristiche dovrebbero apparire presto, incluso un potente profilatore di codice.

Ora abbiamo due compiti da portare a termine:
1) selezionare librerie di terze parti utili per la conversione
2) raccogliere volontari per realizzare progetti di conversione (noi li finanzieremo).

Vorremmo iniziare con una lista di potenziali progetti. Aiuto con link e una breve descrizione, per favore.
Penso che sia più redditizio per coloro che vogliono mettere le biblioteche sul mercato, perché è una soluzione a lungo termine, e tu stai offrendo un pagamento una tantum. Naturalmente, se siete disposti ad offrire da 10.000 a 50.000 dollari o più per progetto, allora un'altra conversazione, allora sono disposto a spostare qualcosa.
 
-Alexey-:
Penso che sia più redditizio per coloro che vogliono mettere le biblioteche sul mercato, perché è una soluzione a lungo termine, e tu stai offrendo un pagamento una tantum. Naturalmente, se siete disposti a offrire da 10.000 a 50.000 dollari o più per progetto, allora un'altra conversazione, allora sono disposto a spostare qualcosa.
Molto interessante, cos'è che siete disposti ad offrire? Solo un piccolo suggerimento, per favore?
 
Più lavoro con i numeri complessi, con i grandi numeri. Convertire le coordinate, con ulteriore creazione di grafici tridimensionali.
 
TheXpert:
Muoviti:)
Ahi! Ahi! :)
 

Un'altra domanda - se state cercando di rendere MQL5 il più vicino possibile al C++, perché non riconsiderate la domanda su #ifdef o #if defined o solo #if?

In seguito, solleverò una questione riguardante il debug delle librerie, forse non l'avete notato?

Небольшой вопрос -- сейчас есть возможность нормально дебажить библиотеки? Просто не всегда все баги вылазят сразу -- некоторые могут остаться и вылезти уже во время активного пользования библиотекой.

Certo, è parzialmente risolto dal controllo interno, ma alla luce del crescente codice della biblioteca è molto rilevante.

E.M.N.I., i frammenti della biblioteca non funzionano.

 
Renat:
È strano sentire parlare di "accesso garantito alla dll" quando ha funzionato perfettamente in MQL4 e MQL5 per 7 anni.

Funziona bene quando prendi una DLL C++ (o C#) con un file di intestazione, la metti nella cartella appropriata, includi il file (o i file) di intestazione originale tramite #include nel tuo codice e hai finito. È possibile al giorno d'oggi?

 
Questo è possibile in qualche altro linguaggio non C/C++?

La completa mancanza di sicurezza di C/C++ e l'accesso diretto ai dati non vanno bene per i linguaggi che si preoccupano almeno minimamente della sicurezza. I file header *.h possono essere usati in MQL5 quasi come sono, rinominati in MQH. Ma i luoghi che operano con collegamenti e accesso diretto ai dati devono essere corretti.

I binding con DLL funzionano bene.

 
Renat:
. . . I file header *.h possono essere usati in MQL5 praticamente così come sono, rinominati in MQH. Ma i luoghi che operano con collegamenti e accesso diretto ai dati dovranno essere corretti.

Presumo che dovrete cambiare molte cose.

In realtà, non c'è niente di sbagliato nell'accesso diretto ai dati. Dopo tutto, MetaTrader stesso è probabilmente scritto in C/C++, e niente. Inoltre, i linker di solito permettono anche inserti da assemblatore, e anche questo va bene. Ricordate che MetaTrader in esecuzione sotto Windows utilizza direttamente o indirettamente un sacco di dll di sistema, e non c'è niente di sbagliato in questo.

Non credo che dovremmo privare l'utente del suo diritto di scelta. Mi piacerebbe davvero l'opzione in cui posso prendere, per esempio, ALGLIB-dll e il suo file header nativo(i) e usare una libreria affidabile senza toccarla a mani nude, ma solo indicando al compilatore MQL che questo file header è C++ e non MQL.

Ci si potrebbe chiedere - e se questa libreria fosse maligna e pericolosa? Ma ho deciso di usarlo io stesso.

In altre parole - il contenuto programmato con MQL può essere sicuro quanto si vuole, ma se ho osato usare qualcosa di esterno, è un mio problema personale. Così come la sicurezza del mio sistema operativo, che, tra l'altro, può anche costituire una minaccia per MetaTrader.