Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 239
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
Come posso sapere se un simbolo ha dei dati, in modo da non lasciarlo nella finestra [Market Watch] se non li ha?
SymbolInfoTick.
SymbolInfoTick.
Ho provato questa opzione. Purtroppo non funziona. Se un simbolo viene aggiunto per la prima volta alla finestra [Market Watch], non ci sono ancora dati su di esso e SymbolInfoTick restituisce valori nulli.
Ho provato anche le funzioni CopyXXX, ma non hanno un timeout e il processo di attesa dei dati dal server dura circa 45 secondi, un tempo troppo lungo.
Ho bisogno di un modo rapido per scoprire se un carattere è inutilizzabile. Mi riferisco a casi come questo:
//---
Questi simboli non hanno dati sul server e serve un modo per identificarli in modo che non vengano aggiunti alla finestra [Panoramica del mercato] o rimossi dall'elenco se lo sono.
P.S. Forse esiste un modo per rimuovere il blocco della rimozione dei simboli dall'elenco nella finestra[ Market Watch]?
Ho provato questa opzione. Purtroppo non funziona. Se un simbolo viene aggiunto per la prima volta alla finestra [Market Watch], non ci sono ancora dati su di esso e SymbolInfoTick restituisce valori nulli.
È facile ottenere simboli funzionanti a mano.
Ho provato questa opzione. Purtroppo non funziona. Se un simbolo viene aggiunto per la prima volta alla finestra [Market Watch], non ci sono ancora dati su di esso e SymbolInfoTick restituisce valori nulli.
Ho provato anche le funzioni CopyXXX, ma non hanno timeout e il processo di attesa dei dati dal server dura circa 45 secondi, un tempo troppo lungo.
Ho bisogno di un modo rapido per scoprire se un carattere è inutilizzabile. Mi riferisco a casi come questo:
//---
Questi simboli non hanno dati sul server e hanno bisogno di un modo per essere identificati in modo che non vengano aggiunti alla finestra [Market Watch] o rimossi dall'elenco se lo sono.
P.S. Forse esiste un modo per rimuovere il blocco alla rimozione dei simboli dall'elenco nella finestra [Market Watch]?
Sono circa 6 anni che combatto con questo problema e chiedo agli sviluppatori di mettere ordine.
Purtroppo questo problema non è stato risolto e al momento ci sono situazioni in cui il terminale si blocca quando si accede per la prima volta a uno strumento finanziario.
Come posso sapere se un simbolo ha dei dati, in modo da non lasciarlo nella finestra [Market Watch] se non li ha?
Utilizzo questo controllo in un ciclo:
Ma poi non posso rimuovere manualmente i simboli dalla finestra [Market Watch], né uno per uno né tutti insieme, mentre l'Expert Advisor è sul grafico:
Provare a controllare l'ora dell'ultima quotazione.
Se 0, non ci sono dati.
Ho appena controllato con i grafici aperti.
È possibile ottenere dati aggiuntivi passando da un server all'altro. Non so se sia possibile implementarlo attraverso il codice.
Se per "tra server" si intende "tra broker", allora difficilmente, a meno che non si cerchi di giocare con i profili.
Ma se avessi davvero bisogno di passare da un server all'altro di un broker (Open ne aveva molti, Finam ne aveva due), lo farei tramite iptables/nftables e i miei script bash. Ma qui è più facile per me, ho Linux.
Se per "tra server" si intende "tra broker".
.
Sì, in linea di principio è possibile.
Ma, poiché non c'è modo di scoprire il nome e l'ip del server dal programma MQL, dovrete scoprirli manualmente cambiando server e controllando a quale ip sta andando la connessione.
Poi è possibile, apportando modifiche alla configurazione del firewall, vietare la connessione a qualche server (in questo caso è necessario reindirizzare i pacchetti, non lasciarli cadere per evitare il timeout), costringendo MT a passare a un altro.
Anche in questo caso, per me non è difficile farlo con Linux, ma non riesco a immaginare come farlo con Windows.
Provare a controllare l'ora dell'ultima citazione.
Se 0, non ci sono dati.
Ho appena controllato i grafici aperti.
Questo vale anche per un caso simile:
Se i tick arrivano raramente, tutti questi simboli saranno esclusi.
È facile ottenere simboli funzionanti a mano.
No. Avete bisogno di un programma completamente automatico.
Sono già 6 anni che combatto con questo problema e chiedo agli sviluppatori di mettere ordine qui.
Purtroppo il problema non è stato risolto e al momento si verificano situazioni in cui il terminale si blocca quando si accede per la prima volta a uno strumento finanziario.
L'ho notato solo quando si chiamano le seguenti funzioni:
//---
Sviluppatori del terminale:
1. escludere la possibilità di aggiungere simboli senza dati sul server di trading.
2. Rendere possibile disabilitare il blocco della cancellazione dei simboli dalla finestra [Market Watch] o correggerlo se si tratta di un bug. Ora è possibile farlo solo riavviando il terminale.
3. Per funzioni come CopyXXX , aggiungere un parametro opzionale per impostare il timeout (tempo massimo di attesa dei dati dal server).
Al momento non riesco a riprodurre questo problema. Finora funziona senza ritardi. Ma sembra che in alcuni casi possa accadere.
4. risolvere il bug dell'attesa infinita quando si utilizzano le funzioni Bars(), iBars(), SeriesInfoInteger(symbol, PERIOD_M1, SERIES_BARS_COUNT) nei casi in cui:
Il tentativo di cancellare il programma dal grafico può causare il blocco del terminale per diversi minuti.
5. Correggere il bug dell'attesa infinita quando si utilizzano le funzioni in assenza di connessione al server:
In questo caso è possibile aggiungere un ulteriore parametro opzionale per impostare il timeout (tempo massimo di attesa dei dati dal server).
//---
P.S. Finora ho optato per la variante che prevede il controllo dei dati con funzioni come CopyXXX. Ma osserverò se il problema descritto sopra si ripresenterà.