{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/robust-pricing-and-hedging-via-neural-sdes","title":"Robust pricing and hedging via neural SDEs","arxiv_id":"2007.04154","date":"2020-07-08","proceeding":null,"authors":["Patryk Gierjatowicz","Marc Sabate-Vidales","David Šiška","Lukasz Szpruch","Žan Žurič"],"abstract":"Mathematical modelling is ubiquitous in the financial industry and drives key decision processes. Any given model provides only a crude approximation to reality and the risk of using an inadequate model is hard to detect and quantify. By contrast, modern data science techniques are opening the door to more robust and data-driven model selection mechanisms. However, most machine learning models are \"black-boxes\" as individual parameters do not have meaningful interpretation. The aim of this paper is to combine the above approaches achieving the best of both worlds. Combining neural networks with risk models based on classical stochastic differential equations (SDEs), we find robust bounds for prices of derivatives and the corresponding hedging strategies while incorporating relevant market data. The resulting model called neural SDE is an instantiation of generative models and is closely linked with the theory of causal optimal transport. Neural SDEs allow consistent calibration under both the risk-neutral and the real-world measures. Thus the model can be used to simulate market scenarios needed for assessing risk profiles and hedging strategies. We develop and analyse novel algorithms needed for efficient use of neural SDEs. We validate our approach with numerical experiments using both local and stochastic volatility models.","url_abs":"https://arxiv.org/abs/2007.04154v1","url_pdf":"https://arxiv.org/pdf/2007.04154v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"robust-pricing-and-hedging-via-neural-sdes","repo_url":"https://github.com/msabvid/robust_nsde","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"robust-pricing-and-hedging-via-neural-sdes","repo_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"model-selection","task_name":"Model Selection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2007.04154","atlas_url":"https://app.syntology.ai/?focus=2007.04154","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2007.04154"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/msabvid/robust_nsde","reach":null}],"summary":{"ran_violates":1,"ran":14,"ran_honours":1,"unverified":8},"by_repo_kind":{"official":{"samples":2,"ran":0,"repositories":1},"listed":{"samples":22,"ran":16,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":2,"samples":[{"code_sha256_prefix":"b8e95809ca2c17c9","entry":"sigmoid","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/markov/bdd_fun.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/markov/bdd_fun.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":2,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b8e95809ca2c17c9"}},{"code_sha256_prefix":"36827cbbc2a93673","entry":"basic","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/mtgl_couplings.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/mtgl_couplings.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"36827cbbc2a93673"}},{"code_sha256_prefix":"5857af5cae346057","entry":"compute_partition_grid","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/ada_emp_dist.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/ada_emp_dist.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5857af5cae346057"}},{"code_sha256_prefix":"c947aad279b8d2ae","entry":"cutoff","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/mtgl.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/mtgl.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c947aad279b8d2ae"}},{"code_sha256_prefix":"42c53a206fbd1932","entry":"generate_grid_points","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/multiD.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/multiD.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"42c53a206fbd1932"}},{"code_sha256_prefix":"5ac4c9297ca552b1","entry":"generate_samples","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/ada_emp_dist.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/ada_emp_dist.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ac4c9297ca552b1"}},{"code_sha256_prefix":"9f6c098d5a585ca3","entry":"generate_uniform_martingale_coupling","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/mtgl_couplings.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/mtgl_couplings.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9f6c098d5a585ca3"}},{"code_sha256_prefix":"44a386d5b2fad448","entry":"get_bounds","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/mtgl.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/mtgl.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"44a386d5b2fad448"}},{"code_sha256_prefix":"2ca5ad809ed2872b","entry":"get_params","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/utils.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2ca5ad809ed2872b"}},{"code_sha256_prefix":"15d922543dcd027d","entry":"inverse","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/markov/bdd_fun.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/markov/bdd_fun.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"15d922543dcd027d"}},{"code_sha256_prefix":"9ae524158f4feefb","entry":"kernel","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/mtgl.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/mtgl.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9ae524158f4feefb"}},{"code_sha256_prefix":"74dc40d1e6a57f51","entry":"load_txt_as_matrix","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/utils.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"74dc40d1e6a57f51"}},{"code_sha256_prefix":"5a4513e7bed20ed0","entry":"map_to_grid","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/ada_emp_dist.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/ada_emp_dist.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5a4513e7bed20ed0"}},{"code_sha256_prefix":"0401fb8e7ae9ee75","entry":"smooth1D","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/multiD.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/multiD.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0401fb8e7ae9ee75"}},{"code_sha256_prefix":"a0f3b9ad94438359","entry":"smoothing_function","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/multiD.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/multiD.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a0f3b9ad94438359"}},{"code_sha256_prefix":"d51cc2bc73bd04cb","entry":"tanh","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/markov/bdd_fun.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/markov/bdd_fun.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d51cc2bc73bd04cb"}},{"code_sha256_prefix":"d21d1a95d5c419c3","entry":"basic_multi","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"src/adapted_mtgl/mtgl_test/mtgl_couplings.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/src/adapted_mtgl/mtgl_test/mtgl_couplings.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d21d1a95d5c419c3"}},{"code_sha256_prefix":"95afd341d60ee345","entry":"cond_expectation_simple","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/markov/markov.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/markov/markov.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"95afd341d60ee345"}},{"code_sha256_prefix":"9f583128a4e6ae35","entry":"markov_coupling","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/markov/markov.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/markov/markov.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9f583128a4e6ae35"}},{"code_sha256_prefix":"f94ee8b4fd26d937","entry":"simple_Markov","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/markov/markov.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/markov/markov.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f94ee8b4fd26d937"}},{"code_sha256_prefix":"5ce1e6daafed7d6d","entry":"train_nsde","repo":"msabvid/robust_nsde","repo_kind":"official","path":"nsde_LV.py","file_url":"https://github.com/msabvid/robust_nsde/blob/HEAD/nsde_LV.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"5ce1e6daafed7d6d"}},{"code_sha256_prefix":"cd56c5b2d448b039","entry":"train_nsde","repo":"msabvid/robust_nsde","repo_kind":"official","path":"nsde_LSV.py","file_url":"https://github.com/msabvid/robust_nsde/blob/HEAD/nsde_LSV.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"cd56c5b2d448b039"}},{"code_sha256_prefix":"409b312a9435650a","entry":"train_nsde","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/nsde_calibration/adapted_LSV.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/nsde_calibration/adapted_LSV.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"409b312a9435650a"}},{"code_sha256_prefix":"7c7b561a52e0c88b","entry":"train_nsde","repo":"ericavanee/bicausal_wasserstein_mtglproj","repo_kind":"listed","path":"applications/nsde_calibration/adapted_LV.py","file_url":"https://github.com/ericavanee/bicausal_wasserstein_mtglproj/blob/HEAD/applications/nsde_calibration/adapted_LV.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7c7b561a52e0c88b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}