Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (1 Viewer)

Jolly Roger

L'eretico
Ricorrenza di un evento.

Non so se avete notato che su hk-lisse, il noto sito francese, compaiono talora dei grafici relativi alla distribuzione di un determinato evento.

Es. : Le blog de hk_lisse

o ancora meglio Le blog de hk_lisse (RSI pdf generator)


Qualcuno di voi ha un'idea come realizzare la stessa cosa ?

Calcolare la frequenza di un determinato evento è facile.
Più complicato un grafico stile curva di gauss che rappresenti la distribuzione delle frequenze.

HK-Lisse riesce ad utilizzare anche l'asse verticale (quello del tempo per intenderci).
 

meursault

lo straniero
Leggo solo adesso questo post e mi congratulo con te Meursault !

Saluto te, il simpatico Tetsuo che non sento da secoliiiiiiiiiiiiiii :) e tutti gli appassionati di programmazione prt.

Ciao

Ciao Black Swan :mano:
Mi fa piacere che qualcun altro oltre Tetsuo abbia notato quel codice.

Appena ho tempo guardo cosa si puo' fare per le distribuzioni ...
 

meursault

lo straniero
Ciao Meur felice di potere chicchierare con te ancora una volta...:up:

allora il pentagramma non è altro che il VWap con le sue deviazioni standard

io ho provato a farlo girare anche su grafici nvolume e ntick ma non funziona in quanto mi da il tuo stesso errore di ciclo infinito

così mi sono accontentato do farlo girare nel 5 min e per tutti gli altri grafici uso la formula del midas che mi hai settato tu e devo dire che è ok!

se poi riuscite a costruire il pentagramma per tutti i tipi di grafici fate un fischio che io vi leggo sempre...purtroppo posso solo darvi supporto morale in quanto di programmi non ne capisco una mazza...

A dopo
Enzo

Ciao Enzo
Alla fine credo di avercela fatta, mi fa fatto veramente faticare .
Ecco il codice

Codice:
if barindex < start then
    ww = undefined
else
    pri=medianprice
    p=p+1
    if barindex = start then
        p=1
    endif
    
    sum=summation[p](volume)
    sump=summation[p](pri*volume)
    ww=sump/sum
    
    tot = (1/sum)*(summation[p](SQUARE(pri)*volume)) - SQUARE(ww)
    
    eca =SQRT(tot)
    
endif

return ww,ww+eca,ww-eca,ww+2*eca,ww-2*eca,ww+3*eca,ww-3*eca

Al solito variabile intera start >=0 dal quale cominciare il calcolo.
Non fatelo girare pero' con grafici con molte barre e valori di start molto piccoli perche' ci puo' mettere parecchio a effettuare i calcoli (ho provato con un grafico di 60000 barre e ci ha messo quasi 5 minuti).

Ciao.
 

casguzze

Trade what you see
Ciao Enzo
Alla fine credo di avercela fatta, mi fa fatto veramente faticare .
Ecco il codice

Codice:
if barindex < start then
    ww = undefined
else
    pri=medianprice
    p=p+1
    if barindex = start then
        p=1
    endif
 
    sum=summation[p](volume)
    sump=summation[p](pri*volume)
    ww=sump/sum
 
    tot = (1/sum)*(summation[p](SQUARE(pri)*volume)) - SQUARE(ww)
 
    eca =SQRT(tot)
 
endif
 
return ww,ww+eca,ww-eca,ww+2*eca,ww-2*eca,ww+3*eca,ww-3*eca

Al solito variabile intera start >=0 dal quale cominciare il calcolo.
Non fatelo girare pero' con grafici con molte barre e valori di start molto piccoli perche' ci puo' mettere parecchio a effettuare i calcoli (ho provato con un grafico di 60000 barre e ci ha messo quasi 5 minuti).

Ciao.

Grande Meur!!!:up::up::up:

adesso lo provo e ti faccio sapere....:D
 

fracicone

Nuovo forumer
Ciao Fracicone,
in effetti non avevo capito niente di quello che volevi :D

Allora, se quello che vuoi e' far partire il tuo indicatore da una barra a tua scelta, una soluzione al problema e' del tutto simile a quella che avevo postato a Casguzze poco indietro.

La ripeto schematicamente:
- costruisci un "indicatore" di supporto che puoi chiamare contabarre. Tale indicatore ha una sola riga di codice
return barindex
e te lo metti sotto al grafico, cosi'

1264369308fiat1.png


- modifichi il codice del tuo indicatore in questo modo
Codice:
if barindex < start then
    ww = undefined
else
    pri=medianprice
    p=p+1
    if barindex = start then
        p=1
    endif
 
    sum=summation[p](volume)
    sump=summation[p](pri*volume)
    ww=sump/sum
    tot=0
    for i=0 to p-1
        var=(volume[i]/sum)*(SQUARE(pri[i]-ww))
        tot=tot+var
    next
    eca=SQRT(tot)
endif
 
return ww,ww+eca,ww-eca,ww+2*eca,ww-2*eca,ww+3*eca,ww-3*eca
Questo codice usa una varibile >=0 che ho chiamato start. Ricordati di aggiungerla tra le variabili

- ora, se vuoi plottare il tuo indicatore a partire da una barra a tua scelta non devi far altro che andare sopra la barra col mirino, vedere qual e' in corrispondenza di tale barra il valore di contabarre, e inserire tale valore per la variabile start. Esempio

1264369608fiat2.png


