diff --git a/val_sim.py b/val_sim.py index f38741313b639e21f6a8ee1d278df571a227891d..845256b66d1d228a9c411089f22cf31372013f93 100644 --- a/val_sim.py +++ b/val_sim.py @@ -1,16 +1,13 @@ -#The below code was referenced and modified as per the requirement from the code provided on course work desciption document. -#The handling of the input from the GAE(codes from line 9 to 18) are adopted from Python3 documentation https://docs.python.org/3/library/ #!/usr/bin/python3 -import math, random, sys, json -from statistics import mean, stdev +import sys, json import cgitb cgitb.enable() - +# Load event data from stdin event = json.loads(sys.stdin.read()) - +# Extract input parameters from the event dt = eval(event['key1']) close = eval(event['key2']) buy = eval(event['key3']) @@ -18,42 +15,17 @@ sell = eval(event['key4']) h = int(event['key5']) d = int(event['key6']) t = event['key7'] -minhistory = h -shots = d -var95_list = [] -var99_list = [] -dates = [] - -for i in range(minhistory, len(close)): - if t == "buy": - if buy[i] == 1: - 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))] - mean = mean(pct_change) - std = stdev(pct_change) - simulated = [random.gauss(mean,std) for x in range(shots)] - 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: - 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))] - mean = mean(pct_change) - std = stdev(pct_change) - simulated = [random.gauss(mean,std) for x in range(shots)] - 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])) - -output = {"dates" : dates, - "var95" : var95_list, - "var99" : var99_list - } +# Create the output dictionary with the input parameters +output = { + "dates": dt, + "close": close, + "buy": buy, + "sell": sell, + "h": h, + "d": d, + "t": t +} + +# Print the output as a JSON string +print(json.dumps(output))