def sse_theo_LT(self, para): """ Returns the Sum Squared Error """ from Event import Event evnt = Event(self.data) evnt.e2_mean_rev1 = para[0] evnt.e2_resp1 = para[1] evnt.e2_mean_rev2 = para[2] evnt.e2_resp2 = para[3] evnt.event_type = 'evntLT' evnt.decay_type = 'LastTrade' error = 0.0 for i in range(int(len(self.data.events))): if self.data.events[i] == 'E': est = self.cmpt_theo_event(i, evnt) error += (self.data.prices[i] - est)**2 if self.verbose: print('SSE Const ' + str(error) + ' ' + str(para[0]) + ' ' + str(para[1]) + ' ' + str(para[2]) + ' ' + str(para[3])) return error
def perf_theo_vs_smartpOLD(self): import numpy as np from Compute import Compute from Event import Event import re summary = open('Parameters/fit_theo_event.txt', 'r') summaryCross = open('Parameters/fit_theo_spread.txt', 'r') out = open('Performance/MSE_2_0.txt', 'w') cmpt = Compute(self.data) evnt = Event(self.data) evntCross = Event(self.data) # Load Parameters and settings for Large Lot para = [] for line in summary: if re.search('Parameters', line): temp = re.findall('Parameters\s\[\s(.*)\]', line)[0].split() for t in temp: para.append(float(t)) evnt.e2_spread = False evnt.e2_voladj = False evnt.e2_mean_rev1 = para[0] evnt.e2_resp1 = para[1] evnt.e2_mean_rev2 = para[2] evnt.e2_resp2 = para[3] # Load Parameters and settings for Spread adjusted paraCross = [] for line in summaryCross: if re.search('Parameters', line): temp = re.findall('Parameters\s\[\s(.*)\]', line)[0].split() for t in temp: paraCross.append(float(t)) evntCross.e2_spread = True evntCross.e2_voladj = False evntCross.e2_mean_rev1 = paraCross[0] evntCross.e2_resp1 = paraCross[1] evntCross.e2_mean_rev2 = paraCross[2] evntCross.e2_resp2 = paraCross[3] predMid = [] predSmart = [] predEvent = [] predCross = [] bench = [] for i in range(len(self.data.events)): if self.data.events[i] == 'E': theo = cmpt.cmpt_theo_event(i, evnt) theoCross = cmpt.cmpt_theo_event(i, evntCross) if self.data.vols[i - 2] > 200 and self.data.tgates[ i] - self.data.tgates[i - 2] <= 2.0 * 10**9: predMid.append( cmpt.mid_price(self.data.ask_1s[i - 1], self.data.bid_1s[i - 1])) predSmart.append( cmpt.smart_mid(self.data.ask_1s[i - 1], self.data.askvol_1s[i - 1], self.data.bid_1s[i - 1], self.data.bidvol_1s[i - 1])) predEvent.append(theo) predCross.append(theoCross) bench.append(self.data.prices[i]) eMid = np.zeros(len(predMid)) eSmart = np.zeros(len(predMid)) eEvent = np.zeros(len(predMid)) eCross = np.zeros(len(predMid)) for i in range(len(predMid)): eMid[i] = abs(predMid[i] - bench[i]) eSmart[i] = abs(predSmart[i] - bench[i]) eEvent[i] = abs(predEvent[i] - bench[i]) eCross[i] = abs(predCross[i] - bench[i]) out.write( str(eMid[i]) + ' ' + str(eSmart[i]) + ' ' + str(eEvent[i]) + ' ' + str(eCross[i]) + ' \n') print( str(eMid.mean()) + ' \n' + str(eSmart.mean()) + ' \n' + str(eEvent.mean()) + ' \n' + str(eCross.mean()))