option_lab 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +139 -0
  4. data/.yard/hooks/before_generate.rb +7 -0
  5. data/.yardopts +11 -0
  6. data/Gemfile +26 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +180 -0
  9. data/Rakefile +44 -0
  10. data/docs/OptionLab/BinomialTree.html +1271 -0
  11. data/docs/OptionLab/BjerksundStensland.html +2022 -0
  12. data/docs/OptionLab/BlackScholes.html +2388 -0
  13. data/docs/OptionLab/Engine.html +1716 -0
  14. data/docs/OptionLab/Models/AmericanModelInputs.html +937 -0
  15. data/docs/OptionLab/Models/ArrayInputs.html +463 -0
  16. data/docs/OptionLab/Models/BaseModel.html +223 -0
  17. data/docs/OptionLab/Models/BinomialModelInputs.html +1161 -0
  18. data/docs/OptionLab/Models/BlackScholesInfo.html +967 -0
  19. data/docs/OptionLab/Models/BlackScholesModelInputs.html +851 -0
  20. data/docs/OptionLab/Models/ClosedPosition.html +445 -0
  21. data/docs/OptionLab/Models/EngineData.html +2523 -0
  22. data/docs/OptionLab/Models/EngineDataResults.html +435 -0
  23. data/docs/OptionLab/Models/Inputs.html +2241 -0
  24. data/docs/OptionLab/Models/LaplaceInputs.html +777 -0
  25. data/docs/OptionLab/Models/Option.html +736 -0
  26. data/docs/OptionLab/Models/Outputs.html +1753 -0
  27. data/docs/OptionLab/Models/PoPOutputs.html +645 -0
  28. data/docs/OptionLab/Models/PricingResult.html +848 -0
  29. data/docs/OptionLab/Models/Stock.html +583 -0
  30. data/docs/OptionLab/Models/TreeVisualization.html +688 -0
  31. data/docs/OptionLab/Models.html +251 -0
  32. data/docs/OptionLab/Plotting.html +548 -0
  33. data/docs/OptionLab/Support.html +2884 -0
  34. data/docs/OptionLab/Utils.html +619 -0
  35. data/docs/OptionLab.html +133 -0
  36. data/docs/_index.html +376 -0
  37. data/docs/class_list.html +54 -0
  38. data/docs/css/common.css +1 -0
  39. data/docs/css/full_list.css +58 -0
  40. data/docs/css/style.css +503 -0
  41. data/docs/file.LICENSE.html +70 -0
  42. data/docs/file.README.html +263 -0
  43. data/docs/file_list.html +64 -0
  44. data/docs/frames.html +22 -0
  45. data/docs/index.html +263 -0
  46. data/docs/js/app.js +344 -0
  47. data/docs/js/full_list.js +242 -0
  48. data/docs/js/jquery.js +4 -0
  49. data/docs/method_list.html +1974 -0
  50. data/docs/top-level-namespace.html +110 -0
  51. data/examples/american_options.rb +163 -0
  52. data/examples/covered_call.rb +76 -0
  53. data/lib/option_lab/binomial_tree.rb +238 -0
  54. data/lib/option_lab/bjerksund_stensland.rb +276 -0
  55. data/lib/option_lab/black_scholes.rb +323 -0
  56. data/lib/option_lab/engine.rb +492 -0
  57. data/lib/option_lab/models.rb +768 -0
  58. data/lib/option_lab/plotting.rb +182 -0
  59. data/lib/option_lab/support.rb +471 -0
  60. data/lib/option_lab/utils.rb +107 -0
  61. data/lib/option_lab/version.rb +5 -0
  62. data/lib/option_lab.rb +134 -0
  63. data/option_lab.gemspec +43 -0
  64. metadata +207 -0
