Pushing positions

Imported from previous forum

Hi,
I have experience from order, execution reports, and allocations via FIX. Now I have a new request and would like to save some time by addressing the problem correct from the beginning.
If I like to push positions from one system to another via FIX. (not trades that updates positions, the position itself). How to do it?
For example I have a portfolio with account=8417 and would like to push all 10 position of that account to the risk system. For example with an interval.
Any comment on this? I see key problems in instrument data , instrument types. And stuff that risk system need like coupons’, expire date etc. But assume that the receiving system have this at least. There is issues in replace all positions, or update them too.
FIX and STP is key-hot-stuff by the way!
/ Jan

I suggest to take a look at the Position Maintenance messages (FIX 5.0 SP2 Volume 5, pages 128-147 and then come back with specific questions. You point to the reference data problem where you have two choices if your target system does NOT have it (otherwise you have to use whatever it expects): a) send it as part of the Position Maintenance messages or b) send SecurityDefinition(UpdateReport) messages with short IDs ahead of your messages having the positions (which then use the short IDs as reference). a) is simpler than b) but probably results in more data having to be sent (tradeoff between bandwidth and complexity).

Hi,
I have experience from order, execution reports, and allocations via FIX. Now I have a new request and would like to save some time by addressing the problem correct from the beginning.
If I like to push positions from one system to another via FIX. (not trades that updates positions, the position itself). How to do it?
For example I have a portfolio with account=8417 and would like to push all 10 position of that account to the risk system. For example with an interval.
Any comment on this? I see key problems in instrument data , instrument types. And stuff that risk system need like coupons’, expire date etc. But assume that the receiving system have this at least. There is issues in replace all positions, or update them too.
FIX and STP is key-hot-stuff by the way!
/ Jan

Jan we also have an active post trade working group - FIAPTWG that could provide further guidance.

In another market we are using PositionMaintenance messages via the front end interface to exercise options positions. I think there is an interest in being able to communicate what is traditionally back office information of the trading interface given the move to real time clearing.

I suggest to take a look at the Position Maintenance messages (FIX 5.0 SP2 Volume 5, pages 128-147 and then come back with specific questions. You point to the reference data problem where you have two choices if your target system does NOT have it (otherwise you have to use whatever it expects): a) send it as part of the Position Maintenance messages or b) send SecurityDefinition(UpdateReport) messages with short IDs ahead of your messages having the positions (which then use the short IDs as reference). a) is simpler than b) but probably results in more data having to be sent (tradeoff between bandwidth and complexity).

Hi,
I have experience from order, execution reports, and allocations via FIX. Now I have a new request and would like to save some time by addressing the problem correct from the beginning.
If I like to push positions from one system to another via FIX. (not trades that updates positions, the position itself). How to do it?
For example I have a portfolio with account=8417 and would like to push all 10 position of that account to the risk system. For example with an interval.
Any comment on this? I see key problems in instrument data , instrument types. And stuff that risk system need like coupons’, expire date etc. But assume that the receiving system have this at least. There is issues in replace all positions, or update them too.
FIX and STP is key-hot-stuff by the way!
/ Jan

Hi,
You mentioned a "post trade working group - FIAPTWG"
Is that a open group, or a closed one, and where can I locate it?

What does it take from me to join?

/ Jan

Please see http://fixglobal.com/category/free-tag/ptwg for some background information. It is a joint FIA/FOA and FPL initiative and currently limited to clearinghouses.

Hi,
You mentioned a “post trade working group - FIAPTWG”
Is that a open group, or a closed one, and where can I locate it?

What does it take from me to join?

/ Jan

Hi and thanks for the help.
I am now studding The specification as suggested.

Is my over all picture correct:

