|
From: James M. H. <jam...@qu...> - 2024-07-16 01:36:17
|
ORE has a class for stripping a forward curve given put and call option prices here https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/termstructures/equityforwardcurvestripper.hpp That's half the battle. It works well for OPRA SPX data but you need to remove some maturities with only a handful of strikes. On Mon, Jul 15, 2024, 10:19 PM philippe hatstadt via QuantLib-users < qua...@li...> wrote: > That would be nice. > I just built a prototype that uses SPX option quotes, and attempts to > derive RidkNeutralForward/Strike for each option, carefully eliminating all > calls where such ratio is >= 1 and puts where it is <1. > I then compute a BS implied volatility for each option and use such data > to build a helpers list, from which I calibrate Heston parameters via > ql.LevenbergMarquart. If I then compute the calibration errors, what I > observe is that for each helper, the value helper.marketValue() is nowhere > near the market values I had used to compute the BS implied volatilities. > Such respective values differ by anywhere from 15% to 65% relative option > premium. > I suppose I need to post some code if I want someone to help? But curious > of the steps I took are ok? > Regards > > Philippe Hatstadt > +1-203-252-0408 > > > > On Jul 15, 2024, at 2:35 PM, Peter Caspers <pca...@gm...> > wrote: > > > > Maybe we should add a PriceCalibrationHelper that inherits from > > CalibrationHelper and a HestonPriceCalibrationHelper from > > PriceCalibrationHelper. Both of them operate directly in premium space > > rather than vol space. > > > >> On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt <pha...@ma...> > wrote: > >> > >> So if what I have are option quotes, I need to: > >> 1. compute the risk-neutral forward for each expiry, replicating > exactly what the Heston engine does? is there a way to do that using the > engine? If not, what's the best way? > >> 2. Use a BSM model, again making sure that it computes the same exact > risk-neutral forward, compute the BSM implied volatility, correctly using > either a call or a put depending on OTM forward. > >> 3. Pass the vols and strikes to the HestonHelpers? > >> > >> For #1 and #2, I assume that passing the same exact dividend and > risk-free rate handles to the respective BSM and Heston engines would > guarantee matching risk-neutral forwards, but is there another approach > altogether given than what I have are call and put prices? > >> > >> Philippe Hatstadt 203-252-0408 > https://www.linkedin.com/in/philippe-hatstadt/ > >> > >> On Jul 12, 2024, at 4:06 PM, Peter Caspers <pca...@gm...> > wrote: > >> > >> > >> forward I believe > >> > >> > >> ------- Weitergeleitete Nachricht ------ > >> Von: philippe hatstadt <pha...@ma...> > >> Datum: Fr. 12. Juli 2024 um 20:37 > >> Betreff: Re: [Quantlib-users] Heston Calibration > >> An: Peter Caspers <pca...@gm...> > >> Cc: <qua...@li...> > >> > >> > >> Out of the money spot or forward? > >> Regards > >> > >> Philippe Hatstadt > >> +1-203-252-0408 > >> > >> > >>>> On Jul 12, 2024, at 2:10 PM, Peter Caspers <pca...@gm...> > wrote: > >>> > >>> Yes. It will always build the option type which is out-of-the-money. > >>> Best, Peter > >>> > >>>> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users > >>>> <qua...@li...> wrote: > >>>> > >>>> Does the ql.HestonModelHelper only expects a BSM implied volatility > as an input? I am asking because there doesn't seem to be any parameter for > option type (call or put)? > >>>> > >>>> Best regards Philippe Hatstadt 203-252-0408 > https://www.linkedin.com/in/philippe-hatstadt/ > >>>> > >>>> > >>>> _______________________________________________ > >>>> QuantLib-users mailing list > >>>> Qua...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users > >> > >> > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > |