playing around with this FIX client and found 2 bugs:
They greatly depends on how Fix server publish market updates
1) in Case the FIX server doesn't send the MDEntryPositionNo:
the entry book position should be determined based on the current depth-book and MDEntryPx(270=PRICE).
final quickfix.field.MDEntryPositionNo mdPosition = new quickfix.field.MDEntryPositionNo(1);//1..n from most competitive to least
2)in Case2 MDUpdateAction(279=0) 0=New AND MDEntrySize(271=0):
should be tread as depthManager.delet( findPositionofEntry(entry))
(in case of level removal MDEntrySize will be 0 even if it new update action instead of delete)
playing around with this FIX client and found 2 bugs: They greatly depends on how Fix server publish market updates
1) in Case the FIX server doesn't send the MDEntryPositionNo: the entry book position should be determined based on the current depth-book and MDEntryPx(270=PRICE).
final quickfix.field.MDEntryPositionNo mdPosition = new quickfix.field.MDEntryPositionNo(1);//1..n from most competitive to least
2)in Case2 MDUpdateAction(279=0) 0=New AND MDEntrySize(271=0): should be tread as depthManager.delet( findPositionofEntry(entry))
(in case of level removal MDEntrySize will be 0 even if it new update action instead of delete)