دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: زبان های برنامه نویسی ویرایش: 1 نویسندگان: Daniel J. Duffy, Joerg Kienitz سری: Wiley Finance 406 ISBN (شابک) : 0470060697, 9780470060698 ناشر: Wiley سال نشر: 2009 تعداد صفحات: 778 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 4 مگابایت
در صورت تبدیل فایل کتاب Monte Carlo Frameworks: Building Customisable High-performance C++ Applications به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب مونت کارلو چارچوب: ساخت برنامه های قابل برنامه ریزی با کارایی بالا C نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این یکی از اولین کتاب هایی است که تمام مراحل مورد نیاز برای تجزیه و تحلیل، طراحی و پیاده سازی برنامه های مونت کارلو را شرح می دهد. این مقاله درباره تئوری مالی و همچنین پسزمینه ریاضی و عددی مورد نیاز برای نوشتن کدهای C++ انعطافپذیر و کارآمد با استفاده از طراحی پیشرفته و الگوهای سیستمی، مدلهای برنامهنویسی شیگرا و عمومی در ترکیب با کتابخانهها و ابزارهای استاندارد بحث میکند. شامل یک سی دی حاوی کد منبع برای همه نمونه ها است. اکیداً توصیه می شود که کد را با کامپایل کردن و گسترش آن مطابق با نیازهای خود آزمایش کنید. پشتیبانی از طریق یک تالار گفتمان کاربر در www.datasimfinancial.com ارائه می شود که در آن می توانید سوالات خود را ارسال کنید و با سایر خریداران کتاب ارتباط برقرار کنید. این کتاب برای آن دسته از متخصصانی است که مدل هایی را در امور مالی محاسباتی طراحی و توسعه می دهند. این کتاب فرض می کند که شما دانش کاری C ++ را دارید.
This is one of the first books that describe all the steps that are needed in order to analyze, design and implement Monte Carlo applications. It discusses the financial theory as well as the mathematical and numerical background that is needed to write flexible and efficient C++ code using state-of-the art design and system patterns, object-oriented and generic programming models in combination with standard libraries and tools. Includes a CD containing the source code for all examples. It is strongly advised that you experiment with the code by compiling it and extending it to suit your needs. Support is offered via a user forum on www.datasimfinancial.com where you can post queries and communicate with other purchasers of the book. This book is for those professionals who design and develop models in computational finance. This book assumes that you have a working knowledge of C ++.
Monte Carlo Frameworks : Building customisable high-performance C++ applications......Page 3
Contents......Page 7
Notation......Page 21
Executive Overview......Page 25
0.2 Description of the problem......Page 29
0.3 Ordinary differential equations (ODE)......Page 30
0.4 Stochastic differential equations (SDE) and their solution......Page 31
0.5.2 Polar Marsaglia method......Page 32
0.5.4 C++ code for uniform and normal random variate generation......Page 33
0.6 The Monte Carlo method......Page 36
0.7 Calculating sensitivities......Page 37
0.8 The initial C++ Monte Carlo framework: hierarchy and paths......Page 38
0.9 The initial C++ Monte Carlo framework: calculating option price......Page 47
0.10 The predictor-corrector method: a scheme for all seasons?......Page 51
0.11 The Monte Carlo approach: caveats and nasty surprises......Page 52
0.13 Exercises and projects......Page 53
PART I FUNDAMENTALS......Page 57
1.2.1 Fundamental concepts......Page 59
1.2.3 Random variables......Page 60
1.3 Discrete and continuous random variables......Page 62
1.4 Multiple random variables......Page 65
1.5 A short history of integration......Page 66
1.6 σ-algebras, measurable spaces and measurable functions......Page 67
1.7 Probability spaces and stochastic processes......Page 68
1.8 The Ito stochastic integral......Page 69
1.9.1 Convergence theorems......Page 71
1.10 Some useful inequalities......Page 73
1.11 Some special functions......Page 74
1.12 Convergence of function sequences......Page 76
1.13 Applications to stochastic analysis......Page 77
1.15 Exercises and projects......Page 78
2.2 A survey of the literature......Page 81
2.3.1 Metric spaces......Page 83
2.3.2 Cauchy sequences, complete metric spaces and convergence......Page 84
2.3.3 Continuous and Lipschitz continuous functions......Page 85
2.5 An introduction to one-dimensional random processes......Page 87
2.7 Classes of SIEs and properties of their solutions......Page 90
2.8 Existence and uniqueness results......Page 91
2.9 A special SDE: the Ito equation......Page 92
2.10 Numerical approximation of SIEs......Page 94
2.11 Transforming an SDE: the Ito formula......Page 96
2.13 Appendix: proof of the Banach fixed-point theorem and some applications......Page 97
2.14 Exercises and projects......Page 99
3.2 Bessel processes......Page 101
3.4 The exponential distribution......Page 102
3.5 The beta and gamma distributions......Page 103
3.7 Discrete variate generation......Page 107
3.8 The Fokker-Planck equation......Page 108
3.9.1 The Fichera function......Page 109
3.10 Alternative stochastic processes......Page 112
3.10.1 The constant elasticity of variance (CEV) model......Page 113
3.10.2 Exact, quasi-exact and numerical solutions of CEV equation......Page 114
3.10.3 Monte Carlo simulation of CEV models......Page 115
3.10.4 American option pricing and hedging with the CEV model......Page 119
3.10.5 Test cases and numerical results......Page 120
3.11 Using associative arrays and matrices to model lookup tables and volatility surfaces......Page 121
3.12 Summary and conclusion......Page 124
3.13.1 The gamma functions......Page 125
3.13.2 The error function......Page 126
3.13.3 An overview of statistical distributions in Boost......Page 127
3.14 Exercises and projects......Page 130
4.2 An introduction to discrete time simulation, motivation and notation......Page 135
4.3 Foundations of discrete time approximation: ordinary differential equations......Page 137
4.4.1 Absolute error criterion......Page 141
4.4.2 Confidence intervals for the absolute error......Page 142
4.4.3 Dependence of the absolute error on the step size......Page 143
4.4.4 Strong and weak convergence......Page 144
4.6 The Milstein schemes......Page 145
4.7 Predictor-corrector methods......Page 146
4.8 Stiff ordinary and stochastic differential equations......Page 147
4.8.1 Robust schemes for stiff systems......Page 149
4.8.2 Stiff stochastic differential equations......Page 151
4.9 Software design and C++ implementation issues......Page 153
4.10 Computational results......Page 154
4.11 Aside: the characteristic equation of a difference scheme......Page 155
4.13 Exercises and projects......Page 156
5.2 Modelling SDEs and FDM in C++......Page 165
5.3 Mathematical and numerical tools......Page 166
5.3.1 Analytical solution and numerical solution of SDEs......Page 167
5.3.2 Brownian Bridge......Page 168
5.3.3 Finite difference methods for Brownian Bridges......Page 170
5.4 The Karhunen-Loeve expansion......Page 171
5.5 Cholesky decomposition......Page 172
5.6 Spread options with stochastic volatility......Page 174
5.7 The Heston stochastic volatility model......Page 181
5.8 Path-dependent options and the Monte Carlo method......Page 188
5.9 A small software framework for pricing options......Page 189
5.11 Exercises and projects......Page 190
6.1 Introduction and objectives......Page 195
6.2 Processes with jumps......Page 196
6.2.3 Simulating jump times......Page 197
6.2.4 Finite difference approximations......Page 198
6.3 L´evy processes......Page 199
6.4.1 A general convergence principle......Page 200
6.4.2 Applications to ordinary differential equations......Page 202
6.4.3 Applications to stochastic differential equations......Page 203
6.5 Mollifiers, bump functions and function regularisation......Page 204
6.6.1 How good is the random number generator rand()?......Page 205
6.7 Approximating SDEs using strong Taylor, explicit and implicit schemes......Page 207
6.7.1 Stability analysis of SDEs with multiplicative and additive noise......Page 208
6.7.2 Strong Taylor approximants......Page 209
6.7.3 Explicit strong schemes......Page 210
6.8 Summary and conclusions......Page 211
6.9 Exercises and projects......Page 212
7.2 Basic probability......Page 217
7.3 The Law of Large Numbers......Page 218
7.4 The Central Limit Theorem......Page 219
7.4.1 Lindeberg-Feller Central Limit Theorem......Page 220
7.4.2 Explicit calculations of the confidence intervals......Page 221
7.5 Quasi Monte Carlo methods......Page 222
7.5.1 Uniform distribution and its geometric interpretation......Page 224
7.7 Exercises and projects......Page 226
PART II DESIGN PATTERNS......Page 229
8.2 Introduction and objectives of this chapter......Page 231
8.3 The advantages of domain architectures......Page 232
8.4.1 Market model systems......Page 235
8.4.2 Numerical simulator systems......Page 237
8.4.3 Pricing, hedge and risk systems......Page 239
8.5 Summary and conclusions......Page 240
8.6 Exercises and projects......Page 241
9.3 System decomposition, from concept to code......Page 245
9.3.1 Phases......Page 246
9.4 Decomposition techniques, the process......Page 248
9.4.1 A special case: geometric decomposition......Page 249
9.5 Whole-part......Page 250
9.6.1 Task-based decomposition......Page 251
9.6.2 Data decomposition......Page 252
9.7 Presentation-Abstraction Control (PAC)......Page 254
9.8.1 The Factory Method pattern......Page 257
9.8.2 Abstract Factory pattern......Page 262
9.8.3 Builder pattern......Page 265
9.10 Exercises and projects......Page 267
10.1 Introduction and objectives......Page 271
10.2 Discovering which patterns to use......Page 272
10.2.1 Whole-Part structure for a finite difference scheme......Page 273
10.2.2 The Preprocessor agent......Page 274
10.2.3 The Conversion agent......Page 279
10.2.4 The Display agent and Top-Level agent......Page 282
10.3 An overview of the GOF patterns......Page 283
10.4 The essential structural patterns......Page 285
10.4.2 Bridge pattern, template version......Page 286
10.4.3 Bridge pattern, run-time version......Page 290
10.5 The essential creational patterns......Page 294
10.5.1 Factory Method pattern......Page 295
10.6 The essential behavioural patterns......Page 298
10.6.2 Strategy and Template Method patterns......Page 299
10.8 Exercises and projects......Page 304
11.2 Using templates to implement components: overview......Page 309
11.3 Templates versus inheritance, run-time versus compile-time......Page 311
11.4.1 Default values for template parameters......Page 314
11.4.2 Template nesting......Page 315
11.4.3 Template member functions......Page 317
11.4.4 Partial template specialisation......Page 318
11.4.5 Template template parameters......Page 319
11.5.1 Traits......Page 322
11.5.2 Policy-based design (PBD)......Page 329
11.5.3 When to use inheritance and when to use generics......Page 332
11.6 Creating templated design patterns......Page 334
11.7 A generic Singleton pattern......Page 335
11.8 Generic composite structures......Page 338
11.10 Exercises and projects......Page 342
12.2 Arrays, vectors and matrices......Page 347
12.3.1 One-dimensional data structures: vectors......Page 352
12.3.2 Two-dimensional data structures: matrices......Page 355
12.3.3 Application: modelling N-factor SDEs......Page 356
12.4 Creating adapters for STL containers......Page 359
12.5 Date and time classes......Page 362
12.5.2 Creating sets of dates and using set operations......Page 363
12.5.3 Mapping dates to mesh points......Page 366
12.6 The class string......Page 367
12.6.1 String constructors and string properties......Page 368
12.6.2 Extracting characters and substrings......Page 370
12.7.1 Searching and finding in strings......Page 371
12.7.2 Conversions between strings and other data types......Page 372
12.8 A final look at the generic composite......Page 373
12.10 Exercises and projects......Page 376
13.2 A taxonomy of C++ pointer types......Page 381
13.2.2 Scoped pointers......Page 382
13.2.3 Shared pointers......Page 385
13.3.1 Tuples......Page 389
13.3.2 Variants and discriminated unions......Page 390
13.3.3 Any and undiscriminated types......Page 391
13.3.4 A property class......Page 393
13.3.5 Boost arrays......Page 394
13.4 Boost signals: notification and data synchronisation......Page 395
13.5.1 Boost.Serialisation......Page 396
13.5.2 Boost.Filesystem......Page 398
13.6 Linear algebra and uBLAS......Page 399
13.8 Other libraries......Page 400
13.8.1 String and text processing......Page 401
13.10 Exercises and projects......Page 402
PART III ADVANCED APPLICATIONS......Page 405
14.2 Creating a C++ instrument hierarchy......Page 407
14.2.2 Underlyings and derivatives......Page 408
14.3.1 Simple property sets......Page 411
14.3.3 Heterogeneous property sets......Page 414
14.3.4 The payoff base class......Page 416
14.3.5 Abstract factories for payoff classes......Page 417
14.3.6 Exception handling......Page 419
14.4 Summary and conclusions......Page 420
14.5 Exercises and projects......Page 421
15.1 Introduction and objectives......Page 423
15.2.1 The structure......Page 424
15.2.2 Adding models......Page 425
15.2.3 Adding schemes......Page 426
15.2.4 The Monte Carlo evaluation......Page 428
15.3 Asian options......Page 429
15.3.1 Mapping Asian options into our framework......Page 430
15.3.2 Approximation formulae for Asian options......Page 433
15.3.3 Control variates......Page 434
15.4 Options on the running Max/Min......Page 439
15.5 Barrier options......Page 440
15.5.1 Mapping barrier options into our framework......Page 441
15.5.2 Approximation formulae for barrier options......Page 442
15.5.3 Importance sampling......Page 443
15.5.4 Antithetic variables......Page 444
15.5.5 Numerical results......Page 445
15.6 Lookback options......Page 446
15.6.1 Approximation formulae for lookback options......Page 448
15.6.2 Results......Page 449
15.7.1 Remarks on cliquet options......Page 450
15.7.3 Version of the basic cliquet option......Page 451
15.9 Exercises and projects......Page 452
16.2 The volatility skew/smile......Page 455
16.3 The Heston model......Page 457
16.3.1 Implementing the Heston model......Page 460
16.3.3 Full truncation Euler scheme......Page 462
16.3.4 Andersen’s QE scheme......Page 463
16.4 The Bates/SVJ model......Page 469
16.5 Implementing the Bates model......Page 471
16.6 Numerical results – European options......Page 472
16.7.1 European options – digital options......Page 474
16.7.2 Path-dependent options – cliquet options......Page 476
16.8 XLL – using DLL within Microsoft Excel......Page 477
16.8.3 Developing using XLW......Page 480
16.9 Analytic solutions for affine stochastic volatility models......Page 483
16.10 Summary and conclusions......Page 485
16.11 Exercises and projects......Page 486
17.2 Modelling in multiple dimensions......Page 489
17.3 Implementing payoff classes for multi-asset options......Page 493
17.4.2 Approximation formulae......Page 494
17.4.3 Quanto options......Page 496
17.5 Basket options......Page 497
17.6 Min/Max options......Page 499
17.7 Mountain range options......Page 503
17.8 The Heston model in multiple dimensions......Page 508
17.8.1 Extending the QE scheme......Page 509
17.9 Equity interest rate hybrids......Page 510
17.11 Exercises and projects......Page 514
18.2 The finite difference method......Page 517
18.3 The pathwise method......Page 520
18.4 The likelihood ratio method......Page 525
18.4.1 Examples......Page 527
18.5 Likelihood ratio for finite differences – proxy simulation......Page 531
18.6 Summary and conclusions......Page 532
18.7 Exercises and projects......Page 534
19.2 Description of the problem......Page 539
19.3 Pricing American options by regression......Page 540
19.4 C++ design......Page 541
19.5 Linear least squares regression......Page 544
19.5.1 The regression function......Page 546
19.5.2 The exercise decision......Page 547
19.6 Example – step by step......Page 548
19.7 Analysis of the method and improvements......Page 549
19.7.1 Selecting basis functions......Page 550
19.8 Upper bounds......Page 553
19.9 Examples......Page 555
19.11 Exercises and projects......Page 556
20.2 Normal mean variance mixture models......Page 559
20.2.2 C++ implementation......Page 560
20.2.4 Matching underlying assets and martingale dynamics......Page 563
20.4 Summary and conclusions......Page 564
20.5 Exercises and projects......Page 566
PART IV SUPPLEMENTS......Page 569
21.2 Modelling functions in C++: choices and consequences......Page 571
21.2.1 Function pointers......Page 572
21.2.2 Generic classes that model functions......Page 575
21.2.3 Function objects in STL......Page 577
21.2.4 What is polymorphism?......Page 578
21.3 Performance issues in C++: classifying potential bottlenecks......Page 580
21.3.1 Inlining......Page 581
21.3.3 Preventing unnecessary object construction......Page 582
21.3.4 Exception handling......Page 585
21.3.5 Templates versus inheritance......Page 586
21.3.7 Some final tips......Page 587
21.4 Temporary objects......Page 588
21.5 Special features in the Boost library......Page 590
21.6 Boost multiarray library......Page 591
21.7 Boost random number library......Page 592
21.8 STL and Boost smart pointers: final remarks......Page 594
21.9 Summary and conclusions......Page 596
21.10 Exercises, projects and guidelines......Page 597
22.2 Uniform number generation......Page 599
22.2.1 Pseudo random number generators......Page 600
22.2.3 Sobol numbers......Page 604
22.3 The Sobol class......Page 606
22.4 Number generation due to given distributions......Page 608
22.4.3 Acceptance/Rejection and ratio of uniforms......Page 609
22.4.4 C++ implementation......Page 610
22.4.6 Generating gamma distributed variates......Page 611
22.4.8 Generating Poisson distributed variates......Page 615
22.5.1 The Poisson process......Page 616
22.5.3 Compensation and compounding......Page 618
22.5.4 Poisson random measures......Page 619
22.5.5 Jump measures......Page 620
22.6 The random generator templates......Page 621
22.8 Summary and conclusions......Page 624
22.9 Exercises and projects......Page 625
23.3.1 The Cholesky decomposition......Page 629
23.3.2 The spectral decomposition......Page 631
23.3.3 Singular value decomposition......Page 635
23.4.1 The basics......Page 636
23.4.4 Measures and Fourier transform......Page 637
23.5 Applications to option pricing......Page 638
23.5.1 Semi-analytical prices and their C++ implementation......Page 639
23.7 Exercises and projects......Page 642
24.2 Shared memory models......Page 645
24.3 Sequential, concurrent and parallel programming 101......Page 647
24.4 How fast is fast? Performance analysis of parallel programs......Page 651
24.5.1 The life of a thread......Page 653
24.6.1 Suitable tasks for multi-threading......Page 654
24.7.2 Algorithm structure......Page 655
24.7.4 Implementation mechanisms......Page 656
24.8 Some model architectures......Page 657
24.8.1 The Monte Carlo engine......Page 659
24.8.2 The market model system......Page 660
24.9 Analysing and designing large software systems: a summary of the steps......Page 661
24.11 Exercises and projects......Page 662
25.2 Loop optimisation......Page 665
25.2.1 Loop interchange......Page 666
25.2.2 Loop fission and fusion......Page 667
25.2.3 Loop unrolling......Page 668
25.2.4 Loop tiling......Page 669
25.2.5 Serial loop optimisation in Monte Carlo applications......Page 670
25.4 Threads in OpenMP......Page 672
25.6 Data sharing......Page 674
25.6.1 Ensuring private variable initialisation and finalisation......Page 676
25.6.2 Reduction operations......Page 677
25.6.3 The copyin clause and threadprivate directive......Page 678
25.7 Work-sharing and parallel regions......Page 679
25.7.1 Work-sharing constructs......Page 680
25.7.2 The nowait clause......Page 681
25.8 Nested loop optimisation......Page 682
25.9 Scheduling in OpenMP......Page 684
25.10 OpenMP for the Monte Carlo method......Page 685
25.12 Exercises and projects......Page 689
26.1 Introduction and objectives......Page 693
26.2 Test scenarios......Page 694
26.3 Numerical approximations for the Heston model......Page 695
26.4 Testing different schemes and scenarios......Page 700
26.5 Results......Page 703
26.6 Lessons learned......Page 706
26.7 Extensions, calibration and more......Page 707
26.8 Other numerical methods for Heston......Page 708
26.10 Exercises and projects......Page 709
27.1 Introduction and objectives......Page 713
27.3.1 Interfaces and data structures......Page 714
27.3.2 The structure of an ATL project and its classes......Page 716
27.3.3 Implementing the methods in IDTExtensibility2......Page 719
27.4 Creating my first ATL project: the steps......Page 721
27.5.1 Automation interfaces......Page 723
27.6 Useful utilities and interoperability projects......Page 724
27.7.1 COM add-in......Page 725
27.7.2 Automation add-in......Page 729
27.7.3 The utilities class......Page 732
27.9 Exercises and projects......Page 735
References......Page 739
Index......Page 747