2

我需要创建TradeCaptureReportFIX 消息。在我尝试创建之前,如何做到这一点很清楚Parties

...
<RptSide Ccy="USD" ... >
    <Pty Src="D" ID="1111" R="11">
        <Sub ID="AA" Typ="4010"/>
        <Sub ID="AA" Typ="4013"/>
    </Pty>
    <Pty Src="D" ID="1360" R="1"/>
</RptSide>

RptSide/Pty          - 453
RptSide/Pty/@ID      - 448
RptSide/Pty/@Src     - 447
RptSide/Pty/@R       - 452

RptSide/Pty/Sub      - 802
RptSide/Pty/Sub/@ID  - 523
RptSide/Pty/Sub/@Typ - 803

final TradeCaptureReport tradeCaptureReport = new TradeCaptureReport();
...
final Instrument instrument = new Instrument();
tradeCaptureReport.set(instrument);
...
 // (552) RptSide/*
TradeCaptureReport.NoSides rptSide = new TradeCaptureReport.NoSides();
tradeCaptureReport.addGroup(rptSide);

// (15) RptSide/@Ccy (Currency)
rptSide.set(new Currency("USD"));
...

// (453) RptSide/Pty/*:
Parties parties = new Parties();
rptSide.setGroups(parties);


// (802) RptSide/Pty/Sub/* (NoPartySubIDs)
NoPartySubIDs sub = new NoPartySubIDs();

// (523) RptSide/Pty/Sub/@ID (PartySubID)
PartySubID subID1 = new PartySubID("AA");
PartySubID subID2 = new PartySubID("AA");

// (803) RptSide/Pty/Sub/@Typ (PartySubIDType)
PartySubIDType subIdTyp1 = new PartySubIDType(4010);
PartySubIDType subIdTyp2 = new PartySubIDType(4013);

有人可以提供 Java 代码示例如何创建和链接它们RptSide (803)吗?

4

1 回答 1

3

创建派对:

...
<RptSide Ccy="USD" ... >
    <Pty Src="D" ID="1111" R="11">
        <Sub ID="AA" Typ="4010"/>
        <Sub ID="AA" Typ="4013"/>
    </Pty>
    <Pty Src="D" ID="1360" R="1"/>
</RptSide>

可以用 Java 编写代码:

final TradeCaptureReport tradeCaptureReport = new TradeCaptureReport();
...
final Instrument instrument = new Instrument();
tradeCaptureReport.set(instrument);
...
 // (552) RptSide/*
TradeCaptureReport.NoSides rptSide = new TradeCaptureReport.NoSides();

// (15) RptSide/@Ccy (Currency)
rptSide.set(new Currency("USD"));
...

// (453) RptSide/Pty/*:
// 1-st Pty:
Parties.NoPartyIDs ptyGrp = new Parties.NoPartyIDs();

ptyGrp.set(new PartyID("1111"));
ptyGrp.set(new PartyIDSource('D'));
ptyGrp.set(new PartyRole(11));

Parties.NoPartyIDs.NoPartySubIDs subGrp = new Parties.NoPartyIDs.NoPartySubIDs();

subGrp.set(new PartySubID("AA"));
subGrp.set(new PartySubIDType(4010));

ptyGrp.addGroup(subGrp);                          // add <Sub ID="AA" Typ="4010"/>

subGrp = new Parties.NoPartyIDs.NoPartySubIDs();

subGrp.set(new PartySubID("AA"));
subGrp.set(new PartySubIDType(4013));

ptyGrp.addGroup(subGrp);                          //add <Sub ID="AA" Typ="4013"/>

rptSide.addGroup(ptyGrp);                         // add <Pty Src="D" ID="1111" R="11">... with 2 Sub-s (above)

// 2-nd Pty:
ptyGrp = new Parties.NoPartyIDs();

ptyGrp.set(new PartyID("1360"));
ptyGrp.set(new PartyIDSource('D'));
ptyGrp.set(new PartyRole(1));

rptSide.addGroup(ptyGrp);                        // add <Pty Src="D" ID="1360" R="1"/>

tradeCaptureReport.addGroup(rptSide);            // add <RptSide Ccy="USD" ... > with nested Pty-s

我不确定它是否符合规则,但至少它会创建预期的修复消息。所以建议:“如果你已经读过它 [doc],请再读一遍”是有帮助的(非常感谢 Grant Birchmeier)。

于 2016-02-02T10:23:55.510 回答