Calcolo della distribuzione cumulativa del massimo drawdown della camminata casuale con deriva


9

X0=0,Xi+1=Xi+Yi+1YiN(μ,1)nmax0ijn(XiXj)fornisce la distribuzione per il massimo drawdown di un moto browniano con deriva. L'espressione implica una somma infinita che include alcuni termini definiti solo implicitamente. Ho problemi a scrivere un'implementazione che converge. Qualcuno è a conoscenza di un'espressione alternativa del CDF o di un'implementazione di riferimento nel codice?


Quanto preciso ne hai bisogno? Potresti semplicemente simulare la camminata ed evitare soluzioni completamente funzionali?
kyle,

buon punto. Non ho bisogno della precisione del livello di fisica atomica. in effetti, 3 sigfigs probabilmente va bene ...
shabbychef,

Ciò richiederebbe circa un milione di passeggiate casuali simulate ...
whuber

Risposte:


4

Questa è una somma alternata. Ogni coppia successiva si annulla quasi; tali somme di coppia alla fine diminuiscono monotonicamente.

Un approccio, quindi, è calcolare la somma in coppie in cui = {1,2}, {3,4}, {5,6}, ecc. (In questo modo si eliminano anche molti errori in virgola mobile.) Alcuni più trucchi possono aiutare:n

(1) Per risolvere per una costante positiva , un buon valore iniziale da cercare - e un'approssimazione eccellente per la radice più grande - è . Sospetto che Newton-Raphson dovrebbe funzionare davvero bene.α n ° t = ( n + 1 / 2 ) π - αtan(t)=t/ααntht=(n+1/2)πα(n+1/2)π

(2) Dopo un piccolo numero di termini iniziali, le somme delle coppie iniziano a diminuire in modo molto, molto coerente. I logaritmi dei valori assoluti delle coppie spaziate esponenzialmente diminuiscono rapidamente quasi in modo lineare. Ciò significa che è possibile interpolare tra un numero molto piccolo di somme di coppia calcolate per stimare tutte le somme di coppia che non sono state calcolate. Ad esempio, calcolando i valori solo per le coppie (2,3), (4,5), (8,9), (16,17), ..., (16384, 16385) e costruendo il polinomio interpolante per questi (pensato come i valori di una funzione in 1, 2, ..., 14) e usando gli argomentih=μ=σ=1, Sono stato in grado di ottenere una precisione a sei cifre per gli errori peggiori. (Ancora più bello, gli errori oscillano nel segno, suggerendo che la precisione nei valori interpolati sommati potrebbe essere un po 'meglio di sei cifre.) Probabilmente potresti stimare la somma limite a una buona precisione estrapolando linearmente la fine di questi valori (che si traduce in una legge di potere) e integra la funzione di estrapolazione all'infinito. Per completare questo calcolo di esempio è necessario anche il primo termine. Ciò fornisce una precisione a sei cifre mediante solo 29 termini calcolati nella somma.

(3) Notare che la funzione dipende davvero da e , non da tutte e tre queste variabili in modo indipendente. La dipendenza da è debole (come dovrebbe essere); potresti accontentarti di fissarne il valore in tutti i tuoi calcoli.μ / σ Th/σμ/σT

(4) Inoltre, considera l'utilizzo di alcuni metodi di accelerazione in serie , come il metodo di Aitken . Un buon resoconto di ciò appare nelle Ricette numeriche .

aggiunto

(5) È possibile stimare la coda della somma con un integrale. Quando si scrive , l'equazione (con ) può essere risolta per , che è piccolo, e quindi per sostituendo back. L'espansione della tangente in una serie di Taylor in fornisce la soluzione approssimativaθn=(n+1/2)π1/tntan(θn)=θn/αα=μh/σ2tnθntn

θn=zαzα2α3/3z3+O((αn)5)

dove .z=(n+1/2)π

Se è sufficientemente grande, i fattori esponenziali della forma diventano estremamente vicini a 1 in modo da poterli trascurare. In genere questi termini possono essere trascurati anche per la piccola perché è , rendendo il primo esponenziale a zero molto rapidamente. (Ciò accade quando supera sostanzialmente . Se possibile, fai i tuoi calcoli per una grande !)n1exp(σ2θn2T2h2)exp(μ2T2σ2)nθn2Θ(n2)nα/T1/2T

L'uso di questa espressione per per sommare i termini di e ci consente di approssimarli (una volta che tutto il fumo viene eliminato) comeθnnn+1

2πn24πn3+13π2+6(43α)α2π3n4+O(1n5).

La sostituzione della somma a partire da con un integrale su partire da avvicina alla coda. (L'integrale deve essere moltiplicato per un fattore comune di . L'errore nell'integrale è . Pertanto, per ottenere tre cifre significative in genere è necessario calcolare circa otto dei termini nella somma e quindi aggiungere questa approssimazione di coda.N N - 1 / 4 exp ( - α ) O ( 1 / n 4 )n=2NNN1/4exp(α)O(1/n4)


1
questo è davvero fantastico e dovrebbe fare molto per il CDF. Materiale distintivo sopra e oltre.
shabbychef,

2

Potresti iniziare guardando le funzioni di distribuzione del drawdown in fBasics . Quindi potresti facilmente simulare il moto browniano con deriva e applicare queste funzioni come inizio.


+1 Questa è una risposta piuttosto diretta, considerando che queste funzioni implementano le formule nel documento!
whuber

Sembra che questo pacchetto calcoli il massimo drawdown previsto sulla base della carta, ma non calcoli il CDF. Il documento fornisce risultati 'scorciatoia', IIRC, per calcolare tale aspettativa.
Shabbychef,

@shabbychef Mi dispiace, mi sono perso quella gentilezza. Vedo come ottenere l'intero CDF può essere più utile della semplice conoscenza delle aspettative. (Il rischio finanziario è molto più che solo le perdite attese ...) Ma ora mi sento un po 'meglio riguardo al lavoro svolto per approssimare il CDF!
whuber
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.