Skip to content

Commit

Permalink
Features:
Browse files Browse the repository at this point in the history
	- 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)
  • Loading branch information
Lakshmik committed Jan 16, 2024
1 parent 95defeb commit b3f9f51
Show file tree
Hide file tree
Showing 8 changed files with 334 additions and 0 deletions.
Binary file not shown.
Binary file not shown.
33 changes: 33 additions & 0 deletions ReleaseNotes/05_16_2023.txt
Original file line number Diff line number Diff line change
@@ -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)
Binary file modified ScheduleSheet.xlsx
Binary file not shown.
6 changes: 6 additions & 0 deletions TransactionCostAnalyticsLibrary.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
147 changes: 147 additions & 0 deletions src/main/java/org/drip/measure/discrete/R1Distribution.java
Original file line number Diff line number Diff line change
@@ -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.
*/

/**
* <i>R1Distribution</i> implements the Discrete Distribution over the Combinatorial R<sup>1</sup> Outcomes.
*
* <br><br>
* <ul>
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/NumericalAnalysisLibrary.md">Numerical Analysis Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/measure/README.md">R<sup>d</sup> Continuous/Discrete Probability Measures</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/measure/discrete/README.md">Antithetic, Quadratically Re-sampled, De-biased Distribution</a></li>
* </ul>
*
* @author Lakshmi Krishnamurthy
*/

public class R1Distribution
{
private TreeMap<Double, Double> _probabilityMap = new TreeMap<Double, Double>();

private R1Distribution (
final TreeMap<Double, Double> 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<Double, Double> 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);
}
}
140 changes: 140 additions & 0 deletions src/main/java/org/drip/oms/indifference/ReservationPricer.java
Original file line number Diff line number Diff line change
@@ -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.
*/

/**
* <i>ReservationPricer</i> holds the main Private Reservation Pricer and its Parameters. The References are:
*
* <br><br>
* <ul>
* <li>
* Birge, J. R. (2008): <i>Financial Engineering</i> <b>Elsevier</b> Amsterdam Netherlands
* </li>
* <li>
* Carmona, R. (2009): <i>Indifference Pricing: Theory and Applications</i> <b>Princeton
* University Press</b> Princeton NJ
* </li>
* <li>
* Vassilis, P. (2005): Slow and Fast Markets <i>Journal of Economics and Business</i> <b>57
* (6)</b> 576-593
* </li>
* <li>
* Weiss, D. (2006): <i>After the Trade is Made: Processing Securities Transactions</i> <b>Portfolio
* Publishing</b> London UK
* </li>
* <li>
* Wikipedia (2021): Indifference Price https://en.wikipedia.org/wiki/Indifference_price
* </li>
* </ul>
*
* <br><br>
* <ul>
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ProductCore.md">Product Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/TransactionCostAnalyticsLibrary.md">Transaction Cost Analytics</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/oms/README.md">R<sup>d</sup> Order Specification, Handling, and Management</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/oms/indifference/README.md">Reservation Price Good-deal Bounds</a></li>
* </ul>
*
* @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;
}
}
8 changes: 8 additions & 0 deletions src/main/java/org/drip/oms/indifference/package-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

/**
* Reservation Price Good-deal Bounds
*
* @author Lakshmi Krishnamurthy
*/

package org.drip.oms.indifference;

0 comments on commit b3f9f51

Please sign in to comment.