Ejemplo n.º 1
0
 def post(self):
     try:
         baseSet = self.get_argument("baseSet")
         destSet = self.get_argument("destSet")
         setDate = self.get_argument("setDate")
         t = xldate(datetime.strptime(setDate, '%d/%m/%Y'))
         self.set_header('Content-Type', 'application/json')
         self.write(json_encode(test_rampdiff(baseSet, t, destSet, t)))
     except Exception as e:
         self.write(e)
Ejemplo n.º 2
0
def spotcorrection():
	tday = dateoffset(datetime.today(), 0)
	rampset = "OSPG TEST 6"
	rampdate = xldate(tday)

	mkt = load_market("mkt", rampset, rampdate, rampdate)
	ccy1ccy2 = [['USD','BRL'], ['USD','JPY'], ['USD','TRY'], ['TRY','JPY'], ['BRL','JPY']]
	df = DataFrame(ccy1ccy2, columns=['CCY1','CCY2'])
	df['Mid'] = df[['CCY1','CCY2']].apply(lambda x: west.FXGetSpot("mkt", x[0], x[1]), axis=1)
	df['SpotDate'] = df[['CCY1','CCY2']].apply(lambda x: west.GetFXSpotDate2(rampdate, x[0], x[1], 'X', False), axis=1)
	df["SpotDate"][3] = west.Add(rampdate,1,"bd",'',"TYO#IST#NYK")
	df['DF1'] = df[['CCY1', 'SpotDate']].apply(lambda x: west.Df(x[1],"mkt",rampdate,'-5','',x[0]), axis=1)
	df['DF2'] = df[['CCY2', 'SpotDate']].apply(lambda x: west.Df(x[1],"mkt",rampdate,'-5','',x[0]), axis=1)
	df['CashRate'] = df['Mid']*df['DF2']/df['DF1']
	df['SpotRate'] = df['CashRate']*df['DF1']/df['DF2']
	#df = df.set_index(['CCY1', 'CCY2'])

	fxspot=[]
	for t in ramp.RampReadCurve("SPOT FX RATES", rampset, rampdate, 2).to_tuple()[0]:
	    if not t[0]+t[1] in ["TRYJPY", "BRLJPY"]:
	        fxspot.append(t)

	fxspot.extend([('TRY', 'JPY',df["SpotRate"][3],df["SpotRate"][3]), ('BRL', 'JPY',df["SpotRate"][4],df["SpotRate"][4])])
	sts = ramp.RampWriteCurve(tuple3d(fxspot), "SPOT FX RATES", rampset, rampdate, 2)
	if sts[:2].upper() != "OK":
		logger.error("SPOT FX contribution failed")

	#correct eurcny vol
	df_eurusd = read_ramp('HYB EURUSD VOL MKT VOLS', rampset, rampdate)
	df_eurusd = df_eurusd.ix[:14]
	df_usdcny = read_ramp('HYB USDCNY VOL MKT VOLS', rampset, rampdate)
	df_eurcny = read_ramp('HYB EURCNY VOL MKT VOLS', rampset, rampdate)

	df_cross = np.sqrt(np.power(df_eurusd["ATM"],2)+np.power(df_usdcny["ATM"],2))
	df_check = np.abs(df_eurcny["ATM"]-df_eurusd["ATM"])>0.5*df_usdcny["ATM"]

	df_eurcny["ATM"] = concat([df_eurcny["ATM"], df_cross, df_check], axis=1).apply(lambda x: x.values[1] if x.values[2] else x.values[0], axis=1)


	df_eurcny = df_eurcny.reset_index()
	curvedata = [["Vols"]+df_eurcny.columns.tolist()]
	curvedata.extend([['']+t for t in df_eurcny.values.tolist()])
	sts = write_ramp(curvedata, 'HYB EURCNY VOL MKT VOLS', rampset, rampdate)
	if sts[:2].upper() != "OK":
		console.error("EURCNY vol contribution failed")
def calcLIVE(df):
	calcdate = xldate(datetime.today())
	mkt = load_market('mesaofficial', 'LIVE', 0, calcdate)
	return DataFrame({"LIVE":df.apply(getRate, axis=1, args=(mkt, calcdate))})
def calcOfficial(df, tday):
	calcdate = xldate(dateoffset(tday,-1))
	mkt = load_market('mesaofficial', 'OFFICIAL', calcdate, calcdate)
	return DataFrame({"OFFICIAL":df.apply(getRate, axis=1, args=(mkt, calcdate))})