如何在FIX消息中创建多个Party?

时间:2016-02-01 13:37:12

标签: fix-protocol quickfixj

我需要创建HashMap<String,String>个FIX消息。在我尝试创建TradeCaptureReport之前,很清楚如何执行此操作:

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

有人可以给Java代码示例如何创建并将它们链接到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); 吗?

1 个答案:

答案 0 :(得分:2)

创建派对:

...
<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

我根据规则不确定它,但至少它会创建预期的修复消息。所以建议:&#34;如果您已经阅读了[doc],请再次阅读&#34;很有帮助(非常感谢Grant Birchmeier)。