Help Metastock

delli

Nuovo Utente
Registrato
3/5/03
Messaggi
253
Punti reazioni
17
Salve a tutti,
ho un problema con una funzione di Metastock,lo vorrei tradurre in Easylanguage ma non riesco a "tradurre" il codice perchè non sono esperto di Metastock.

La funzione completa è questa:

If(PREV = 1,
If(CLOSE < HighestSince(1,PREV <> 1,CLOSE)*.96,
-1,PREV),
If(PREV = -1, If(CLOSE>LowestSince(1,PREV <> -1,CLOSE)*1.04,
+1,PREV),
If(PREV = 0, If(CLOSE>Lowest(CLOSE)*1.04,
+1,
If(CLOSE<Highest(CLOSE)*.96,
-1,
PREV)),PREV)))

-------------------------------------------------------
Non riesco a capire cosa è PREV in questa funzione, dice "se PREV = 1 nella prima riga , e come faccio a sapere se PREV = 1?
E poi nella seconda riga PREV <>1 non è un controsenso, 0 è < 1, -1 < 1 quindi è sempre?
C'è qualche anima buona che mi può aiutare?
PS. Il codice funziona correttamente quindi non mancano pezzi di codice. :confused: :confused:


Ciao a tutti Delli. :)
 
Scritto da delli
Salve a tutti,
ho un problema con una funzione di Metastock,lo vorrei tradurre in Easylanguage ma non riesco a "tradurre" il codice perchè non sono esperto di Metastock.

La funzione completa è questa:

If(PREV = 1,
If(CLOSE < HighestSince(1,PREV <> 1,CLOSE)*.96,
-1,PREV),
If(PREV = -1, If(CLOSE>LowestSince(1,PREV <> -1,CLOSE)*1.04,
+1,PREV),
If(PREV = 0, If(CLOSE>Lowest(CLOSE)*1.04,
+1,
If(CLOSE<Highest(CLOSE)*.96,
-1,
PREV)),PREV)))

-------------------------------------------------------
Non riesco a capire cosa è PREV in questa funzione, dice "se PREV = 1 nella prima riga , e come faccio a sapere se PREV = 1?
E poi nella seconda riga PREV <>1 non è un controsenso, 0 è < 1, -1 < 1 quindi è sempre?
C'è qualche anima buona che mi può aiutare?
PS. Il codice funziona correttamente quindi non mancano pezzi di codice. :confused: :confused:


Ciao a tutti Delli. :)

ciao, ti aiuto un po' a sbrogliare la matassa anche se non posso risolvertela tutta... dunque il prev può voler dire due cose, o è inteso come previous value of indicator per le vecchie versioni di metastock e quindi devi sostituirlo con PREVIOUS o è inteso come giorno precedente e quindi dovrebbe essere ref(C,-1) ma penso sia la prima delle due dando una sbrciata veloce all'algoritmo!
meffe
 
Forse ti può essere di aiuto

Metastock 8.0 Help

The PREV constant allows you to create self-referencing formulas. A self referencing formula is one that is able to reference the "previous" period's value of itself.
For example, the following is an example of a self referencing formula:
((H+L+C)/3) + PREV
This simple formula divides the high, low, and closing prices by 3 and then adds this value to yesterday's value of the ((H+L+C)/3).
The calculation of the popular indicator On Balance Volume illustrates the use of the PREV function.

(if(c>ref(c,-1),1,-1)*volume)+PREV
Although On Balance Volume can be calculated without the use of the PREV function, an exponential moving average cannot (other than using the mov() function). The following formula shows how a 18% exponential moving average (approximately 10-periods) is calculated using the PREV function.
(close*0.18)+(PREV*0.82)

Saluti
Super Pippo69
 
Grazie a tutti e due,
seguirò i vostri consigli,vedo se riesco a capirci qualcosa.

Grazie di nuovo Delli.
 
Indietro