Aggiorna la finestra del grafico - pagina 3

 
Ehi ragazzi, funziona bene. grazie ancora,,
 
phy:

Cos'è GV?

Quello che ho fatto di recente è qualcosa come questo

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){

Ridisegna la parte visibile dell'indicatore ad ogni tick, ma non le barre che non sono visibili.

Ciao, phy.....

Anche io ho lo stesso problema di cui sopra, devo cambiare il time frame manualmente e poi ottengo uno stato di aggiornamento dell'indicatore.....

Siccome sono nuovo del codice non so dove aggiungere la linea magica................

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){

Plesae suggerire....

Grazie... un .....lot.

Harry.

 
brspMA:
Ehi ragazzi sta funzionando bene. grazie ancora,,

Ciao, brspMA,

Anche io ho lo stesso problema.........

Puoi guidarmi dove aggiungere quel lime...

Grazie......

 
  1. Perché stai postando in un thread di CINQUE anni fa? Ti aspetti davvero che qualcuno che non posta da anni ti risponda?
  2. for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
    Hai già disegnato tutte le barre quindi solo la barra zero sta cambiando. Che senso ha ridisegnare le barre visibili
  3. Un cambio di timeframe, l'aggiornamento del grafico, ecc. è già gestito da IndicatorCounted, non è necessario alcun codice aggiuntivo, tranne il -1 mancante -- la barra più a sinistra è Bars-1
  4. hp69: Anche io ho lo stesso problema.........
    Se il tuo indicatore non si aggiorna senza un refresh, il problema è che il tuo indicatore è rotto. Cambiare quel ciclo NON aiuterà. Dovete riparare l'indicatore. Solo la prima volta (e l'aggiornamento) disegnerà tutte le barre. La maggior parte delle altre volte Bars-1-IndicatorCounted() sarà zero. Il ciclo viene eseguito una sola volta. State usando variabili non inizializzate invece di valori salvati nei buffer, dalla barra precedente. Se non riesci a capirlo, apri un NUOVO post con il tuo codice.
  5. Hp69 Non fare doppi post
 


Data di inizio della discussione - 2007.11.29
 

WHRoeder- Perché stai postando in un thread vecchio di CINQUE anni?

RaptorUK - Data di inizio del thread - 2007.11.29

============================

Cosa c'è di sbagliato nel rispondere a vecchi thread?

Google non discrimina il contenuto rispetto alla cronologia (a meno che non usi dei filtri), quindi non c'è niente di male nell'aiutare gli altri che si imbattono nei thread tramite i motori di ricerca.

I mod vanno a una scuola dove gli viene insegnato come diffamare e condannare i noob?

 
FlatFap:

WHRoeder - Perché stai postando in un thread vecchio di CINQUE anni?

RaptorUK - Data di inizio del thread - 2007.11.29

============================

Cosa c'è di male nel rispondere a vecchi thread?

Google non discrimina il contenuto rispetto alla cronologia (a meno che non utilizzi dei filtri), quindi non c'è niente di sbagliato nell'aiutare gli altri che si imbattono nei thread tramite i motori di ricerca.

I mod vanno in una scuola dove viene loro insegnato come diffamare e condannare i noob?

Non c'è niente di sbagliato nel rispondere a un vecchio thread in linea di principio.

Sono le risposte come la tua che non hanno nulla a che fare con l'argomento che infastidiscono gli altri.

Inoltre, le risposte a una domanda di 5 anni fa spesso non sono utili, perché mql4 si evolve nel tempo. Portare un vecchio thread in cima alla lista spesso significa che i noob leggono informazioni che non sono più rilevanti.

 
FlatFap, non devi scoraggiarti. Va benissimo rispondere ad un vecchio thread. Il fatto stesso che Google abbia messo questo thread in cima alla tua lista di ricerca significa che questo è il più vicino possibile a ciò che stai cercando. MQL4 si sta evolvendo proprio come qualsiasi altra applicazione, ma la maggior parte delle funzioni di comando non cambia ogni giorno, e con un po' di tentativi ed errori e ulteriori ricerche, si può raggiungere la soluzione desiderata. Buona fortuna!
 

È possibile che dobbiamo ridisegnare un indicatore, ma non sappiamo quante barre dobbiamo ridisegnare. Se creiamo un indicatore frattale, dobbiamo ricalcolare le ultime tre barre, perché la terza barra può diventare un frattale se le prossime 2 barre a sinistra soddisfano le regole. Ho creato un indicatore che segnerà un livello di supporto o resistenza quando viene rotto. Tuttavia questo potrebbe aggiungersi dopo 10 barre o dopo 1000 barre. Quindi non so davvero quante barre dobbiamo ricalcolare. E se ricalcoliamo tutte le barre ad ogni tick, di solito dovremo limitare il nostro indicatore alle ultime 500 o 1000 barre.

È anche possibile aggiornare il grafico in modo che ricalcoli tutte le barre del nostro indicatore. Ma come possiamo farlo programmaticamente? WindowsRedraw() e ChartRedraw() non attivano il refresh dell'indicatore. Se cambiamo un altro time frame e torniamo indietro, l'indicatore verrà ricalcolato, come descritto nel primo post. Possiamo mettere un Expert con un gestore CHARTEVENT_CLICK nel nostro grafico e poi chiamare il metodo ChartSetSymbolPeriod(0, NULL, 0). Questo imposterà il grafico sul periodo attuale del simbolo e permetterà effettivamente all'indicatore di essere ricalcolato automaticamente ogni volta che clicchiamo sul grafico. l'uso di un evento click è solo un esempio e potete usarlo come volete.

 

Alla fine del codice dell'indicatore metti "ChartNavigate(0,CHART_CURRENT_POS,0);"

{

...

ChartNavigate(0,CHART_CURRENT_POS,0);

return(rates_total);

}

Motivazione: