From 87910c7d05ed81a44b543cbec726d03fcd8c2c66 Mon Sep 17 00:00:00 2001
From: "Sivaramalingam, Janani (PG/T - Comp Sci & Elec Eng)"
 <js03432@surrey.ac.uk>
Date: Sat, 10 Aug 2024 16:51:15 +0000
Subject: [PATCH] Add new file

---
 val_sim.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 val_sim.py

diff --git a/val_sim.py b/val_sim.py
new file mode 100644
index 0000000..9425187
--- /dev/null
+++ b/val_sim.py
@@ -0,0 +1,59 @@
+#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
+
+
+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: 
+			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
+		}
+
+output = json.dumps(output)
+
-- 
GitLab