Berechnung der kumulativen Verteilung des maximalen Drawdowns des Random Walk mit Drift

9

Ich interessiere mich für die Verteilung des maximalen Drawdowns eines zufälligen Spaziergangs: Sei wobei . Der maximale Drawdown nach Perioden beträgt . Ein Artikel von Magdon-Ismail et. al. gibt die Verteilung für die maximale Absenkung einer Brownschen Bewegung mit Drift an. Der Ausdruck beinhaltet eine unendliche Summe, die einige Begriffe enthält, die nur implizit definiert sind. Ich habe Probleme beim Schreiben einer konvergierenden Implementierung. Ist jemandem ein alternativer Ausdruck der CDF oder eine Referenzimplementierung im Code bekannt?X0=0,Xi+1=Xi+Yi+1YiN(μ,1)nmax0ijn(XiXj)

shabbychef
quelle
Wie genau brauchst du es? Könnten Sie einfach den Spaziergang simulieren und voll funktionsfähige Lösungen vermeiden?
Kyle
guter Punkt. Ich brauche keine atomphysikalische Genauigkeit. in der Tat ist 3 Sigfigs wahrscheinlich in Ordnung ....
Shabbychef
Das würde ungefähr eine Million simulierte zufällige Spaziergänge erfordern ...
whuber

Antworten:

4

Dies ist eine alternierende Summe. Jedes aufeinanderfolgende Paar bricht fast ab; solche Paarsummen nehmen schließlich monoton ab.

Ein Ansatz besteht also darin, die Summe paarweise zu berechnen, wobei = {1,2}, {3,4}, {5,6} usw. (Dadurch werden auch viele Gleitkommafehler vermieden.) Einige Weitere Tricks können helfen:n

(1) Zur Lösung für einen positive Konstante , ein guter Ausgangswert zu suchen , - und eine ausgezeichnete Näherung für den größte root-- ist . Ich vermute, Newton-Raphson sollte wirklich gut funktionieren.tan(t)=t/ααntht=(n+1/2)πα(n+1/2)π

(2) Nach einer kleinen Anzahl von Anfangstermen nehmen die Summen der Paare sehr, sehr gleichmäßig ab. Die Logarithmen der Absolutwerte exponentiell beabstandeter Paare nehmen schnell nahezu linear ab. Dies bedeutet, dass Sie zwischen einer sehr kleinen Anzahl berechneter Paarsummen interpolieren können, um alle nicht berechneten Paarsummen zu schätzen. Zum Beispiel durch Berechnen der Werte für nur Paare (2,3), (4,5), (8,9), (16,17), ..., (16384, 16385) und Konstruieren des Interpolationspolynoms für diese (gedacht als die Werte einer Funktion bei 1, 2, ..., 14) und unter Verwendung der Argumenteh=μ=σ=1Für die Worst-Case-Fehler konnte ich eine sechsstellige Genauigkeit erreichen. (Noch schöner ist, dass die Fehler im Vorzeichen schwingen, was darauf hindeutet, dass die Genauigkeit der summierten interpolierten Werte möglicherweise etwas besser als sechsstellig ist.) Sie könnten die Grenzsumme wahrscheinlich auf eine gute Genauigkeit schätzen, indem Sie linear vom Ende dieser Werte extrapolieren (welche übersetzt in ein Potenzgesetz) und Integration der Extrapolationsfunktion ins Unendliche. Um diese Beispielberechnung abzuschließen, benötigen Sie auch den ersten Term. Dies ergibt eine sechsstellige Genauigkeit durch nur 29 berechnete Terme in der Summe.

(3) Beachten Sie, dass die Funktion wirklich von und abhängt , nicht von allen drei dieser Variablen unabhängig voneinander. Die Abhängigkeit von ist schwach (wie es sein sollte); Möglicherweise geben Sie sich damit zufrieden, den Wert während all Ihrer Berechnungen festzulegen.h/σμ/σT

(4) Darüber hinaus sollten Sie einige Serienbeschleunigungsmethoden wie die Aitken-Methode in Betracht ziehen . Eine gute Darstellung hierzu finden Sie in Numerical Recipes .

Hinzugefügt

(5) Sie können den Schwanz der Summe mit einem Integral schätzen. Beim Schreiben von kann die Gleichung (mit ) gelöst werden für , das klein ist, und dann für durch Ersetzen zurück. Das Erweitern der Tangente in einer Taylor-Reihe in ergibt die ungefähre Lösung tan ( θ n ) = θ n / & agr; & agr; = μ h / σ 2 t n θ n t nθn=(n+1/2)π1/tntan(θn)=θn/αα=μh/σ2tnθntn

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

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

Vorausgesetzt, ist ausreichend groß, sind die Exponentialfaktoren der Form wird extrem nahe an 1, so dass Sie sie vernachlässigen können. Typischerweise können diese Begriffe auch für kleine vernachlässigt werden weil ist , extrem schnell die ersten exponentiellen Sprung auf Null zu machen. (Dies geschieht, sobald wesentlich überschreitet . Führen Sie Ihre Berechnungen für großes wenn Sie können!)1 - exp ( - & sgr; 2 & thgr ; 2 n T.nn& thgr; 2 n Θ(n2)nα/T1/2T1exp(σ2θn2T2h2)exp(μ2T2σ2)nθn2Θ(n2)nα/T1/2T

Wenn wir diesen Ausdruck für um die Terme für und zu summieren, können wir sie (sobald der gesamte Rauch verschwunden ist) als approximieren n n + 1θnnn+1

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

Das Ersetzen der Summe beginnend bei durch ein Integral über beginnend bei nähert sich dem Schwanz an. (Das Integral muss mit einem gemeinsamen Faktor von multipliziert werden .) Der Fehler im Integral ist . Um drei signifikante Zahlen zu erhalten, müssen Sie normalerweise ungefähr acht der Terme in der Summe berechnen und dann diese Endnäherung hinzufügen.N N - 1 / 4 exp ( - α ) O ( 1 / n 4 )n=2NNN1/4exp(α)O(1/n4)

whuber
quelle
1
Das ist wirklich großartig und sollte einen langen Weg in Richtung CDF gehen. Über und über das Abzeichenmaterial hinaus.
Shabbychef
2

Sie können sich zunächst die Drawdown-Verteilungsfunktionen in fBasics ansehen . Sie können also leicht die Brownsche Bewegung mit Drift simulieren und diese Funktionen als Start anwenden.

Shane
quelle
+1 Das ist eine ziemlich direkte Antwort, wenn man bedenkt, dass diese Funktionen die Formeln im Papier implementieren!
whuber
Es scheint, dass dieses Paket den erwarteten maximalen Drawdown basierend auf dem Papier berechnet, aber die CDF nicht berechnet. Das Papier enthält "Shortcut" -Ergebnisse (IIRC), um diese Erwartung zu berechnen.
Shabbychef
@shabbychef Sorry, ich habe diese Schönheit verpasst. Ich sehe, wie nützlich es sein kann, die gesamte CDF zu erhalten, als nur die Erwartungen zu kennen. (Das finanzielle Risiko ist viel mehr als nur erwartete Verluste ...) Aber jetzt fühle ich mich ein bisschen besser in Bezug auf die Arbeit, die ich zur Annäherung an die CDF geleistet habe!
whuber