Hi, is this deepcopy really the right thing? If I got it right, it as an undesired side effect: As you have multiple copys of a market X they have their own "depth_updated" and this causes, that they are updated a lot of times. Probably you want something like: 

    new_marketchain = marketchain
    new_marketchain.markets = marketchain.markets[:]

Or implement a MarketChain.copy() that does this.