Voglio ottenere la verifica in un T.S. se la condizione posta si realizza nelle barre successive con l'utilizzo del ciclo for: mi puoi verificare la corretta sintassi
...... if A > B for i = 1 to optmax if max(high, + i) > high
1) hai dimenticato il "Then" nei vari if 2) il "Next" va staccato da "i" 3) hai dimenticato l'Endif che chiude il primo IF => if A > B Then
Quindi:
...... if A > B Then for i = 1 to optmax if max(high, i) > high Then bresult = true endif next i endif
price high + 0.5 ......
Una nota:
Attento che la funzione Max è piuttosto lenta se il parametro "Period" è elevato.. inoltre il parametro "Period" è il numero di periodi precedenti la barra corrente (quest'ultima compresa) coinvolti nel calcolo. Se omesso saranno considerati tutti i periodi dal primo a quello in elaborazione (CurrentBar). L'ho ribadito per essere sicuro che tu abbia capito come utilizzarlo.
Ti ringrazio per i chiarimenti ma adesso ho un'altro problema: dopo l'avvìo del ciclo for ho aggiunto goto exitciclofor ma l'interprete non esce dal ciclo appena trova la condizione, infatti al variare dell'ammontare dell'indice mi varia i segnali. Dove sbaglio?
...... if prima condizione then for i = 1 to opti if seconda condizione then bresult = true goto exitciclofor endif next i exit ciclofor: .............
Altro problema è determinato dal fatto che il segnale viene posto sulla barra della prima condizione e non su quella del ciclo For
Il segnale viene sempre posto nel periodo in elaborazione che non cambia durante l'esecuzione del codice. In pratica l'interprete esegue tutto il codice per ogni periodo della tua serie storica. Quindi parte dal primo periodo, esegue tutto il codice fino alla fine, poi passa al secondo periodo ed esegue tutto il codice fino alla fine e via di seguito.
Per quanto riguarda il Goto la sintassi è corretta tranne il fatto che ovviamente l'etichetta fuori dal ciclo deve essere uguale a quella del Goto.. invece vedo che da una parte hai scritto ExitCicloFor e dall'altra "Exit CicloFor" con lo spazio di mezzo.
Lo spazio dell'etichetta è stato un errore di digitazione, ma non si realizza l'uscita dal ciclo: infatti al variare del valore di "i" ottengo segnali diversi! perchè?
Il problema non è legato certamente al Goto. Scritto così infatti è corretto. Non ci sono dubbi. Prova a controllare meglio l'intero codice utilizzando il debug passo passo dell'Editor. In questo modo vedi subito cosa succede durante l'esecuzione del codice.