We propose a dynamic auction mechanism for efficiently allocating multiple heterogeneous indivisible goods. These goods can be split into two
distinct sets so that items in each set are substitutes but complementary to
items in the other set. The seller has a reserve value for each bundle of goods
and is assumed to report her values truthfully. In each round of the auction,
the auctioneer announces the current prices for all items, bidders respond by
reporting their demands at these prices, and then the auctioneer adjusts simultaneously the prices of items in one set upwards but those of items in the other
downwards. We prove that although bidders are not assumed to be price-takers
and thus can strategically exercise their market power, this dynamic auction
always induces the bidders to bid truthfully as price-takers, yields an efficient
outcome and also has the merit of being a detail-free, transparent and privacy
preserving mechanism.