I have daily quotes for the new york and london fixings of fx options on EURUSD. On Bloomberg I can choose between two sources: BGN and CMPN. Apparently these are based on slightly different methods of aggregating the OTC quotes. I found that there are some pretty significant differences even though these two sources are meant to capture the same thing. Especially when looking at the BF25 quotes, BGN is slightly higher than CMPN on most days. This makes quite a significant difference when backtesting strategies that are exploiting convexity in some way, e.g. selling the convexity premium. Also in general BGN looks a bit less noisy than CMPN.

Does anyone know what people usually use for backtesting strategies? Is there a reason for the deviations?


1 Answer 1


If you think of New York and London as cutoff, that doesn't exist as a market quote (white instead of amber in OVDV as it is interpolated).

BGN and BGNL stands for New York and London daily close according to the times shown on XDF.

Never use CMPN, that is composite and just a hard coded list of contributors without any quality check (timeliness, spikes etc). BGN was developed afterwards. QFX "explains" the details and differences between the composite (CMPN) and generic (BGN). If you use long history, you will realize BGN falls back to CMPN (before BGN existed).

There is also BVOL, from Bloomberg's financial engineering team. That is premium data though. Main difference ist what fly is used. OVDV shows details in settings - conventions. For FX, the difference between BGN and BVOL is negligible in my experience, but it is a big thing in equity (LIVE vs BVOL) and interest rate options.

Bottom line, never use CMPN unless nothing else is available. The help desk would answer this swiftly by the way.

For backtesting, I guess simply using the market quotes (ATM DNS, RR and BF for various deltas) will not be sufficient. If you don't want the hassle of building a surface yourself, you can use SPVOl_SURF_MID (or something like that, just check FLDS for correct syntax). There is a neat trick to get call and put vol for strikes directly; set the delta override to 0 and also override strike. That way you can get any strike and expiry vol directly via the BBG pricing engine (also sided pricing if needed).

OVML has a backtester by the way. It doesn't support a lot of products but if your product is supported, it will do it all automatically for you.

  • $\begingroup$ Thanks AKdemy. Regarding backtest: I am building a full surface using the 10 delta and 25 delta BF and RR quotes and ATM and strangely I do get quite different results between using BGN and CMPN. In fact, BGN results for selling convexity look way too good to be true. It is possible I'm doing something wrong. Will check out the BBG functions you mention $\endgroup$
    – Volwiz
    Commented Sep 26, 2021 at 20:35
  • $\begingroup$ I suppose the answer will be exactly the same as last time. You cannot rely on CMPN for sure. All else, I am not exactly sure what you do. $\endgroup$
    – AKdemy
    Commented Sep 26, 2021 at 20:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.