Skip to content

Commit 575b227

Browse files
committed
Features:
- OMS Transaction Order Parent ID #1 (1, 2, 3) - OMS Transaction Order Parent ID #2 (4, 5, 6) - OMS Transaction Order Parent ID #3 (7, 8, 9) - OMS Transaction Order Parent ID #4 (10, 11, 12) - OMS Transaction Order Parent ID #5 (13, 14, 15) - OMS Transaction Order Parent ID #6 (16) - OMS FIX Cl Ord ID #1 (17, 18) - OMS FIX Cl Ord ID #2 (19, 20) - OMS FIX Orig Cl Ord ID #1 (21, 22) - OMS FIX Orig Cl Ord ID #2 (23, 24) - OMS Transaction Order Quantity Shell (25, 26, 27) - OMS Original Order Quantity #1 (28, 29, 30) - OMS Original Order Quantity #2 (31, 32) - OMS Current Order Quantity #1 (33, 34) - OMS Current Order Quantity #2 (35, 36, 37) - OMS Order Cumulative Quantity #1 (38, 39) - OMS Order Cumulative Quantity #2 (40, 41, 42) - OMS Order Leaves Quantity #1 (43, 44, 45) - OMS Order Leaves Quantity #2 (46, 47) - OMS Order Last Shares #1 (48, 49) - OMS Order Last Shares #2 (50, 51, 52) - Update Current Order Quantity #1 (53, 54) - Update Current Order Quantity #2 (55, 56, 57) - Update Current Order Quantity #3 (58, 59) - Update Last Shares Count #1 (60, 61) - Update Last Shares Count #2 (62, 63) - Update Last Shares Count #3 (64, 65, 66) - OMS Order Quantity Constructor #1 (67, 68, 69) - OMS Order Quantity Constructor #2 (70, 71, 72) - OMS Order Quantity Constructor #3 (73, 74) - OMS Transaction Order Fulfill #1 (75, 76, 77) - OMS Transaction Order Fulfill #2 (78, 79, 80) - OMS Transaction Order Fulfill #3 (81, 82, 83) - OMS Transaction Order Fulfill #4 (84, 85) - Order Quantity Tracker Filled #1 (90, 91) - Order Quantity Tracker Filled #2 (92, 93) - FIX 4.2 Agent Request Shell (94, 95, 96) - Agent Request Arrival Time #1 (97, 98, 99) - Agent Request Arrival Time #2 (100, 101) - FIX Agent Request ID #1 (102, 103) - FIX Agent Request ID #2 (104, 105, 106) - Agent Parent Request ID #1 (107, 108) - Agent Parent Request ID #2 (109, 110, 111) - Agent Parent Request Type #1 (112, 113, 114) - Agent Parent Request Order #1 (117, 118) - Agent Parent Request Order #2 (119, 120) Bug Fixes/Re-organization: - Order Quantity to Tracker Re-work (75, 76) - Eliminate Ad-hoc Order Children Generation (87, 88, 89) Samples: IdeaDRIP:
1 parent 48329c2 commit 575b227

File tree

9 files changed

+370
-199
lines changed

9 files changed

+370
-199
lines changed

IdeaDRIP/TransactionCostAnalytics/TCA_v0.05

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,8 @@
201201
- Orig Cl Ord ID
202202
- Order Type
203203
- Status
204-
- Order Quantity
204+
- Original Order Quantity
205+
- Current Order Quantity
205206
- Cumulative Quantity
206207
- Leaves Quantity
207208
- Last Shares
@@ -210,15 +211,12 @@
210211
- Request ID
211212
- Parent Request ID
212213
- Request Type - New/
213-
- Order Quantity
214-
- Cl Ord ID
215-
- Orig Cl Ord ID
214+
- Order
216215
5.3) Order Processing Response Fields:
217216
- Start Time
218217
- End Time
219218
- Message Type
220-
- Cl Ord ID
221-
- Orig Cl Ord ID
219+
- Order
222220
- Request ID
223221
- Exec Type
224222
- Exec Transaction Type

ReleaseNotes/02_13_2025.txt

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
Features:
3+
4+
- OMS Transaction Order Parent ID #1 (1, 2, 3)
5+
- OMS Transaction Order Parent ID #2 (4, 5, 6)
6+
- OMS Transaction Order Parent ID #3 (7, 8, 9)
7+
- OMS Transaction Order Parent ID #4 (10, 11, 12)
8+
- OMS Transaction Order Parent ID #5 (13, 14, 15)
9+
- OMS Transaction Order Parent ID #6 (16)
10+
- OMS FIX Cl Ord ID #1 (17, 18)
11+
- OMS FIX Cl Ord ID #2 (19, 20)
12+
- OMS FIX Orig Cl Ord ID #1 (21, 22)
13+
- OMS FIX Orig Cl Ord ID #2 (23, 24)
14+
- OMS Transaction Order Quantity Shell (25, 26, 27)
15+
- OMS Original Order Quantity #1 (28, 29, 30)
16+
- OMS Original Order Quantity #2 (31, 32)
17+
- OMS Current Order Quantity #1 (33, 34)
18+
- OMS Current Order Quantity #2 (35, 36, 37)
19+
- OMS Order Cumulative Quantity #1 (38, 39)
20+
- OMS Order Cumulative Quantity #2 (40, 41, 42)
21+
- OMS Order Leaves Quantity #1 (43, 44, 45)
22+
- OMS Order Leaves Quantity #2 (46, 47)
23+
- OMS Order Last Shares #1 (48, 49)
24+
- OMS Order Last Shares #2 (50, 51, 52)
25+
- Update Current Order Quantity #1 (53, 54)
26+
- Update Current Order Quantity #2 (55, 56, 57)
27+
- Update Current Order Quantity #3 (58, 59)
28+
- Update Last Shares Count #1 (60, 61)
29+
- Update Last Shares Count #2 (62, 63)
30+
- Update Last Shares Count #3 (64, 65, 66)
31+
- OMS Order Quantity Constructor #1 (67, 68, 69)
32+
- OMS Order Quantity Constructor #2 (70, 71, 72)
33+
- OMS Order Quantity Constructor #3 (73, 74)
34+
- OMS Transaction Order Fulfill #1 (75, 76, 77)
35+
- OMS Transaction Order Fulfill #2 (78, 79, 80)
36+
- OMS Transaction Order Fulfill #3 (81, 82, 83)
37+
- OMS Transaction Order Fulfill #4 (84, 85)
38+
- Order Quantity Tracker Filled #1 (90, 91)
39+
- Order Quantity Tracker Filled #2 (92, 93)
40+
- FIX 4.2 Agent Request Shell (94, 95, 96)
41+
- Agent Request Arrival Time #1 (97, 98, 99)
42+
- Agent Request Arrival Time #2 (100, 101)
43+
- FIX Agent Request ID #1 (102, 103)
44+
- FIX Agent Request ID #2 (104, 105, 106)
45+
- Agent Parent Request ID #1 (107, 108)
46+
- Agent Parent Request ID #2 (109, 110, 111)
47+
- Agent Parent Request Type #1 (112, 113, 114)
48+
- Agent Parent Request Order #1 (117, 118)
49+
- Agent Parent Request Order #2 (119, 120)
50+
51+
52+
Bug Fixes/Re-organization:
53+
54+
- Order Quantity to Tracker Re-work (75, 76)
55+
- Eliminate Ad-hoc Order Children Generation (87, 88, 89)
56+
57+
58+
Samples:
59+
60+
IdeaDRIP:
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
2+
package org.drip.oms.fix4_2;
3+
4+
import java.util.Date;
5+
6+
import org.drip.oms.transaction.Order;
7+
8+
/*
9+
* -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
10+
*/
11+
12+
/*!
13+
* Copyright (C) 2025 Lakshmi Krishnamurthy
14+
*
15+
* This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics,
16+
* asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment
17+
* analytics, and portfolio construction analytics within and across fixed income, credit, commodity,
18+
* equity, FX, and structured products. It also includes auxiliary libraries for algorithm support,
19+
* numerical analysis, numerical optimization, spline builder, model validation, statistical learning,
20+
* graph builder/navigator, and computational support.
21+
*
22+
* https://lakshmidrip.github.io/DROP/
23+
*
24+
* DROP is composed of three modules:
25+
*
26+
* - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/
27+
* - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/
28+
* - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/
29+
*
30+
* DROP Product Core implements libraries for the following:
31+
* - Fixed Income Analytics
32+
* - Loan Analytics
33+
* - Transaction Cost Analytics
34+
*
35+
* DROP Portfolio Core implements libraries for the following:
36+
* - Asset Allocation Analytics
37+
* - Asset Liability Management Analytics
38+
* - Capital Estimation Analytics
39+
* - Exposure Analytics
40+
* - Margin Analytics
41+
* - XVA Analytics
42+
*
43+
* DROP Computational Core implements libraries for the following:
44+
* - Algorithm Support
45+
* - Computation Support
46+
* - Function Analysis
47+
* - Graph Algorithm
48+
* - Model Validation
49+
* - Numerical Analysis
50+
* - Numerical Optimizer
51+
* - Spline Builder
52+
* - Statistical Learning
53+
*
54+
* Documentation for DROP is Spread Over:
55+
*
56+
* - Main => https://lakshmidrip.github.io/DROP/
57+
* - Wiki => https://github.com/lakshmiDRIP/DROP/wiki
58+
* - GitHub => https://github.com/lakshmiDRIP/DROP
59+
* - Repo Layout Taxonomy => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md
60+
* - Javadoc => https://lakshmidrip.github.io/DROP/Javadoc/index.html
61+
* - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal
62+
* - Release Versions => https://lakshmidrip.github.io/DROP/version.html
63+
* - Community Credits => https://lakshmidrip.github.io/DROP/credits.html
64+
* - Issues Catalog => https://github.com/lakshmiDRIP/DROP/issues
65+
*
66+
* Licensed under the Apache License, Version 2.0 (the "License");
67+
* you may not use this file except in compliance with the License.
68+
*
69+
* You may obtain a copy of the License at
70+
* http://www.apache.org/licenses/LICENSE-2.0
71+
*
72+
* Unless required by applicable law or agreed to in writing, software
73+
* distributed under the License is distributed on an "AS IS" BASIS,
74+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
75+
*
76+
* See the License for the specific language governing permissions and
77+
* limitations under the License.
78+
*/
79+
80+
/**
81+
* <i>AgentRequest</i> implements the Request into a FIX Agent. The References are:
82+
*
83+
* <br><br>
84+
* <ul>
85+
* <li>
86+
* Berkowitz, S. A., D. E. Logue, and E. A. J. Noser (1988): The Total Cost of Transactions on the
87+
* NYSE <i>Journal of Finance</i> <b>43 (1)</b> 97-112
88+
* </li>
89+
* <li>
90+
* Cont, R., and A. Kukanov (2017): Optimal Order Placement in Limit Order Markets <i>Quantitative
91+
* Finance</i> <b>17 (1)</b> 21-39
92+
* </li>
93+
* <li>
94+
* Vassilis, P. (2005a): A Realistic Model of Market Liquidity and Depth <i>Journal of Futures
95+
* Markets</i> <b>25 (5)</b> 443-464
96+
* </li>
97+
* <li>
98+
* Vassilis, P. (2005b): Slow and Fast Markets <i>Journal of Economics and Business</i> <b>57
99+
* (6)</b> 576-593
100+
* </li>
101+
* <li>
102+
* Weiss, D. (2006): <i>After the Trade is Made: Processing Securities Transactions</i> <b>Portfolio
103+
* Publishing</b> London UK
104+
* </li>
105+
* </ul>
106+
*
107+
* <br><br>
108+
* <ul>
109+
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ProductCore.md">Product Core Module</a></li>
110+
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/TransactionCostAnalyticsLibrary.md">Transaction Cost Analytics</a></li>
111+
* <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>
112+
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/oms/fix4_2/README.md">Implementation of FIX 4.2 Constructs</a></li>
113+
* </ul>
114+
*
115+
* @author Lakshmi Krishnamurthy
116+
*/
117+
118+
public class AgentRequest
119+
{
120+
private String _id = null;
121+
private Order _order = null;
122+
private String _parentID = null;
123+
private Date _arrivalTime = null;
124+
private int _type = Integer.MIN_VALUE;
125+
126+
/**
127+
* Retrieve the Request Arrival Time
128+
*
129+
* @return Request Arrival Time
130+
*/
131+
132+
public Date arrivalTime()
133+
{
134+
return _arrivalTime;
135+
}
136+
137+
/**
138+
* Retrieve the Request ID
139+
*
140+
* @return Request ID
141+
*/
142+
143+
public String id()
144+
{
145+
return _id;
146+
}
147+
148+
/**
149+
* Retrieve the Parent Request ID
150+
*
151+
* @return Parent Request ID
152+
*/
153+
154+
public String parentID()
155+
{
156+
return _parentID;
157+
}
158+
159+
/**
160+
* Retrieve the Request Type
161+
*
162+
* @return Request Type
163+
*/
164+
165+
public int type()
166+
{
167+
return _type;
168+
}
169+
170+
/**
171+
* Retrieve the Order in the Request
172+
*
173+
* @return Order in the Request
174+
*/
175+
176+
public Order order()
177+
{
178+
return _order;
179+
}
180+
}

