Skip to content
All library documents

Inferring Trade Direction in NDF FX Data from Repeated Prices

Article Quant Q&A · Author: Sergio Torres

Summary

The exchange considers whether fields in DTCC dashboard data can identify whether a non-deliverable forward (NDF) FX trade was buyer- or seller-initiated. The respondent reviews transaction attributes such as event type, clearing status, package indicators, and amendment status, but finds no field that directly resolves trade direction.

A tentative heuristic is to examine consecutive trades recorded at the same price and infer that they share an initiating side. In the cited example, the respondent labels one trade as seller-initiated and carries that assumption to the next trade. The answer notes that this approach applies to only a portion of the example data and describes the inference as low risk, but provides no validation results or general accuracy estimate. It is therefore a limited labeling clue, not a reliable standalone algorithm; trade direction remains difficult to infer from the listed fields alone.

Key ideas

  • The listed NDF transaction fields do not directly identify the initiating side.
  • Consecutive trades at the same price may offer a clue about shared trade direction.
  • The proposed inference is applicable to only part of the example data.
  • The exchange provides no measured accuracy or validation for the heuristic.

Tags

Full text
# Algorithm for Identifying NDF FX Trades as Buy or Sell


# Algorithm for Identifying NDF FX Trades as Buy or Sell












Do you know if there is an algorithm for identifying NDF FX trades as buy or sell? I am working on a project with data from the DTCC dashboard.

## Answer by lehalle (score 1)

https://quant.stackexchange.com/a/80323

I had a look at the data and produced this chart: When you see all these trades it is clearly difficult to know if a buyer or a seller initiated it.

moreover, I had a look at the columns

```

Event type: ['TRAD', 'CLRG', 'EXER']
Amendment indicator: [False, True]
Cleared: ['N', 'I', 'Y']
Prime brokerage transaction indicator: [True, False]
Large notional off-facility swap election indicator: [True, False]
Post-priced swap indicator: [False, True]
Package indicator: [False, True]
Package transaction price currency: ['USD', 'TWD']
Package transaction price notation: [1.0, 3.0]
Package transaction spread notation: [3.0, 1.0]
```

and I do not see any that could help.

Of course, you could look at consecutive trades with same price (only 1/4th of them in my example), and say they are on the same side.

For instance for this sequence:

you can assume with not a lot of risk that the trade at 32.10900 is sell initiated, and hence the next one is too.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.