-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standardize a context representing a Trade #655
Comments
I don't think it's valid to make units a required field. Some instruments (e.g. Mutual Funds) are commonly traded as value-based trades where the open order is an instruction to subscribe to, or redeem, sufficient units to realise a specified amount of currency. e.g. "raise 50k in cash" We often talk about referring to prior art (well, @rikoe does :-) ) and FIX has already solved this by requiring an OrderQtyData block that consists of either an OrderQty or CashOrderQty. It seems silly to go backwards in this respect. Can I suggest a similar concept here, e.g. const trade = {
type: "fdc3.trade",
instrument: {
type: "fdc3.instrument",
id: {
ISIN: "LU1988889314"
}
},
tradeTimeRange: {
type: "fdc3.timeRange",
starttime: "2020-09-01T08:00:00.000Z"
},
settleTimeRange: {
type: "fdc3.timeRange",
starttime: "2020-09-02T08:00:00.000Z"
},
quantity: {
units: 123.456
},
open: {
type: 'fdc3.valuation',
value: 50000.0,
price: 405.0,
CURRENCY_ISOCODE: 'GBP'
},
location: "XYZ",
account: "cash"
};
fdc3.broadcast(trade); as well as: const trade = {
type: "fdc3.trade",
instrument: {
type: "fdc3.instrument",
id: {
ISIN: "LU1988889314"
}
},
tradeTimeRange: {
type: "fdc3.timeRange",
starttime: "2020-09-01T08:00:00.000Z"
},
settleTimeRange: {
type: "fdc3.timeRange",
starttime: "2020-09-02T08:00:00.000Z"
},
quantity: {
value: -50000.0,
CURRENCY_ISOCODE: 'GBP'
},
open: {
type: 'fdc3.valuation',
value: 50000.0,
price: 405.0,
CURRENCY_ISOCODE: 'GBP'
},
location: "XYZ",
account: "cash"
};
fdc3.broadcast(trade); |
Sorry for the stupid question but what does location stand for and how should it be used? |
@dominicgifford updated with your quantity suggestion. Marked quantity required, but not the sub-fields. However, I can probably finesse that in the actual schema (e.g. require units or value + CURRENCY_ISOCODE). What do you suggest? Also I have no idea what a realistic |
P.S. this context is probably a good candidate from an experimental label |
Enhancement Request
Create a context type to represent an individual Trade.
Use Case:
Represent an individual transaction relating to a specified security, which may be visualized (e.g. on a pricing chart) or used to compose another context type, such as a Position context.
Contexts
Trade
A
Trade
represents a holding's duration, value and location. It may form a key component of aPosition
context.The trade can either be open or closed. This is expressed with the population of the fields pertaining to the end time/value (leave out the end times and close properties for an open trade).
The Trade type goes hand-in-hand with the
Position
type, which represents multiple trades in a combination of dates, values, or locations. It may also be used to construct a list of historical trades.Details
type
'fdc3.trade'
id
{ 'tradeId: "ABCDE123455" }
instrument
{ type: 'fdc3.instrument', ... }
tradeTimeRange
{ type: 'fdc3.timeRange', ... }
settleTimeRange
{ type: 'fdc3.timeRange', ... }
quantity
quantity.units
quantity.value
quantity.CURRENCY_ISOCODE
"GBP"
open
{ type: 'fdc3.valuation', ... }
close
{ type: 'fdc3.valuation', ... }
location
'London trading desk'
account
cash
* See issue #646
** See issue #652
Example
Additional Information
Below is feedback from our working group members during previous workshops around this proposal. These are guidelines which should be taken into account when working on this proposal.
The text was updated successfully, but these errors were encountered: