diff --git a/Docs/Internal/TransactionCostAnalytics/Shruti/Source/TransactionCostAnalytics_v6.06.docx b/Docs/Internal/TransactionCostAnalytics/Shruti/Source/TransactionCostAnalytics_v6.06.docx new file mode 100644 index 000000000000..fedc8c7a6100 Binary files /dev/null and b/Docs/Internal/TransactionCostAnalytics/Shruti/Source/TransactionCostAnalytics_v6.06.docx differ diff --git a/Docs/Internal/TransactionCostAnalytics/TransactionCostAnalytics_v6.06.pdf b/Docs/Internal/TransactionCostAnalytics/TransactionCostAnalytics_v6.06.pdf index 8c2f52cf2fe3..03370065a40b 100644 Binary files a/Docs/Internal/TransactionCostAnalytics/TransactionCostAnalytics_v6.06.pdf and b/Docs/Internal/TransactionCostAnalytics/TransactionCostAnalytics_v6.06.pdf differ diff --git a/ReleaseNotes/05_16_2023.txt b/ReleaseNotes/05_16_2023.txt new file mode 100644 index 000000000000..c7b4d3176977 --- /dev/null +++ b/ReleaseNotes/05_16_2023.txt @@ -0,0 +1,33 @@ + +Features: + + - OMS Order Display Settings #1 (1, 2, 3) + - OMS Order Display Settings #2 (4, 5, 6) + - OMS Order Display Settings #3 (7) + - Reservation Price Good-deal Bounds (34) + - OMS Indifference Reservation Pricing Shell (36, 37, 38) + - OMS Indifference Reservation Pricing Annotation (39, 40, 41) + - Reservation Pricing Private Valuation Utility (42, 43) + - OMS Reservation Pricing Terminal Date (44, 45) + - Reservation Pricing Terminal Claim Value (46, 47) + - Initial Endowment Reservation Pricer (49, 50) + - Measure Discrete R1 Distribution Shell (51, 52, 53) + - Discrete R1 Distribution Probability Map (54, 55, 56) + - Measure Discrete R1 Distribution Constructor (57, 58, 59) + - Measure Discrete R1 Distribution Probability (60) + + +Bug Fixes/Re-organization: + + - OMS Pricing to Indifference Price (35) + - Terminal Date/Claim Value Remove (48) + + +Samples: + +IdeaDRIP: + + - Indifference Price Overview (8-13) + - Indifference Price Mathematics (14-19) + - Indifference Price Example (20-29) + - Indifference Price Notes (30-33) diff --git a/ScheduleSheet.xlsx b/ScheduleSheet.xlsx index b4ad9d793d20..d8f0240c589c 100644 Binary files a/ScheduleSheet.xlsx and b/ScheduleSheet.xlsx differ diff --git a/TransactionCostAnalyticsLibrary.md b/TransactionCostAnalyticsLibrary.md index 06c4a7875cac..cc5ce3b365cb 100644 --- a/TransactionCostAnalyticsLibrary.md +++ b/TransactionCostAnalyticsLibrary.md @@ -62,6 +62,12 @@ Transaction Cost Analytics Library contains the Functionality to estimate single * Types of TIF Orders * Example of Time-in-Force * Reference + * Indifference Price + * Overview + * Mathematics + * Example + * Notes + * Reference * Inverted Price Venues * Reference * Smart Order Routing diff --git a/src/main/java/org/drip/measure/discrete/R1Distribution.java b/src/main/java/org/drip/measure/discrete/R1Distribution.java new file mode 100644 index 000000000000..78ad6280f6ba --- /dev/null +++ b/src/main/java/org/drip/measure/discrete/R1Distribution.java @@ -0,0 +1,147 @@ + +package org.drip.measure.discrete; + +import java.util.TreeMap; + +import org.drip.numerical.common.NumberUtil; + +/* + * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + */ + +/*! + * Copyright (C) 2022 Lakshmi Krishnamurthy + * Copyright (C) 2021 Lakshmi Krishnamurthy + * Copyright (C) 2020 Lakshmi Krishnamurthy + * Copyright (C) 2019 Lakshmi Krishnamurthy + * Copyright (C) 2018 Lakshmi Krishnamurthy + * Copyright (C) 2017 Lakshmi Krishnamurthy + * Copyright (C) 2016 Lakshmi Krishnamurthy + * Copyright (C) 2015 Lakshmi Krishnamurthy + * + * This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics, + * asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment + * analytics, and portfolio construction analytics within and across fixed income, credit, commodity, + * equity, FX, and structured products. It also includes auxiliary libraries for algorithm support, + * numerical analysis, numerical optimization, spline builder, model validation, statistical learning, + * graph builder/navigator, and computational support. + * + * https://lakshmidrip.github.io/DROP/ + * + * DROP is composed of three modules: + * + * - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/ + * - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/ + * - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/ + * + * DROP Product Core implements libraries for the following: + * - Fixed Income Analytics + * - Loan Analytics + * - Transaction Cost Analytics + * + * DROP Portfolio Core implements libraries for the following: + * - Asset Allocation Analytics + * - Asset Liability Management Analytics + * - Capital Estimation Analytics + * - Exposure Analytics + * - Margin Analytics + * - XVA Analytics + * + * DROP Computational Core implements libraries for the following: + * - Algorithm Support + * - Computation Support + * - Function Analysis + * - Graph Algorithm + * - Model Validation + * - Numerical Analysis + * - Numerical Optimizer + * - Spline Builder + * - Statistical Learning + * + * Documentation for DROP is Spread Over: + * + * - Main => https://lakshmidrip.github.io/DROP/ + * - Wiki => https://github.com/lakshmiDRIP/DROP/wiki + * - GitHub => https://github.com/lakshmiDRIP/DROP + * - Repo Layout Taxonomy => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md + * - Javadoc => https://lakshmidrip.github.io/DROP/Javadoc/index.html + * - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal + * - Release Versions => https://lakshmidrip.github.io/DROP/version.html + * - Community Credits => https://lakshmidrip.github.io/DROP/credits.html + * - Issues Catalog => https://github.com/lakshmiDRIP/DROP/issues + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * R1Distribution implements the Discrete Distribution over the Combinatorial R1 Outcomes. + * + *

