Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Quindi l'inizializzazione inDLL_PROCESS_ATTACH: sarà sufficiente per chiamare dal programma mql?
Dal programma mql per chiamare le sue funzioni situate in dll.
Dal programma mql per chiamare le sue funzioni situate nella dll.
E qual è il problema nel descrivere le loro firme? Non tirate winapi in qualche modo attraverso le firme dei metodi?
Scusa, perché descriverli? E mi dispiace, non ho tirato niente))
Scusa, perché descriverli? E mi dispiace, non ho tirato niente))
Cari utenti del forum.
Andrey, penso che tutti capiscano che l'asincronia e il multithreading sono cose diverse.
Poiché la funzione CreateThread() è descritta nell'inluder WinAPI, si supponeva che i thread potessero essere utilizzati.
Non ci sono funzioni simili a CreateTask() descritte nell'IDE, quindi l'ipotesi di una possibile scrittura asincrona del codice scompare da sola.
Pertanto, l'enfasi è stata posta sui fili. Tuttavia, come si è scoperto, le funzioni descritte sono solo prototipi WinAPI.
Ripeto, il compito era di usare WinAPI pure e il prototipo descritto CreateThread() era fuorviante. Non si dice da nessuna parte che si tratta di prototipi.
Tutti i compiti sono diversi, quindi sono arrivato al metodo asincrono e credo che sia meglio scrivere sempre in modo asincrono o in thread,
E sviluppato l'abitudine di scrivere sempre in modo asincrono, vi permetterà di scrivere programmi veloci, e aumentare il vostro livello come specialista.
È il principio di base degli sviluppatori stessi, la velocità di esecuzione dei programmi mql, è il nostro tutto!
È un peccato che mql non abbia una tale caratteristica,
Propongo all'amministrazione di mql di sviluppare funzioni standard di mql per la programmazione asincrona,
dato che ci sono problemi con i fili e, soprattutto, con la sicurezza.
Per la modalità asincrona penso che non ci siano problemi di sicurezza.
Esempio di logica
Elaborare l'implementazione di EventLoop in mql.
creare la classe MqlTask
Dichiarare i compiti come oggetto MqlTask obj;
creare compito compito = obj.CreateTask(MyFunc());
eseguire successo = compito -> Esegui();
pausa di esecuzione successo = compito -> SleepMs(ms);
aspettare il successo = task -> Wait(ms);
aspettare indefinitamente successo = task -> Wait(0);
rimuove il compito dopo aver eseguito il compito di cancellazione;
e tutti i tipi di getStatus per controllarlo.
Andrey, penso che tutti capiscano che la modalità asincrona e il multithreading sono cose diverse.
L'inluder di WinAPI contiene la funzione CreateThread() e avevamo supposto che i thread potessero essere usati.
Poiché non ci sono funzioni simili a CreateTask() descritte nell'IDE, non dovremmo considerare la possibile scrittura di codice asincrono.
Pertanto, l'enfasi è stata posta sui fili. Tuttavia, come si è scoperto, le funzioni descritte sono solo prototipi WinAPI.
Ripeto, il compito era di usare WinAPI pure e il prototipo descritto CreateThread() era fuorviante. Non si dice da nessuna parte che si tratta di prototipi.
Tutti i compiti sono diversi, quindi sono arrivato al metodo asincrono e credo che sia meglio scrivere sempre in modo asincrono o in thread,
E un'abitudine sviluppata a scrivere sempre in modo asincrono, vi permetterà di scrivere programmi veloci e di aumentare il vostro livello come specialisti.
È il principio di base degli sviluppatori stessi, la velocità di esecuzione dei programmi mql, è il nostro tutto!
Peccato che non ci sia una tale funzione in mql, quindi farò un suggerimento al team mql per sviluppare una funzione standard di mql
per la programmazione asincrona, poiché ci sono problemi con i thread e, soprattutto, la sicurezza.
Penso che non ci siano ostacoli alla sicurezza per la modalità asincrona.
Elaborare l'implementazione dei loop, ed eseguire i compiti in questi loop.
Decidete se volete eseguire i metodi in modo asincrono o multithread. Io, per esempio, lavoro con i socket in modo asincrono da mql.
Per determinare cosa è possibile utilizzare in mql e cosa è vietato.
CreateThread() è stato trovato negli inlude, quindi ho pensato che fosse possibile lavorare con i thread.
Ma come si è scoperto i thread sono vietati, quindi la scelta cade su async, ma come usare async in mql non è chiaro.
Sì, questo è esattamente il problema delle prese. L'aiuto dice che non si possono creare più di 128 prese, il che limita l'ottenimento di informazioni sulle azioni americane, per esempio.
E anche quei 128 socket non è chiaro come convertirlo in modalità asincrona ed evitare ritardi nell'elaborazione dei dati in arrivo.
Ecco perché ho dovuto cercare la soluzione al problema in un altro modo,ma volevo risolverlo in pura WinAPI, senza nessuna dll auto-scritta.
E come lavorare in modo asincrono in mql è interessante, se hai qualche esempio di lavoro, sarebbe bene discuterne, se puoi condividere le informazioni.
Ma i metodi asincroni standard nell'aiuto di mql non li ho visti.
Per determinare cosa è possibile utilizzare in mql e cosa è vietato.
Ho trovato CreateThread() negli iniettori del codice, quindi ho pensato di poter gestire i thread.
Ma come si è scoperto i thread sono vietati, quindi la scelta cade su async, ma come usare async in mql non è chiaro.
Sì, questo è esattamente il problema delle prese. L'aiuto dice che non si possono creare più di 128 prese, il che limita l'ottenimento di informazioni sulle azioni americane, per esempio.
E anche quei 128 socket non è chiaro come convertirlo in modalità asincrona ed evitare ritardi nell'elaborazione dei dati in arrivo.
Ecco perché ho dovuto cercare la soluzione al problema in un altro modo,ma volevo risolverlo in pura WinAPI, senza nessuna dll auto-scritta.
E come lavorare in modo asincrono in mql è interessante, se hai qualche esempio di lavoro, sarebbe bene discuterne, se puoi condividere le informazioni.
Ma i metodi asincroni standard nell'aiuto di mql non li ho visti.
Ho letto i partecipanti intelligenti e mi chiedo...
Che senso hanno tutti questi espedienti?
Quando in MQL il multi-threading sarebbe così terribilmente necessario? Per me, l'unico uso sarebbe il test delle strategie, che è implementato nel modo standard.
Idealmente, potrebbe avere senso eseguire diverse WebRequest, ma non credo che il multi-threading sia affatto necessario.
Quali compiti richiedono il multithreading in primo luogo?