Exemplo n.º 1
0
def import_inst_from_ib(broker, symbol, sec_type='STK', exchange=None, currency=None):
    try:
        result = AsyncResult()
        logger.info("importing symbol %s" % symbol)
        broker.reqContractDetails(symbol=symbol, sec_type=sec_type, exchange=exchange, currency=currency, callback=result)
        # broker.reqScannerSubscription(inst_type='STK', location_code='STK.US', scan_code='TOP_PERC_GAIN', above_vol=1000000, callback=callback)

        logger.info("done %s %s" % (symbol, result.get(timeout=3)))
    except Exception as e:
        logger.error("faile to import %s", symbol, e)
Exemplo n.º 2
0
    def on_ord_cancel_req(self, ord_cancel_req):
        logger.debug("[%s] %s" % (self.__class__.__name__, ord_cancel_req))

        ord_id = self.ord_req_reg.get_ord_id(cl_id=ord_cancel_req.cl_id, cl_ord_id=ord_cancel_req.cl_ord_id)

        if ord_id:
            self.tws.cancelOrder(ord_id)
        else:
            logger.error(
                "cannot find old order, cl_id = %s, cl_ord_id = %s" % (ord_cancel_req.cl_id, ord_cancel_req.cl_ord_id))
Exemplo n.º 3
0
    def on_ord_replace_req(self, ord_replace_req):
        logger.debug("[%s] %s" % (self.__class__.__name__, ord_replace_req))

        existing_ord_req = self.ord_req_reg.get_ord_req(cl_id=ord_replace_req.cl_id,
                                                        cl_ord_id=ord_replace_req.cl_ord_id)
        if existing_ord_req:

            ord_id = self.ord_req_reg.get_ord_id(cl_id=ord_replace_req.cl_id, cl_ord_id=ord_replace_req.cl_ord_id)

            updated_ord_req = existing_ord_req.update_ord_request(ord_replace_req)

            self.ord_req_reg.add_ord_req(ord_id, updated_ord_req)

            ib_order = self.model_factory.create_ib_order(updated_ord_req)
            contract = self.model_factory.create_ib_contract(updated_ord_req.inst_id)
            self.tws.placeOrder(ord_id, contract, ib_order)
        else:
            logger.error("cannot find old order, cl_ord_id = %s" % ord_replace_req.cl_ord_id)
Exemplo n.º 4
0
 def error(self, id, errorCode, errorString):
     logger.error("error, id=%s, errorCode=%s, errorString=%s", id,
                  errorCode, errorString)
Exemplo n.º 5
0
 def error(self, id, errorCode, errorString):
     logger.error("error, id=%s, errorCode=%s, errorString=%s", id, errorCode, errorString)
     self._complete_req(id)
Exemplo n.º 6
0
 def error(self, id, errorCode, errorString):
     logger.error("error, id=%s, errorCode=%s, errorString=%s", id, errorCode, errorString)