Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Help
 Aiuti, consigli, dubbi ...
 ciclo for
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

luigi_amodeo
Nuovo Utente

41 Posts

Posted - 30 March 2006 :  11:40:36  Show Profile  Reply with Quote
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

bresult = true
endif
nexti
price high+0.5
......

SupportoTecnico
Forum Admin

1261 Posts

Posted - 30 March 2006 :  12:52:57  Show Profile  Reply with Quote
Quasi giusto!
Solo 3 errori:

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.

Go to Top of Page

luigi_amodeo
Nuovo Utente

41 Posts

Posted - 31 March 2006 :  09:16:38  Show Profile  Reply with Quote
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

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 31 March 2006 :  09:59:20  Show Profile  Reply with Quote

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.
Go to Top of Page

luigi_amodeo
Nuovo Utente

41 Posts

Posted - 31 March 2006 :  10:23:24  Show Profile  Reply with Quote
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è?

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 31 March 2006 :  10:51:23  Show Profile  Reply with Quote

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.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07