Vacche magre, code grasse...

  • ANNUNCIO: Segui le NewsLetter di Borse.it.

    Al via la Newsletter di Borse, con tutte le notizie quotidiane sui mercati finanziari. Iscriviti per rimanere aggiornato con le ultime News di settore, quotazioni e titoli del momento.
    Per iscriverti visita questo link.

maurice

Buona vita a tutti !
Registrato
2/6/01
Messaggi
489
Punti reazioni
124
Prendo lo spunto "biblico" e scrivo un indicatore per lanciare una pietra sulle "code" di distribuzione; mi auguro che chi ha qualcosa da condividere, un po' di tempo e qualche indicazione da dare si impegni in funzione educativa e senza eccessiva polarizzazione per evitare di trasformare la discussione in ring.

Il Meta non possiede un gran linguaggio di scripting, ma per chi viene dall'assembler i vincoli dichiarativi non sono insormontabili, e con un po' di pazienza e l'aiuto di chi è preparato sull'argomento specifico si può tentare di costruire un contributo Open Source-FOL con un minimo di valore statistico. Se necessario potremo preparare anche una DLL esterna con funzioni nuove, anche se non credo sarà necessario.

Questo è il primo indicatore (che spero serva ad accendere la discussione), scritto per tracciare con Metastock una distribuzione empirica:

{------------------------------------------}
{****** (c) Maurizio Neri - 03/2004 ******}
{Distribuzione Empirica per Metastock V 1.0}
{------------------------------------------}

{calcola dt corrente,minimo,massimo}
Ct:=Cum(1); Rc:=ROC(C,1,%);
Kh:=ValueWhen(1,HighestBars(Rc)=0,Rc);
Kl:=ValueWhen(1,LowestBars(Rc)=0,Rc);

{Loop di conteggio ed assegnazione valori dt+}
B:=Kh/7; X:=1;
S1:=100*Cum(If(Rc>=(Kh-X*B),1,0))/Ct;
X:=X+1;
S2:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S3:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S4:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S5:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S6:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S7:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
{Loop di conteggio ed assegnazione valori dt-}
B:=Abs(Kl/7); X:=1;
S8:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S9:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S10:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S11:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S12:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S13:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S14:=100*Cum(If(Rc<(0-(X-1)*B),1,0))/Ct;

{Visualizzazione risultati su ultime 14 barre }
X:=14-(Ct-ValueWhen(1,Ref(Ct,-1)+14=LastValue(Ct),Ct));
If(X=1,S1,If(X=2,S2,If(X=3,S3,If(X=4,S4,If(X=5,S5,If(X=6,S6,If(X=7,S7,0)))))));
If(X=8,S8,If(X=9,S9,If(X=10,S10,If(X=11,S11,If(X=12,S12,If(X=13,S13,If(X=14,S14,0)))))));
Kh;Kl;Kh/7;Kl/7


Oltre ai valori delle variazioni percentuali giornaliere campionati in 14 bin (il limite è di 20 variabili ma se serve si aggira facilmente) si espone la massima escursione sia positiva che negativa ed il valore del bin per le variazioni positive e negative.


Quali grandezze potrebbe essere campionate (Volumi, MFI etc) e perchè?
 

Allegati

  • alleanza.jpg
    alleanza.jpg
    40,3 KB · Visite: 1.187
Sembra la classica campana della distribuzione di Poisson(o Gauss non ricordo bene ).

Bella da vedere, e allora?
Come la leggi?
Quali indicazioni ne trai?:mmmm:
 
Ultima modifica:
Re: Re: Vacche magre, code grasse...

Scritto da irab
Sembra la classica campana della distribuzione di Poisson.

Bella da vedere, e allora?
Come la leggi?
Quali indicazioni ne trai?:mmmm:


credo tu sappia cosa sia il market profile

maurice è su quella via

io sto sclerando con le funzioni modali e la distribuzione semplice

con excel

quindi è un altro paio di maniche ci vuole piu' lavoro e tempo
 
Re: Re: Re: Vacche magre, code grasse...

Scritto da Grandu
credo tu sappia cosa sia il market profile

maurice è su quella via

io sto sclerando con le funzioni modali e la distribuzione semplice

con excel

quindi è un altro paio di maniche ci vuole piu' lavoro e tempo

Ti vuoi fare una bella risata insieme con me, ebbene non so nulla di market profile.:D

