Auguri per MQL5 - pagina 22

 

Capisco che non ci saranno puntatori ma riferimenti sicuri, la domanda è: quando si usa la DLL questi riferimenti saranno interpretati come puntatori? Ancora con il confronto con .NET abbiamo un tipo di delegato, un puntatore sicuro a una funzione. Ma tutti i tipi sicuri possono essere interpretati in tipi non sicuri, il contrario, questo è il modo in cui interagiamo con la stessa API, quindi anche la domanda è: i delegati saranno implementati allo stesso modo?

E per quanto riguarda il linguaggio, la stringa in MQL con terminazione zero, oltre esclusivamente ASCII, che è Unicode addio, ci sarà un cambiamento in questa direzione, mi dispiace confrontare .NET ma qui va, la stringa che abbiamo in memoria è la lunghezza del byte e lunghezza del carattere, ma in realtà tutte le stringhe in UTF16, forse in cinque anni sarà la base già UTF32. In realtà, se la stringa avesse anche una codifica nell'intestazione, entrambi i parametri di intestazione esistenti sarebbero richiesti. Per esempio ho spesso a che fare con UTF8, quindi quali passi farete in questa direzione, o tutto rimarrà uguale?

Per quanto riguarda i tipi di dati, rimarrà così com'è o verrà aggiunto un identificatore di tipo come viene fatto in .NET, o i tipi personalizzati saranno drasticamente diversi da quelli primitivi, non sto parlando di come verrà utilizzato dal compilatore, voglio sapere come apparirà all'utente?

 
Facciamo MQL5 come "C con classi", non come C++ puro.

Il tipo stringa è unicode puro, anche se è ancora possibile usare il tipo char come array. Cioè, in MQL5 non c'è un supporto nativo per le stringhe a singolo byte, ma solo sotto forma di emulazione attraverso gli array. Non ci sarà alcuno sforzo esplicito per integrarsi con altri linguaggi oltre alla solita DLL.
 
Renat:

A proposito, recentemente abbiamo comprato da Amazon un grosso libro in giapponese, completamente dedicato alla programmazione MQL4. Autore: Hisamichi Toyoshima

È molto interessante. Puoi dirmi in poche parole di cosa parla questo libro e come è strutturato? Ci sono esempi di programmi o librerie complete?
 
Renat:
Korey:
Renat:

Lo portiamo direttamente al sicuro C++.


C++ crea sicurezza per i venditori di software, per esempio, ora hanno paura di vendere e passare EAs open source, ma gli oggetti saranno certamente scambiati.
Tuttavia, lo stesso C++ è uno degli strumenti più pericolosi.

Non ho detto "C++ sicuro" per niente, non "C++". Sicuro perché non ci sono puntatori di memoria (la cosa peggiore in C++) e codice completamente gestito.
Per coloro che vogliono usare il semplice C, tutto rimane lo stesso in MQL5. Cioè, non usate classi con oggetti e continuate a scrivere funzioni regolari.

Grazie alla vostra attività da MQL a MQL4 c'è un rinnovato interesse per il C!!!
Girato C al consumatore. Molte grazie a voi.
Senza di te, C++ era la mania finale, e la gente disertava per passare a Delphi.
Buona fortuna a voi per il vostro e il nostro beneficio!
 
SK. писал (а):
Renat:

A proposito, recentemente abbiamo comprato da Amazon un grosso libro in giapponese, completamente dedicato alla programmazione MQL4. Autore: Hisamichi Toyoshima

È molto interessante. Puoi dirmi in poche parole di cosa parla questo libro e come è strutturato? Ci sono esempi di programmi già pronti, biblioteche?
Il libro contiene 380 pagine, a partire dal download del terminale, la descrizione degli indicatori standard, il lavoro con il terminale, MQL4 reference book con spiegazioni e la creazione di Expert Advisors. Un sacco di screenshot e frammenti di codice. Tutto questo libro è in giapponese, mi sono orientato con screenshot, fonti e nomi di funzioni.

Sito web dell'autore: http://forex.toyolab.com, puoi provare a leggerlo in inglese con il traduttore automatico di google.
 

Assicurati che nella storia del conto ci sia una barra con il saldo dopo ogni transazione chiusa.

Così - senza/inclusa la commissione

O solo comprensivo della commissione

Vi ringrazio in anticipo.

Ho molto rispetto per MQL.

 
Mi piacerebbe molto:
1. Array dinamici multidimensionali. Almeno 6 dimensioni.
2. Aumentare il numero di buffer degli indicatori. Ma non è una questione di principio. Si può fare a meno di loro. È solo conveniente.
3. Voglio usare DirectX per MT5, altrimenti la mia grafica è molto lenta. Il processore è pesante.
4. La possibilità di raccogliere variabili esterne e non solo esterne in array: Array[2] = {Qwe, Rty};
5. Possibilità di cambiare la dimensione dell'array in questo modo: Array[n]; == ArrayResize (Array, n); (solo un'altra voce).
6. Capacità di sintetizzare o convertire le variabili stringa in una variabile e viceversa.
7. Vorrei essere in grado di espandere le finestre con le proprietà di indicatori, script, esperti. E la memoria per l'ultima dimensione della finestra.
8. Per salvare nei modelli nei nomi degli oggetti un segno di interruzione di linea.
9. Per aumentare il numero di caratteri nelle finestre pop-up con le proprietà di un oggetto ad almeno 256.
10. E ancora una volta sulla conversione dei tipi. Avete già fatto: int / double = double. Fate un ulteriore passo avanti. Che sia: int / int = doppio. Sarebbe logico.
11. Avete bisogno di una funzione che restituisca i nomi dei file nella cartella ...expert/files.
12. Ho bisogno di una funzione che restituisca il numero di file nella cartella ...expert/files.
13. Sottodirectory nella cartella ...expert/files. E possibilità in loro 11, 12 pt.
14. Vorrei essere in grado di utilizzare gli strumenti di MT5 per creare e leggere file ovunque.
15. La storia delle zecche è richiesta almeno per un paio di giorni!!! E un insieme di funzioni per lavorare con le zecche.
16. Grafici tick (candele tick). E funzioni per lavorare con questi grafici.
17. Il TF, se non qualcuno, allora di più. E deve essere YR1.
18. Per correggere i problemi di visualizzazione dell'oggetto su diversi TF. Le coordinate non coincidono.
 
Ecco, è venuto fuori nel forum: bisogna conoscere le limitazioni del server, come il numero massimo di ordini.
 
Sarebbe facile, e lo troviamo molto conveniente, rendere gli array di indicatori calcolati bidimensionali
per esempio:
doppio buffer [][Const];
..............
SetIndexBuffer(3,buffer);
Con ogni nuova barra, il puntatore di linea è spostato del numero di byte dell'elemento dell'array, dobbiamo solo moltiplicare per il numero di elementi della stringa dell'array.
 

OK, il codice sarebbe "gestito".

Sarebbe bello avere "///<summario>". Sai, è molto comodo - muovi il mouse su una variabile/tipo/campo/proprietà ecc, e un popup ti dirà cosa hai "commentato" lì.