Skip to content

Commit 565cc50

Browse files
committed
Cleanup
1 parent 44dd1e5 commit 565cc50

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

Libs/Estimator.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<PropertyGroup>
88
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
9-
<Version>1.0.5</Version>
9+
<Version>1.0.6</Version>
1010
<Description>Statistics and performance metrics in trading, CAGR, Sharpe, MAE, MFE, and others.</Description>
1111
<Authors>artemiusgreat</Authors>
1212
<Copyright>indemos.com</Copyright>

Libs/Services/OptionService.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
namespace Estimator.Services
66
{
7-
public enum OptionSideEnum : byte
8-
{
9-
None = 0,
10-
Put = 1,
11-
Call = 2,
12-
Share = 3
13-
}
14-
157
public class OptionService
168
{
9+
protected enum OptionSideEnum : byte
10+
{
11+
None = 0,
12+
Put = 1,
13+
Call = 2,
14+
Share = 3
15+
}
16+
1717
/// <summary>
1818
/// Asset or nothing
1919
/// </summary>
@@ -52,17 +52,17 @@ private static double D2(double T, double sigma, double d1)
5252
/// <param name="r">continuously compounded risk-free interest rate</param>
5353
/// <param name="q">continuously compounded dividend yield</param>
5454
/// <returns></returns>
55-
public static double Premium(OptionSideEnum optionType, double S, double K, double T, double sigma, double r, double q)
55+
public static double Premium(string optionType, double S, double K, double T, double sigma, double r, double q)
5656
{
5757
double d1 = D1(S, K, T, sigma, r, q);
5858
double d2 = D2(T, sigma, d1);
5959

6060
switch (optionType)
6161
{
62-
case OptionSideEnum.Call:
62+
case nameof(OptionSideEnum.Call):
6363
return S * Math.Exp(-q * T) * Normal.CDF(0, 1, d1) - K * Math.Exp(-r * T) * Normal.CDF(0, 1, d2);
6464

65-
case OptionSideEnum.Put:
65+
case nameof(OptionSideEnum.Put):
6666
return K * Math.Exp(-r * T) * Normal.CDF(0, 1, -d2) - S * Math.Exp(-q * T) * Normal.CDF(0, 1, -d1);
6767
}
6868

@@ -97,7 +97,7 @@ public static double Vega(double S, double K, double T, double sigma, double r,
9797
/// <param name="q"></param>
9898
/// <param name="optionMarketPrice"></param>
9999
/// <returns></returns>
100-
public static double IV(OptionSideEnum optionType, double S, double K, double T, double r, double q, double optionMarketPrice)
100+
public static double IV(string optionType, double S, double K, double T, double r, double q, double optionMarketPrice)
101101
{
102102
Func<double, double> f = sigma => Premium(optionType, S, K, T, sigma, r, q) - optionMarketPrice;
103103
Func<double, double> df = sigma => Vega(S, K, T, sigma, r, q);
@@ -116,14 +116,14 @@ public static double IV(OptionSideEnum optionType, double S, double K, double T,
116116
/// <param name="r">continuously compounded risk-free interest rate</param>
117117
/// <param name="q">continuously compounded dividend yield</param>
118118
/// <returns></returns>
119-
public static double Theta(OptionSideEnum optionType, double S, double K, double T, double sigma, double r, double q)
119+
public static double Theta(string optionType, double S, double K, double T, double sigma, double r, double q)
120120
{
121121
double d1 = D1(S, K, T, sigma, r, q);
122122
double d2 = D2(T, sigma, d1);
123123

124124
switch (optionType)
125125
{
126-
case OptionSideEnum.Call:
126+
case nameof(OptionSideEnum.Call):
127127
{
128128
double theta = -Math.Exp(-q * T) * (S * Normal.PDF(0, 1, d1) * sigma) / (2.0 * Math.Sqrt(T))
129129
- (r * K * Math.Exp(-r * T) * Normal.CDF(0, 1, d2))
@@ -132,7 +132,7 @@ public static double Theta(OptionSideEnum optionType, double S, double K, double
132132
return theta / 365;
133133
}
134134

135-
case OptionSideEnum.Put:
135+
case nameof(OptionSideEnum.Put):
136136
{
137137
double theta = -Math.Exp(-q * T) * (S * Normal.PDF(0, 1, d1) * sigma) / (2.0 * Math.Sqrt(T))
138138
+ (r * K * Math.Exp(-r * T) * Normal.PDF(0, 1, -d2))
@@ -157,16 +157,16 @@ public static double Theta(OptionSideEnum optionType, double S, double K, double
157157
/// <param name="r">continuously compounded risk-free interest rate</param>
158158
/// <param name="q">continuously compounded dividend yield</param>
159159
/// <returns></returns>
160-
public static double Delta(OptionSideEnum optionType, double S, double K, double T, double sigma, double r, double q)
160+
public static double Delta(string optionType, double S, double K, double T, double sigma, double r, double q)
161161
{
162162
double d1 = D1(S, K, T, sigma, r, q);
163163

164164
switch (optionType)
165165
{
166-
case OptionSideEnum.Call:
166+
case nameof(OptionSideEnum.Call):
167167
return Math.Exp(-r * T) * Normal.CDF(0, 1, d1);
168168

169-
case OptionSideEnum.Put:
169+
case nameof(OptionSideEnum.Put):
170170
return -Math.Exp(-r * T) * Normal.CDF(0, 1, -d1);
171171

172172
default:
@@ -201,17 +201,17 @@ public static double Gamma(double S, double K, double T, double sigma, double r,
201201
/// <param name="r">continuously compounded risk-free interest rate</param>
202202
/// <param name="q">continuously compounded dividend yield</param>
203203
/// <returns></returns>
204-
public static double Rho(OptionSideEnum optionType, double S, double K, double T, double sigma, double r, double q)
204+
public static double Rho(string optionType, double S, double K, double T, double sigma, double r, double q)
205205
{
206206
double d1 = D1(S, K, T, sigma, r, q);
207207
double d2 = D2(T, sigma, d1);
208208

209209
switch (optionType)
210210
{
211-
case OptionSideEnum.Call:
211+
case nameof(OptionSideEnum.Call):
212212
return K * T * Math.Exp(-r * T) * Normal.CDF(0, 1, d2);
213213

214-
case OptionSideEnum.Put:
214+
case nameof(OptionSideEnum.Put):
215215
return -K * T * Math.Exp(-r * T) * Normal.CDF(0, 1, -d2);
216216

217217
default:

0 commit comments

Comments
 (0)