greeks 1.3 → 1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/Gemfile +21 -2
- data/Gemfile.lock +109 -6
- data/greeks.gemspec +1 -5
- data/lib/greeks/calculations/time_values.rb +6 -2
- data/spec/ed.csv +103 -0
- data/spec/greeks/22days.calls.csv +1 -1
- data/spec/greeks/22days.puts.csv +1 -1
- data/spec/greeks/24days.haliburton.html +3662 -0
- data/spec/greeks/50days.calls.csv +1 -1
- data/spec/greeks/50days.puts.csv +1 -1
- data/spec/greeks/calculations/time_values_spec.rb +11 -1
- data/spec/greeks/greeks_spec.rb +124 -4
- data/spec/spec_helper.rb +7 -4
- data/spec/support/format_float.rb +8 -0
- data/spec/support/nilable_equals.rb +16 -0
- data/spec/support/nilable_equals_pct.rb +16 -0
- data/spec/support/strict_equals.rb +12 -0
- data/spec/support/strict_equals_pct.rb +12 -0
- metadata +18 -31
@@ -1 +1 @@
|
|
1
|
-
:stock_price,:stock_dividend_rate,:federal_reserve_interest_rate,:option_expires_in_days,:option_strike,:option_price,:option_volume,:option_open_interest,:iv,:delta,:gamma,:vega,:rho,:theta,:delta_vs_theta,:annualized_premium_value,:premium_value,:time_value,:annualized_time_value,:break_even
|
1
|
+
:stock_price,:stock_dividend_rate,:federal_reserve_interest_rate,:option_expires_in_days,:option_strike,:option_price,:option_volume,:option_open_interest,:iv,:delta,:gamma,:vega,:rho,:theta,:delta_vs_theta,:annualized_premium_value,:premium_value,:time_value,:annualized_time_value,:break_even
|
data/spec/greeks/50days.puts.csv
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:stock_price,:stock_dividend_rate,:federal_reserve_interest_rate,:option_expires_in_days,:option_strike,:option_price,:option_volume,:option_open_interest,:iv,:delta,:gamma,:vega,:rho,:theta,:delta_vs_theta,:annualized_premium_value,:premium_value,:time_value,:annualized_time_value,:break_even
|
1
|
+
:stock_price,:stock_dividend_rate,:federal_reserve_interest_rate,:option_expires_in_days,:option_strike,:option_price,:option_volume,:option_open_interest,:iv,:delta,:gamma,:vega,:rho,:theta,:delta_vs_theta,:annualized_premium_value,:premium_value,:time_value,:annualized_time_value,:break_even
|
@@ -7,6 +7,16 @@ describe "Math::GreekCalculations::misc_price_ratio_log_less_rates" do
|
|
7
7
|
let(:stock_price) { 10.00 }
|
8
8
|
let(:stock_dividend_rate_f) { 0.00 }
|
9
9
|
let(:option_expires_pct_year) { 1.00 }
|
10
|
+
|
11
|
+
it "Break Even Call" do
|
12
|
+
value = break_even({:option_type => :call, :option_expires_pct_year => 1.0, :option_expires_pct_year_sqrt => 1.0, :option_price => 2.0, :option_strike => 3.0, :stock_price => 4.0, :stock_dividend_rate_f => 5.0, :federal_reserve_interest_rate_f => 6.0, :iv => 7.0})
|
13
|
+
value.round(5).should === 0.000350766161827831.round(5)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "Break Even Put" do
|
17
|
+
value = break_even({:option_type => :put, :option_expires_pct_year => 1.0, :option_expires_pct_year_sqrt => 1.0, :option_price => 2.0, :option_strike => 3.0, :stock_price => 4.0, :stock_dividend_rate_f => 5.0, :federal_reserve_interest_rate_f => 6.0, :iv => 7.0})
|
18
|
+
value.round(5).should === 0.999208650294576.round(5)
|
19
|
+
end
|
10
20
|
|
11
21
|
context "exactly at the money" do
|
12
22
|
let(:option_strike) { 10.00 }
|
@@ -75,4 +85,4 @@ describe "Math::GreekCalculations::misc_price_vs_rate_vs_expires" do
|
|
75
85
|
subject { misc_price_vs_rate_vs_expires(:stock_price => stock_price, :option_expires_pct_year => option_expires_pct_year, :stock_dividend_rate_f => stock_dividend_rate_f) }
|
76
86
|
|
77
87
|
it { should === expected }
|
78
|
-
end
|
88
|
+
end
|
data/spec/greeks/greeks_spec.rb
CHANGED
@@ -25,18 +25,138 @@ describe Math::Greeks::Calculator do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "compute call options @ 22 days" do
|
28
|
-
compare_csv(22, :call)
|
28
|
+
pending # compare_csv(22, :call)
|
29
29
|
end
|
30
30
|
|
31
31
|
it "compute put options @ 22 days" do
|
32
|
-
compare_csv(22, :put)
|
32
|
+
pending # compare_csv(22, :put)
|
33
33
|
end
|
34
34
|
|
35
35
|
it "compute call options @ 50 days" do
|
36
|
-
compare_csv(50, :call)
|
36
|
+
pending # compare_csv(50, :call)
|
37
37
|
end
|
38
38
|
|
39
39
|
it "compute put options @ 50 days" do
|
40
|
-
compare_csv(50, :put)
|
40
|
+
pending # compare_csv(50, :put)
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'Haliburton at 24 days' do
|
44
|
+
let(:last_price) { 50.75 }
|
45
|
+
let(:day_change) { 0.35 }
|
46
|
+
let(:day_change_pct) { 0.69 }
|
47
|
+
let(:interest_rate_assumption_pct) { 0.01 }
|
48
|
+
let(:dividends_until_expiration) { 0.00 }
|
49
|
+
let(:expires_in_days) { 24 }
|
50
|
+
let(:expires_in_year_pct) { (option_expires_in_days + 1.0) / 365.0 }
|
51
|
+
|
52
|
+
# Shared examples for a range of strike prices
|
53
|
+
shared_examples 'options' do |option_type, rows|
|
54
|
+
rows.each do |row|
|
55
|
+
context "#{option_type.to_s} @ #{row.first} ->" do
|
56
|
+
before(:each) do
|
57
|
+
@opts = {
|
58
|
+
stock_price: last_price,
|
59
|
+
stock_dividend_rate: dividends_until_expiration / last_price,
|
60
|
+
option_type: option_type,
|
61
|
+
option_strike: row[0],
|
62
|
+
option_price: (row[2] + row[4]) / 2.0, # Mid,
|
63
|
+
option_expires_in_days: expires_in_days,
|
64
|
+
federal_reserve_interest_rate: interest_rate_assumption_pct,
|
65
|
+
option_volume: row[9],
|
66
|
+
option_open_interest: row[10]
|
67
|
+
}
|
68
|
+
@greek = Math::Greeks::Calculator.new(@opts)
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'break_even' do
|
72
|
+
@greek.break_even.should nilable_equals_pct row[-2], 2
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'premium_value' do
|
76
|
+
@greek.premium_value.should strict_equals row[-5], 2
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'time_value' do
|
80
|
+
@greek.time_value.should strict_equals row[-4], 2
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'annualized_premium_value' do
|
84
|
+
@greek.annualized_premium_value.should strict_equals row[-6], 2
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'annualized_time_value' do
|
88
|
+
@greek.annualized_time_value.should strict_equals row[-3], 2
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'iv' do
|
92
|
+
@greek.iv.should nilable_equals_pct row[11], 1
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context '>>' do
|
99
|
+
# Strike, Last Trade, Bid, Mid, Ask, Change, Change (Price), Change (IV), Change (Time), Volume, Open Interest, Implied Volatility, Delta Implied Volatility, Delta (%/%), Delta/ Theta, MOE, Strike/ Stock, Annualized Premium, Intrinsic Value, Time Value, Annualized Time Value, Chance of Breakeven, Break Even Return %
|
100
|
+
@option_calls = [
|
101
|
+
[38.00,12.50,12.75,12.80,12.85,0.00,0.33,0.33,0.03,1,64,55.2,-24.7,3.9,-73.50,0.20,75,423.85,12.75,0.05,1.92,46.85,0.10],
|
102
|
+
[39.00,12.25,11.75,11.80,11.85,0.00,0.32,0.33,0.03,39,39,50.8,-23.3,4.2,-75.04,0.20,77,385.93,11.75,0.05,1.87,47.06,0.10],
|
103
|
+
[40.00,'N/A',10.75,10.80,10.85,0.00,0.32,0.33,0.03,0,0,46.5,-21.9,4.6,-76.76,0.20,79,348.96,10.75,0.05,1.82,47.25,0.10],
|
104
|
+
[41.00,'N/A',9.75,9.80,9.85,0.00,0.32,0.33,0.03,0,0,42.3,-20.6,5.1,-78.69,0.20,81,312.91,9.75,0.05,1.78,47.44,0.10],
|
105
|
+
[42.00,'N/A',8.75,8.83,8.90,0.00,0.32,0.33,0.03,0,0,40.8,-17.5,5.6,-59.81,0.31,83,278.45,8.75,0.08,2.60,47.32,0.15],
|
106
|
+
[43.00,'N/A',7.80,7.85,7.90,0.00,0.31,0.32,0.03,0,0,38.6,-15.1,6.2,-49.24,0.21,85,244.81,7.75,0.10,3.39,47.21,0.20],
|
107
|
+
[44.00,'N/A',6.80,6.85,6.90,0.00,0.31,0.32,0.03,0,0,34.2,-13.9,7.0,-50.74,0.21,87,211.25,6.75,0.10,3.31,47.34,0.20],
|
108
|
+
[45.00,5.30,5.85,5.90,5.95,0.00,0.30,0.30,0.03,41,30,33.0,-11.1,8.0,-37.61,0.21,89,179.87,5.75,0.15,4.86,46.92,0.30],
|
109
|
+
[46.00,5.60,4.95,5.00,5.05,0.00,0.29,0.29,0.03,3,5,32.4,-8.7,9.0,-26.85,0.22,91,150.65,4.75,0.25,7.91,46.01,0.49],
|
110
|
+
[47.00,3.75,4.05,4.10,4.15,0.00,0.28,0.27,0.03,10,10,30.5,-7.1,10.4,-21.78,0.23,93,122.11,3.75,0.35,10.83,44.99,0.69],
|
111
|
+
[48.00,3.10,3.20,3.25,3.30,0.00,0.26,0.24,0.03,324,209,29.0,-5.4,12.2,-17.38,0.25,95,95.65,2.75,0.50,15.13,43.36,0.99],
|
112
|
+
[49.00,2.30,2.47,2.49,2.50,0.00,0.23,0.21,0.03,58,185,27.8,-4.3,14.3,-13.79,0.08,97,72.23,1.75,0.74,21.74,40.74,1.45],
|
113
|
+
[50.00,1.66,1.81,1.83,1.84,0.00,0.20,0.17,0.03,24,559,27.0,-3.3,16.6,-10.93,0.10,99,52.34,0.75,1.08,31.06,36.99,2.12],
|
114
|
+
[51.00,1.21,1.28,1.29,1.29,0.00,0.17,0.14,0.03,128,300,26.5,-2.6,19.2,-8.78,0.04,100,36.33,0.00,1.29,36.33,32.12,3.02],
|
115
|
+
[52.00,0.81,0.86,0.87,0.88,0.00,0.13,0.10,0.03,115,559,26.2,-2.0,21.8,-7.19,0.11,102,24.22,0.00,0.87,24.22,26.43,4.18],
|
116
|
+
[53.00,0.56,0.57,0.58,0.58,0.00,0.10,0.07,0.02,7,330,26.4,-1.6,24.4,-5.98,0.07,104,15.75,0.00,0.58,15.75,20.64,5.57],
|
117
|
+
[54.00,0.33,0.36,0.37,0.38,0.00,0.07,0.05,0.02,25,33,26.6,-1.3,26.8,-5.09,0.20,106,9.97,0.00,0.37,9.97,15.25,7.13],
|
118
|
+
[55.00,0.20,0.23,0.24,0.24,0.00,0.05,0.03,0.01,11,160,26.9,-1.1,29.0,-4.40,0.15,108,6.22,0.00,0.24,6.22,10.82,8.84],
|
119
|
+
[56.00,0.21,0.14,0.15,0.16,0.00,0.03,0.02,0.01,1,21,27.5,-0.9,30.8,-3.87,0.43,110,3.91,0.00,0.15,3.91,7.45,10.64],
|
120
|
+
[57.00,0.14,0.09,0.10,0.11,0.00,0.02,0.01,0.01,5,22,28.3,-0.8,32.0,-3.43,0.62,112,2.56,0.00,0.10,2.56,5.18,12.51],
|
121
|
+
[58.00,0.11,0.06,0.07,0.08,0.00,0.02,0.01,0.01,11,11,29.4,-0.7,32.5,-3.08,0.88,114,1.76,0.00,0.07,1.76,3.68,14.42],
|
122
|
+
[59.00,0.09,0.04,0.05,0.06,0.00,0.01,0.01,0.01,14,18,30.5,-0.6,32.9,-2.80,1.22,116,1.24,0.00,0.05,1.24,2.64,16.35],
|
123
|
+
[60.00,0.06,0.02,0.03,0.04,0.00,0.01,0.00,0.00,4,34,30.7,-0.5,34.9,-2.58,1.91,118,0.73,0.00,0.03,0.73,1.67,18.29],
|
124
|
+
[61.00,'N/A',0.01,0.03,0.04,0.00,0.01,0.00,0.00,0,0,32.4,-0.4,33.8,-2.37,3.55,120,0.60,0.00,0.03,0.60,1.33,20.25]
|
125
|
+
]
|
126
|
+
|
127
|
+
it_behaves_like 'options', :call, @option_calls
|
128
|
+
end
|
129
|
+
|
130
|
+
context '>>' do
|
131
|
+
@option_puts = [
|
132
|
+
[38.00,0.04,0.03,0.04,0.05,0.00,0.01,0.01,0.00,10,0,52.9,2.1,-19.5,1.44,2.57,75,1.54,0.00,0.04,1.54,2.12,-25.20],
|
133
|
+
# [39.00,0.09,0.04,0.05,0.06,0.00,nil,nil,nil,370,333,nil,nil,nil,nil,nil,77,nil,0.00,nil,nil,nil,nil],
|
134
|
+
[40.00,0.09,0.04,0.05,0.06,0.00,0.01,0.02,0.01,10,12,46.2,2.0,-21.5,1.72,1.86,79,1.82,0.00,0.05,1.82,2.74,-21.28],
|
135
|
+
[41.00,0.07,0.05,0.06,0.07,0.00,0.01,0.02,0.01,7,48,43.3,2.0,-22.3,1.90,1.50,81,2.14,0.00,0.06,2.14,3.31,-19.33],
|
136
|
+
[42.00,0.08,0.06,0.07,0.08,0.00,0.01,0.02,0.01,39,144,40.3,1.9,-23.4,2.12,1.22,83,2.43,0.00,0.07,2.43,3.92,-17.38],
|
137
|
+
[43.00,0.10,0.08,0.09,0.10,0.00,0.01,0.03,0.01,59,117,37.9,2.0,-24.0,2.37,0.93,85,3.05,0.00,0.09,3.05,5.01,-15.45],
|
138
|
+
[44.00,0.11,0.11,0.12,0.12,0.00,0.02,0.03,0.01,16,41,35.3,2.0,-24.6,2.68,0.35,87,3.81,0.00,0.12,3.81,6.33,-13.53],
|
139
|
+
[45.00,0.16,0.15,0.16,0.16,0.00,0.03,0.04,0.01,10,20,33.1,2.0,-24.9,3.07,0.26,89,5.02,0.00,0.16,5.02,8.28,-11.64],
|
140
|
+
[46.00,0.21,0.21,0.22,0.23,0.00,0.04,0.06,0.01,15,28,31.3,2.1,-24.7,3.55,0.37,91,6.97,0.00,0.22,6.97,11.14,-9.79],
|
141
|
+
[47.00,0.34,0.31,0.32,0.33,0.00,0.05,0.08,0.02,1,235,29.6,2.3,-24.0,4.17,0.26,93,9.91,0.00,0.32,9.91,14.90,-8.02],
|
142
|
+
[48.00,0.56,0.47,0.48,0.49,0.00,0.07,0.11,0.02,38,80,28.5,2.5,-22.9,4.95,0.18,95,14.53,0.00,0.48,14.53,19.90,-6.36],
|
143
|
+
[49.00,0.75,0.70,0.71,0.72,0.00,0.11,0.14,0.02,13,360,27.2,2.8,-21.3,6.04,0.13,97,21.00,0.00,0.71,21.00,25.40,-4.85],
|
144
|
+
[50.00,1.23,1.04,1.05,1.06,0.00,0.14,0.17,0.02,654,527,26.5,3.3,-19.4,7.49,0.10,99,30.34,0.00,1.05,30.34,31.34,-3.55],
|
145
|
+
[51.00,1.58,1.50,1.51,1.52,0.00,0.19,0.21,0.02,72,506,26.0,4.0,-17.3,9.49,0.08,100,42.60,0.25,1.26,35.63,36.87,-2.48],
|
146
|
+
[52.00,2.18,2.09,2.10,2.11,0.00,0.24,0.25,0.02,34,134,25.9,5.2,-15.2,12.26,0.06,102,57.80,1.25,0.85,23.67,41.45,-1.67],
|
147
|
+
[53.00,3.10,2.78,2.81,2.83,0.00,0.29,0.28,0.01,1,32,25.9,7.4,-13.2,16.13,0.14,104,75.29,2.25,0.56,15.21,44.90,-1.09],
|
148
|
+
[54.00,4.05,3.55,3.60,3.65,0.00,0.35,0.31,0.00,6,82,26.0,16.1,-11.4,21.92,0.24,106,94.23,3.25,0.35,9.43,47.30,-0.69],
|
149
|
+
[55.00,4.50,4.40,4.45,4.50,0.00,nil,nil,nil,34,35,25.7,nil,-10.0,32.10,0.22,108,113.59,4.25,0.20,5.30,49.00,-0.39],
|
150
|
+
[56.00,5.70,5.30,5.38,5.45,0.00,nil,nil,nil,4,33,26.5,nil,-8.7,43.23,0.32,110,133.81,5.25,0.13,3.26,49.96,-0.25],
|
151
|
+
[57.00,6.20,6.25,6.33,6.40,0.00,nil,nil,nil,44,44,26.7,nil,-7.6,63.70,0.31,112,153.63,6.25,0.08,1.92,50.55,-0.15],
|
152
|
+
[58.00,'N/A',7.25,7.30,7.35,0.00,nil,nil,nil,0,0,27.8,nil,-6.7,83.53,0.20,114,173.08,7.25,0.05,1.26,50.91,-0.10],
|
153
|
+
[59.00,'N/A',8.25,8.30,8.35,0.00,nil,nil,nil,0,0,30.7,nil,-5.9,80.81,0.20,116,192.17,8.25,0.05,1.24,51.11,-0.10],
|
154
|
+
[60.00,'N/A',9.20,9.28,9.35,0.00,nil,nil,nil,0,0,30.0,nil,-5.4,140.41,0.30,118,209.86,9.25,0.03,0.61,51.31,-0.05],
|
155
|
+
[61.00,11.40,10.20,10.28,10.35,0.00,nil,nil,nil,23,23,32.5,nil,-4.9,137.37,0.30,120,227.28,10.25,0.03,0.60,51.46,-0.05]
|
156
|
+
]
|
157
|
+
|
158
|
+
it_behaves_like 'options', :put, @option_puts
|
159
|
+
end
|
160
|
+
|
41
161
|
end
|
42
162
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,19 +1,22 @@
|
|
1
|
+
$:.push File.expand_path("../lib", File.dirname(__FILE__))
|
1
2
|
require 'rubygems'
|
3
|
+
require 'greeks'
|
4
|
+
|
2
5
|
require 'rspec'
|
3
6
|
require 'rspec-expectations'
|
4
7
|
require 'benchmark'
|
5
8
|
require 'require_all'
|
6
9
|
require 'csv'
|
7
|
-
|
8
|
-
|
9
|
-
require '
|
10
|
+
require 'rantly/property'
|
11
|
+
require 'rantly/rspec_extensions'
|
12
|
+
require 'pry'
|
13
|
+
require 'pry-nav'
|
10
14
|
|
11
15
|
$spec_root = File.dirname(__FILE__)
|
12
16
|
|
13
17
|
require_all File.join($spec_root, 'support')
|
14
18
|
require_all File.join($spec_root, 'helpers')
|
15
19
|
|
16
|
-
|
17
20
|
RSpec.configure do |config|
|
18
21
|
config.include Math::GreekCalculationShorthandHelpers
|
19
22
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec-expectations'
|
3
|
+
|
4
|
+
RSpec::Matchers.define :nilable_equals do |expected, decimal_places|
|
5
|
+
match do |actual|
|
6
|
+
if expected.nil? || expected.zero?
|
7
|
+
actual.should be_nil
|
8
|
+
else
|
9
|
+
actual.should strict_equals expected, decimal_places
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
failure_message_for_should do |actual|
|
14
|
+
"expected that '#{actual}' would match of '#{expected}' to within '#{decimal_places}' decimal places"
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec-expectations'
|
3
|
+
|
4
|
+
RSpec::Matchers.define :nilable_equals_pct do |expected, decimal_places|
|
5
|
+
match do |actual|
|
6
|
+
if expected.nil? || expected.zero?
|
7
|
+
actual.should be_nil
|
8
|
+
else
|
9
|
+
actual.should strict_equals_pct expected, decimal_places
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
failure_message_for_should do |actual|
|
14
|
+
"expected that '#{actual}' would match of '#{expected}' to within '#{decimal_places}' decimal places"
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec-expectations'
|
3
|
+
|
4
|
+
RSpec::Matchers.define :strict_equals do |expected, decimal_places|
|
5
|
+
match do |actual|
|
6
|
+
FormatFloat(actual, decimal_places).should == expected
|
7
|
+
end
|
8
|
+
|
9
|
+
failure_message_for_should do |actual|
|
10
|
+
"expected that '#{actual}' would match of '#{expected}' to within '#{decimal_places}' decimal places"
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec-expectations'
|
3
|
+
|
4
|
+
RSpec::Matchers.define :strict_equals_pct do |expected, decimal_places|
|
5
|
+
match do |actual|
|
6
|
+
FormatFloat(actual.to_f * 100.0, decimal_places).should == expected
|
7
|
+
end
|
8
|
+
|
9
|
+
failure_message_for_should do |actual|
|
10
|
+
"expected that '#{actual}' would match of '#{expected}' to within '#{decimal_places}' decimal places"
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: greeks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Glenn Nagel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: require_all
|
@@ -38,34 +38,6 @@ dependencies:
|
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec-expectations
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
41
|
description: Calculate greeks (iv, delta, gamma, vega, rho, theta)
|
70
42
|
email:
|
71
43
|
- glenn@mercury-wireless.com
|
@@ -74,6 +46,7 @@ extensions: []
|
|
74
46
|
extra_rdoc_files: []
|
75
47
|
files:
|
76
48
|
- .gitignore
|
49
|
+
- .rspec
|
77
50
|
- Gemfile
|
78
51
|
- Gemfile.lock
|
79
52
|
- README.md
|
@@ -88,8 +61,10 @@ files:
|
|
88
61
|
- lib/greeks/calculations/theta.rb
|
89
62
|
- lib/greeks/calculations/time_values.rb
|
90
63
|
- lib/greeks/calculations/vega.rb
|
64
|
+
- spec/ed.csv
|
91
65
|
- spec/greeks/22days.calls.csv
|
92
66
|
- spec/greeks/22days.puts.csv
|
67
|
+
- spec/greeks/24days.haliburton.html
|
93
68
|
- spec/greeks/50days.calls.csv
|
94
69
|
- spec/greeks/50days.puts.csv
|
95
70
|
- spec/greeks/calculations/delta_spec.rb
|
@@ -106,6 +81,11 @@ files:
|
|
106
81
|
- spec/helpers/greek_calculation_shorthand_helpers.rb
|
107
82
|
- spec/spec_helper.rb
|
108
83
|
- spec/support/calculate_greeks_hash.rb
|
84
|
+
- spec/support/format_float.rb
|
85
|
+
- spec/support/nilable_equals.rb
|
86
|
+
- spec/support/nilable_equals_pct.rb
|
87
|
+
- spec/support/strict_equals.rb
|
88
|
+
- spec/support/strict_equals_pct.rb
|
109
89
|
homepage: https://github.com/gnagel/greeks
|
110
90
|
licenses:
|
111
91
|
- MIT
|
@@ -127,14 +107,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
107
|
version: '0'
|
128
108
|
requirements: []
|
129
109
|
rubyforge_project:
|
130
|
-
rubygems_version: 2.
|
110
|
+
rubygems_version: 2.1.11
|
131
111
|
signing_key:
|
132
112
|
specification_version: 4
|
133
113
|
summary: Calculate greeks for options trading (Implied Volatility, Delta, Gamma, Vega,
|
134
114
|
Rho, and Theta)
|
135
115
|
test_files:
|
116
|
+
- spec/ed.csv
|
136
117
|
- spec/greeks/22days.calls.csv
|
137
118
|
- spec/greeks/22days.puts.csv
|
119
|
+
- spec/greeks/24days.haliburton.html
|
138
120
|
- spec/greeks/50days.calls.csv
|
139
121
|
- spec/greeks/50days.puts.csv
|
140
122
|
- spec/greeks/calculations/delta_spec.rb
|
@@ -151,3 +133,8 @@ test_files:
|
|
151
133
|
- spec/helpers/greek_calculation_shorthand_helpers.rb
|
152
134
|
- spec/spec_helper.rb
|
153
135
|
- spec/support/calculate_greeks_hash.rb
|
136
|
+
- spec/support/format_float.rb
|
137
|
+
- spec/support/nilable_equals.rb
|
138
|
+
- spec/support/nilable_equals_pct.rb
|
139
|
+
- spec/support/strict_equals.rb
|
140
|
+
- spec/support/strict_equals_pct.rb
|