class Controls:
    def __init__(self):
        self.Securities = {}
        self.Portfolio = Portfolio()
        self.Transactions = []
        self.Schedule = []

    def AddToSchedule(self, order):
        self.Schedule.append(order)

    def MarketOrder(self, ticker, Quantity):
        Price = self.Securities[ticker].Price
        order = Order(ticker,
                      Price=Price,
                      Quantity=Quantity,
                      Type="MarketOrder")
        self.FillOrder(order)

    def LimitOrder(self, ticker, Quantity, Price):
        order = Order(ticker,
                      Price=Price,
                      Quantity=Quantity,
                      Type="LimitOrder")
        self.AddToSchedule(order)

    def FillOrder(self, order):
        order.Filled = True
        self.Transactions.append(order)
        self.Portfolio.UpdateHolding(order)
        self.Portfolio.UpdatePortfolioValue()

    def CancelOrder(self, order):
        self.Schedule.remove(order)