Beispiel #1
0
    def sell(self, symbol, quantity, extended=False, cancel=None):
        if not self.logged_in:
            self.prompt_login()
        # This also updates stock_ids
        symbol = symbol.upper()
        instrument = self.get_instrument(symbol)
        if cancel is None:
            cancel = "gfd"
        price = float(self.get_quote(symbol).price)

        data = {
            "time_in_force": cancel,
            "price": "{0:.2f}".format(price),
            "quantity": quantity,
            "side": "sell",
            "trigger": "immediate",
            "type": "market",
            "account": self.account['url'],
            "instrument": instrument,
            "symbol": symbol,
            # "ref_id":"",
            "extended_hours": extended
        }
        if Client.DEBUG:
            print(data)

        resp = self.session.post(Url.order(),
                                 data=json.dumps(data),
                                 headers={'Content-Type': 'application/json'})
        self.pending_orders.append(json.loads(resp.text))
        if Client.DEBUG:
            Client.log_response(resp)