Skip to content
Snippets Groups Projects

Update ec2.py

parent 05003872
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/python3
import math, random, sys, json
from statistics import mean, stdev
import math, random, sys, json
event = json.loads(sys.stdin.read())
args = sys.stdin.read()
session = json.loads(args)
dt = eval(event['key1'])
close = eval(event['key2'])
buy = eval(event['key3'])
sell = eval(event['key4'])
h = int(event['key5'])
d = int(event['key6'])
t = event['key7']
minhistory = h
shots = d
var95_list = []
var99_list = []
date = eval(session['key1'])
close = eval(session['key2'])
buy = eval(session['key3'])
sell = eval(session['key4'])
minhistory = int(session['key5'])
shots = int(session['key6'])
t = session['key7']
var_95_list = []
var_99_list = []
dates = []
for i in range(minhistory, len(close)):
if t == "buy":
if buy[i] == 1: # if we’re interested in Buy signals
close_data = close[i-minhistory:i]
pct_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1,len(close_data))]
mn = mean(pct_change)
std = stdev(pct_change)
if t == "sell":
if sell[i] == 1: #If it is to sell
closing = close[i-minhistory:i]
percent_change = [(closing[i] - closing[i-1]) / closing[i-1] for i in range(1,len(closing))]#Calculating percenage change as dataframe method pct_change can't be used
mean_value = mean(percent_change)
std_value = stdev(percent_change)
# generate much larger random number series with same broad characteristics
simulated = [random.gauss(mn,std) for x in range(shots)]
simulated = [random.gauss(mean_value,std_value) for x in range(shots)]
# sort and pick 95% and 99% - not distinguishing long/short risks here
simulated.sort(reverse=True)
var95 = simulated[int(len(simulated)*0.95)]
var99 = simulated[int(len(simulated)*0.99)]
var95_list.append(var95)
var99_list.append(var99)
dates.append(str(dt[i]))
elif t == "sell":
if sell[i] == 1: # if we’re interested in Sell signals
close_data = close[i-minhistory:i]
pct_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1,len(close_data))]
mn = mean(pct_change)
std = stdev(pct_change)
var_95_list.append(var95)
var_99_list.append(var99)
dates.append(str(date[i]))
if t == "buy":
if buy[i] == 1: #If it is to buy
closing = close[i-minhistory:i]
percent_change = [(closing[i] - closing[i-1]) / closing[i-1] for i in range(1,len(closing))]#Calculating percenage change as dataframe method pct_change can't be used
mean_value = mean(percent_change)
std_value = stdev(percent_change)
# generate much larger random number series with same broad characteristics
simulated = [random.gauss(mn,std) for x in range(shots)]
simulated = [random.gauss(mean_value,std_value) for x in range(shots)]
# sort and pick 95% and 99% - not distinguishing long/short risks here
simulated.sort(reverse=True)
var95 = simulated[int(len(simulated)*0.95)]
var99 = simulated[int(len(simulated)*0.99)]
var95_list.append(var95)
var99_list.append(var99)
dates.append(str(dt[i]))
var_95_list.append(var95)
var_99_list.append(var99)
dates.append(str(date[i]))
output = {"dates" : dates,
"var95" : var95_list,
"var99" : var99_list
"var95" : var_95_list,
"var99" : var_99_list
}
output = json.dumps(output)
final_output = json.dumps(output)
print("Content-Type: application/json")
print()
print(output)
print(final_output)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment