Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 913

 
psyman:


Come posso assicurarmi che i dati siano caricati?

Ho letto la guida "Organizzare l'accesso ai dati", ma mi chiedo se c'è un modo semplice per assicurarsene.

https://www.mql5.com/ru/code/1251

c'è questo codice nell'aiuto di mt5

Cosa intende per "un modo facile"? - ...È solo un modo per controllare se i dati sono stati caricati dalla mente? ))) - O scrivi tutto da solo da zero o usi le soluzioni già pronte di qualcun altro, sia il primo che il secondo caso richiedono tempo - o per scrivere e sviluppare il tuo codice o per affrontare la soluzione di qualcun altro, che è più facile - la tua scelta

 
Igor Makanu:

https://www.mql5.com/ru/code/1251

questo codice è nell'aiuto di mt5

Cosa intendi per "modo facile"? - con la forza della mente? ))) - O scrivi tutto da solo da zero o usi la soluzione di qualcun altro, in entrambi i casi ci vuole tempo - o per scrivere e sviluppare il tuo codice o per affrontare la soluzione di qualcun altro, cosa è più facile - la tua scelta

Grazie per il link, la biblioteca è un modo semplice :-)

È vero, ho letto commenti che dicono che si blocca in alcuni casi.

Per quanto ho capito, il piping asincrono per una copia di un indicatore è impossibile. Dovrei aspettare che gestisca successivamente l'intera coda per ogni simbolo?

 
psyman:

Grazie per il link, la biblioteca è la via più facile :-)

È vero che i commenti dicono che si blocca in alcuni casi.

Per quanto ho capito, il download asincrono per una copia di un indicatore è impossibile, dovrei aspettare che recuperi successivamente l'intera coda per ogni simbolo?

La biblioteca non si blocca

scaricare la cronologia è possibile solo in Expert Advisors, l'Aiuto dice che non può essere usato negli indicatori

indicatori, di nuovo, esempi nella KB o negli articoli, ricerca per multisimbolo o multivaluta

 

Ci sono cose interessanti in Mql4. Ecco un esempio. Supponiamo che ci sia una funzione.

ArrayResize()

Ha il tipo int ma può essere chiamato come una funzione procedurale (void) senza restituire un valore? È interessante.

 

Salve. Potete per favore consigliarmi come risolvere il problema?

Sulla demo, l'Expert Advisor non apre tutti gli ordini, dà errore 129 (prezzo sbagliato), anche se ho specificato Ask/Bid in OrderSend, lo slippage è con riserva. Ho notato che quando cancello l'Expert Advisor, il terminale si blocca per 10 secondi e visualizza nel log

Nel tester, non ci sono errori o intoppi

File:
 
Igor Makanu:

la biblioteca non si blocca

scaricare la cronologia è possibile solo in Expert Advisors, il file di aiuto dice di non usare negli indicatori

indicatori, di nuovo, esempi in KB o in articoli, ricerca multisimbolo o multivaluta


Qui l'autore ha messo l'inizializzazione dell'array in una libreria separata, che senso ha?

Функции для инициализации массивов расположим в подключаемом файле InitArrays.mqh
 
psyman:


L'autore ha messo l'inizializzazione dell'array in una libreria separata, che senso ha?

Non so, l'articolo è del 2013, forse prima era necessario fare come l'autore dell'articolo, l'esempio da KB (è anche nella guida) funziona in EAs e scripts senza problemi, lo uso io stesso - non ho notato alcun problema

Se ho bisogno di scrivere un indicatore che riceva dati da un altro timeframe o simbolo, lo troverò negli esempi dell' autore

 
Ecco una domanda. Ho ricevuto 200 barre nel mio grafico. iBars() ha restituito 200 (201 barre se non considero 0), ho eliminato 5 barre dal lato destro dell'archivio eil numero di barre era 195 (iBars() ha restituito 195 barre), il grafico è diventato più corto e poi ho attivato la connessione e queste 5 barre sono apparse nel grafico e nell'archivio delle quotazioni. Ho notato che quando lo faccio incrementa il numero di barre una per una e non ne carica 5 in una volta, è molto strano, se salto una sezione molto grande conterà una barra alla volta, quindi devo fare controlli a sinistra. Come funziona la funzione iBars(), restituisce tutte le barre in una volta quando c'è una connessione o funziona in qualche altro modo?
 
Seric29:
Ecco una domanda. Ho ricevuto 200 barre nel mio grafico. iBars() ha restituito 200 (201 barre se non considero 0), ho eliminato 5 barre dal lato destro dell'archivio e il numero di barre era 195 (iBars() ha restituito 195 barre), il grafico è diventato più corto e poi ho attivato la connessione e queste 5 barre sono apparse nel grafico e nell'archivio delle quotazioni. Ho notato che quando lo faccio incrementa il numero di barre una per una e non ne carica 5 in una volta, è molto strano, se salto una sezione molto grande conterà una barra alla volta, quindi devo fare controlli a sinistra. Come funziona la funzione iBars(), restituisce tutte le barre in una volta quando c'è una connessione o funziona in qualche altro modo?

Recupera incrementalmente i dati mancanti fino a quando l'intero ambiente è completamente sincronizzato. Non appena una barra è completamente caricata, il valore del numero di barre è aumentato. Non otterrete immediatamente il numero di barre mancanti - solo il numero di dati completamente sincronizzati sarà restituito.

 
Artyom Trishkin:

C'è un caricamento graduale dei dati mancanti fino a quando l'intero ambiente è completamente sincronizzato. Non appena una barra è stata completamente caricata, il numero di barre viene incrementato. Non otterrete immediatamente il numero di barre mancanti - solo il numero di dati completamente sincronizzati sarà restituito.

Capisco, sto solo calcolando per i feed di barre nitide, pensavo che funzionasse uno a uno: per esempio, mancano 5 barre, si accende la rete, carica i dati e passa tutto il tempo necessario, e poi il numero di barre viene restituito daiBars() con una possibile differenza di più di uno. Così, gli sviluppatori hanno pianificato di alimentare le barre una per una, il che semplifica la scrittura del codice, ma in caso di grandi sezioni mancanti creerà lavoro inutile per il robot. Quindi, qualunque cosa accada, caricherà le barre una per una, 195, 196, 197, 198, 199, 200. Questo meccanismo è affidabile o può bloccarsi o può succedere qualcosa che invece di caricare un segmento alla volta caricherà l'intero segmento?