Jump to content
  • 0

How does the relation between DealId and DealReference work in the different API endpoints


SZZ

Question

I'm trying to follow the documentation here: https://labs.ig.com/rest-trading-api-reference

My goal: I want to open an order via API, get frequent updates via lightstream and a final update when the order is closed, including P&L information.

I open the order by putting a request to /gateway/deal/positions/otc v2. This works and returns a deal id and a deal reference

Then I confirm the order by deal id using /gateway/deal/confirms/ v1. This also works.

I also get updates via the lightstream API on the trade type OPU with the status OPEN and DELETED when the order is closed. Again, the DealId and the Reference match. But the DELETED update does not contain a P&L information.

 

So on DELETE I access the activity transaction history by deal ID: /gateway/deal/history/activity v3. This also works, but also does not contain P&L, but therefore a description with a new Id, reading "Position opened: [some id]". This id consits of the last part of the DealId.

Afterwards, I access the transaction history on /gateway/deal/history/transactions v2. Here I finally have a P&L, but the reference field contains a new reference that never showed up before. There is just no way to link the transaction to the activity or to an order.

 

So the question: Is there any way to get P&L information on a closed position based on deal Id or deal reference? I really don't want to match opening date and epic name, that's just bad practice.

 

 

 

 

 

  • Like 1
Link to comment

8 answers to this question

Recommended Posts

  • 0
INFO:trading_ig.rest:GET '/history/activity/', resp 200
                   date                  marketName                      epic  period    level direction           dealId
0   2023-11-10T05:45:05           Oil - Brent Crude        EN.D.LCO.Month6.IP  JAN-24   8034.5      SELL  DIAAAANP68C8YAQ
1   2023-11-09T05:45:11  10-Year T-Note Decimalised  IR.D.10YEAR100.Month2.IP  DEC-23    10845       BUY  DIAAAANPPY34SAG


INFO:trading_ig.rest:GET '/history/transactions', resp 200
            openDateUtc              dateUtc              instrumentName  period openLevel closeLevel   size        reference profitAndLoss
0   2023-10-27T18:59:23  2023-11-10T05:45:05           Oil - Brent Crude  JAN-24      8923     8034.5  +0.53  DIAAAANP68C8YAQ      £-470.91
1   2023-09-26T17:17:04  2023-11-09T05:45:11  10-Year T-Note Decimalised  DEC-23   10814.4      10845  -0.62  DIAAAANPPY34SAG       £-18.97

The dealId field from the activities endpoint (/history/activity) matches the reference field from the transactions endpoint (/history/transactions)

  • Like 1
Link to comment
  • 0

Thanks for confirming @bug-or-feature - the confusion is caused by what I presume is a Demo env bug, where the transaction reference generated for a closed trade is only half the length of the typical deadId character length 🤦‍♂️.

Here's an example: 

"date": "06/11/23",
"instrumentName": "FTSE 100 Cash (£10)",
"period": "-",
"profitAndLoss": "£25.00",
"transactionType": "DEAL",
"reference": "NR3HSJAP",
"openLevel": "7420",
"closeLevel": "7415",
"size": "-0.50",
"currency": "£",
"cashTransaction": false

The prefix of DIAAAAN was missing in this scenario and I couldn't in good faith presume it'd always be the same thus the confusion. Perhaps someone in the IG team could address how widespread this bug is.

 

Link to comment
  • 0

Hmm not sure what is going on. My previous examples were market orders. I just tried a working order, and the transaction response contained the full 15 character reference field, eg DIAAAANXXXXXXXX

Maybe someone from IG can explain. Why does the reference field in the /history/transactions response sometimes contain the full dealId, and sometimes just the portion after DIAAAAN?

 

Link to comment
  • 0

I've done a bit more digging - I think there is a bug. And now I understand the issue as described by @SZZ It looks to me like the /confirms endpoint returns the wrong dealId when closing a position. The Streaming API also reports the wrong dealId from the TRADE Subscription. They both respond with the dealId of the opening trade instead of the closing trade.

The correct closing trade dealId is reported by the /history/activity endpoint, and by the /history/transactions endpoint. So there is a workaround for your issue right now @SZZ . Once your trade is closed, look at the response of the /history/activity endpoint. Find the dealId where the affectedDealId is the ID of the opening trade, and description is "Positions/s closed: XXXXXXXX". Then lookup that dealId in the response of the /history/transactions endpoint, with field name reference.

I have reported this to the webapi team, will post any updates here

  • Like 1
Link to comment
  • 0

UPDATE:

I told the Web API team about this issue via their email address webapisupport@ig.com. Their reponse was: we know about this, it's not a bug. The excuse was

Quote

