예제 #1
0
    def data_started(self, data):
        pos = self.getposition(data)

        if pos.size < 0:
            order = SellOrder(data=data,
                              size=pos.size,
                              price=pos.price,
                              exectype=Order.Market,
                              simulated=True)

            order.addcomminfo(self.getcommissioninfo(data))
            order.execute(0, pos.size, pos.price, 0, 0.0, 0.0, pos.size, 0.0,
                          0.0, 0.0, 0.0, pos.size, pos.price)

            order.completed()
            self.notify.order(order)

        elif pos.size > 0:
            order = BuyOrder(data=data,
                             size=pos.size,
                             price=pos.price,
                             exectype=Order.Market,
                             simulated=True)

            order.addcomminfo(self.getcommissioninfo(data))
            order.execute(0, pos.size, pos.price, 0, 0.0, 0.0, pos.size, 0.0,
                          0.0, 0.0, 0.0, pos.size, pos.price)

            order.completed()
            self.notify(order)
예제 #2
0
    def _fill_external(self, data, size, price):
        if size == 0:
            return

        pos = self.getposition(data, clone=False)
        pos.update(size, price)

        if size < 0:
            order = SellOrder(data=data,
                              size=size,
                              price=price,
                              exectype=Order.Market,
                              simulated=True)
        else:
            order = BuyOrder(data=data,
                             size=size,
                             price=price,
                             exectype=Order.Market,
                             simulated=True)

        order.addcomminfo(self.getcommissioninfo(data))
        order.execute(0, size, price, 0, 0.0, 0.0, size, 0.0, 0.0, 0.0, 0.0,
                      size, price)

        order.completed()
        self.notify(order)
예제 #3
0
    def sell(self,
             owner,
             data,
             size,
             price=None,
             plimit=None,
             exectype=None,
             valid=None,
             tradeid=0,
             oco=None,
             trailamount=None,
             trailpercent=None,
             parent=None,
             transmit=True,
             **kwargs):  # pylint: disable=arguments-differ

        # pylint: disable=unexpected-keyword-arg
        order = SellOrder(owner=owner,
                          data=data,
                          size=size,
                          price=price,
                          pricelimit=plimit,
                          exectype=exectype,
                          valid=valid,
                          tradeid=tradeid,
                          trailamount=trailamount,
                          trailpercent=trailpercent,
                          parent=parent,
                          transmit=transmit)

        order.addinfo(**kwargs)
        order.addcomminfo(self.getcommissioninfo(data))
        return self._transmit(order)
예제 #4
0
    def sell(self,
             owner,
             data,
             size,
             price=None,
             plimit=None,
             exectype=None,
             valid=None,
             tradeid=0,
             oco=None,
             trailamount=None,
             trailpercent=None,
             parent=None,
             transmit=True,
             **kwargs):

        order = SellOrder(
            owner=owner,
            data=data,
            size=size,
            price=price,
            pricelimit=plimit,
            exectype=exectype,
            valid=valid,
            tradeid=tradeid,
            trailamount=trailamount,
            trailpercent=trailpercent,
            parent=parent,
            transmit=transmit,
        )

        order.addinfo(**kwargs)
        order.addcomminfo(self.getcommissioninfo(data))
        return self._transmit(order)
예제 #5
0
    def data_started(self, data):
        pos = self.getposition(data)

        if pos.size < 0:
            order = SellOrder(data=data,
                              size=pos.size, price=pos.price,
                              exectype=Order.Market,
                              simulated=True)

            order.addcomminfo(self.getcommissioninfo(data))
            order.execute(0, pos.size, pos.price,
                          0, 0.0, 0.0,
                          pos.size, 0.0, 0.0,
                          0.0, 0.0,
                          pos.size, pos.price)

            order.completed()
            self.notify.order(order)

        elif pos.size > 0:
            order = BuyOrder(data=data,
                             size=pos.size, price=pos.price,
                             exectype=Order.Market,
                             simulated=True)

            order.addcomminfo(self.getcommissioninfo(data))
            order.execute(0, pos.size, pos.price,
                          0, 0.0, 0.0,
                          pos.size, 0.0, 0.0,
                          0.0, 0.0,
                          pos.size, pos.price)

            order.completed()
            self.notify(order)
    def _fill_external(self, data, size, price):
        logger.debug("Fill external order: {}, {}, {}".format(
            data, size, price))
        if size == 0:
            return

        pos = self.getposition(data, clone=False)
        pos.update(size, price)

        if size < 0:
            order = SellOrder(data=data,
                              size=size,
                              price=price,
                              exectype=Order.Market,
                              simulated=True)
        else:
            order = BuyOrder(data=data,
                             size=size,
                             price=price,
                             exectype=Order.Market,
                             simulated=True)

        order.addcomminfo(self.getcommissioninfo(data))
        order.execute(0, size, price, 0, 0.0, 0.0, size, 0.0, 0.0, 0.0, 0.0,
                      size, price)
        order.completed()

        self.notify(order)
        self._ococheck(order)
        self.o.get_balance()
예제 #7
0
    def sell(self, owner, data,
             size, price=None, plimit=None,
             exectype=None, valid=None, tradeid=0,
             **kwargs):

        order = SellOrder(owner=owner, data=data,
                          size=size, price=price, pricelimit=plimit,
                          exectype=exectype, valid=valid, tradeid=tradeid)

        order.addinfo(**kwargs)
        order.addcomminfo(self.getcommissioninfo(data))
        self.orders[order.ref] = order
        return self.o.order_create(order)
예제 #8
0
    def sell(self, owner, data,
             size, price=None, plimit=None,
             exectype=None, valid=None, tradeid=0,
             **kwargs):

        order = SellOrder(owner=owner, data=data,
                          size=size, price=price, pricelimit=plimit,
                          exectype=exectype, valid=valid, tradeid=tradeid)

        order.addinfo(**kwargs)
        order.addcomminfo(self.getcommissioninfo(data))
        self.orders[order.ref] = order
        return self.o.order_create(order)
예제 #9
0
    def sell(self, owner, data,
             size, price=None, plimit=None,
             exectype=None, valid=None, tradeid=0, oco=None,
             trailamount=None, trailpercent=None,
             parent=None, transmit=True,
             **kwargs):

        order = SellOrder(owner=owner, data=data,
                          size=size, price=price, pricelimit=plimit,
                          exectype=exectype, valid=valid, tradeid=tradeid,
                          trailamount=trailamount, trailpercent=trailpercent,
                          parent=parent, transmit=transmit)

        order.addinfo(**kwargs)
        order.addcomminfo(self.getcommissioninfo(data))
        return self._transmit(order)
예제 #10
0
    def data_started(self, data):
        pos = self.getposition(data)

        if pos.size < 0:
            # pylint: disable=unexpected-keyword-arg
            order = SellOrder(
                data=data,
                size=pos.size,
                price=pos.price,
                exectype=Order.Market,
                simulated=True,
            )

            order.addcomminfo(self.getcommissioninfo(data))
            order.execute(
                0,
                pos.size,
                pos.price,
                0,
                0.0,
                0.0,
                pos.size,
                0.0,
                0.0,
                0.0,
                0.0,
                pos.size,
                pos.price,
            )

            order.completed()
            self.notify(order)

        elif pos.size > 0:
            # pylint: disable=unexpected-keyword-arg
            order = BuyOrder(
                data=data,
                size=pos.size,
                price=pos.price,
                exectype=Order.Market,
                simulated=True,
            )

            order.addcomminfo(self.getcommissioninfo(data))
            order.execute(
                0,
                pos.size,
                pos.price,
                0,
                0.0,
                0.0,
                pos.size,
                0.0,
                0.0,
                0.0,
                0.0,
                pos.size,
                pos.price,
            )

            order.completed()
            self.notify(order)