@@ -0,0 +1,1161 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: OptionLab::Models::BinomialModelInputs
8
+
9
+ &mdash; OptionLab Documentation
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "OptionLab::Models::BinomialModelInputs";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../_index.html">Index (B)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../OptionLab.html" title="OptionLab (module)">OptionLab</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Models.html" title="OptionLab::Models (module)">Models</a></span></span>
41
+ &raquo;
42
+ <span class="title">BinomialModelInputs</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: OptionLab::Models::BinomialModelInputs
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName"><span class='object_link'><a href="BaseModel.html" title="OptionLab::Models::BaseModel (class)">BaseModel</a></span></span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next"><span class='object_link'><a href="BaseModel.html" title="OptionLab::Models::BaseModel (class)">BaseModel</a></span></li>
78
+
79
+ <li class="next">OptionLab::Models::BinomialModelInputs</li>
80
+
81
+ </ul>
82
+ <a href="#" class="inheritanceTree">show all</a>
83
+
84
+ </dd>
85
+ </dl>
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <dl>
98
+ <dt>Defined in:</dt>
99
+ <dd>lib/option_lab/models.rb</dd>
100
+ </dl>
101
+
102
+ </div>
103
+
104
+ <h2>Overview</h2><div class="docstring">
105
+ <div class="discussion">
106
+ <p>Binomial Tree model inputs</p>
107
+
108
+
109
+ </div>
110
+ </div>
111
+ <div class="tags">
112
+
113
+
114
+ </div>
115
+
116
+
117
+
118
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
119
+ <ul class="summary">
120
+
121
+ <li class="public ">
122
+ <span class="summary_signature">
123
+
124
+ <a href="#dividend_yield-instance_method" title="#dividend_yield (instance method)">#<strong>dividend_yield</strong> &#x21d2; Object </a>
125
+
126
+
127
+
128
+ </span>
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute dividend_yield.</p>
142
+ </div></span>
143
+
144
+ </li>
145
+
146
+
147
+ <li class="public ">
148
+ <span class="summary_signature">
149
+
150
+ <a href="#interest_rate-instance_method" title="#interest_rate (instance method)">#<strong>interest_rate</strong> &#x21d2; Object </a>
151
+
152
+
153
+
154
+ </span>
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute interest_rate.</p>
168
+ </div></span>
169
+
170
+ </li>
171
+
172
+
173
+ <li class="public ">
174
+ <span class="summary_signature">
175
+
176
+ <a href="#is_american-instance_method" title="#is_american (instance method)">#<strong>is_american</strong> &#x21d2; Object </a>
177
+
178
+
179
+
180
+ </span>
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute is_american.</p>
194
+ </div></span>
195
+
196
+ </li>
197
+
198
+
199
+ <li class="public ">
200
+ <span class="summary_signature">
201
+
202
+ <a href="#option_type-instance_method" title="#option_type (instance method)">#<strong>option_type</strong> &#x21d2; Object </a>
203
+
204
+
205
+
206
+ </span>
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute option_type.</p>
220
+ </div></span>
221
+
222
+ </li>
223
+
224
+
225
+ <li class="public ">
226
+ <span class="summary_signature">
227
+
228
+ <a href="#steps-instance_method" title="#steps (instance method)">#<strong>steps</strong> &#x21d2; Object </a>
229
+
230
+
231
+
232
+ </span>
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute steps.</p>
246
+ </div></span>
247
+
248
+ </li>
249
+
250
+
251
+ <li class="public ">
252
+ <span class="summary_signature">
253
+
254
+ <a href="#stock_price-instance_method" title="#stock_price (instance method)">#<strong>stock_price</strong> &#x21d2; Object </a>
255
+
256
+
257
+
258
+ </span>
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute stock_price.</p>
272
+ </div></span>
273
+
274
+ </li>
275
+
276
+
277
+ <li class="public ">
278
+ <span class="summary_signature">
279
+
280
+ <a href="#strike-instance_method" title="#strike (instance method)">#<strong>strike</strong> &#x21d2; Object </a>
281
+
282
+
283
+
284
+ </span>
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute strike.</p>
298
+ </div></span>
299
+
300
+ </li>
301
+
302
+
303
+ <li class="public ">
304
+ <span class="summary_signature">
305
+
306
+ <a href="#volatility-instance_method" title="#volatility (instance method)">#<strong>volatility</strong> &#x21d2; Object </a>
307
+
308
+
309
+
310
+ </span>
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute volatility.</p>
324
+ </div></span>
325
+
326
+ </li>
327
+
328
+
329
+ <li class="public ">
330
+ <span class="summary_signature">
331
+
332
+ <a href="#years_to_maturity-instance_method" title="#years_to_maturity (instance method)">#<strong>years_to_maturity</strong> &#x21d2; Object </a>
333
+
334
+
335
+
336
+ </span>
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute years_to_maturity.</p>
350
+ </div></span>
351
+
352
+ </li>
353
+
354
+
355
+ </ul>
356
+
357
+
358
+
359
+
360
+
361
+ <h2>
362
+ Instance Method Summary
363
+ <small><a href="#" class="summary_toggle">collapse</a></small>
364
+ </h2>
365
+
366
+ <ul class="summary">
367
+
368
+ <li class="public ">
369
+ <span class="summary_signature">
370
+
371
+ <a href="#greeks-instance_method" title="#greeks (instance method)">#<strong>greeks</strong> &#x21d2; Object </a>
372
+
373
+
374
+
375
+ </span>
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+ <span class="summary_desc"><div class='inline'></div></span>
386
+
387
+ </li>
388
+
389
+
390
+ <li class="public ">
391
+ <span class="summary_signature">
392
+
393
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(attributes = {}) &#x21d2; BinomialModelInputs </a>
394
+
395
+
396
+
397
+ </span>
398
+
399
+
400
+ <span class="note title constructor">constructor</span>
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+ <span class="summary_desc"><div class='inline'><p>A new instance of BinomialModelInputs.</p>
410
+ </div></span>
411
+
412
+ </li>
413
+
414
+
415
+ <li class="public ">
416
+ <span class="summary_signature">
417
+
418
+ <a href="#price-instance_method" title="#price (instance method)">#<strong>price</strong> &#x21d2; Object </a>
419
+
420
+
421
+
422
+ </span>
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+ <span class="summary_desc"><div class='inline'></div></span>
433
+
434
+ </li>
435
+
436
+
437
+ <li class="public ">
438
+ <span class="summary_signature">
439
+
440
+ <a href="#tree-instance_method" title="#tree (instance method)">#<strong>tree</strong> &#x21d2; Object </a>
441
+
442
+
443
+
444
+ </span>
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+ <span class="summary_desc"><div class='inline'></div></span>
455
+
456
+ </li>
457
+
458
+
459
+ <li class="public ">
460
+ <span class="summary_signature">
461
+
462
+ <a href="#validate!-instance_method" title="#validate! (instance method)">#<strong>validate!</strong> &#x21d2; Object </a>
463
+
464
+
465
+
466
+ </span>
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+
476
+ <span class="summary_desc"><div class='inline'></div></span>
477
+
478
+ </li>
479
+
480
+
481
+ </ul>
482
+
483
+
484
+
485
+
486
+ <div id="constructor_details" class="method_details_list">
487
+ <h2>Constructor Details</h2>
488
+
489
+ <div class="method_details first">
490
+ <h3 class="signature first" id="initialize-instance_method">
491
+
492
+ #<strong>initialize</strong>(attributes = {}) &#x21d2; <tt><span class='object_link'><a href="" title="OptionLab::Models::BinomialModelInputs (class)">BinomialModelInputs</a></span></tt>
493
+
494
+
495
+
496
+
497
+
498
+ </h3><div class="docstring">
499
+ <div class="discussion">
500
+ <p>Returns a new instance of BinomialModelInputs.</p>
501
+
502
+
503
+ </div>
504
+ </div>
505
+ <div class="tags">
506
+
507
+
508
+ </div><table class="source_code">
509
+ <tr>
510
+ <td>
511
+ <pre class="lines">
512
+
513
+
514
+ 551
515
+ 552
516
+ 553
517
+ 554
518
+ 555
519
+ 556
520
+ 557
521
+ 558
522
+ 559</pre>
523
+ </td>
524
+ <td>
525
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 551</span>
526
+
527
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
528
+ <span class='comment'># Set defaults
529
+ </span> <span class='ivar'>@option_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>call</span><span class='tstring_end'>&#39;</span></span>
530
+ <span class='ivar'>@steps</span> <span class='op'>=</span> <span class='int'>100</span>
531
+ <span class='ivar'>@is_american</span> <span class='op'>=</span> <span class='kw'>true</span>
532
+ <span class='ivar'>@dividend_yield</span> <span class='op'>=</span> <span class='float'>0.0</span>
533
+
534
+ <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
535
+ <span class='kw'>end</span></pre>
536
+ </td>
537
+ </tr>
538
+ </table>
539
+ </div>
540
+
541
+ </div>
542
+
543
+ <div id="instance_attr_details" class="attr_details">
544
+ <h2>Instance Attribute Details</h2>
545
+
546
+
547
+ <span id="dividend_yield=-instance_method"></span>
548
+ <div class="method_details first">
549
+ <h3 class="signature first" id="dividend_yield-instance_method">
550
+
551
+ #<strong>dividend_yield</strong> &#x21d2; <tt>Object</tt>
552
+
553
+
554
+
555
+
556
+
557
+ </h3><div class="docstring">
558
+ <div class="discussion">
559
+ <p>Returns the value of attribute dividend_yield.</p>
560
+
561
+
562
+ </div>
563
+ </div>
564
+ <div class="tags">
565
+
566
+
567
+ </div><table class="source_code">
568
+ <tr>
569
+ <td>
570
+ <pre class="lines">
571
+
572
+
573
+ 541
574
+ 542
575
+ 543</pre>
576
+ </td>
577
+ <td>
578
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
579
+
580
+ <span class='kw'>def</span> <span class='id identifier rubyid_dividend_yield'>dividend_yield</span>
581
+ <span class='ivar'>@dividend_yield</span>
582
+ <span class='kw'>end</span></pre>
583
+ </td>
584
+ </tr>
585
+ </table>
586
+ </div>
587
+
588
+
589
+ <span id="interest_rate=-instance_method"></span>
590
+ <div class="method_details ">
591
+ <h3 class="signature " id="interest_rate-instance_method">
592
+
593
+ #<strong>interest_rate</strong> &#x21d2; <tt>Object</tt>
594
+
595
+
596
+
597
+
598
+
599
+ </h3><div class="docstring">
600
+ <div class="discussion">
601
+ <p>Returns the value of attribute interest_rate.</p>
602
+
603
+
604
+ </div>
605
+ </div>
606
+ <div class="tags">
607
+
608
+
609
+ </div><table class="source_code">
610
+ <tr>
611
+ <td>
612
+ <pre class="lines">
613
+
614
+
615
+ 541
616
+ 542
617
+ 543</pre>
618
+ </td>
619
+ <td>
620
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
621
+
622
+ <span class='kw'>def</span> <span class='id identifier rubyid_interest_rate'>interest_rate</span>
623
+ <span class='ivar'>@interest_rate</span>
624
+ <span class='kw'>end</span></pre>
625
+ </td>
626
+ </tr>
627
+ </table>
628
+ </div>
629
+
630
+
631
+ <span id="is_american=-instance_method"></span>
632
+ <div class="method_details ">
633
+ <h3 class="signature " id="is_american-instance_method">
634
+
635
+ #<strong>is_american</strong> &#x21d2; <tt>Object</tt>
636
+
637
+
638
+
639
+
640
+
641
+ </h3><div class="docstring">
642
+ <div class="discussion">
643
+ <p>Returns the value of attribute is_american.</p>
644
+
645
+
646
+ </div>
647
+ </div>
648
+ <div class="tags">
649
+
650
+
651
+ </div><table class="source_code">
652
+ <tr>
653
+ <td>
654
+ <pre class="lines">
655
+
656
+
657
+ 541
658
+ 542
659
+ 543</pre>
660
+ </td>
661
+ <td>
662
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
663
+
664
+ <span class='kw'>def</span> <span class='id identifier rubyid_is_american'>is_american</span>
665
+ <span class='ivar'>@is_american</span>
666
+ <span class='kw'>end</span></pre>
667
+ </td>
668
+ </tr>
669
+ </table>
670
+ </div>
671
+
672
+
673
+ <span id="option_type=-instance_method"></span>
674
+ <div class="method_details ">
675
+ <h3 class="signature " id="option_type-instance_method">
676
+
677
+ #<strong>option_type</strong> &#x21d2; <tt>Object</tt>
678
+
679
+
680
+
681
+
682
+
683
+ </h3><div class="docstring">
684
+ <div class="discussion">
685
+ <p>Returns the value of attribute option_type.</p>
686
+
687
+
688
+ </div>
689
+ </div>
690
+ <div class="tags">
691
+
692
+
693
+ </div><table class="source_code">
694
+ <tr>
695
+ <td>
696
+ <pre class="lines">
697
+
698
+
699
+ 541
700
+ 542
701
+ 543</pre>
702
+ </td>
703
+ <td>
704
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
705
+
706
+ <span class='kw'>def</span> <span class='id identifier rubyid_option_type'>option_type</span>
707
+ <span class='ivar'>@option_type</span>
708
+ <span class='kw'>end</span></pre>
709
+ </td>
710
+ </tr>
711
+ </table>
712
+ </div>
713
+
714
+
715
+ <span id="steps=-instance_method"></span>
716
+ <div class="method_details ">
717
+ <h3 class="signature " id="steps-instance_method">
718
+
719
+ #<strong>steps</strong> &#x21d2; <tt>Object</tt>
720
+
721
+
722
+
723
+
724
+
725
+ </h3><div class="docstring">
726
+ <div class="discussion">
727
+ <p>Returns the value of attribute steps.</p>
728
+
729
+
730
+ </div>
731
+ </div>
732
+ <div class="tags">
733
+
734
+
735
+ </div><table class="source_code">
736
+ <tr>
737
+ <td>
738
+ <pre class="lines">
739
+
740
+
741
+ 541
742
+ 542
743
+ 543</pre>
744
+ </td>
745
+ <td>
746
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
747
+
748
+ <span class='kw'>def</span> <span class='id identifier rubyid_steps'>steps</span>
749
+ <span class='ivar'>@steps</span>
750
+ <span class='kw'>end</span></pre>
751
+ </td>
752
+ </tr>
753
+ </table>
754
+ </div>
755
+
756
+
757
+ <span id="stock_price=-instance_method"></span>
758
+ <div class="method_details ">
759
+ <h3 class="signature " id="stock_price-instance_method">
760
+
761
+ #<strong>stock_price</strong> &#x21d2; <tt>Object</tt>
762
+
763
+
764
+
765
+
766
+
767
+ </h3><div class="docstring">
768
+ <div class="discussion">
769
+ <p>Returns the value of attribute stock_price.</p>
770
+
771
+
772
+ </div>
773
+ </div>
774
+ <div class="tags">
775
+
776
+
777
+ </div><table class="source_code">
778
+ <tr>
779
+ <td>
780
+ <pre class="lines">
781
+
782
+
783
+ 541
784
+ 542
785
+ 543</pre>
786
+ </td>
787
+ <td>
788
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
789
+
790
+ <span class='kw'>def</span> <span class='id identifier rubyid_stock_price'>stock_price</span>
791
+ <span class='ivar'>@stock_price</span>
792
+ <span class='kw'>end</span></pre>
793
+ </td>
794
+ </tr>
795
+ </table>
796
+ </div>
797
+
798
+
799
+ <span id="strike=-instance_method"></span>
800
+ <div class="method_details ">
801
+ <h3 class="signature " id="strike-instance_method">
802
+
803
+ #<strong>strike</strong> &#x21d2; <tt>Object</tt>
804
+
805
+
806
+
807
+
808
+
809
+ </h3><div class="docstring">
810
+ <div class="discussion">
811
+ <p>Returns the value of attribute strike.</p>
812
+
813
+
814
+ </div>
815
+ </div>
816
+ <div class="tags">
817
+
818
+
819
+ </div><table class="source_code">
820
+ <tr>
821
+ <td>
822
+ <pre class="lines">
823
+
824
+
825
+ 541
826
+ 542
827
+ 543</pre>
828
+ </td>
829
+ <td>
830
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
831
+
832
+ <span class='kw'>def</span> <span class='id identifier rubyid_strike'>strike</span>
833
+ <span class='ivar'>@strike</span>
834
+ <span class='kw'>end</span></pre>
835
+ </td>
836
+ </tr>
837
+ </table>
838
+ </div>
839
+
840
+
841
+ <span id="volatility=-instance_method"></span>
842
+ <div class="method_details ">
843
+ <h3 class="signature " id="volatility-instance_method">
844
+
845
+ #<strong>volatility</strong> &#x21d2; <tt>Object</tt>
846
+
847
+
848
+
849
+
850
+
851
+ </h3><div class="docstring">
852
+ <div class="discussion">
853
+ <p>Returns the value of attribute volatility.</p>
854
+
855
+
856
+ </div>
857
+ </div>
858
+ <div class="tags">
859
+
860
+
861
+ </div><table class="source_code">
862
+ <tr>
863
+ <td>
864
+ <pre class="lines">
865
+
866
+
867
+ 541
868
+ 542
869
+ 543</pre>
870
+ </td>
871
+ <td>
872
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
873
+
874
+ <span class='kw'>def</span> <span class='id identifier rubyid_volatility'>volatility</span>
875
+ <span class='ivar'>@volatility</span>
876
+ <span class='kw'>end</span></pre>
877
+ </td>
878
+ </tr>
879
+ </table>
880
+ </div>
881
+
882
+
883
+ <span id="years_to_maturity=-instance_method"></span>
884
+ <div class="method_details ">
885
+ <h3 class="signature " id="years_to_maturity-instance_method">
886
+
887
+ #<strong>years_to_maturity</strong> &#x21d2; <tt>Object</tt>
888
+
889
+
890
+
891
+
892
+
893
+ </h3><div class="docstring">
894
+ <div class="discussion">
895
+ <p>Returns the value of attribute years_to_maturity.</p>
896
+
897
+
898
+ </div>
899
+ </div>
900
+ <div class="tags">
901
+
902
+
903
+ </div><table class="source_code">
904
+ <tr>
905
+ <td>
906
+ <pre class="lines">
907
+
908
+
909
+ 541
910
+ 542
911
+ 543</pre>
912
+ </td>
913
+ <td>
914
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 541</span>
915
+
916
+ <span class='kw'>def</span> <span class='id identifier rubyid_years_to_maturity'>years_to_maturity</span>
917
+ <span class='ivar'>@years_to_maturity</span>
918
+ <span class='kw'>end</span></pre>
919
+ </td>
920
+ </tr>
921
+ </table>
922
+ </div>
923
+
924
+ </div>
925
+
926
+
927
+ <div id="instance_method_details" class="method_details_list">
928
+ <h2>Instance Method Details</h2>
929
+
930
+
931
+ <div class="method_details first">
932
+ <h3 class="signature first" id="greeks-instance_method">
933
+
934
+ #<strong>greeks</strong> &#x21d2; <tt>Object</tt>
935
+
936
+
937
+
938
+
939
+
940
+ </h3><table class="source_code">
941
+ <tr>
942
+ <td>
943
+ <pre class="lines">
944
+
945
+
946
+ 587
947
+ 588
948
+ 589
949
+ 590
950
+ 591
951
+ 592
952
+ 593
953
+ 594
954
+ 595
955
+ 596
956
+ 597
957
+ 598
958
+ 599</pre>
959
+ </td>
960
+ <td>
961
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 587</span>
962
+
963
+ <span class='kw'>def</span> <span class='id identifier rubyid_greeks'>greeks</span>
964
+ <span class='const'><span class='object_link'><a href="../../OptionLab.html" title="OptionLab (module)">OptionLab</a></span></span><span class='period'>.</span><span class='id identifier rubyid_get_binomial_greeks'>get_binomial_greeks</span><span class='lparen'>(</span>
965
+ <span class='id identifier rubyid_option_type'>option_type</span><span class='comma'>,</span>
966
+ <span class='id identifier rubyid_stock_price'>stock_price</span><span class='comma'>,</span>
967
+ <span class='id identifier rubyid_strike'>strike</span><span class='comma'>,</span>
968
+ <span class='id identifier rubyid_interest_rate'>interest_rate</span><span class='comma'>,</span>
969
+ <span class='id identifier rubyid_volatility'>volatility</span><span class='comma'>,</span>
970
+ <span class='id identifier rubyid_years_to_maturity'>years_to_maturity</span><span class='comma'>,</span>
971
+ <span class='id identifier rubyid_steps'>steps</span><span class='comma'>,</span>
972
+ <span class='id identifier rubyid_is_american'>is_american</span><span class='comma'>,</span>
973
+ <span class='id identifier rubyid_dividend_yield'>dividend_yield</span><span class='comma'>,</span>
974
+ <span class='rparen'>)</span>
975
+ <span class='kw'>end</span></pre>
976
+ </td>
977
+ </tr>
978
+ </table>
979
+ </div>
980
+
981
+ <div class="method_details ">
982
+ <h3 class="signature " id="price-instance_method">
983
+
984
+ #<strong>price</strong> &#x21d2; <tt>Object</tt>
985
+
986
+
987
+
988
+
989
+
990
+ </h3><table class="source_code">
991
+ <tr>
992
+ <td>
993
+ <pre class="lines">
994
+
995
+
996
+ 573
997
+ 574
998
+ 575
999
+ 576
1000
+ 577
1001
+ 578
1002
+ 579
1003
+ 580
1004
+ 581
1005
+ 582
1006
+ 583
1007
+ 584
1008
+ 585</pre>
1009
+ </td>
1010
+ <td>
1011
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 573</span>
1012
+
1013
+ <span class='kw'>def</span> <span class='id identifier rubyid_price'>price</span>
1014
+ <span class='const'><span class='object_link'><a href="../../OptionLab.html" title="OptionLab (module)">OptionLab</a></span></span><span class='period'>.</span><span class='id identifier rubyid_price_binomial'>price_binomial</span><span class='lparen'>(</span>
1015
+ <span class='id identifier rubyid_option_type'>option_type</span><span class='comma'>,</span>
1016
+ <span class='id identifier rubyid_stock_price'>stock_price</span><span class='comma'>,</span>
1017
+ <span class='id identifier rubyid_strike'>strike</span><span class='comma'>,</span>
1018
+ <span class='id identifier rubyid_interest_rate'>interest_rate</span><span class='comma'>,</span>
1019
+ <span class='id identifier rubyid_volatility'>volatility</span><span class='comma'>,</span>
1020
+ <span class='id identifier rubyid_years_to_maturity'>years_to_maturity</span><span class='comma'>,</span>
1021
+ <span class='id identifier rubyid_steps'>steps</span><span class='comma'>,</span>
1022
+ <span class='id identifier rubyid_is_american'>is_american</span><span class='comma'>,</span>
1023
+ <span class='id identifier rubyid_dividend_yield'>dividend_yield</span><span class='comma'>,</span>
1024
+ <span class='rparen'>)</span>
1025
+ <span class='kw'>end</span></pre>
1026
+ </td>
1027
+ </tr>
1028
+ </table>
1029
+ </div>
1030
+
1031
+ <div class="method_details ">
1032
+ <h3 class="signature " id="tree-instance_method">
1033
+
1034
+ #<strong>tree</strong> &#x21d2; <tt>Object</tt>
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+ </h3><table class="source_code">
1041
+ <tr>
1042
+ <td>
1043
+ <pre class="lines">
1044
+
1045
+
1046
+ 601
1047
+ 602
1048
+ 603
1049
+ 604
1050
+ 605
1051
+ 606
1052
+ 607
1053
+ 608
1054
+ 609
1055
+ 610
1056
+ 611
1057
+ 612
1058
+ 613</pre>
1059
+ </td>
1060
+ <td>
1061
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 601</span>
1062
+
1063
+ <span class='kw'>def</span> <span class='id identifier rubyid_tree'>tree</span>
1064
+ <span class='const'><span class='object_link'><a href="../../OptionLab.html" title="OptionLab (module)">OptionLab</a></span></span><span class='period'>.</span><span class='id identifier rubyid_get_binomial_tree'>get_binomial_tree</span><span class='lparen'>(</span>
1065
+ <span class='id identifier rubyid_option_type'>option_type</span><span class='comma'>,</span>
1066
+ <span class='id identifier rubyid_stock_price'>stock_price</span><span class='comma'>,</span>
1067
+ <span class='id identifier rubyid_strike'>strike</span><span class='comma'>,</span>
1068
+ <span class='id identifier rubyid_interest_rate'>interest_rate</span><span class='comma'>,</span>
1069
+ <span class='id identifier rubyid_volatility'>volatility</span><span class='comma'>,</span>
1070
+ <span class='id identifier rubyid_years_to_maturity'>years_to_maturity</span><span class='comma'>,</span>
1071
+ <span class='lbracket'>[</span><span class='id identifier rubyid_steps'>steps</span><span class='comma'>,</span> <span class='int'>15</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_min'>min</span><span class='comma'>,</span>
1072
+ <span class='id identifier rubyid_is_american'>is_american</span><span class='comma'>,</span>
1073
+ <span class='id identifier rubyid_dividend_yield'>dividend_yield</span><span class='comma'>,</span>
1074
+ <span class='rparen'>)</span>
1075
+ <span class='kw'>end</span></pre>
1076
+ </td>
1077
+ </tr>
1078
+ </table>
1079
+ </div>
1080
+
1081
+ <div class="method_details ">
1082
+ <h3 class="signature " id="validate!-instance_method">
1083
+
1084
+ #<strong>validate!</strong> &#x21d2; <tt>Object</tt>
1085
+
1086
+
1087
+
1088
+
1089
+
1090
+ </h3><div class="docstring">
1091
+ <div class="discussion">
1092
+
1093
+
1094
+ </div>
1095
+ </div>
1096
+ <div class="tags">
1097
+
1098
+ <p class="tag_title">Raises:</p>
1099
+ <ul class="raise">
1100
+
1101
+ <li>
1102
+
1103
+
1104
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
1105
+
1106
+
1107
+
1108
+ </li>
1109
+
1110
+ </ul>
1111
+
1112
+ </div><table class="source_code">
1113
+ <tr>
1114
+ <td>
1115
+ <pre class="lines">
1116
+
1117
+
1118
+ 561
1119
+ 562
1120
+ 563
1121
+ 564
1122
+ 565
1123
+ 566
1124
+ 567
1125
+ 568
1126
+ 569
1127
+ 570
1128
+ 571</pre>
1129
+ </td>
1130
+ <td>
1131
+ <pre class="code"><span class="info file"># File 'lib/option_lab/models.rb', line 561</span>
1132
+
1133
+ <span class='kw'>def</span> <span class='id identifier rubyid_validate!'>validate!</span>
1134
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>option_type must be &#39;call&#39; or &#39;put&#39;</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='const'><span class='object_link'><a href="../Models.html#OPTION_TYPES-constant" title="OptionLab::Models::OPTION_TYPES (constant)">OPTION_TYPES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_option_type'>option_type</span><span class='rparen'>)</span>
1135
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>stock_price must be positive</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_stock_price'>stock_price</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_stock_price'>stock_price</span><span class='period'>.</span><span class='id identifier rubyid_positive?'>positive?</span>
1136
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>strike must be positive</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_strike'>strike</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_strike'>strike</span><span class='period'>.</span><span class='id identifier rubyid_positive?'>positive?</span>
1137
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>interest_rate must be non-negative</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_interest_rate'>interest_rate</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_interest_rate'>interest_rate</span> <span class='op'>&gt;=</span> <span class='int'>0</span>
1138
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>volatility must be positive</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_volatility'>volatility</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_volatility'>volatility</span><span class='period'>.</span><span class='id identifier rubyid_positive?'>positive?</span>
1139
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>years_to_maturity must be non-negative</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_years_to_maturity'>years_to_maturity</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_years_to_maturity'>years_to_maturity</span> <span class='op'>&gt;=</span> <span class='int'>0</span>
1140
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>steps must be positive</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_steps'>steps</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Integer</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_steps'>steps</span><span class='period'>.</span><span class='id identifier rubyid_positive?'>positive?</span>
1141
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>is_american must be boolean</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_is_american'>is_american</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>TrueClass</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_is_american'>is_american</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>FalseClass</span><span class='rparen'>)</span>
1142
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>dividend_yield must be non-negative</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_dividend_yield'>dividend_yield</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_dividend_yield'>dividend_yield</span> <span class='op'>&gt;=</span> <span class='int'>0</span>
1143
+ <span class='kw'>end</span></pre>
1144
+ </td>
1145
+ </tr>
1146
+ </table>
1147
+ </div>
1148
+
1149
+ </div>
1150
+
1151
+ </div>
1152
+
1153
+ <div id="footer">
1154
+ Generated on Sun Apr 27 16:09:34 2025 by
1155
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1156
+ 0.9.37 (ruby-3.3.3).
1157
+ </div>
1158
+
1159
+ </div>
1160
+ </body>
1161
+ </html>