calibrate_date4 = to_ql_date(dates[idx_date]) calibrate_date3 = to_ql_date(dates[idx_date + 1]) calibrate_date2 = to_ql_date(dates[idx_date + 2]) calibrate_date1 = to_ql_date(dates[idx_date + 3]) calibrate_date = to_ql_date(dates[idx_date + 4]) hedge_date = to_ql_date(dates[idx_date + 5]) liquidition_date = to_ql_date(dates[idx_date + 6]) # Liquidition Date Dataset dataset_on_liquidition_date = daily_svi_dataset.get( to_dt_date(liquidition_date)) cal_vols, put_vols, maturity_dates, spot, rf_pcprs = dataset_on_liquidition_date # SELECT CALL OPTION DATA!! expiration_dates = to_ql_dates(maturity_dates) orgnized_data_liquidition_date = svi_util.orgnize_data_for_hedging( liquidition_date, daycounter, cal_vols, expiration_dates, spot) optiontype = ql.Option.Call # Hedge Date Data Set dataset_on_hedge_date = daily_svi_dataset.get(to_dt_date(hedge_date)) cal_vols_h, put_vols_h, maturity_dates_h, spot_on_hedge_date, rfs_on_hedge_date = dataset_on_hedge_date expiration_dates_h = to_ql_dates(maturity_dates_h) orgnized_data_hedge_date = svi_util.orgnize_data_for_hedging( hedge_date, daycounter, cal_vols_h, expiration_dates_h, spot_on_hedge_date) calibrated_params = daily_params.get( to_dt_date(calibrate_date)) # on calibrate_date calibrated_params1 = daily_params.get( to_dt_date(calibrate_date1)) # on calibrate_date calibrated_params2 = daily_params.get(
for idx_date, date in enumerate(dates[0:len(dates) - 2]): try: print(idx_date) calibrate_date = to_ql_date(dates[idx_date]) optiontype = ql.Option.Put estimate_vol = estimated_vols.get(to_dt_date(calibrate_date)) curve = svi_data.get_curve_treasury_bond(calibrate_date, daycounter) # Local Vol Surface cal_vols_c, put_vols_c, maturity_dates_c, spot_c, rf_c = daily_svi_dataset.get( to_dt_date(calibrate_date)) expiration_dates_h = to_ql_dates(maturity_dates_c) orgnized_data = svi_util.orgnize_data_for_hedging( calibrate_date, daycounter, put_vols_c, expiration_dates_h, spot_c) pricing_error_Ms = {} for nbr_month in range(4): moneyness, strikes, close_prices, expiration_date = orgnized_data.get( nbr_month) rf = curve.zeroRate(expiration_date, daycounter, ql.Continuous).rate() pricing_errors = [] moneyness = [] #print('liquidition date : ', calibrate_date, ',', nbr_month) for idx_k, k in enumerate(strikes): if k in close_prices.keys(): close_l = close_prices.get(k) else: print('strike not found in L date') continue