Vuio rendere edotto il popolo e dirci qualcosa di più in proposito.

Ciao.:rolleyes:
 
Re: Re: Re: Re: Vacche magre, code grasse...

Scritto da irab
Ti vuoi fare una bella risata insieme con me, ebbene non so nulla di market profile.:D

Vuio rendere edotto il popolo e dirci qualcosa di più in proposito.

Ciao.:rolleyes:

e che ti erudisco a fare il popolo che sono ancora agli inizi

non sono all'altezza di questo compito

mi dispiace

ma maurice ed altri lo sono

sono piu' preparati di me

cia'
 
Ciao a tutti,
ecco alcuni grafici con dati ad un anno che realizzo in automatico con excel. Non è proprio market profil ma è molto simile. Nella costruzione del grafico tengo conto anche dei volumi attraverso una ponderazione. Il periodo di analisi è settabile a piacere e si possono fare grafici a candele.
Il foglio di calcolo è troppo pesante per essere allegato, per cui posso mettere solo i risultati grafici.

Saluti
 

Allegati

  • mp.xls
    71 KB · Visite: 193
Maurice non ho ben capito la funzione del tuo indicatore, pero' permettimi di dirti che a livello di programmazione sei in gamba.

Ciao.
 
non sono solo lungo la strada .....

concentratevi sulla leptocurtosi, che non é una malattia che fa perdere i capelli ;) e il cui utilizzo in modelli di analisi quantitativa deve essere necessariamente controintuitivo
 
Scritto da roberto
non sono solo lungo la strada .....

concentratevi sulla leptocurtosi, che non é una malattia che fa perdere i capelli ;) e il cui utilizzo in modelli di analisi quantitativa deve essere necessariamente controintuitivo

e si !!!

e chi sono io , babbo natale!!!

quando arrivero'

a capire il sistema ottimale di integrare curtosi

per capire le punte di distribuzione e i momenti di neutralita'

mi danno il premio nobel

Roberto io non gliela fo

ci provo ma non gliela fo!!!

dai un aiuto un' ispirazione

una aspirina (curtosi fa venire il mal di testa)

graffo STM volumi (sempre li vado a parare)


cia'
 

Allegati

  • stm.png
    stm.png
    13,5 KB · Visite: 955
Extreme values of tails

Da qualche parte bisogna pur iniziare e prima di arrivare al "tosto" , questo potrebbe essere il primo goal comune (ma solo se vi interessa e "chi sa parla") ;)
Usando Hill non è impossibile costruire un indicatore di rischio/opportunità
Da qui, attraverso Kelly, si potrebbe arrivare a stimare il size ottimale...
E qui i puristi salteranno sulla sedia !!
Ma vi interessa o no?!

Grazie al mio amico Jose allego il codice corretto e semplificato alla versione 1.1:

======================
ROC - bar distribution
======================
---8<-----------------

{ ****** (c) Maurizio Neri - 03/2004 ****** }
{ maurizio.neri@ngi.it }
{ Distribuzione Empirica per Metastock v1.1 }

pds:=Input("ROC periods",1,252,1);

{ calculate current dt, min, max }
Rc:=ROC(C,pds,%);
Kh:=Highest(Rc);
Kl:=Lowest(Rc);

{ Loop di conteggio ed assegnazione valori dt+ }
B:=Kh/7;
X:=1;
S1:=100*Cum(Rc>=(Kh-X*B))/Cum(1);
X:=X+1;
S2:=100*Cum(Rc>=(Kh-X*B) AND Rc<(Kh-(X-1)*B))/Cum(1);
X:=X+1;
S3:=100*Cum(Rc>=(Kh-X*B) AND Rc<(Kh-(X-1)*B))/Cum(1);
X:=X+1;
S4:=100*Cum(Rc>=(Kh-X*B) AND Rc<(Kh-(X-1)*B))/Cum(1);
X:=X+1;
S5:=100*Cum(Rc>=(Kh-X*B) AND Rc<(Kh-(X-1)*B))/Cum(1);
X:=X+1;
S6:=100*Cum(Rc>=(Kh-X*B) AND Rc<(Kh-(X-1)*B))/Cum(1);
X:=X+1;
S7:=100*Cum(Rc>=(Kh-X*B) AND Rc<(Kh-(X-1)*B))/Cum(1);

{ Loop di conteggio ed assegnazione valori dt- }
B:=Abs(Kl/7);
X:=1;
S8:=100*Cum(Rc>=(0-X*B) AND Rc<(0-(X-1)*B))/Cum(1);
X:=X+1;
S9:=100*Cum(Rc>=(0-X*B) AND Rc<(0-(X-1)*B))/Cum(1);
X:=X+1;
S10:=100*Cum(Rc>=(0-X*B) AND Rc<(0-(X-1)*B))/Cum(1);
X:=X+1;
S11:=100*Cum(Rc>=(0-X*B) AND Rc<(0-(X-1)*B))/Cum(1);
X:=X+1;
S12:=100*Cum(Rc>=(0-X*B) AND Rc<(0-(X-1)*B))/Cum(1);
X:=X+1;
S13:=100*Cum(Rc>=(0-X*B) AND Rc<(0-(X-1)*B))/Cum(1);
X:=X+1;
S14:=100*Cum(Rc<(0-(X-1)*B))/Cum(1);

{ Restrict plots to last 14 bars }
X:=14-(Cum(1)-ValueWhen(1,Ref(Cum(1),-1)+14=LastValue(Cum(1)),Cum(1)));

If(X=1,S1, If(X=2,S2, If(X=3,S3, If(X=4,S4,
If(X=5,S5, If(X=6,S6, If(X=7,S7,0)))))));

If(X=8,S8, If(X=9,S9, If(X=10,S10, If(X=11,S11,
If(X=12,S12, If(X=13,S13, If(X=14,S14,0)))))));

Kh;Kl;Kh/7;Kl/7

---8<-----------------



La traduzione per AmiBroker è immediata, se qualcuno vuole procedere.

Allego in coda una "vacca dalla coda grassa", sullo short side.
 

Allegati

  • stm.jpg
    stm.jpg
    46,4 KB · Visite: 737
Scritto da augluc
Ciao a tutti,
ecco alcuni grafici con dati ad un anno che realizzo in automatico con excel. Non è proprio market profil ma è molto simile. Nella costruzione del grafico tengo conto anche dei volumi attraverso una ponderazione. Il periodo di analisi è settabile a piacere e si possono fare grafici a candele.
Il foglio di calcolo è troppo pesante per essere allegato, per cui posso mettere solo i risultati grafici.

Saluti


Mi sembra un ottimo lavoro, ma tutto il thread è interessante.

Sotto c'è qualcosa di equivalente in linguaggio Metastock.


{Volume By Price 10-C}
{© 2003 Roy Larsen}
{rlarsen@man.quik.co.nz}
D:=Input("Start Day / Month /",101,3112,1510);
Y:=Input( "Year",1990,2003,2002);
X1:=Input("End Day / Month /",101,3112,103);
X3:=Input("Year",1990,2003,2003);
M:=Int(.01+Frac(D/100)*100); D:=Int(D/100);
X2:=Int(.001+Frac(X1/100)*100); X1:=Int(X1/100);
D:=(DayOfMonth()>=D AND Month()=M AND
Year()=Y) OR Year()>Y OR (Year()=Y AND Month()>M);
D:=BarsSince(D AND Alert(D=0,2));
D:=LastValue(If(D=0,LastValue(Cum(1)-1),D));
N:=Input("Scaling % in Box, 0=None",0,100,50);
M:=(DayOfMonth()>=X1 AND Month()=X2 AND
Year()=X3) OR Year()>X3 OR (Year()=X3 AND Month()>X2);
M:=BarsSince(M AND Alert(M=0,2));
M:=LastValue(If(M=0,LastValue(Cum(1)-1),M));
F:=LastValue(Cum(1));
A:=(F-D)<Cum(1) AND (F-M)>=Cum(1);
B:=LastValue(Cum(If(A,V,0)));
Q:=LastValue(HighestSince(1,Ref(A=0,-M),Ref(C,-M)));
R:=LastValue(LowestSince(1,Ref(A=0,-M),Ref(C,-M)));
I:=(Q-R)/10;
X1:=LastValue(Cum(If(C<(R+I) AND
A,V,0))/B);
X2:=LastValue(Cum(If(C>=(R+I) AND
C<(R+I*2) AND A,V,0))/B);
X3:=LastValue(Cum(If(C>=(R+I*2) AND
C<(R+I*3) AND A,V,0))/B);
X4:=LastValue(Cum(If(C>=(R+I*3) AND
C<(R+I*4) AND A,V,0))/B);
X5:=LastValue(Cum(If(C>=(R+I*4) AND
C<(R+I*5) AND A,V,0))/B);
X6:=LastValue(Cum(If(C>=(R+I*5) AND
C<(R+I*6) AND A,V,0))/B);
X7:=LastValue(Cum(If(C>=(R+I*6) AND
C<(R+I*7) AND A,V,0))/B);
X8:=LastValue(Cum(If(C>=(R+I*7) AND
C<(R+I*8) AND A,V,0))/B);
X9:=LastValue(Cum(If(C>=(R+I*8) AND
C<(R+I*9) AND A,V,0))/B);
X0:=LastValue(Cum(If(C>=(R+I*9) AND
A,V,0))/B);
B:=Max(Max(X1,X2),Max(X3,X4));
B:=Max(Max(B,X5),Max(X6,X7));
B:=Max(Max(B,X8),Max(X9,X0));
B:=If(N=0,1,B*100)/If(N=0,1,N);
Ref(Ref(ValueWhen(1,(F-D)<=Cum(1),Q),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X0*(D-M)/B)=
Cum(1)+M,R+I*9.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X9*(D-M)/B)=
Cum(1)+M,R+I*8.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X8*(D-M)/B)=
Cum(1)+M,R+I*7.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X7*(D-M)/B)=
Cum(1)+M,R+I*6.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X6*(D-M)/B)=
Cum(1)+M,R+I*5.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X5*(D-M)/B)=
Cum(1)+M,R+I*4.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X4*(D-M)/B)=
Cum(1)+M,R+I*3.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X3*(D-M)/B)=
Cum(1)+M,R+I*2.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X2*(D-M)/B)=
Cum(1)+M,R+I*1.5),-M),M);
Ref(Ref(ValueWhen(1,F-Int(X1*(D-M)/B)=
Cum(1)+M,R+I*0.5),-M),M);
Ref(Ref(ValueWhen(1,(F-D)<=Cum(1) AND
(F-D)>Cum(1)-2,If(A,R,Q)),-M),M);
 
Scritto da maurice

{------------------------------------------}
{****** (c) Maurizio Neri - 03/2004 ******}
{Distribuzione Empirica per Metastock V 1.0}
{------------------------------------------}

{calcola dt corrente,minimo,massimo}
Ct:=Cum(1); Rc:=ROC(C,1,%);
Kh:=ValueWhen(1,HighestBars(Rc)=0,Rc);
Kl:=ValueWhen(1,LowestBars(Rc)=0,Rc);

{Loop di conteggio ed assegnazione valori dt+}
B:=Kh/7; X:=1;
S1:=100*Cum(If(Rc>=(Kh-X*B),1,0))/Ct;
X:=X+1;
S2:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S3:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S4:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S5:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S6:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
X:=X+1;
S7:=100*Cum(If(Rc>=(Kh-X*B)AND Rc<(Kh-(X-1)*B),1,0))/Ct;
{Loop di conteggio ed assegnazione valori dt-}
B:=Abs(Kl/7); X:=1;
S8:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S9:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S10:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S11:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S12:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S13:=100*Cum(If(Rc>=(0-X*B)AND Rc<(0-(X-1)*B),1,0))/Ct;
X:=X+1;
S14:=100*Cum(If(Rc<(0-(X-1)*B),1,0))/Ct;

{Visualizzazione risultati su ultime 14 barre }
X:=14-(Ct-ValueWhen(1,Ref(Ct,-1)+14=LastValue(Ct),Ct));
If(X=1,S1,If(X=2,S2,If(X=3,S3,If(X=4,S4,If(X=5,S5,If(X=6,S6,If(X=7,S7,0)))))));
If(X=8,S8,If(X=9,S9,If(X=10,S10,If(X=11,S11,If(X=12,S12,If(X=13,S13,If(X=14,S14,0)))))));
Kh;Kl;Kh/7;Kl/7




e' possbile tradurlo in codice per easy lenguage?

grazie e buon lavoro
 
Salve,
un piccolo contributo nello studio dei volumi, verso la media statistica, ma senza fretta e senza scomodare Wealth Lab...

La carta sotto allegata è relativa a 250 barre, a titolo di esempio.