1-Position support only exist in FIX 5.0 and grater? (not a problem, but need to know)
2-The system that needs to receive positions, send a Request for Positions, maybe with the SubscriptionRequestType tag 263 set? (will this flag be only for trade or can hole position be recent at some interval? In my case, I would like to use granularity “position report only”.
3-All account has to be listed in the “component block Parties”? There is no wildcard way of getting all portfolios?
4-The receiving system answer with “Position request ack
5-The receiving system send a number of “position report"

TotalNumPosReports - is number of position in this report, or is it the number of position report messages included in the answer of this request? And are the individual numbered in some field?

If I have a portfolio “account 8417” that has two positions:
ERIC B 1 000 shares
AZN 2000 shares

What data should I put in “InstrmtLegGrp”, “PosUnderInstrGrp”, PositionAmountData and so on? And how do they relate to each other?

Am I supped to list the two instrument first in “component block instrument” and then just the quantity of each position in “component block Position Qty”? and they are just in order? instrument 1 matching Qty1?

Thanks again. I will use QuickFix engine to try this as soon as I grasp it a little more.
/ Jan

Jan,

let me be straight with you. I will answer most of your questions but you are in need of a local FIX consultant who can advise you on an on-going basis and on the details you will be needing. You seem to be unfamiliar with some of the basics and where to find information. This forum is inadequate to follow along an entire design process. It is good at answering specific questions.
Here we go:
1 Position maintenance was first supported in FIX 4.4
2 The transaction model depends on your counterparty and the features it supports (request/response, unsolicited updates). FIX provides messages for everything but that does not mean that your counterparty has to support them
2 Position messages are about positions and not about trades. The granularity of the reports needs to be bilaterally agreed between the counterparties
3 You CAN list specific accounts in , you do not have to which can be used to express “all acounts”. You MUST specify at least one party which then could be you as submitter, i.e. sufficient information to determine what “all accounts” actually means. Again, your counterparty must support this kind of implicit wildcard, I am just giving you an idea of your design options.
4 Yes, the PosReqAck merely tells the submitter that his request has been received and will be processed (or not).
5 Yes, PosRpt messages represent the answer to the request. TotalNumPosReports gives you “Total number of Position Reports being returned” and not a sequence number. PosReqAck is otpional so the submitter might not know otherwise how many reports he will get.
5 No, there is no such counter like “report x of y” with x being the current and y the total.

  • InstrmntLegGrp is for multileg instruments (derivatives). Shares do not have legs.
  • PosUnderInstrmtGrp is for underlyings of the instrument (e.g. option) reported. Shares do not have underlyings.
  • Component block instrument is not a repeating group, it can only define a single instrument. PositionQty is a repeating group but only for different quantity types of the same position being reported.
  • One position report should be for one account and one instrument
    Good luck,
    Hanno.

Hi and thanks for the help.
I am now studding The specification as suggested.

Is my over all picture correct:

1-Position support only exist in FIX 5.0 and grater? (not a problem, but need to know)
2-The system that needs to receive positions, send a Request for Positions, maybe with the SubscriptionRequestType tag 263 set? (will this flag be only for trade or can hole position be recent at some interval? In my case, I would like to use granularity “position report only”.
3-All account has to be listed in the “component block Parties”? There is no wildcard way of getting all portfolios?
4-The receiving system answer with “Position request ack
5-The receiving system send a number of “position report"

TotalNumPosReports - is number of position in this report, or is it the number of position report messages included in the answer of this request? And are the individual numbered in some field?

If I have a portfolio “account 8417” that has two positions:
ERIC B 1 000 shares
AZN 2000 shares

What data should I put in “InstrmtLegGrp”, “PosUnderInstrGrp”, PositionAmountData and so on? And how do they relate to each other?

Am I supped to list the two instrument first in “component block instrument” and then just the quantity of each position in “component block Position Qty”? and they are just in order? instrument 1 matching Qty1?

Thanks again. I will use QuickFix engine to try this as soon as I grasp it a little more.
/ Jan

Hi
Maybe my FiX is a little rusty, but with your answer, it is now up and running, feeding a position from one system to another just for test.
It would be lovely to read the specification of one specific existing system that feeds positions just for learning of that specific implementation.

1-I now send position reports, one per account/paper with one PositionQty inside. I realize that settlprice is a key here. Is that the price that is the average for the current position? If this security has been bought and sold many times, there is now a “current nr of shares, long or short” and also a result (p&l).

Where in a position report should these values be presented?

  • Historic Acquisition price (average acq price used)
  • Todays Incomming Acquisition price (yesterday currency exchange rate used)
  • Todays Acquistion price (average price, calculated on yesterday position with yesterdays valuations, plus doday transactions at today prices)
  • Todays Realized P/L (compared todays acq price)

This is highly special requests, but what I am after is only of this fit within standard fix positions report message or other type of FIX message.

2- What about cash position? How to report that there is 10000 of USD and 5000 EUR in reported account?

  1. Execution report – reports trades, but in what message to report Dividend, Coupons, Cash Payments in/out?) What about movements of shares? Think about client inserting cash and securities to a portfolio from another one.

  2. Is there anywhere in fix to report Portfolio groups? Account groups or similar? To specify relationship between accounts (sub account etc.)?

  3. The Request for positions can be for Position only, snapshot and updates. And also for Trades. I can’t locate where trade as response will be sent. In what Part of the Position Report? Or in other message?
    Is there any documentation/example of the overall picture of this kind of usage of FIX?
    Again thanks.

Jan,

let me be straight with you. I will answer most of your questions but you are in need of a local FIX consultant who can advise you on an on-going basis and on the details you will be needing. You seem to be unfamiliar with some of the basics and where to find information. This forum is inadequate to follow along an entire design process. It is good at answering specific questions.
Here we go:
1 Position maintenance was first supported in FIX 4.4
2 The transaction model depends on your counterparty and the features it supports (request/response, unsolicited updates). FIX provides messages for everything but that does not mean that your counterparty has to support them
2 Position messages are about positions and not about trades. The granularity of the reports needs to be bilaterally agreed between the counterparties
3 You CAN list specific accounts in , you do not have to which can be used to express “all acounts”. You MUST specify at least one party which then could be you as submitter, i.e. sufficient information to determine what “all accounts” actually means. Again, your counterparty must support this kind of implicit wildcard, I am just giving you an idea of your design options.
4 Yes, the PosReqAck merely tells the submitter that his request has been received and will be processed (or not).
5 Yes, PosRpt messages represent the answer to the request. TotalNumPosReports gives you “Total number of Position Reports being returned” and not a sequence number. PosReqAck is otpional so the submitter might not know otherwise how many reports he will get.
5 No, there is no such counter like “report x of y” with x being the current and y the total.

  • InstrmntLegGrp is for multileg instruments (derivatives). Shares do not have legs.
  • PosUnderInstrmtGrp is for underlyings of the instrument (e.g. option) reported. Shares do not have underlyings.
  • Component block instrument is not a repeating group, it can only define a single instrument. PositionQty is a repeating group but only for different quantity types of the same position being reported.
  • One position report should be for one account and one instrument
    Good luck,
    Hanno.

Hi and thanks for the help.
I am now studding The specification as suggested.

Is my over all picture correct:

1-Position support only exist in FIX 5.0 and grater? (not a problem, but need to know)
2-The system that needs to receive positions, send a Request for Positions, maybe with the SubscriptionRequestType tag 263 set? (will this flag be only for trade or can hole position be recent at some interval? In my case, I would like to use granularity “position report only”.
3-All account has to be listed in the “component block Parties”? There is no wildcard way of getting all portfolios?
4-The receiving system answer with “Position request ack
5-The receiving system send a number of “position report"

TotalNumPosReports - is number of position in this report, or is it the number of position report messages included in the answer of this request? And are the individual numbered in some field?

If I have a portfolio “account 8417” that has two positions:
ERIC B 1 000 shares
AZN 2000 shares

What data should I put in “InstrmtLegGrp”, “PosUnderInstrGrp”, PositionAmountData and so on? And how do they relate to each other?

Am I supped to list the two instrument first in “component block instrument” and then just the quantity of each position in “component block Position Qty”? and they are just in order? instrument 1 matching Qty1?

Thanks again. I will use QuickFix engine to try this as soon as I grasp it a little more.
/ Jan