I didn't expect that but
Set<Instrument> instruments = new HashSet<Instrument>(Arrays.asList(Instrument.values()));
context.setSubscribedInstruments(instruments);
System.out.println(context.getSubscribedInstruments().size());
Set<Instrument> instruments2 = new HashSet<Instrument>();
for (IOrder o : engine.getOrders())
if (o.getState() == State.FILLED)
instruments2.add(o.getInstrument());
context.setSubscribedInstruments(instruments2); // or , true
System.out.println(context.getSubscribedInstruments().size());
will return 66 two times, it's not really important though, I'd just rarely subscribe to all for downloading orders history, and re-run it after