Example #1
0
    def adjust_price(self, price, use_quote=True):
        """
        Format the price according to the precision.
        @param use_quote True use quote display or quote, False base, None no symbol only price.
        """
        if use_quote:
            precision = self._price_limits[
                3] or self._quote_precision  # uses tick price if defined else quote precision
        else:
            precision = self._base_precision

        if not precision:
            if use_quote:
                # quote use value per pip
                precision = decimal_place(self.value_per_pip)
            else:
                # base use one pip mean alias tick size
                precision = decimal_place(self.one_pip_means)

            if not precision:
                precision = 8

        tick_size = self._price_limits[2] or self.one_pip_means

        # adjusted price at precision and by step of pip meaning
        return truncate(round(price / tick_size) * tick_size, precision)
Example #2
0
    def adjust_price(self, price):
        """
        Format the price according to the precision.
        """
        precision = self._price_limits[3] or 8
        tick_size = self._price_limits[2] or 0.00000001

        # adjusted price at precision and by step of pip meaning
        return truncate(round(price / tick_size) * tick_size, precision)
Example #3
0
File: market.py Project: rptrk/siis
    def format_quantity(self, quantity):
        """
        Return a quantity as str according to the precision of the step size.
        """
        precision = self._size_limits[3] or self._quote_precision
        qty = "{:0.0{}f}".format(truncate(quantity, precision), precision)

        if '.' in qty:
            qty = qty.rstrip('0').rstrip('.')

        return qty
Example #4
0
    def format_price(self, price):
        """
        Format the price according to the precision.
        @param use_quote True use quote display or quote, False base, None no symbol only price.
        """
        formatted_price = "{:0.0{}f}".format(truncate(price, self._precision),
                                             self._precision)

        if '.' in formatted_price:
            formatted_price = formatted_price.rstrip('0').rstrip('.')

        return formatted_price
Example #5
0
    def format_alt_price(self, price):
        """
        Format the price according to the precision.
        """
        precision = self._alt_currency_precision

        formatted_price = "{:0.0{}f}".format(truncate(price, precision),
                                             precision)

        if '.' in formatted_price:
            formatted_price = formatted_price.rstrip('0').rstrip('.')

        return formatted_price
Example #6
0
File: market.py Project: rptrk/siis
    def adjust_price(self, price):
        """
        Format the price according to the precision.
        @param use_quote True use quote display or quote, False base, None no symbol only price.
        """
        precision = self._price_limits[3] or self._quote_precision
        if not precision:
            precision = decimal_place(self.value_per_pip) or 8

        tick_size = self._price_limits[2] or self.one_pip_means

        # adjusted price at precision and by step of pip meaning
        return truncate(round(price / tick_size) * tick_size, precision)
Example #7
0
    def format_price(self, price):
        """
        Format the price according to the precision.
        """
        precision = self._price_limits[3] or 8
        tick_size = self._price_limits[2] or 0.00000001

        adjusted_price = truncate(round(price / tick_size) * tick_size, precision)
        formatted_price = "{:0.0{}f}".format(adjusted_price, precision)

        # remove tailing 0s and dot
        if '.' in formatted_price:
            formatted_price = formatted_price.rstrip('0').rstrip('.')

        return formatted_price
Example #8
0
File: market.py Project: rptrk/siis
    def format_base_price(self, price):
        """
        Format the base price according to its precision.
        """
        precision = self._base_precision
        if not precision:
            precision = decimal_place(self.one_pip_means) or 8

        tick_size = self.one_pip_means or 1.0

        adjusted_price = truncate(
            round(price / tick_size) * tick_size, precision)
        formatted_price = "{:0.0{}f}".format(adjusted_price, precision)

        # remove tailing 0s and dot
        if '.' in formatted_price:
            formatted_price = formatted_price.rstrip('0').rstrip('.')

        return formatted_price
Example #9
0
    def format_price(self, price, use_quote=True, display_symbol=False):
        """
        Format the price according to the precision.
        @param use_quote True use quote display or quote, False base, None no symbol only price.
        """
        if use_quote:
            precision = self._price_limits[
                3] or self._quote_precision  # uses tick price if defined else quote precision
        else:
            precision = self._base_precision

        if not precision:
            if use_quote:
                # quote use value per pip
                precision = decimal_place(self.value_per_pip)
            else:
                # base use one pip mean alias tick size
                precision = decimal_place(self.one_pip_means)

            if not precision:
                precision = 8

        tick_size = self._price_limits[2] or self.one_pip_means

        # adjusted price at precision and by step of pip meaning
        # adjusted_price = truncate(int(truncate(price, precision) / tick_size) * tick_size, precision)
        adjusted_price = truncate(
            round(price / tick_size) * tick_size, precision)
        formatted_price = "{:0.0{}f}".format(adjusted_price, precision)

        # remove tailing 0s and dot
        if '.' in formatted_price:
            formatted_price = formatted_price.rstrip('0').rstrip('.')

        if not display_symbol:
            return formatted_price

        if use_quote:
            return "%s%s" % (formatted_price, self._quote_display
                             or self._quote)
        else:
            return "%s%s" % (formatted_price, self._base_display or self._base)
Example #10
0
File: market.py Project: rptrk/siis
    def format_price(self, price):
        """
        Format the price according to its precision.
        """
        precision = self._price_limits[3] or self._quote_precision
        if not precision:
            precision = decimal_place(self.value_per_pip) or 8

        tick_size = self._price_limits[2] or self.one_pip_means

        # adjusted price at precision and by step of tick size
        adjusted_price = truncate(
            round(price / tick_size) * tick_size, precision)
        formatted_price = "{:0.0{}f}".format(adjusted_price, precision)

        # remove tailing 0s and dot
        if '.' in formatted_price:
            formatted_price = formatted_price.rstrip('0').rstrip('.')

        return formatted_price
Example #11
0
    def format_price(self, price, use_alt=True, display_symbol=False):
        """
        Format the price according to the precision.
        @param use_quote True use currency display or alt currency, False base, None no symbol only price.
        """
        if use_alt:
            precision = self._alt_currency_precision
        else:
            precision = self._currency_precision

        formatted_price = "{:0.0{}f}".format(truncate(price, precision), precision)

        if '.' in formatted_price:
            formatted_price = formatted_price.rstrip('0').rstrip('.')

        if not display_symbol:
            return formatted_price

        if use_alt:
            return "%s%s" % (formatted_price, self._alt_currency_display or self._alt_currency)
        else:
            return "%s%s" % (formatted_price, self._currency_display or self._currency)