2016-10-05 6 views
1

FIX 프로토콜을 처음 사용하고 QuickFIX를 사용하여 내 FIX 메시지를 구문 분석합니다. 나는 위치보고 메시지를 (AP)를 수신 할 때마다, 그것은 아래의 오류와 함께 FIX 엔진에 의해 거부됩니다 :포스 툰 보고서 (FIX 4.4) 오류 : 그룹 702의 첫 번째 항목이 구분 기호 704로 시작하지 않음

여기 702

Group 702's first entry does not start with delimiter 704

가 그룹 태그입니다. 몇 가지 조사를 해본 결과, 반복되는 그룹 메시지는 첫 번째 필드를 구분 기호로 사용한다는 것을 알게되었습니다. 내 경우 그룹 702704 (LongQty) 또는 705 (ShortQty) 중 하나의 태그를 가지고 있습니다. 두 태그 중 하나만 표시됩니다.

내 고객이 태그를 보내지 않았습니다. 경우에 따라 FIX 엔진이 704 태그가 없다고 판단하면 메시지를 거부합니다. 이 문제에 대한 귀하의 제안을 알려주십시오.

답변

2

FIX는 모든 그룹이 단일 일관성있는 태그로 시작될 것으로 기대합니다.

XML DataDictionary에서 해당 태그를 변경할 수 있습니다. 예를 들어 703 대신 704를 사용하고 해당 그룹의 필드를 재정렬 (또는 삭제/추가) 할 수 있습니다.

In my case group 702 is supposed to have either tag 704(LongQty) or 705(ShortQty).

아니요, 작동하지 않습니다. 항상 704로 시작합니까? 아니면 항상 705로 시작합니까? 그것도 한 가지 일 수는 없습니다.

귀하의 상대방이 실제로 그 중 하나가 아니라고 말하는 경우, FIX를 잘못하고 있으며 공개적으로 수치를 표시해야합니다. (진지하게, 생략하지 않고 그냥 704 = 0을 넣을 수는없는 것입니까?)이 바보 같은 상황을 처리하려면 QF 엔진을 해킹해야 할 수 있습니다.

귀하의 거래 상대방이 실제로 이와 같이 잘못하고 있음을 확인하는 것이 좋습니다. 나는 네가 착각 한 것을 (당신을 위해서) 바라고있다.

편집 :

이는 FIX (44) 스펙, 1 권, 19 페이지에서입니다 :

If the repeating group is used, the first field of the repeating group is required. This allows implementations of the protocol to use the first field as a "delimiter" indicating a new repeating group entry. The first field listed after the NoXXX, then becomes conditionally required if the NoXXX field is greater than zero.

+0

내 데이터 사전에 확인을 두 번, 내 상대방이 중 두 개의 태그를 기대하고있다. 아래 메시지를 보시기 바랍니다. _20161004-18 : 20 : 15.063 : 8 = FIX.4.49 = 23735 = AP34 = 549 = XXXX52 = 20161004-18 : 20 : 14.83556 = XXXDEMOFIX1 = 9277455 = GBPUSD231 = 1581 = 1702 = 1705 = 27200710 = XXXX715 = 20161004721 = 981a4eec-1886-4571-bd25-cf3c9e10115a728 = 0730 = 1.27940472230385731 = 1734 = 1.2794047223038510 = 198_ –

+0

당신은 상대방이 두 태그 중 하나를 보내고 있다는 것을 의미합니까? 당신은 수신기입니다. –

+0

예. 맞습니다. 이 일을 끝내기위한 방법이 있습니까? –