Copula per principianti

(tiro per la giacca PAT vsto l'interesse per MPS e impatto della stessa..l'argomento mi sembra calzante..)
 
wow rileggere questa discussione mi riporta alla mia tesi di laurea sul pricing di basket default swaps con le copula...bei tempi
 
Dunque, il codice non è immediatamente traducibile perché fa riferimento a funzioni esterne, probabilmente sarà parte di un package più ampio.

Mi sto leggendo i paperi, davvero ben scritti, e poi vedo un po'.

A dopo.
 
Allora, la prima cosa che ho fatto è

prendere 5 serie di mio interesse:

Unicredito

Banca MontePaschi

Banca Intesa

Banco Popolare

Mediobanca

Eliminare le osservazioni (sono su tf settimanale) che hanno visto un rendimento positivo in almeno una di queste serie.

Impostare una soglia

scrivere un paio di algo che:

mi dicano quando tutte e 5 hanno chiuso sotto tale soglia

mi dicano quale delle 5 serie ha espresso il valore più alto (quindi ha perso meno..) per essere sicuro di comprendere le rimanenti 4

facciano la media di questo "valore più alto" in base allo storico

calcolino le probabilità di ottenere una perdita < della soglia impostata quando tutte le serie hanno chiuso negative

Ovvero , ipotizzando una soglia di -6%, avrò il 20% di probabilità (mi sono messo come inizio storico un anno prima del fallimento Lehman) che almeno tale soglia venga superata se chiudono tutte e 5 negative con una "attesa" di perdita media pari a -9%.

E la parte facile e primitiva è fatta.

Ora devo ragionare sul resto (ma mo' vado in palestra..):)

Grazie Paolo per l'impegno..grazie sul serio_OK!
 

Allegati

  • CP.jpg
    CP.jpg
    99,2 KB · Visite: 29
... Ora devo ragionare sul resto ....

se sei in grado di programmarlo (erlang/c++) posso provare a riciclare e modificare un diagramma genetico che ho creato per altri scopi qualche giorno fa, in modo da permettere al modello di ottimizzarsi in base a un numero di cicli (processi) definito a priori con ingresso di dati dinamico (real time).

questo eviterebbe di inserire input dati storico ogni volta. si aggiorna in automatico con il passare dei giorni, diciamo correlazioni dinamiche sui criteri scelti.. potrebbe essere utile?
 
Ultima modifica:
Dunque, il codice non è immediatamente traducibile perché fa riferimento a funzioni esterne, probabilmente sarà parte di un package più ampio.

Mi sto leggendo i paperi, davvero ben scritti, e poi vedo un po'.

A dopo.

Non è la via.....

ho scaricato i codici delle altre funzioni ma a loro volta si allacciano ad altre librerie. A parte che ci vorrebbe un esperto di mathlab, ad occhio alcuni sembrano codici che non conviene riscrivere....
 
Allora..se riesco oggi allego quello che ritengo sia un "Copula Based VaR" per principianti, ipotizzando il basket bancario cui sopra e facilmente trasportabile in qualsiasi linguaggio.



Poi mi date le vostre impressioni (alle quali tengo molto)

:)
 
Allora, Paolino e Cren e chi vuole datemi una mano.

Vi spiego cosa ho fatto commentando il listato:


Lb:=Input("LB:",-100,100,-1);-lb; identifico una soglia di perdita


sec:=Security("bmps.mi",C);
RSEC:=100*Log(SEC/Ref(SEC,-1));


sec:=Security("bp.mi",C);
RSEC1:=100*Log(SEC/Ref(SEC,-1));


sec:=Security("isp.mi",C);
RSEC2:=100*Log(SEC/Ref(SEC,-1));



sec:=Security("ucg.mi",C);
RSEC3:=100*Log(SEC/Ref(SEC,-1));

R:=100*Log(C/Ref(C,-1));----questa è Mediobanca (per tutti ho calcolato il logrendimenti sui valori di chiusura)