Ecco il codice per Metastock (facile da passare in AmiBroker, con Easy Language ho perso la mano da anni...


{ ****** (c) Maurizio Neri - 04/2004 ****** }
{ maurizio.neri@****** }
{ Empirical Volume Average for Metastock v1.0}



plot:=Input("Plot type: Vol Distibution[1], VolAvg[2]",1,2,2);

{ Assign Bins Size }
B:=Highest(V)/15;
Nb:=Cum(1);

{ Loop to measure empirical distribution}
X:=1;
S1:=100*Cum(V< X*B)/Nb;
X:=X+1;
S2:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S3:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S4:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S5:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S6:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S7:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S8:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S9:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S10:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S11:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S12:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S13:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S14:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S15:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;

{ Restrict evaluation & plots to last 15 bars }
X:=(1+Nb-ValueWhen(1,Ref(Nb,-1)+15=LastValue(Nb),Nb));

{ Assign at each of last 15 bar a "bin" value}
K:=If(X=1,S1, If(X=2,S2, If(X=3,S3, If(X=4,S4,
If(X=5,S5, If(X=6,S6, If(X=7,S7,
If(X=8,S8, If(X=9,S9, If(X=10,S10, If(X=11,S11,
If(X=12,S12, If(X=13,S13, If(X=14,S14, If(X=15,S15, 0)))))))))))))));

{Select plot type and go}
If(Plot=1,K, {Volume Distribution}
ValueWhen(1,K=Highest(K),(X+.5)*B){VolAvg Value=>Line});
If(Plot=1,0,If(X>0,X*B,0){Bin slot=> Dotted})


Comunque non insisterò oltre, è evidente che l'argomento non ha divulgatori pazienti e disponibili (ma solo gelosi e sospettosi sviluppatori... )
;^)

maurice
 

Allegati

  • volavg.gif
    volavg.gif
    12,4 KB · Visite: 427
maurice

io di metas easy ami c++ sono un ignorante totale

mi dispiace

l'argomento è molto interessante per me

ma io mastico un poco di excel e basta

la cosa è molto piu' macchinosa e difficile a livello di procedimento

nel ricavare le formule

mettere poi su grafico è un mazzo e certe cose non sono proprio

possibili

il mezzo è primitivo

non posso cavare sangue da una rapa

ma questo so usare e basta

se hai pazienza uppero' quando arrivero a risulati presentabili

ciao
 
Scritto da maurice


Comunque non insisterò oltre, è evidente che l'argomento non ha divulgatori pazienti .........
maurice

mi sento di darti ragione: ma c'è un motivo preciso, non si tratta tanto di "egoismo" o solo di questo, vedi quello che hai presentato, pur essendo un'interessantissimo filone... semplicemente, non è un argomento per piattaforme preconfezionate, perchè quelli che le usano fino ad un certo punto capiscono o si sforzano di capire quello usano, perchè queste sono un pò l'ipermecato degli oscillatori.

Se invece avessi affrontato l'argomento con strumenti appena più strutturati dal punto di vista statistico-informatico, ad esempio con un preambolo teorico, seguito, da degli esempi precalcolati su foglietto excel, per passare poi alla più impegnativa proposta di codice sviluppato in C++ o VB.NET o VB6.0, sarebbe stato più "pagante" e avresti sicuramente attratto l'attenzione di alcuni "professori" presenti sul FOL. (questi ultimi comunque non avrebbero aiutato più di tanto...).
 
Ultima modifica:
A Scalpo:

Grazie per l'interessante appunto, a cui mi permetto di replicare, spero con garbo e senza intento polemico.
La scelta di "buttare li" un indicatore non preconfezionato per software a larga diffusione è stata precisa e intenzionale.
Nelle intenzioni sollevare quache dubbio sul fatto che:

A) il limite non pare essere nello strumento adottato per lo studio (che dovrebbe essere) analitico ma nell'approccio viziato che vede replicati all'infinito in salse pseudo-diverse gli stessi triti concetti (espressi in altrettanti abusati indicatori da supermercato) ; con un po' di fantasia a Metastock gli fai fare anche il caffe', ma bisogna essere consapevoli degli obbiettivi e padroni delle tecniche.
C'e' a mio avviso troppa attenzione al mezzo (con l'uso di strumenti più blasonati dal punto di vista statistico/informatico) e troppo poca cura nell'approccio, che non appare produttivo nell'esclusivo rigore statistico.

B) gli strumenti di "indagine" a disposizione di chi fa uso dei programmi di analisi tecnica a larga diffusione sono forse da considerarsi non validi sul piano statistico; la preparazione da parte dei tanti partecipanti certo non manca, qui come in altri forum più o meno blasonati, ma pur avendo in altra discussione seminato dubbi sull'approccio non ho visto reazioni, non si è messo in dubbio il valore descrittivo (e non predittivo) delle tecniche adottate.

Non è mia intenzione mettermi in cattedra, non ho levatura tecnica, tempo e carisma per farlo; non vorrei neanche rompere le granitiche certezze di chi, con ardore, sta insaponandosi la corda per l'ennesimo atto - (e sopratutto, in questo, non voglio rubare la scena a Lester..)

Guardatevi questo Link:

http://www.purebytes.com/archives/metastock/2004/msg00922.html

e mi raccomando seguite fino in fondo il grande Jose...

Questo dovrebbe dare una misura dello stato dell'arte e degli artisti.


Per scrupolo aggiorno il codice dell'indicatore postato ieri, rivisto e corretto.

{ ****** (c) Maurizio Neri - 04/2004 ****** }
{ maurizio.neri@****** }
{ Empirical Volume Average for Metastock v1.1}

{ ****** (c) Maurizio Neri - 04/2004 ****** }
{ maurizio.neri@****** }
{ Empirical Volume Average for Metastock v1.1}



plot:=Input("Plot type: Vol Distibution[1], VolAvg[2]",1,2,2);

{ Assign Bins Sizing}
B:=LastValue(Highest(V)/15);
Nb:=Cum(1);

{ Loop to measure empirical distribution}
X:=0;
S1:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S2:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S3:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S4:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S5:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S6:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S7:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S8:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S9:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S10:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S11:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S12:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S13:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S14:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;
X:=X+1;
S15:=100*Cum(V>=X*B AND V<(X+1)*B)/Nb;

{ Restrict evaluation & plots to last 15 bars }
X:=(1+Nb-ValueWhen(1,Ref(Nb,-1)+15=LastValue(Nb),Nb));

{ Assign at each of last 15 bar a "bin" value}
K:=If(X=1,S1, If(X=2,S2, If(X=3,S3, If(X=4,S4,
If(X=5,S5, If(X=6,S6, If(X=7,S7,
If(X=8,S8, If(X=9,S9, If(X=10,S10, If(X=11,S11,
If(X=12,S12, If(X=13,S13, If(X=14,S14, If(X=15,S15, 0)))))))))))))));

{Select plot type and go}
If(Plot=1,K, {Volume Distribution}
ValueWhen(1,K=Highest(K),(X-.5)*B){VolRange Avg=>Line});
If(Plot=2,If(X>0,X*B,0){Bin slot=> Dotted},0);

{Show Mean value of Volume}
If(Plot=2,Cum(V)/Nb,0)



Nella carta allegata la spiegazione di quanto aggiunto.

Ciao,
maurizio
 

Allegati

  • volavg1.gif
    volavg1.gif
    13,2 KB · Visite: 358
Scritto da maurice
ma bisogna essere consapevoli degli obbiettivi e padroni delle tecniche.

è proprio questo il nocciolo: le piattaforme preconfezionate non ti fanno ragionare!! Mentre se ti fai il codice tu dalla A alla Z è chiaro che usi la materia grigia. E poi sono daccordo con Roberto quando dice che chi non capisce il proprio TS, non potrà fruttargli granchè, perchè non è nelle condizioni di dargli fiducia (e come fai a dare fiducia in qualcosa che non conosci intimimamente?).

Cmq, se sei in grado di tradurre il tuo codice metas in linguaggio formale standard, mi sento di dare il mio modesto contributo, dato che negli ultimi 6 mesi mi sono proprio interessato alle code.
Ora sono impegnado a tradurre la versione laboratorio in VB.NET, quando avro terminato questa fase cercherò di capire come le autocorrelazioni, il processo ANOVA, i Barlett Test, possano essermi d'aiuto.

Per fermarci alle code della normale standard, ti posso solo dire che prese da sole offrono risultati incoraggianti, ma ci vuole qualcos'altro per capire quando si è in una particolare rara condizione, individuata la quale rende il TS un vero fulmine di guerra.
 
Indietro