Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (3 lettori)

al-fx

Nuovo forumer
allego
 

Allegati

  • pattern.jpg
    pattern.jpg
    244,7 KB · Visite: 330

gransasso

Forumer attivo
allego la bozza di codice che per me dovrebbe ricreare la VMA secondo le istruzioni presenti nel help online di metastock

Codice:
coeff=2/(periodo+1)
vol=chandle[7](close)
if barindex>(periodo+1) then
media=(coeff*vol*low)+((1-coeff)*vol*media[1])
endif
return media



Ciao Gransasso se non disturbo troppo avrei un altro codice metastock da tradurre in prorealtime:

Input("Dominio",5,55,14);
Media:= Mov(L.Dominio,VAR);
Volatilita:= ATR(7)/2;
Supporto:=
Media-(Media*Volatilita/100);
Supporto;

Si tratta di un trailing stop basato su dominio a 5,55,14 giorni con calcolo della volatilita' a 7 giorni, da qui si ottiene una media costruita sulla meta'della percentuale della volatilita'; serve da supporto e la posizione si chiude con una o due chiusure al di sotto della media creata.

Allora ho fatto i compiti per le vacanze ed è venuto fuori che di medie mobili variabili o adattive se ne usano principalmente due la VIDYA e la AMA e poi c'è questa terza soluzione proposta da luigileo. Se non sono fuori tema (cosa molto probabile) e se interessa ancora a qualcuno fatemi sapere così andiamo avanti con i codici PRT.
 

2tempista

Forumer attivo
ciao una domanda semplice, su prt si può fare il backtest su grafici point e figure? iuo c'ho provato ma non sembra contemplato .
 

luigileo

Forumer storico
Allora ho fatto i compiti per le vacanze ed è venuto fuori che di medie mobili variabili o adattive se ne usano principalmente due la VIDYA e la AMA e poi c'è questa terza soluzione proposta da luigileo. Se non sono fuori tema (cosa molto probabile) e se interessa ancora a qualcuno fatemi sapere così andiamo avanti con i codici PRT.

Si io l'ho trovata come codice metastock su un libro ma non ho la minima idea di come si traduce, l'autore dice che e' molto valida come trailing stop al posto delle normali medie mobili.
Grazie per chi ci aiuta a tradurle.

CIAO LUIGI
 

meursault

lo straniero
Allora ho fatto i compiti per le vacanze ed è venuto fuori che di medie mobili variabili o adattive se ne usano principalmente due la VIDYA e la AMA e poi c'è questa terza soluzione proposta da luigileo. Se non sono fuori tema (cosa molto probabile) e se interessa ancora a qualcuno fatemi sapere così andiamo avanti con i codici PRT.

Si io l'ho trovata come codice metastock su un libro ma non ho la minima idea di come si traduce, l'autore dice che e' molto valida come trailing stop al posto delle normali medie mobili.
Grazie per chi ci aiuta a tradurle.

CIAO LUIGI

Ciao :)
Anche io devo avere da qualche parte qualche codice per la KAMA e la MAMA (si chiamavano cosi'? :rolleyes:) ... mettete quello che avete trovato, codici o spiegazioni, e vediamo cosa si puo' fare :), rileggero' anche le cose gia' postate da Luigi
 

gransasso

Forumer attivo
Codice Vidya
REM Vidya Moving Average
REM Paramètres :
REM periods = Periodo (défaut = 21)
REM Smooth = Coefficiente di lisciatura (défaut = 5)
ONCE SC = 2/(Smooth+1)
AbsCMO = (Abs(Chandle[periods](Close)))/100
IF BarIndex <= periods THEN
Vidya = Close
ELSE
Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya
ENDIF
RETURN Vidya AS "Vidya Indicator"

Codice Ama
ONCE ama = UNDEFINED
signal = ABS(MOMENTUM[p])
noise = SUMMATION[p](ABS(MOMENTUM[1]))
IF noise>0 THEN
er = signal / noise
ELSE
er=1
ENDIF
fastsc = 2 / (2+ 1)
slowsc = 2 / (30 + 1)
factor = SQUARE(er * (fastsc - slowsc) + slowsc)
IF BARINDEX = p THEN
ama = CLOSE
ELSIF BARINDEX > p THEN
ama = ama + factor * (CLOSE - ama)
ENDIF
RETURN ama

Per la terza via ipotizzata (il codice postato da Luigi) ho provato a sostituire nel codice Vidya il Candle momentum oscillator con l'atr ed è venuto fuori comunque una media, ma non so se può avere qualche senso.
 

meursault

lo straniero
Ciao Gransasso
Scrivo un po' in fretta e da cani ma provate a capirci qualcosa, al massimo ne riparliamo. Un paio di osservazioni varie
1) guardando i codici di vidya e ama (altimenti chiamata kama) sono rimasto stupito dal fatto che non si facesse riferimento alla barra precedente. Per intenderci c'e'

Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya

e non come avrei scritto io

Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya[1]

La cosa curiosa e' che PRT li interpreta allo stesso modo, il risultato finale e' lo stesso! In pratica fino a che una variabile non e' definita prende il valore precedente? :eek: questa non la sapevo ... comunque non importa

