Errori, bug, domande - pagina 2189

 
AVAAR:

Grazie! Davvero - funziona!)

E non avevo idea che la compilazione dovesse essere fatta regolarmente senza nemmeno fare modifiche...

Basta leggere ciò che è scritto nelle schede Esperti e Log o nel tester - per capire la causa.

 

Se lo script viene chiamato spesso - ripetutamente dopo l'esecuzione - l'offset di pianificazione smette di funzionare, cioè i comandi per questa azione vengono saltati

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

Se lo script viene chiamato spesso - ripetutamente dopo l'esecuzione - l'offset di pianificazione smette di funzionare, cioè i comandi per questa azione vengono saltati

Questo è un comando asincrono.
 
Artyom Trishkin:
È un comando asincrono.

Allora come si fa a controllare se funziona?

 
Aleksey Vyazmikin:

Allora come si controlla che funzioni?

Per il fatto dello spostamento.
 
Artyom Trishkin:
Sul fatto dello spostamento.

Capisco, cioè il suggerimento è di aspettare l'offset, se non succede, allora ripetere il comando di offset, giusto?

 
Aleksey Vyazmikin:

Capisco, quindi il suggerimento è di aspettare l'offset, e se non succede, ripetere il comando di offset, giusto?

Dobbiamo pensare a come catturare l'attivazione di comandi asincroni e quali possono essere le insidie.

Supponiamo di avere un numero di barra visibile prima di emettere un comando - lo memorizziamo. Finché il numero non cambia, il comando non ha funzionato. Quando cambia, ha funzionato.

E se non viene cambiato? Quando decide che il comando è perso nella coda e ripete il comando? E se dopo aver ripetuto il comando, il precedente ha funzionato, e ne abbiamo un altro in coda - ci sarà un turno extra.

In generale, abbiamo bisogno di sperimentare. Non posso pensare a tutto in una volta...

 
Artyom Trishkin:

Dovete pensare a come catturare l'attivazione di comandi asincroni e quali potrebbero essere le insidie.

Diciamo che abbiamo un numero di barra visibile prima che il comando sia dato - lo abbiamo memorizzato. Finché il numero non cambia, il comando non ha funzionato. Quando cambia, funziona.

E se non viene cambiato? Quando decide che il comando è perso nella coda e ripete il comando? E se dopo aver ripetuto il comando, il comando precedente ha funzionato, e ne abbiamo un altro in coda - sarà un turno extra.

Beh, ci vorrà un po' di sperimentazione. Non me ne viene in mente uno subito...

Capito - caso difficile - ci penserò, grazie.

 
Aleksey Vyazmikin:

Capito - caso difficile - ci penserò, grazie.

Se ci si basa solo sul fatto dello spostamento, il grafico può essere spostato anche a mano - questo è un buco nella logica...

 
Artyom Trishkin:

Se ci si basa solo sullo spostamento, il grafico può anche essere spostato a mano - c'è un buco nella logica...

Dopo tre minuti di esperimenti, sono arrivato alla conclusione che lo spostamento viene da


e non dalla posizione attuale.