重复组FIX中的必填字段

时间:2013-06-14 21:01:41

标签: quickfix fix-protocol

所以我试图在FIX消息中生成重复组,但是我需要一种方法来确定每个重复组所需的字段,因此我不需要对所有内容进行硬编码。出于某种原因,quickfix DataDictionary类的方法

isRequiredField((java.lang.String msgType, int field)

不适用于重复组中的必填字段。例如

isRequiredField("V", 269)

假设是假的,即使它是required。 Fix 4.2 XML也根据需要提供了它,为什么isRequiredField方法返回false?

1 个答案:

答案 0 :(得分:1)

我认为您需要getGroup(java.lang.String msg, int field),其中field是群组计数器字段的标记。

这将为您提供一个DataDictionary.GroupInfo对象,您可以调用getDataDictionary().isRequiredField(msgType,field)(使用相同的消息类型)。

我认为无论如何都会奏效。 docs没有明确说明这一点。

但你为什么要这样做?

说实话,我不确定你为什么认为你需要这样做。根本不需要动态查询所需的字段。接收时,引擎会检查您所需的/不需要的。当您发送时,您必须将值设置为所有必需字段(您无法动态地执行此操作!)。

除非您正在编写某种DD分析工具,否则我认为您正在花时间研究红鲱鱼。