A onor del vero non sono sicuro che il codice sia giusto, visto che per alcuni grafici mi esce l'errore "ciclo infinito" e l'indicatore non viene plottato. Non so se sia un limite di calcolo di PRT. Piu' indietro nel 3d mi sembra che Casguzze parlando con Tetsuo avesse riscontrato lo stesso problema, non so se poi sia stata trovata la soluzione. Per ora io questo sono stato capace di fare, per il resto si vedra' :)
Ciao Meusault:)
Ho provato il tuo codice modificato. Un passettino avanti è stato fatto...complimenti:up:. Non è ancora ciò che voglio...vorrei avere la possibilità di estendere il pentagramma ad una serie di prezzi di 5 giorni almeno.
Grazie all'infinito...Paki:)
 

meursault

lo straniero
Ciao Meusault:)
Ho provato il tuo codice modificato. Un passettino avanti è stato fatto...complimenti:up:. Non è ancora ciò che voglio...vorrei avere la possibilità di estendere il pentagramma ad una serie di prezzi di 5 giorni almeno.
Grazie all'infinito...Paki:)

Ciao, guarda il codice che ho postato dopo, msg 103, dovrebbe funzionare
 

fracicone

Nuovo forumer
Grande mersault

Ciao Enzo
Alla fine credo di avercela fatta, mi fa fatto veramente faticare .
Ecco il codice

Codice:
if barindex < start then
    ww = undefined
else
    pri=medianprice
    p=p+1
    if barindex = start then
        p=1
    endif
 
    sum=summation[p](volume)
    sump=summation[p](pri*volume)
    ww=sump/sum
 
    tot = (1/sum)*(summation[p](SQUARE(pri)*volume)) - SQUARE(ww)
 
    eca =SQRT(tot)
 
endif
 
return ww,ww+eca,ww-eca,ww+2*eca,ww-2*eca,ww+3*eca,ww-3*eca

Al solito variabile intera start >=0 dal quale cominciare il calcolo.
Non fatelo girare pero' con grafici con molte barre e valori di start molto piccoli perche' ci puo' mettere parecchio a effettuare i calcoli (ho provato con un grafico di 60000 barre e ci ha messo quasi 5 minuti).

Ciao.
CIAO GRANDE MEURSAULT,

E' proprio cìò che cercavo...complimenti:up:...sei un grande...NON AVEVO DUBBI:)
 

meursault

lo straniero
'

Ricorrenza di un evento.

Non so se avete notato che su hk-lisse, il noto sito francese, compaiono talora dei grafici relativi alla distribuzione di un determinato evento.

Es. : Le blog de hk_lisse

o ancora meglio Le blog de hk_lisse (RSI pdf generator)


Qualcuno di voi ha un'idea come realizzare la stessa cosa ?

Calcolare la frequenza di un determinato evento è facile.
Più complicato un grafico stile curva di gauss che rappresenti la distribuzione delle frequenze.

HK-Lisse riesce ad utilizzare anche l'asse verticale (quello del tempo per intenderci).

Ciao Black Swan :).
Allora, ho provato a buttar giu' un esempio ma non sono sicuro se e' questo che volevi ...

Prendo un grafico, nell'esempio il dax indice, tf 1-minuto, 15809 barre. Voglio plottare la distribuzione delle frequenze dell'rsi.

Prima limitazione: plottero' la distrubuzione nelle ultime 101 barre del grafico, le frequenze quindi le calcolo "solo" per le prime 15708 barre. Probabilmente si puo' calcolare anche per le ultime usando proprio quel codice di traslazione di cui si parlava stamattina ma adesso non ho voglia di complicare le cose.

1264453712xetradaxpf.png


Nell'ultima finestra c'e' l'indicatore (chiamiamolo cosi')
return barindex
che mi conta le barre.

Per calcolare le frequenze avevo pensato ad un semplice for ... next e invece mi da errore di ciclo infinito, ormai sta diventando la mia bestia nera sto errore :)

Prendo allora una strada piu' lunga. Definisco un indicatore di supporto che chiamo rsi freq

Codice:
if round(RSI[14](close)) = n  then
    ind = ind+1
endif

return ind
Contiene la variabile intera n>=0

Fatto questo ecco il codice della distribuzione delle frequenze

Codice:
if barindex < numbarre - 100 then
    ind = undefined
else
    ind = CALL "rsi freq"[numbarre - barindex]
endif

return ind
Contiene la variabile numbarre, a cui bisogna assegnare il valore 15809, cioe' l'ultimo valore di barindex (per quello ce l'avevo plottato sul grafico).

Attenzione che ci mette un po' per fare i calcoli, sembra quasi piantarsi ma poi ce la fa.
Ora cancello il grafico del prezzo e del barindex ed ecco il risultato

1264454018finale.png


Sotto ho anche aggiunto un contatore che mi indica i valori da 0 a 100.

Codice:
if barindex < numbarre - 100 then
    ind = undefined
else
    ind = -numbarre + barindex +100
endif

return ind
solita variabile numbarre.
Cosi' se voglio sapere qual e' la frequenza di un certo valore, ci vado sopra col mirino ed e' fatta.

Fammi sapere se era questo che volevi, altrimenti ne riparliamo con calma.
 

tetsuo

Guest
Leggo solo adesso questo post e mi congratulo con te Meursault !

Saluto te, il simpatico Tetsuo che non sento da secoliiiiiiiiiiiiiii :) e tutti gli appassionati di programmazione prt.

Ciao

Ciao Grandeeee

felice di rileggerti......ti trovo invecchiato a giudacare dal tuo avatare :lol::lol:

Sei ripassato a vedere come si sviluppa il "tuo" 3d ;)

Visto, lungo la strada ho incontrato giovani e ferventi menti che si sono unite al nostro progetto secretissimo di conquista totale dei mercati con il piccolo attrezzo dell'isola di Java. :eek: ma siccome è un piano secreto ancora non cielo dico a loro


P.S. mentre io perdevo tempo a scrivere stupidate Meurs ha risolto il tuo probl...grande
 

Users who are viewing this thread

Alto