+ * + * + * @author Lakshmi Krishnamurthy + */ + +public class R1Distribution +{ + private TreeMap _probabilityMap = new TreeMap(); + + private R1Distribution ( + final TreeMap probabilityMap) + throws Exception + { + if (null == (_probabilityMap = probabilityMap) || 0 == _probabilityMap.size()) + { + throw new Exception ("R1Distribution Constructor => Invalid Inputs"); + } + } + + /** + * Retrieve the Discrete Probability Map + * + * @return The Discrete Probability Map + */ + + public TreeMap probabilityMap() + { + return _probabilityMap; + } + + /** + * Retrieve the Probability of the Instance Occurrence + * + * @param x Input Instance + * + * @return Probability of the Instance Occurrence + * + * @throws Exception Thrown if the Input Instance is Invalid + */ + + public double probability ( + final double x) + throws Exception + { + if (!NumberUtil.IsValid (x) || !_probabilityMap.containsKey (x)) + { + throw new Exception ("R1Distribution::probability =>_probabilityMap"); + } + + return _probabilityMap.get (x); + } +} diff --git a/src/main/java/org/drip/oms/indifference/ReservationPricer.java b/src/main/java/org/drip/oms/indifference/ReservationPricer.java new file mode 100644 index 000000000000..121b34e2d969 --- /dev/null +++ b/src/main/java/org/drip/oms/indifference/ReservationPricer.java @@ -0,0 +1,140 @@ + +package org.drip.oms.indifference; + +import org.drip.function.definition.R1ToR1; + +/* + * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + */ + +/*! + * Copyright (C) 2024 Lakshmi Krishnamurthy + * + * This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics, + * asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment + * analytics, and portfolio construction analytics within and across fixed income, credit, commodity, + * equity, FX, and structured products. It also includes auxiliary libraries for algorithm support, + * numerical analysis, numerical optimization, spline builder, model validation, statistical learning, + * graph builder/navigator, and computational support. + * + * https://lakshmidrip.github.io/DROP/ + * + * DROP is composed of three modules: + * + * - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/ + * - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/ + * - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/ + * + * DROP Product Core implements libraries for the following: + * - Fixed Income Analytics + * - Loan Analytics + * - Transaction Cost Analytics + * + * DROP Portfolio Core implements libraries for the following: + * - Asset Allocation Analytics + * - Asset Liability Management Analytics + * - Capital Estimation Analytics + * - Exposure Analytics + * - Margin Analytics + * - XVA Analytics + * + * DROP Computational Core implements libraries for the following: + * - Algorithm Support + * - Computation Support + * - Function Analysis + * - Graph Algorithm + * - Model Validation + * - Numerical Analysis + * - Numerical Optimizer + * - Spline Builder + * - Statistical Learning + * + * Documentation for DROP is Spread Over: + * + * - Main => https://lakshmidrip.github.io/DROP/ + * - Wiki => https://github.com/lakshmiDRIP/DROP/wiki + * - GitHub => https://github.com/lakshmiDRIP/DROP + * - Repo Layout Taxonomy => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md + * - Javadoc => https://lakshmidrip.github.io/DROP/Javadoc/index.html + * - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal + * - Release Versions => https://lakshmidrip.github.io/DROP/version.html + * - Community Credits => https://lakshmidrip.github.io/DROP/credits.html + * - Issues Catalog => https://github.com/lakshmiDRIP/DROP/issues + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * ReservationPricer holds the main Private Reservation Pricer and its Parameters. The References are: + * + *

+ *
    + *
  • + * Birge, J. R. (2008): Financial Engineering Elsevier Amsterdam Netherlands + *
  • + *
  • + * Carmona, R. (2009): Indifference Pricing: Theory and Applications Princeton + * University Press Princeton NJ + *
  • + *
  • + * Vassilis, P. (2005): Slow and Fast Markets Journal of Economics and Business 57 + * (6) 576-593 + *
  • + *
  • + * Weiss, D. (2006): After the Trade is Made: Processing Securities Transactions Portfolio + * Publishing London UK + *
  • + *
  • + * Wikipedia (2021): Indifference Price https://en.wikipedia.org/wiki/Indifference_price + *
  • + *
+ * + *

+ * + * + * @author Lakshmi Krishnamurthy + */ + +public class ReservationPricer +{ + private double _initialEndowment = Double.NaN; + private R1ToR1 _privateValuationUtilityFunction = null; + + /** + * Retrieve the Private Valuation Utility Function + * + * @return The Private Valuation Utility Function + */ + + public R1ToR1 privateValuationUtilityFunction() + { + return _privateValuationUtilityFunction; + } + + /** + * Retrieve the Initial Endowment + * + * @return The Initial Endowment + */ + + public double initialEndowment() + { + return _initialEndowment; + } +} diff --git a/src/main/java/org/drip/oms/indifference/package-info.java b/src/main/java/org/drip/oms/indifference/package-info.java new file mode 100644 index 000000000000..afeee78786d7 --- /dev/null +++ b/src/main/java/org/drip/oms/indifference/package-info.java @@ -0,0 +1,8 @@ + +/** + * Reservation Price Good-deal Bounds + * + * @author Lakshmi Krishnamurthy + */ + +package org.drip.oms.indifference;