Skip to content
Snippets Groups Projects

Update karthik_ec2.py

parent 4948ba57
No related branches found
No related tags found
No related merge requests found
...@@ -2,9 +2,7 @@ ...@@ -2,9 +2,7 @@
import math, random, sys, json import math, random, sys, json
from statistics import mean, stdev from statistics import mean, stdev
try: try:
# Read and parse the incoming JSON payload
input_data = sys.stdin.read() input_data = sys.stdin.read()
event = json.loads(input_data) event = json.loads(input_data)
...@@ -19,29 +17,27 @@ try: ...@@ -19,29 +17,27 @@ try:
if None in [dt, close, buy, sell, h, d, t]: if None in [dt, close, buy, sell, h, d, t]:
raise ValueError("Missing one or more necessary keys in the input data.") raise ValueError("Missing one or more necessary keys in the input data.")
minhistory = h
shots = d
var95 = [] var95 = []
var99= [] var99 = []
dates = [] dates = []
for i in range(minhistory, len(close)): for i in range(h, len(close)):
if t == "buy" and buy[i] == 1: if t == "buy" and buy[i] == 1:
close_data = close[i-minhistory:i] close_data = close[i-h:i]
pct_change = [(close_data[j] - close_data[j-1]) / close_data[j-1] for j in range(1, len(close_data))] pct_change = [(close_data[j] - close_data[j-1]) / close_data[j-1] for j in range(1, len(close_data))]
mn = mean(pct_change) mn = mean(pct_change)
std = stdev(pct_change) std = stdev(pct_change)
simulated = [random.gauss(mn, std) for _ in range(shots)] simulated = [random.gauss(mn, std) for _ in range(d)]
simulated.sort(reverse=True) simulated.sort(reverse=True)
var95.append(simulated[int(len(simulated) * 0.95)]) var95.append(simulated[int(len(simulated) * 0.95)])
var99.append(simulated[int(len(simulated) * 0.99)]) var99.append(simulated[int(len(simulated) * 0.99)])
dates.append(str(dt[i])) dates.append(str(dt[i]))
elif t == "sell" and sell[i] == 1: elif t == "sell" and sell[i] == 1:
close_data = close[i-minhistory:i] close_data = close[i-h:i]
pct_change = [(close_data[j] - close_data[j-1]) / close_data[j-1] for j in range(1, len(close_data))] pct_change = [(close_data[j] - close_data[j-1]) / close_data[j-1] for j in range(1, len(close_data))]
mn = mean(pct_change) mn = mean(pct_change)
std = stdev(pct_change) std = stdev(pct_change)
simulated = [random.gauss(mn, std) for _ in range(shots)] simulated = [random.gauss(mn, std) for _ in range(d)]
simulated.sort(reverse=True) simulated.sort(reverse=True)
var95.append(simulated[int(len(simulated) * 0.95)]) var95.append(simulated[int(len(simulated) * 0.95)])
var99.append(simulated[int(len(simulated) * 0.99)]) var99.append(simulated[int(len(simulated) * 0.99)])
...@@ -53,15 +49,12 @@ try: ...@@ -53,15 +49,12 @@ try:
"var99": var99 "var99": var99
} }
logging.debug(f"Produced output: {json.dumps(output)}")
print("Content-Type: application/json") print("Content-Type: application/json")
print() print()
print(json.dumps(output)) print(json.dumps(output))
except Exception as e: except Exception as e:
error_message = str(e) error_message = str(e)
logging.error(f"Error: {error_message}")
print("Content-Type: text/plain") print("Content-Type: text/plain")
print() print()
print(error_message) print(error_message)
\ No newline at end of file
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