-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapplication_data.py
More file actions
66 lines (49 loc) · 2 KB
/
Copy pathapplication_data.py
File metadata and controls
66 lines (49 loc) · 2 KB
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
"""
Used for generating stock model data-set
"""
import numpy as np
import matplotlib.pyplot as plt
import random
def binomial_model(N, S0, u, r, K):
"""
N = number of binomial iterations
S0 = initial stock price
u = factor change of upstate
r = risk free interest rate per annum
K = strike price
"""
d = 1 / u
# make stock price tree
stock = np.zeros([N + 1, N + 1])
for i in range(N + 1):
for j in range(i + 1):
stock[j, i] = S0 * (u ** (i - j)) * (d ** j)
return stock
def generate_stock_objective_values():
"""
Runs Binomial Pricing Tree Model Several Times to create application data-set
"""
np.random.seed(101)
factor_change = 1.3
price = 30
objective_value_tuples = []
for i in range(10):
for j in range(20):
stock_prices = binomial_model(1, price, factor_change, 0.25, 8)
random_factor = np.random.uniform(0.90, 1.1)
optimistic_gain_0 = (stock_prices[0][1] - price) * random_factor
pessimistic_loss_0 = (stock_prices[1][1] - price) * random_factor
random_factor = np.random.uniform(0.90, 1.1)
optimistic_gain_1 = (stock_prices[0][1] - price) * random_factor
random_factor = np.random.uniform(0.90, 1.1)
pessimistic_loss_1 = (stock_prices[1][1] - price) * random_factor
random_factor = np.random.uniform(0.90, 1.1)
optimistic_gain_2 = (stock_prices[0][1] - price) * random_factor
random_factor = np.random.uniform(0.90, 1.1)
pessimistic_loss_2 = (stock_prices[1][1] - price) * random_factor
objective_value_tuples.append((optimistic_gain_0,pessimistic_loss_0))
objective_value_tuples.append((optimistic_gain_1,pessimistic_loss_1))
objective_value_tuples.append((optimistic_gain_2,pessimistic_loss_2))
factor_change += 0.01
price += 0.05
return objective_value_tuples