Computing the profit or loss from a list of trades
This is too sketchy to be able to do a proper review. But just based on what you've written in the post:


None of this code updates the attributes of a Trade. So you could use a collections.namedtuple which avoids some duplication:

Trade = namedtuple('Trade', 'id trade_date type quantity price currency_id '
                   'company_id account_id')

In some languages (especially Java) everything has to be a member of a class. But this isn't the case in Python: you can just write a function if you want, without having to make a class whose only role is to act as a container for your function.

So here there's no need for the TradePnlCalculator class — you could just define a function compute_pnl. And there's no need for the TradeImporter class — you could just define a function load_trades.
In compute_pnl, you're not gaining anything from using NumPy — it costs more to build the NumPy arrays than you gain in faster operations. It would be simpler and faster to write:

-sum(t.type.value * t.quantity * t.price for t in trades)

The need for the negation of the result of this computation suggests that you have the values for Buy and Sell the wrong way round.
The code in compute_pnl doesn't consult the currency_id so it would go wrong if given a list of trades in a mixture of currencies.