Discussione: If-then-else, for loop, blocchi di istruzioni {}
Visualizzazione Elencata
-
08-10-13, 11:16 #11
ciao Marco,
prova a fare uno sforzo mentale.
Il linguaggio non è imperativo ma vettoriale.
Ogni riga viene eseguita per tutte le barre e poi si passa alla riga successiva.
Quando tu chiedi di eseguire:
SET Vector = IF(Condition,HIGH, REF(Vector,1))
E come ti ha spiegato Max, il codice viene eseguito per ogni riga di istruzione su tutte le barre...il vettore che vuoi passare come 3° parametro alla funzione IF non esiste ancora... perche dipende da VECTOR , che lo stai ancora calcolando...
Prova a rileggere ciò che ti ho scritto:
SET MyWindowedMAX = MAX(close, 200)
MAX (che è una funzione) calcola "..i valori di un vettore...ed assegnare al valore su un certo indice il valore ...in funzione degli indici precedenti...
Ho riportato MAX perchè è già pronta e fa proprio quello che chiedevi nell'esempio
Ma tu puoi fare una qualsiasi altra funzione come MAX.
La funzione MAX internamente fa proprio quello che dici: PER OGNI Barra, Controlla TUTTE (200 nell'esempio) le barre precedenti e AGGIORNA il Valore DI MAX.
In ogni istante hai accesso alle barre predenti.
Quindi puoi costruire un vettore e Indice per Indice ...via via che trascorre il tempo puoi definire il valore di quell'indice in funzione delle barre precedenti.
Ovviamente non puoi andare a cambiare il valore di un vettore ad un certo indice i quando sei ad un indice > i
Altrimenti vuol dire che quel valore dipende da un evento futuro...e purtroppo ancora non siamo in grado di verificare una condizione nel futuro per prendere un azione nel passato...chissà forse ci arriveremo
ciao,MarcoUltima modifica di Marco Bosco; 08-10-13 alle 11:24
I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L’insieme dei due costituisce una forza incalcolabile. (Albert Einstein)