2) la vma di cui parlava luigileo e poi riportata in spiegazione da tetsuo non e' nient'altro che la vidya (infatti viene citato che e' stata introdotta da Chande ... e' quella)

3) a questo punto, quello che dice luigileo non e' tanto di crearsi una nuova media adattiva bensi' un supporto che funzioni da trailing stop (o almeno ho capito cosi'). Seguendo il codice riportato da luigileo la sua traduzione per prt dovrebbe essere semplicemente questa

Codice:
media = CALL Vidya[periodo , smooth]
vol = AverageTrueRange[7](close)/2
supporto = media - (media*vol/100)

return supporto

dove ho chiamato Vidya il codice riportato da gransasso per la media adattiva Vidya. Variabili periodo e smooth, anche queste si puo' vedere come combinarle. Il fatto e' che con questo codice mi sembra che non si vada da nessuna parte perche' lo stop appare lontanissimo (con i valori di default proposti, ma anche con altri). Il sospetto e' che invece di quel vol/100 vada un vol/1000.

Spero di essere stato utile in un qualche modo, fatemi sapere :)
 

gransasso

Forumer attivo
Ciao Gransasso
Scrivo un po' in fretta e da cani ma provate a capirci qualcosa, al massimo ne riparliamo. Un paio di osservazioni varie
1) guardando i codici di vidya e ama (altimenti chiamata kama) sono rimasto stupito dal fatto che non si facesse riferimento alla barra precedente. Per intenderci c'e'

Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya

e non come avrei scritto io

Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya[1]

La cosa curiosa e' che PRT li interpreta allo stesso modo, il risultato finale e' lo stesso! In pratica fino a che una variabile non e' definita prende il valore precedente? :eek: questa non la sapevo ... comunque non importa

2) la vma di cui parlava luigileo e poi riportata in spiegazione da tetsuo non e' nient'altro che la vidya (infatti viene citato che e' stata introdotta da Chande ... e' quella)

3) a questo punto, quello che dice luigileo non e' tanto di crearsi una nuova media adattiva bensi' un supporto che funzioni da trailing stop (o almeno ho capito cosi'). Seguendo il codice riportato da luigileo la sua traduzione per prt dovrebbe essere semplicemente questa

Codice:
media = CALL Vidya[periodo , smooth]
vol = AverageTrueRange[7](close)/2
supporto = media - (media*vol/100)
 
return supporto

dove ho chiamato Vidya il codice riportato da gransasso per la media adattiva Vidya. Variabili periodo e smooth, anche queste si puo' vedere come combinarle. Il fatto e' che con questo codice mi sembra che non si vada da nessuna parte perche' lo stop appare lontanissimo (con i valori di default proposti, ma anche con altri). Il sospetto e' che invece di quel vol/100 vada un vol/1000.

Spero di essere stato utile in un qualche modo, fatemi sapere :)

Utile è dire poco, per quanto ne ho capito hai trovato la soluzione al problema posto da Luigi, unico appunto dovremmo fare un vol/10000 per ricreare l'intento del codice originale ovvero:
valore della Vidya - valore della Vidya * 1/2 atr% (leggi mezzo atr percentuale)
(urca quasi non mi capisco da solo)!
Comunque viene fuori una bella linea di supporto sul grafico.
 

tetsuo

Guest
Ciao Gransasso
Scrivo un po' in fretta e da cani ma provate a capirci qualcosa, al massimo ne riparliamo. Un paio di osservazioni varie
1) guardando i codici di vidya e ama (altimenti chiamata kama) sono rimasto stupito dal fatto che non si facesse riferimento alla barra precedente. Per intenderci c'e'

Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya

e non come avrei scritto io

Vidya = (SC*AbsCMO*Close)+(1-(SC*AbsCMO))*Vidya[1]

La cosa curiosa e' che PRT li interpreta allo stesso modo, il risultato finale e' lo stesso! In pratica fino a che una variabile non e' definita prende il valore precedente? :eek: questa non la sapevo ... comunque non importa

2) la vma di cui parlava luigileo e poi riportata in spiegazione da tetsuo non e' nient'altro che la vidya (infatti viene citato che e' stata introdotta da Chande ... e' quella)

3) a questo punto, quello che dice luigileo non e' tanto di crearsi una nuova media adattiva bensi' un supporto che funzioni da trailing stop (o almeno ho capito cosi'). Seguendo il codice riportato da luigileo la sua traduzione per prt dovrebbe essere semplicemente questa

Codice:
media = CALL Vidya[periodo , smooth]
vol = AverageTrueRange[7](close)/2
supporto = media - (media*vol/100)

return supporto
dove ho chiamato Vidya il codice riportato da gransasso per la media adattiva Vidya. Variabili periodo e smooth, anche queste si puo' vedere come combinarle. Il fatto e' che con questo codice mi sembra che non si vada da nessuna parte perche' lo stop appare lontanissimo (con i valori di default proposti, ma anche con altri). Il sospetto e' che invece di quel vol/100 vada un vol/1000.

Spero di essere stato utile in un qualche modo, fatemi sapere :)


e bravi gransasso e meurs avete portato avanti il discorso e tirato alla grande le somme :up::up:



ciao
 
Ultima modifica di un moderatore:

Users who are viewing this thread

Alto