History statements are based on an obscure DID not traceable by FIX API
History statements are based on an obscure DID not traceable by FIX API
18 Aug 2017, 01:58
Please forgive me to say, how on earth can be possible to reference the trades in a "history statement" (from the cTrader platform) without an ID that can be obtained from FIX API.
The FIX protocol gives access to 2 types of IDs via the "Execution Report" .
The "cTrader order id" as "OrderID" (tag = 37) and the "Position ID" as "PosMaintRptID" (tag = 721).
Obviously there is one OrderID for opening a position, and another OrderID for closing the same position, since the OrderID refers to an order and not to a position.
However in the "history statement" what is described (and needed) is the positions form start (or from entry or open) to close and not the orders.
So I think that the only logical reference ID for a "history statement" must be the PosMaintRptID.
The "PosMaintRptID" remains the same throughout the complete trade from open to close.
In the current "history statements" is used an obscure "DID" which comes from nowhere.
This is really amazing!
The "DID" is not the "OrderID" neither the "PosMaintRptID".
And funny enough (though the funny is not for account statements), there are more than one "DID" for each trade (as shown in the information panel of each trade).
There is no way to get that "DID" from FIX API.
I suppose the purpose of the "history statement" is for a person to compare his own records for each trade, with those exported from the cTrader. For that it needs a common basis, a common reference, a common ID. But there is no common ID between the "history statement" and the FIX API. As it stands at present, the "history statement" is almost useless, if not extremely irritating at intellectual level.
Sincerely.
PS.
A similar problem is in the "Positions" panel of the cTrader.
The Positions ID is probably the most important element to be displayed.
All other information is useless if it cannot be identified and know for what it stands.
You may see at Metatrader for instance, the position ID can be seen immediately.
To my view, this is called "respect".
Ignoring the Positions ID from the immediate display, to my view is "disrespectful" to the whole process.
Unless it is suppose to be a toy like gadget for clerks entering trades by typing with one finger, in 9:00 to 5:00 office hours.
What use is to have peculiar graphical designs directing to manual invocation for extra-terrestrial-info in secondary panels (the Position ID is somewhere in the secondary extra-terrestrial) that do not leave much space in the panel for the most essential.
Obviously one compensating thought that comes to mind, is that for FIX created trades, it can use the field "Label" for identification which is in immediate display in the "Positions" panel.
Replies
sand
20 Aug 2017, 00:06
Thank you for your reply and the useful information.
For the first point of the Deal ID, it is understandable since in the history statements you display the deals and not the positions.
However from the user's side, that DID is not available in the FIX API.
The user cannot identify/compare the deal based on his information from the FIX API.
The corresponding OID (Order ID) though is available to the user via the FIX API and is uniquely linked to the DID.
For the second issue of the PID in the open Position panel, your information solved my problem as I can select from the menu to display the PID.
Also I found out that likewise (from that menu) I can select to display the "Label" in the "History" panel (and hide the DID) which solves also my first problem of the history statements since the "Label" is available in the FIX API.
One minor suggestion, probably it would not harm if it were possible to add into that right-click menu also the OID for the "History" panel.
Both the 2 issues of my inquiry are solved.
I appreciate your assistance.
Thank you .
@sand
Spotware
18 Aug 2017, 10:09 ( Updated at: 21 Dec 2023, 09:20 )
Dear sand,
Thanks for your post. Please see below some useful information regarding the issues raised
1) So I think that the only logical reference ID for a "history statement" must be the PosMaintRptID.
The history statement in cTrader displays the deals and not the positions, hence the DID (Deal ID). An order might be filled by one or many deals e.g in the case of partial filling, and these deals will result into a position. In the history tab, If you click on the “i” button in each deal you will see the requesting order as well as the resulting position. See image below.
2) A similar problem is in the "Positions" panel of the cTrader.
If you right click on the Positions Grid header, you can see all the available columns. You can click on the ID column for the PID to display in the Positions Grid
Let us know if the above information is helpful to you.
Best Regards,
cTrader Team
@Spotware