How to get values of linked stop loss market order?

Hi,
I am new to FIX in general and use FIX4.4 with the quickfix lib.
My question is: How can I get the values of linked orders from PositionReport?

The situation:
I open a position with linked stop loss order in a FIX44::NewOrderList like this:

FIX44::NewOrderList olist;

  olist.setField(FIX::ListID(nextOrderID()));
  olist.setField(FIX::TotNoOrders(2));
  olist.setField(FIELD::ContingencyType, "101");

  // Order
  FIX44::NewOrderList::NoOrders order;
  order.setField(ClOrdID(nextOrderID()));
  order.setField(ListSeqNo(0));
  order.setField(ClOrdLinkID("1")); // link to another clordid in list
  order.setField(Account(getAccountID()));
  order.setField(Symbol(marketOrder.getSymbol()));
  order.setField(Side(marketOrder.getSide()));
  order.setField(OrderQty(marketOrder.getQty()));
  order.setField(OrdType(OrdType_MARKET));
  olist.addGroup(order);

  // StopLoss
  FIX44::NewOrderList::NoOrders stop;
  stop.setField(ClOrdID(nextOrderID()));
  stop.setField(ListSeqNo(1));
  stop.setField(ClOrdLinkID("2"));
  stop.setField(Account(getAccountID()));
  stop.setField(Side(marketOrder.getSide() == Side_BUY ? Side_SELL : Side_BUY));
  stop.setField(Symbol(marketOrder.getSymbol()));
  stop.setField(OrderQty(marketOrder.getQty()));
  stop.setField(OrdType(OrdType_STOP));
  stop.setField(StopPx(marketOrder.getStopPrice()));
  olist.addGroup(stop);

  Session::sendToTarget(olist, getOrderSessionID());

Now, when I send the FIX44::RequestForPositions message with PosReqType_POSITIONS I get only the market order but not the values for my stop position. What am I doing wrong here?

Best, Arne

What has your counterparty said, to whom you are sending the message? It looks like a very specific QuickFIX issue that cannot be solved without being familiar with your application on a detailed level.

However, in general, an order and a position have little in common in FIX. Executions/Trades result from orders and they mostly still have references back to the related order(s). Positions result from trades and belong to the post-trade area. Positions are held in instruments based on actual trades. I sounds as if you see your orders being “positions” in the market. hence it may also be a terminology issue.

You can inquire the status of a single order by means of the FIX OrderStatusRequest(MsgType=H) message (if your counterparty supports it).

Hello hanno.klein,

thanks for the quick reply. Indeed I misunderstood the wording and I got a reference of custom fields from my broker.