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

 
Vladimir Karputov:

Riferimento:CopyRates

Quando si richiedono i dati dall'indicatore, se le serie temporali richieste non sono state costruite o devono essere caricate dal server, la funzione restituisce subito -1, ma viene avviato il processo di caricamento/costruzione

Grazie, questo ha risolto il problema, ha preso solo i dati veramente necessari e la cascata di errori è scomparsa subito, e non ci sono state perdite di memoria e crash ))

 
BillionerClub:

Grazie, ha risolto il problema, ho preso solo i dati veramente necessari e la cascata di errori è scomparsa subito, e non ci sono stati memory leak e crash))

Ma la domanda rimane: "Perché usare CopyRates per il simbolo corrente e il timeframe nell'indicatore, se l'indicatore fornisce già array di OHLC in OnCalculate"?

 
Vladimir Karputov:

Ma la domanda rimane: "Perché usare CopyRates per il simbolo corrente e il timeframe nell'INDICATORE, se l'indicatore fornisce già array di OHLC in OnCalculate"?

In OnCalculate" c'è OHLC, ma potrebbe non esserci una barra, quando potrebbe portare all'uscita dell'array, in ogni caso dovresti usare Ibarshift con il parametro true.

 
BillionerClub:

OnCalculate" contiene OHLC, ma potrebbe non esserci nessuna barra, in quanto potrebbe causare un'uscita dall'array, in ogni caso è necessario utilizzare Ibarshift con parametro true.

No. OnCalculate contiene tutti gli OHLC per il simbolo corrente e il timeframe corrente. Ma se ti piace sparare entrambe le gambe del cavallo a tutto spiano, allora sì, puoi usare la funzione CopyXXXX nell'ANDICATOR per simbolo corrente e timeframe.

 
Vladimir Karputov:

...al galoppo per sparare ad entrambe le gambe di un cavallo...

Mi chiedo che tipo di cavallo sia quello che cavalca su due gambe?

O intendi entrambe le gambe destre, o entrambe le gambe posteriori?

 
Vladimir Karputov:

No. OnCalculate contiene tutti gli OHLC per simbolo corrente e timeframe corrente. Ma se ti piace sparare entrambe le gambe del cavallo al galoppo - allora sì, puoi usare la funzione CopyXXXX nel simbolo corrente e nel timeframe INDICATOR.

Non mi sono spiegato bene, mi scuso. Grazie per le risposte. Controllato hai ragione, la barra si è persa, è spuntata all'improvviso dove non mi aspettavo. Ma ho un problema, come il caricamento di dati da un altro terminale, che potrebbe non corrispondere e per mancanza o presenza in entrambi i terminali. Non ho potuto trovare una soluzione migliore del barshift.


 

Ciao! ... è da un po' che non vengo qui)

Perché la funzione

PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,begin);

non ha alcun effetto sull'ottenimento di

handle = iCustom(_Symbol,PERIOD_CURRENT,"Market indices");
if(handle != INVALID_HANDLE)
   {
    Alert("RT - ",rates_total);
    Alert("BC - ",BarsCalculated(handle));
   };


Il problema è che RT e BC sono la stessa cosa.


Cioè, c'è un modo per sapere dall'handle qualePLOT_DRAW_BEGIN ha l'indicatore?

... Ho intenzione di fare richieste tramite iCustom per alcune variabili con periodi diversi ed è importante sapere su quale barra vengono calcolate tutte le variabili richieste

 
Perché è così veloce, non è costoso cercare un array?
iBarShift
 
BillionerClub:
Perché è così veloce, non è costoso cercare un array?
Molto probabilmente la ricerca non è fatta con un ciclo, ma con semplice matematica
 

Ciao, ho un problema.

Ho dei geroglifici al posto delle lettere russe.Ho provato a cambiare le impostazioni regionali, ma non è servito. Conosce qualche metodo di lavoro?