[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 316

 

C'è qualcun altro oltre a costy_ che capisce qualcosa di IndicatorCounted, perché non ha capito bene il succo del problema.

E come se l'avesse fatto, e come se non l'avesse fatto.

 
depth_finde писал(а) >>

C'è qualcun altro oltre a costy_ che capisce qualcosa di IndicatorCounted, perché non ha capito bene il succo del problema.

E come se fosse così, e come se non avesse una risposta.

Cosa c'è da capire su questo. Durante il funzionamento normale si comporta correttamente. In non-normale (carico storico) il più delle volte non è corretto, ma il risultato è solitamente soddisfacente

 
depth_finde писал(а) >>

Questo è il mio primo post sul forum. Sto studiando MQL4. Non so se c'era una domanda simile prima, non l'ho trovata. Credo di dover usare la funzione IndicatorCounted, ma non so come fare. Ho aggiunto quotazioni per 300 000 e ora quando cerco di avviare gli indicatori si blocca penso che dovrei specificare non tutte le quotazioni, ma solo una certa, per esempio 3000. Ma non voglio ricalcolare anche tutte le 3000, ho bisogno di IndicatorCounted. Non so come specificare la condizione che mostrerebbe solo le ultime 3000 e non ricalcolerebbe quelle già passate.

Grazie per il vostro feedback.

Ripeto.

 
depth_finde писал(а) >>

Lo dirò di nuovo.

Ora ho capito.

>> Esempio di implementazione.

File:
 
depth_finde >> :

Di nuovo.

Al posto di Bars, mettete il vostro valore 300 o 100, o WindowBarsPerChart() La funzione restituisce il numero di barre che si adattano alla finestra del grafico corrente (cioè ciò che è visivamente visibile nella finestra)

 
Vinin писал(а) >>

Ora ho capito.

Un esempio di implementazione

Grazie mille, costy_ e grazie per la fretta.

 
depth_finde >> :

Di nuovo.

Per esempio, si potrebbe fare così:

int CountBars=3000;

int limit=Bars-IndicatorCounted()-1;
if( limit> CountBars) limit= CountBars;
   
for(int i=0; i< limit; i++)
   {
   Buffer[ i]=...;
   }

è possibile limitare il numero di barre nella finestra.

Service-Settings-Graphics-Max. bars per window.

 
Urain >> :

Ne vale la pena, e invece di cancellare, potete impostare ObjectCreate controllando if(ObjectFind(RectangleSell)==-1){ ObjectCreate()}

e il resto senza controllo, in modo da non dover cancellare e reimpostare l'oggetto ad ogni spunta.

Per quanto riguarda le cancellazioni - il punto è che come il numero di barre aumenta, il rettangolo diventa più grande sulla linea temporale(EndBoxTime)

mentre lo "StartBoxTime" per esso rimane invariato. Pertanto, se le condizioni sono soddisfatte e si forma una nuova barra, dobbiamo cancellare la precedente e disegnare un nuovo rettangolo al suo posto

disegna invece un nuovo rettangolo.

Grazie!

 
chief2000 >> :

Per quanto riguarda le cancellazioni - il punto è che all'aumentare del numero di barre, il rettangolo aumenta in scala temporale(EndBoxTime)

mentre lo "StartBoxTime" per esso rimane invariato. Pertanto, se le condizioni sono soddisfatte e si forma una nuova barra, dobbiamo cancellare la precedente e disegnare un nuovo rettangolo al suo posto

disegna un nuovo rettangolo al suo posto.

>> Grazie!

Non dovete cancellarlo, potete semplicemente cambiare i parametri tramite ObjectSet.

ps Ma in generale, sta a voi guardare il caso di studio.

 

Gente, un consiglio a chi lo sa. Diciamo che disegno un indicatore personalizzato sul grafico principale. Poi uso un altro indicatore personalizzato che coinvolge il primo indicatore tramite la funzione iCustom. Posso collegarli in modo che quando il parametro del primo indicatore cambia sul grafico, il parametro del secondo indicatore personalizzato cambia automaticamente?

Motivazione: