diff --git a/ec2.py b/ec2.py index b59d3bed069e1fbca2c5c6cd57225ce735c83504..4bfea8a099d2d960883e574aaa324e2c33fc0adb 100644 --- a/ec2.py +++ b/ec2.py @@ -4,62 +4,61 @@ import math, random, sys, json from statistics import mean, stdev -event = json.loads(sys.stdin.read()) +session = json.loads(sys.stdin.read()) -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'] +date = eval(session['key1']) +close = eval(session['key2']) +buy = eval(session['key3']) +sell = eval(session['key4']) +h = int(session['key5']) +d = int(session['key6']) +t = session['key7'] minhistory = h shots = d -var95_list = [] -var99_list = [] +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 + if 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) + percent_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1,len(close_data))]#Calculating percenage change as dataframe method pct_change can't be used + mean = mean(percent_change) + std = 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,std) 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 + var_95_list.append(var95) + var_99_list.append(var99) + dates.append(str(date[i])) + 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) + percent_change = [(close_data[i] - close_data[i-1]) / close_data[i-1] for i in range(1,len(close_data))]#Calculating percenage change as dataframe method pct_change can't be used + mean = mean(percent_change) + std = 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,std) 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)