DT:=If(RSEC<=LB AND RSEC1<=LB AND RSEC2<=LB AND RSEC3<=LB AND R<=LB,-1,0); qui vado a pescare quando hanno chiuso tutte e 5 sotto la soglia (1=sì--0=no)


x1:=R*DT;
x2:=RSEC*DT;
x3:=RSEC1*DT;
x4:=RSEC2*DT;
x5:=RSEC3*DT;

lm:=If(x1<=x2 AND x1<=x3 AND x1<=x4 AND x1<=x5,x1,If(x2<=x1 AND x2<=x3 AND x2<=x4 AND x2<=x5,x2,If(x3<=x1 AND x3<=x2 AND x3<=x4 AND x3<=x5,x3,If(x4<=x1 AND x4<=x2 AND x4<=x3 AND x4<=x5,x4,x5))));lm; Qui mi vado a pescare quale tra le 5 ha perso meno, certo di ottenere un valore che posso quantificare come perdita minima valide per l'insieme


DT1:=If(RSEC<0 AND RSEC1<0 AND RSEC2<0 AND RSEC3<0 AND R<0,-1,0); qui vado a contare i giorni di chiusura negativa per tutte e 5..che sarà il mi campione per stimare la probabilità (arbitrario)



lavg:=Cum(lm)/Cum(-dt);lavg; questa è la media espressa da i soggetti che hanno perso "meno" quando tutte e 5 hanno perso più della soglia indicata

Cum(-dt)/Cum(-DT1)*100;
questa è la probabilità stimata sul campine composto da osservazioni con chiusura negativa.


La media (lavg) è sempre superiore alla soglia e la utilizzerò per comporre il VaR

vorrei togliere gli "zero" per usare una media pesata maggiormente rispetto alle ultime osservazioni..ma non mi riesce se non "a mano.."

ripeterò lo stesso procedimento utilizzando i quantili espressi dalla distribuzione di Cornsh Fisher così calcolati

r:=solito rendimento logaritmico

alpha= solito fattore di decadimento (0.94-0.97)

m2:=PREV*(alpha)+((1-alpha)*Power(r-avgrend,2));

m3:=PREV*(alpha)+((1-alpha)*Power(r-avgrend,3));

m4:=PREV*(alpha)+((1-alpha)*Power(r-avgrend,4));

sk:=m3/(m2*Sqr(m2));
ks:=(m4/Power(m2,2))-3;


z:=Input("Z:",-3.3,0,-2.326);


quantile:=Abs(z+(((Power(z,2)-1)*sk)/6)+(((Power(z,3)-3*z)*ks)/24)-(((2*Power(z,3)-5*z)*Power(sk,2))/36)); ne devo tirare fuori uno per ogni "banca" in questo caso...



o

usare una misura di similarità per fare una sorta di clusterizzazione gerarchica.

Moltiplico e dovrei avere una misura che raccoglie bene o male le stesse informazioni di una stima tramite copula (che qualcuno..vado a memoria e posso sbagliare) ha paragonato ad una aggregazione di Low Partial Moments (che vediamo nel primo listato) se utilizzata per identificare delle perdite.

Ovvero una misura che indica al 99% quanto al massimo posso perdere con una % di probabilità congiunta.

Che dite?
 
...dovrei avere una misura che raccoglie bene o male le stesse informazioni di una stima tramite copula (che qualcuno..vado a memoria e posso sbagliare) ha paragonato ad una aggregazione di Low Partial Moments (che vediamo nel primo listato) se utilizzata per identificare delle perdite.

Ovvero una misura che indica al 99% quanto al massimo posso perdere con una % di probabilità congiunta.
Grossomodo il paragone con i LPM mi sembra reggere, e il primo listato se non sbaglio è quello già visto a inizio discussione per il caso della copula empirica bivariata ma con più titoli, quindi corretto.

Non mi sono addentrato nella selva di if(...).

Inoltre la poca letteratura che ho visionato sulla EVT mi suggerisce che una misura come il VaR modificato che proponi nel seguito andrebbe usata sulle osservazioni che eccedono una certa soglia u (quella che nel codice è la variabile LB).
 
Grazie ciccio del controllo.

Quando risalgo dalla pausa palestra provo a buttare giù l'algo complessivo e vediamo che viene fuori.

;)

se riuscissi ad eliminare sti caz.zo di "zero" potrei usare una media diversa dalla cumulata..ma non è che sia sbaglaita tutto sommato...è proprio "na media"..:D

Vabbè, ci penso..
 
se riuscissi ad eliminare sti caz.zo di "zero" potrei usare una media diversa dalla cumulata..ma non è che sia sbaglaita tutto sommato...è proprio "na media"..:D

prendimi con le molle e spero tu intuisca da solo perchè non so scriverti come fare:)

meno preciso aggiungi lo "0" come media dei valori rimanenti estremi più alto e più basso (a+b)/2, i tuoi "if" dovrebbero escludere tale valore oppure più preciso escludi "0" moltiplicando per 1 il risultato dei "si" che rimane lo stesso.
 
Grazie Alex..ora ci rifletto:)

Allora,

Rispondiamo alla domanda:

quante probabilità ho che tutte e 5 le serie in oggetto d questo esercizio mi perdano, con il 99% di probabilità di azzeccarci, non oltre il 5% se ora, alle 15 di pomeriggio, sono tutte prossime al -1% e non risaliranno sopra tale valore?

Arzigogolato, lo so..mi riprometto di far di megglio..


Allora, la risposta è, soddisfatti i "se" cui sopra:

il 65% circa. Che non è poco.

Ovvero:


tutte e cinque le banche in portafoglio..se sei veramente sfigato ma non sfigatissimo..perderanno tutte intorno il 5% max 2 volte su 3.

Mediamente perderanno l'1.73% circa 2 volte su 3

In alto l'andamento del quantile calcolato tramite espansione di CF condizionata come sopra spiegato (male)..ho preso per compensare gli zero il valore più alto espresso dalle "5" in concomitanza delle'evento congiunto

In basso quello già postato, tf giornaliero stavolta, soglia ricordo -1%

nb: il quantile l'ho calcolato utilizzando una finestra rolling di 252gg perchè con le ricorsive non se veniva fuori prima di mezzora..

Si tratta di moltiplicare i numerini gialli in alto nei riquadri

nb: salvo errori che certamente ho fatto...e tenete presente che le stime sono viziate da sta minKia di "zero" che devo eliminare..ma come "introduzione" per principianti dovrebbe andar bene..poi la affiniamo.:)



(........)
 

Allegati

  • Fol.jpg
    Fol.jpg
    146,7 KB · Visite: 19
Ultima modifica:
Buongiorno amici di "copula per principianti".

Oggi faremo un paio di passetti avanti e in serata conto di allegare l'algo definitvo.

Per il mio amore PG



(...........)
 
Well, risolto brillantemente il problema del quantile ultimo, allego grafico commentato e appeno ho tempo integro.

Siamo su osservazioni settimanali (onde superare il problema di allineamento date) e per le definizioni "migliore - peggiore" rimando ad una lettura delle pagine precedenti.

(..........)

DISCLAIMER: io faccio il barbiere e non posseggo alcun titolo per parlare con cognizione di causa di quanto qui esposto. E' pur vero che sono un genio, tremendamente sexy ed assolutamente predisposto alla condivisione (pg..qui c'è un doppio senso..)
 

Allegati

  • aria.jpg
    aria.jpg
    135 KB · Visite: 33
(..............)
 

Allegati

  • cfcavar.jpg
    cfcavar.jpg
    113,9 KB · Visite: 20
Spiegazione:


Abbiamo usato un paio di semplificazoni...o forse più di un paio.

Le più importanti a mio avviso sono state:

scegliere un paniere di azioni fortemente correlato, dare un'occhiata alla similarità tra quantili calcolati con l'espansione di Cornish Fisher

Cornish


decidere imboccare la scorciatoia del quantile più alto espresso da una delle "5" in concomitanza dell'evento congiunto "perdita oltre la soglia" unito al loss più basso espresso da una delle "5" in concomitanza dell'evento congiunto.

Ovvero:

la perdita più bassa è certamente comune alle 5, il quantile più alto certamente comprende i quantili delle serie rimanenti.

Il tutto si può puntualizzare in maniera meno approssimativa tramite matrici trasformate...ma...io sono barbiere e principiante ergo ritengo arbitrariamente che con un insieme così composto posso fare a meno di scomodare SPSS.

In effetti ritengo che pesando gli assets in maniera decente posso fare quasi sempre a meno..ma è una mia opinione che risale alla sfiducia riposta nella correlazione lineare e misure derivate.

Ho utilizzato per le stime delle finestre rolling da 26 settimane..delle medie pesate senza ricorsive per non appesantire troppo il computo.

A quale domanda risponde il VaR cui sopra?

Ipotizzando una soglia che ho posto nell'esempio = -2%,

quante probabilità "PC" ho, avendo in portafoglio le % banche cui sopra, di sostenere una perdita massima pari a "LM col 99% di probabilità" ?

La risposta, nel grafico è

LM=14..12%

con

PC=46% circa

Ovvero, con lo storico a disposizione, "quasi" una volta su due (considerando solo i giorni nei quali le 5 banche hanno chiuso negative), quando hanno superato al ribasso il -2% di soglia hanno evidenziato una perdita media e comune a tutte e 5 del

5% circa

generando la stima per moltiplicazione che leggiamo nel grafico.

Il back test del VaR così calcolato sembra decente tenendo presente che

lo possiamo complicare con Garch di tutti i tipi, calcolo dei momenti di tutti i tipi, distribuzioni di tutti i tipi etc..etc..etc...che.

tutti

andranno a volte meglio a volte peggio della misura calcolata rozzamente dal sottoscritto.

Riguardo ad essa (la misura rozza) per il computo del VaR ho scelto il valore più alto espresso dalla media storica dei loss over thres congiunti e una media pesata (a 26 settimane appunto) degli stessi.

Quindi..ho cercato di conservare un po' di "coda ulteriore"...forse tanto rozza non è.:)

Il punto seguente..premettendo ancora che stiamo giocando, io sono un barbiere tremendamente sexy, genio, filantropo e non ho alcun titolo per parlare di cse così complicate è

"ma ci si fanno i soldi"??

La risposta (che avevo già dato a Cren mi pare..) è sì.

Ci si fanno i soldi..a patto di avere tecnologia e competenze adeguate.

Il modo più banale è il Pairs Trading..dove possiamo estendere il termine "coppia" attribuendogli la proprietà di

"insieme".

esempio sciocco sciocco..

sono le 16.30, 17.00..le banche cui sopra son tutte sotto la soglia..abbiamo le nostre stime(medie) effettuate su dati a frequenza alta a piacere....scommettiamo su la chiusura dello spread "migliore vs peggiore" puntando sul mean reverting.

Oppure facciamo cracckare il mercato come hanno provato il 6 maggio spingendo i titoli sotto un valore che la nostra copula evidenzia foriero di perdite indicibili ..ma qui è più difficile (non impossibile).:)

Di cosa parliamo?

Vi allego qualche papero..scrivere gli algo per la replica dei ts illustrati (esplicitamente o meno) è banale (anche facendoli complicatissimi).

Meno banale e andare a mercato con il Know How gusto.

Un caro saluto, torno nel mio limbo.:bye:


http://www.google.it/url?sa=t&rct=j...=eLYgif6Oc8KA4nKMntQR-w&bvm=bv.44770516,d.Yms
 

Allegati

  • PT COPULA APP.pdf
    701,1 KB · Visite: 3.177
  • PT COPULA APP2.pdf
    716,7 KB · Visite: 2.187
Non rispondo a messaggi privati...(solo a te PG)
 

Allegati

  • Foolers.jpg
    Foolers.jpg
    107,8 KB · Visite: 20
c'è un problema di calcolo, serve un metodo non lineare per fare quanto dici perchè non puoi usare un modo certo per stimare i parametri.
 
Indietro