Errori, bug, domande - pagina 2190

 
Alexey Viktorov:

Dopo tre minuti di sperimentazione, sono arrivato alla conclusione che lo spostamento è da


e non dalla posizione attuale.

Quindi? Il numero di barre visibili sta cambiando. Sarebbe meglio controllare quando il grafico si muove con il mouse. Puoi prenderlo. E se c'è uno spostamento nel grafico con l'azione del mouse, allora non è una funzione.
 
Artyom Trishkin:
Quindi? Il numero di barre visibili sta cambiando. Sarebbe meglio controllare quando il grafico viene spostato con il mouse. Puoi prenderlo. Se c'è uno spostamento del grafico con l'azione del mouse, allora la funzione non funziona.

Non ho parlato di un controllo di runtime. Se spostate manualmente il grafico a destra di 100 barre e poi provate a spostarlo di altre 10 barre a destra, l'offset sarà impostato a 10 dal segno mostrato nell'immagine. Infatti, in questo esempio, lo spostamento non avverrà a destra di 10, ma a sinistra di 90.

Per quanto riguarda il controllo... che senso ha controllare qualcosa che non funziona come previsto? Più precisamente scritto non come previsto. Per spostare il grafico più di una volta, l'offset deve essere fatto da CHART_CURRENT_POS, e nell'esempio era CHART_END.

Forum sul trading, sistemi di trading automatico e test di strategia

Errori, bug, domande

Aleksey Vyazmikin, 2018.04.12 15:43

Se chiamo lo script spesso - volta dopo volta dopo l'esecuzione, l'offset del grafico smette di funzionare, cioè i comandi per questa azione vengono saltati

   long handle=ChartID(); 
   if(handle>0) // если получилось, дополнительно настроим 
     { 
      ChartNavigate(handle,CHART_END,-2000); 
     } 

Da qui il problema.

 
Alexey Viktorov:

Non ho parlato di un controllo di runtime. Se spostate manualmente il grafico a destra di 100 barre e poi provate a spostarlo di altre 10 barre a destra, l'offset sarà impostato a 10 dal segno mostrato nell'immagine. Infatti, in questo esempio, lo spostamento non avverrà a destra di 10, ma a sinistra di 90.

Per quanto riguarda il controllo... che senso ha controllare qualcosa che non funziona come previsto? Più precisamente scritto non come previsto. Per spostare il grafico più di una volta, dobbiamo compensare da CHART_CURRENT_POS e, nell'esempio, da CHART_END.


Da qui il problema.

Non ho letto il codice. Forse ne ha bisogno in questo modo.

Quello che sto dicendo è che la funzione di offset del grafico è asincrona, il che significa che quando restituisce il successo dell'esecuzione, non si tratta dell'offset del grafico, ma del successo di mettere un tale ordine nella coda degli eventi del grafico. E questa non è la stessa cosa - lo sapete.

Quindi, in base a questo, sto parlando di catturare l'evento dell'esecuzione del comando di spostamento del grafico...

Vorrei avere il tempo di sperimentare... Ma ahimè...

 

Il profiler non mostra le firme delle funzioni, quindi non si può dire immediatamente quale funzione sovraccaricata è intesa


Cioè la lista è piena di __FUNCTION__, mentre io vorrei __FUNCSIG__.

 

Aiuta a trovare il post dello sviluppatore dove è stato pubblicato il codice sorgente di ArrayResize. Googlare "site:mql5.com/it/forum ArrayResize+reserve" non aiuta.

Ricordo che c'era un codice sorgente. In esso si può vedere immediatamente la logica di implementazione del parametro di riserva.

 
fxsaber:

Aiuta a trovare il post dello sviluppatore dove è stato pubblicato il codice sorgente di ArrayResize. Googlare "site:mql5.com/it/forum ArrayResize+reserve" non aiuta.

Ricordo che c'era un codice sorgente. Si può vedere immediatamente la logica dietro l'implementazione del parametro riserva.

Il codice sorgente o lo pseudocodice? Sono cose diametralmente diverse.

 
Artyom Trishkin:

Se ci si basa solo sul fatto di un offset, si può spostare il grafico a mano - questo è un buco nella logica...

Devi controllare l'offset della barra calcolata a quanto pare, non solo l'offset. Bisogna solo capire come implementarlo correttamente...

Alexey Viktorov:

Non ho parlato del controllo dell'esecuzione. Se spostate manualmente il grafico a destra di 100 barre e poi provate a spostarne altre 10 e anche a destra con lo script, l'offset sarà impostato a 10 dal segno indicato sull'istantanea. Infatti, in questo esempio, lo spostamento non avverrà a destra di 10, ma a sinistra di 90.

Per quanto riguarda il controllo... che senso ha controllare qualcosa che non funziona come previsto? Più precisamente scritto non come previsto. Per spostare il grafico più di una volta, dobbiamo compensare da CHART_CURRENT_POS e nell'esempio abbiamo CHART_END.


Da qui il problema.

Ho bisogno di CHART_END, perché dovremmo fare lo spostamento nel ciclo per date, ed è più conveniente cercare le date dall'inizio o dalla fine dei dati, piuttosto che dal centro...

 
Sergey Dzyublik:

Codice sorgente o pseudocodice? Sono cose radicalmente diverse.

Credo che il codice sorgente sia stato postato direttamente. Ma anche se c'è lo pseudocodice, e sarà utile.

 
Aleksey Vyazmikin:

Devi controllare l'offset della barra calcolata a quanto pare, non solo l'offset. Devo solo capire come implementarlo correttamente...

Ho bisogno di CHART_END, perché si suppone che faccia un offset nel ciclo per date, ed è più conveniente cercare le date dall'inizio o dalla fine dei dati, piuttosto che dal centro...

Quindi non c'è nessun problema. Lo spostamento sarà impercettibile solo se provate a spostarvi dello stesso numero di barre 2 o più volte con un periodo invariato.

Spero di non aver dimenticato di disabilitare lo spostamento automatico del grafico.

ChartSetInteger(0, CHART_AUTOSCROLL, 0, false);
 
Alexey Viktorov:

Quindi non c'è nessun problema. Lo spostamento sarà impercettibile solo se provate a spostarvi dello stesso numero di barre 2 o più volte con lo stesso periodo.

Spero di non aver dimenticato di disabilitare l'autoskill?

L'autoscorrimento, ovviamente, è disabilitato.