From 31dff4cf358c598ab20b7e6583961b639a2dc68a Mon Sep 17 00:00:00 2001 From: "Madhavan Pillai Sasidharan Nai, Meenu (PG/T - Comp Sci & Elec Eng)" <mm03943@surrey.ac.uk> Date: Sun, 5 May 2024 13:52:03 +0000 Subject: [PATCH] Upload New File --- ec2.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 ec2.py diff --git a/ec2.py b/ec2.py new file mode 100644 index 0000000..b59d3be --- /dev/null +++ b/ec2.py @@ -0,0 +1,65 @@ +#!/usr/bin/python3 + +import math, random, sys, json +from statistics import mean, stdev + + +event = 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'] +minhistory = h +shots = d +var95_list = [] +var99_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) + # generate much larger random number series with same broad characteristics + simulated = [random.gauss(mn,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 + 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) + # generate much larger random number series with same broad characteristics + simulated = [random.gauss(mn,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])) + +output = {"dates" : dates, + "var95" : var95_list, + "var99" : var99_list + } + +output = json.dumps(output) + +print("Content-Type: application/json") +print() +print(output) + -- GitLab