Il mio approccio. Il nucleo è il motore. - pagina 25

 
Yuriy Asaulenko:

Non hai nemmeno un callback in MT. Tutto è fatto da eventi predefiniti in MT, che una volta per tutte.

Invierete ancora eventi del terminale alla DLL, e non importa dove li elaborate, in MT o nella DLL.

Ecco un esempio della mia interfaccia di connessione:

Qui è dove tutto è già pensato.

File:
 
Реter Konow:

Anche se si immagina che la verifica costante dei messaggi di Sharp da parte dell'applicazione ICL non sia una seccatura, sviluppare un formato di interazione è un compito molto voluminoso.

Questo compito include quanto segue:

1. Arrivare a un'organizzazione della memoria condivisa.

2. Attuare l'interazione delle tre parti.

3. Test sincrono dei tre lati (Sharp, DLL, applicazione MT).

Richiede molto tempo.


Nel mio caso, l'utente riceve il file e lo compila. E la connessione funziona.

Non inventare questo. Ho fatto questo per 8 anni con diversi terminali e linguaggi, da VBA Excel a C++, e non so nulla di questi problemi).

Ho già scritto che il vostro sistema è probabilmente applicabile da venditori di mercato o persone diverse da MT-MQL che non sanno nulla dell'esistenza di altri linguaggi e ambienti di programmazione.

 
Yuriy Asaulenko:

Non inventare questo. Ho fatto questo per 8 anni con diversi terminali e linguaggi, da VBA Excel a C++, e non so nulla di questi problemi).

Date un'occhiata al mio file di connessione.

L'utente collega semplicemente questo file tramite un inline al suo EA. E lo riempie. E tutto funziona...
 
Yuriy Asaulenko:

...

Ho già scritto che il vostro sistema è probabilmente applicabile dai venditori di Marketplace o da persone diverse da MT-MQL che non sanno nulla dell'esistenza di altri linguaggi e ambienti di programmazione.

A proposito, attualmente sto sviluppando connessioni GUI con l'EA nel tester. La GUI sarà su un grafico e l'EA sarà in esecuzione nel tester. E comunicheranno tra loro. L'Expert Advisor nello Strategy Tester risponderà alle azioni dell'utente su un diverso grafico che interagirà con la GUI.

Ho capito come implementare questo.

Ma per impostare la comunicazione tra l'Expert Advisor nello Strategy Tester e lo Sharp attraverso la DLL... Non sembra essere possibile.

 
Реter Konow:

E per impostare un collegamento tra l'EA nel tester e Sharpe tramite la DLL... Non credo che si possa.

Sembra essere possibile. Il tester, per quanto ne so, non impone alcuna restrizione alla comunicazione con la DLL. Tuttavia, non l'ho provato personalmente.

 
Yuriy Asaulenko:

Sembra essere possibile. Il tester, per quanto ne so, non impone alcuna restrizione alla comunicazione con la DLL. Tuttavia, non l'ho provato personalmente.

Sì, è possibile, naturalmente. Basta assicurarsi che le DLL siano permesse e questo è tutto.
 
Beh, forse puoi... Tuttavia, la scelta "masochista" verso Sharp è molto evidente). Ci sono così tante sfumature... Ma quando non hai scelta, ovviamente.
 
Реter Konow:
Beh, forse puoi... Tuttavia, la scelta "masochistica" verso Sharp è troppo ovvia))) Ci sono così tante sfumature lì... Ma quando non c'è scelta, ovviamente.

Non ho mai scritto in Sharpe, non avevo interesse, ma circa 5 anni fa ho usato Delphi per collegare .dll con pulsanti e moduli, tutto funzionava senza problemi, e ho anche scritto l'intero progetto in Delphi durante un giorno, inoltre ho passato mezza giornata cercando di trovare il motivo per cui i moduli standard non funzionavano, e quando l'ho collegato attraverso le finestre di sistema chiamando tutto funzionava correttamente, ma MT4 era molto lento allora, ora è lento e vola

Non ho problemi a connettermi alla .dll, sincronizzare con mutex standard - avviare un thread per connettersi al terminale e questo è tutto, poi tutto va da solo - separatamente un modulo in .dll, separatamente MT nessuno sta aspettando nessuno

SZS: nota, che Delphi non è abbastanza pratico per creare .dll, ma quello che era a portata di mano (quello su cui ero seduto allora) l'ho usato )))


Ma per quanto riguarda il gist, non capisco perché non possano usare classi standard del toolkit MT. Al massimo sarebbe interessante unificare il processo di creazione della grafica, forse sarebbe un include universale dove si potrebbero commentare pulsanti/dialoghi, ecc.

 
Peter, non pensare che il tuo approccio sia qualcosa di nuovo.
A quali trucchi andavano i programmatori quando non c'era l'OOP.
Potete vederlo voi stessi, nei programmi C con open source.
Tutte le vostre affermazioni che OOP può e non può avere nulla a che fare con la realtà.
Non stai parlando di OOP, stai parlando delle tue idee sull'OOP. È sorprendente che ne parli così tanto,
ma non vi siete preoccupati di scoprire cosa sia.

Per qualche motivo trascurate l'esperienza degli altri, che esiste.
È stupido studiare per quattro mesi quello che si può trovare su google e imparare ancora molto di più.
Quando si inventa il proprio linguaggio di markup, per qualche motivo non si è voluto studiare anche l'esperienza degli altri.
Per esempio, c'è un QT Designer gratuito. Utilizza un linguaggio di markup basato su XML.
Anche Delphi, C++ Builder usano XML al giorno d'oggi.
C'è anche l'editor di risorse in MS Visusl Studio. Permette di modificare le finestre di dialogo e di inserirle nelle risorse.
Ha anche un proprio linguaggio di markup.

Dalla mia esperienza con le GUI:
Una buona libreria GUI rende il lavoro con la GUI molto più facile.
Un editor visivo aggiunge pochissima comodità. In effetti, è solo un'esca per i nuovi arrivati.
I linguaggi di markup sono di solito utilizzati per memorizzare i moduli nell'editor visivo. Senza di esso, un linguaggio di markup non è necessario.
Con una libreria, è più facile per un programmatore creare un'interfaccia grafica nel codice piuttosto che usare un linguaggio di markup.
Penso che tu stia imponendo il tuo linguaggio di markup perché vuoi nascondere il codice.

 
Igor Makanu:

Potete suggerire un costruttore di GUI gratuito che permetta di scrivere il codice MQL per la grafica?

Voglio fare qualcosa di simile al Delphi Drag-and-Drop, ma non ho trovato un costruttore di GUI libero, che permetta di inserire il codice MQL.

I costruttori di GUI sono fatti per una specifica libreria grafica. Se ci fosse un costruttore di GUI per MQL, sarebbe qui.