src/main/java/org/drip/oms/fix4_2/FIXOrder.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,4 +187,26 @@ public Date creationRequestTime()
187187
{
188188
return _creationRequestTime;
189189
}
190+
191+
/**
192+
* Retrieve the FIX <code>ClOrdID</code>
193+
*
194+
* @return FIX <code>ClOrdID</code>
195+
*/
196+
197+
public String clOrdID()
198+
{
199+
return _order.id();
200+
}
201+
202+
/**
203+
* Retrieve the FIX <code>OrigClOrdID</code>
204+
*
205+
* @return FIX <code>OrigClOrdID</code>
206+
*/
207+
208+
public String oridClOrdID()
209+
{
210+
return _order.parentID();
211+
}
190212
}

src/main/java/org/drip/oms/switchable/StopOrder.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ public MarketOrder switchToMarket (
381381
parentID(),
382382
new Date(),
383383
side(),
384-
size(),
384+
quantityTracker().current(),
385385
null,
386386
null
387387
);
@@ -396,10 +396,4 @@ public MarketOrder switchToMarket (
396396
{
397397
return true;
398398
}
399-
400-
@Override public Order generateChildOrder (
401-
final double filledSize)
402-
{
403-
return null;
404-
}
405399
}

src/main/java/org/drip/oms/thresholded/LimitOrder.java

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -333,27 +333,4 @@ public PegScheme pegScheme()
333333
{
334334
return true;
335335
}
336-
337-
@Override public Order generateChildOrder (
338-
final double filledSize)
339-
{
340-
try {
341-
return new LimitOrder (
342-
issuer(),
343-
ticker(),
344-
StringUtil.GUID(),
345-
parentID(),
346-
new Date(),
347-
side(),
348-
size() - filledSize,
349-
null,
350-
null,
351-
_pegScheme
352-
);
353-
} catch (Exception e) {
354-
e.printStackTrace();
355-
}
356-
357-
return null;
358-
}
359336
}

0 commit comments

Comments
 (0)