I understand that this is not 'consistent' with the history section but i looked through both reference documents and we also did not specify which dealID it is supposed to return

and then

Quote

This was how it is when we developed the API and we can submit this as a feedback to them to consider for future improvements.

My interpretation is: it has been like that since the API was released. They know its wrong, but to change it now would admit the mistake.

So for now, the laborious workaround mentioned above is the only solution.

Maybe if enough people make a noise about it, they will fix it. But I doubt it

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • image.png

  • Posts

    • Hae, crypto degenerates! 👋 Your boy's got the inside scoop on a DeFi gem that's about to blow up! LOGX Network is dropping on Bitget on September 24th, and I'm all in. Here's why I'm losing sleep over this: It's not just another DeFi clone. We're talking AI-powered trading, gasless transactions, and perpetual markets. It's like the lovechild of a hedge fund and a crystal ball! These madlads raised $10.1M from big dogs like Hashed Emergent. That's some serious validation! 67% of tokens going to the community? They're practically handing us the keys to the kingdom! A Cross-chain liquidity from Binance, Coinbase, and OKX. It's like the Avengers of crypto, assembled in one place! Airdrop alert! 🚨 Claims going live on Arbitrum. Free money, anyone? Look, I'm just a dude who likes to ape into promising projects, but LOGX is ticking all my boxes. It's innovative, community-focused, and backed by some serious players. Am I saying mortgage your house for this? Hell no! But maybe skip a few lattes and throw some change at it? Could be your ticket to lambo-land! What do you think? Is LOGX the next big thing or am I huffing too much hopium? Drop your thoughts below! 👇 Remember, DYOR and don't bet your lunch money. But also... don't miss out on potentially the hottest DeFi project of 2024!
    • Cardano (ADA) has seen an impressive 9% increase in price, rising from $0.3251 on September 7 to $0.3545 by September 15. This surge is linked to the announcement from The Artificial Superintelligence Alliance that their FET token is now live on the Cardano blockchain. Why Cardano? The ASI alliance chose Cardano for its strong security, fast transaction speeds, and low fees. This decision has reignited interest in the Cardano ecosystem, and many investors are paying attention. ADA Price Target Looking ahead, analysts believe ADA might aim for $0.5 in the coming days. With a positive Relative Strength Index (RSI) supporting this prediction, the ADA price target of $0.5 seems attainable. A boost in buying volume could help ADA break through this level, and if it does, the next target could be around $0.6. Ecosystem Expansion Cardano is also growing with innovations like the Iagon bridge, which allows asset transfers between Cardano and Ethereum. Additionally, ADA holders are considering investments in promising projects like Rollblock, currently in its 6th presale and promising potential returns of up to 200x. Conclusion As the broader crypto market rebounds, will Cardano continue its upward trend, or will it face challenges ahead? Stay tuned!    
    • Soybean Elliott Wave Analysis The soybean market is currently retracing within a long-term corrective structure that has developed since the peak in June 2022. While short-term upside potential appears likely, the overarching trend suggests that a significant sell-off is poised to resume, potentially driving prices toward the lows seen in 2020. Long-Term Perspective Before the decline that began in June 2022, soybeans experienced a robust bullish impulse wave starting in May 2019, which propelled prices from approximately $806 to significant highs. However, over the past 26 months, the market has surrendered more than two-thirds of those gains. From an Elliott Wave standpoint, the current corrective phase is forming a three-swing pattern, a typical structure within corrective waves that indicates a complex retracement. Daily Chart Analysis On the daily chart, we observe this corrective structure unfolding at the primary wave degree. Wave A reached its conclusion at $1,249 in October 2023, followed by Wave B, which peaked at $1,398 in November 2023. Presently, we are witnessing the formation of Wave C to the downside. Within this unfolding Wave C, sub-waves (1), (2), and (2) of 5 have already been completed. The market is now experiencing a retracement in Wave (4), currently trading above the significant level of $1,000. A key question arises: how high can this Wave (4) rally extend? H4 Chart Analysis Zooming into the H4 chart, we find that Wave (4) has completed its first sub-wave, denoted as Wave A. The bullish reaction observed since September 11, 2024, suggests that Wave B may have concluded. For confirmation that Wave B has indeed ended and that we are transitioning into Wave C, the price must break above the high of Wave A. Should this scenario play out, we could expect Wave C to advance toward the $1,070 level. Alternatively, if the price fails to surpass the high of Wave A, it may indicate that Wave B is set to make another minor leg down, dipping slightly below $1,000 before establishing a solid support base to initiate Wave C. Technical Analyst : Sanmi Adeagbo Source : Tradinglounge.com get trial here!  
×
×
  • Create New...
us