File: VanillaOption.cs

package info (click to toggle)
quantlib-swig 0.3.13-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 43,120 kB
  • ctags: 74,378
  • sloc: cpp: 795,926; ansic: 103,715; ml: 39,516; cs: 24,631; java: 17,063; perl: 12,601; python: 6,752; lisp: 2,223; ruby: 1,103; sh: 458; makefile: 319
file content (133 lines) | stat: -rw-r--r-- 5,766 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.29
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

namespace QuantLib {

using System;
using System.Runtime.InteropServices;

public class VanillaOption : Instrument {
  private HandleRef swigCPtr;

  internal VanillaOption(IntPtr cPtr, bool cMemoryOwn) : base(NQuantLibcPINVOKE.VanillaOptionUpcast(cPtr), cMemoryOwn) {
    swigCPtr = new HandleRef(this, cPtr);
  }

  internal static HandleRef getCPtr(VanillaOption obj) {
    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
  }

  ~VanillaOption() {
    Dispose();
  }

  public override void Dispose() {
    if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
      swigCMemOwn = false;
      NQuantLibcPINVOKE.delete_VanillaOption(swigCPtr);
    }
    swigCPtr = new HandleRef(null, IntPtr.Zero);
    GC.SuppressFinalize(this);
    base.Dispose();
  }

  public VanillaOption(StochasticProcess process, Payoff payoff, Exercise exercise, PricingEngine engine) : this(NQuantLibcPINVOKE.new_VanillaOption__SWIG_0(StochasticProcess.getCPtr(process), Payoff.getCPtr(payoff), Exercise.getCPtr(exercise), PricingEngine.getCPtr(engine)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public VanillaOption(StochasticProcess process, Payoff payoff, Exercise exercise) : this(NQuantLibcPINVOKE.new_VanillaOption__SWIG_1(StochasticProcess.getCPtr(process), Payoff.getCPtr(payoff), Exercise.getCPtr(exercise)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public double delta() {
    double ret = NQuantLibcPINVOKE.VanillaOption_delta(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double gamma() {
    double ret = NQuantLibcPINVOKE.VanillaOption_gamma(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double theta() {
    double ret = NQuantLibcPINVOKE.VanillaOption_theta(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double thetaPerDay() {
    double ret = NQuantLibcPINVOKE.VanillaOption_thetaPerDay(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double vega() {
    double ret = NQuantLibcPINVOKE.VanillaOption_vega(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double rho() {
    double ret = NQuantLibcPINVOKE.VanillaOption_rho(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double dividendRho() {
    double ret = NQuantLibcPINVOKE.VanillaOption_dividendRho(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double strikeSensitivity() {
    double ret = NQuantLibcPINVOKE.VanillaOption_strikeSensitivity(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public SampledCurve priceCurve() {
    SampledCurve ret = new SampledCurve(NQuantLibcPINVOKE.VanillaOption_priceCurve(swigCPtr), true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double impliedVolatility(double targetValue, double accuracy, uint maxEvaluations, double minVol, double maxVol) {
    double ret = NQuantLibcPINVOKE.VanillaOption_impliedVolatility__SWIG_0(swigCPtr, targetValue, accuracy, maxEvaluations, minVol, maxVol);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double impliedVolatility(double targetValue, double accuracy, uint maxEvaluations, double minVol) {
    double ret = NQuantLibcPINVOKE.VanillaOption_impliedVolatility__SWIG_1(swigCPtr, targetValue, accuracy, maxEvaluations, minVol);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double impliedVolatility(double targetValue, double accuracy, uint maxEvaluations) {
    double ret = NQuantLibcPINVOKE.VanillaOption_impliedVolatility__SWIG_2(swigCPtr, targetValue, accuracy, maxEvaluations);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double impliedVolatility(double targetValue, double accuracy) {
    double ret = NQuantLibcPINVOKE.VanillaOption_impliedVolatility__SWIG_3(swigCPtr, targetValue, accuracy);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double impliedVolatility(double targetValue) {
    double ret = NQuantLibcPINVOKE.VanillaOption_impliedVolatility__SWIG_4(swigCPtr, targetValue);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}