':param order_id: An order id to identify the order
:param price: A price to indicate for which amount to sell or buy
:param quantity: A quantity to indicate how much to sell or buy
:param timeout: A timeout when this tick is going to expire
:param timestamp: A timestamp when the order was created
:param is_ask: A bool to indicate if this order is an ask
:type order_id: OrderId
:type price: Price
:type quantity: Quantity
:type timeout: Timeout
:type timestamp: Timestamp
:type is_ask: bool'

def __init__(self, order_id, price, quantity, timeout, timestamp, is_ask):

    super(Order, self).__init__()
    self._logger = logging.getLogger(self.__class__.__name__)
    assert isinstance(order_id, OrderId), type(order_id)
    assert isinstance(price, Price), type(price)
    assert isinstance(quantity, Quantity), type(quantity)
    assert isinstance(timeout, Timeout), type(timeout)
    assert isinstance(timestamp, Timestamp), type(timestamp)
    assert isinstance(is_ask, bool), type(is_ask)
    self._order_id = order_id
    self._price = price
    self._quantity = quantity
    self._reserved_quantity = Quantity(0, quantity.wallet_id)
    self._traded_quantity = Quantity(0, quantity.wallet_id)
    self._timeout = timeout
    self._timestamp = timestamp
    self._completed_timestamp = None
    self._is_ask = is_ask
    self._reserved_ticks = {}
    self._cancelled = False
