QuickFIX/N入门:四、使用消息循环分组

分组(group) 是包含一个无序的字段的集合的命名类型。允许在一个循环组里出现重复的数据字段。  

QuickFIX/N 实现了在FIX消息创建和读取的组信息的功能

1) 创建循环分

创建一个循环分简单 创建一个分组类的实例向分组内添加字段,然后把它添加到消息中

var tcr = new QuickfiFix.FIX44.TradeCaptureReport();

var sidesGrp1 = new QuickFix.FIX44.TradeCaptureReport.NoSidesGroup();

sidesGrp1.Account = new Account("Silvio");

sidesGrp1.OrderID = new OrderID("09011900");

sidesGrp1.Side = new Side(Side.BUY);

var sidesGrp2 = new QuickFix.FIX44.TradeCaptureReport.NoSidesGroup();

sidesGrp2.Account = new Account("Sven");

sidesGrp2.OrderID = new OrderID("2000");

sidesGrp2.Side = new Side(Side.BUY);

tcr.AddGroup(sidesGrp1);

tcr.AddGroup(sidesGrp2);

分组可以嵌套也就是分组还可以创建子分组 

var tcr = new QuickFix.FIX44.TradeCaptureReport();

var sidesGrp = new QuickFix.FIX44.TradeCaptureReport.NoSidesGroup();

sidesGrp.Side = new Side(Side.BUY);

sidesGrp.Account = new Account("Piola");

sidesGrp.OrderID = new OrderID("09011900");

var partyIdsGrp = new QuickFix.FIX44.TradeCaptureReport.NoSidesGroup.NoPartyIDsGroup();

partyIdsGrp.PartyID = new PartyID("Nesta13");

sidesGrp.AddGroup(partyIdsGrp);

tcr.AddGroup(sidesGrp);

2) 读取分组的信息

QuickFIX/N提供组字段和组索引两种方式来支持从组内读取标签信息:

var sidesGrp1 = new QuickFix.FIX44.TradeCaptureReport.NoSidesGroup();

sidesGrp1 = tcr.GetGroup(1, Tags.NoSides);

var sidesGrp2 = new QuickFix.FIX44.TradeCaptureReport.NoSidesGroup();

sidesGrp2 = tcr.GetGroup(2, Tags.NoSides);

组索引1开始。我们可以使用for语句来循环读取分组的字段值:

var noSidesGrp = new QuickFix.FIX44.TradeCaptureReport.NoSidesGroup();

for(int grpIndex = 1; grpIndex<= message.GetInt(Tags.NoSides); grpIndex = 1)

{

    noSidesGrp = message.GetGroup(grpIndex, Tags.NoSides);

}

转载于:https://www.cnblogs.com/jinglelin/archive/2012/04/29/2476235.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值