示例#1
0
    def import_index(self):
        """Destructively create the index from a JSON file."""
        coins = DatabaseManager.get_all_index_coin_models()
        for coin in coins:
            DatabaseManager.delete_index_coin_model(coin.Ticker)

        indexed_coins = ""
        with open("index.json", "r") as file_obj:
            indexed_coins = jsonpickle.decode(file_obj.read())

        for coin in indexed_coins:
            coin.DesiredPercentage = coin.DesiredPercentage if coin.DesiredPercentage is not None else 1
            coin.Locked = coin.Locked if coin.Locked is not None else False
            # logger.debug('adding %s with percentage %s', coin.Ticker, coin.DesiredPercentage)

            DatabaseManager.create_index_coin_model(coin.Ticker,
                                                    coin.DesiredPercentage, 0,
                                                    coin.Locked)

        logger.info("Index imported from index.json")
示例#2
0
    def index_add_coin(self, coin, percentage=1.0, locked=False):

        lockCoin = False

        totalLockedPercentage = 0.0
        totalUnlockedPercentage = 0.0
        totalUnlockedCoinsCount = 0

        indexInfo = DatabaseManager.get_index_info_model()
        indexedCoins = DatabaseManager.get_all_index_coin_models()

        if locked == "true" or locked == "True":
            lockCoin = True

        for inCoins in indexedCoins:

            if inCoins.Locked == True:
                totalLockedPercentage = totalLockedPercentage + inCoins.DesiredPercentage
            else:
                totalUnlockedPercentage = totalUnlockedPercentage + inCoins.DesiredPercentage
                totalUnlockedCoinsCount = totalUnlockedCoinsCount + 1

        if totalUnlockedPercentage > float(percentage):

            if self.coin_supported_check(coin.upper()):

                percentageToRemove = float(
                    percentage) / totalUnlockedCoinsCount

                for iCoin in indexedCoins:
                    if iCoin.Locked != True:
                        DatabaseManager.update_index_coin_model(
                            iCoin.Ticker,
                            iCoin.DesiredPercentage - percentageToRemove,
                            iCoin.DistanceFromTarget, iCoin.Locked)

                if isinstance(float(percentage), (float, int, complex, int)):
                    if DatabaseManager.create_index_coin_model(
                            coin.upper(), float(percentage), 0.0, lockCoin):

                        logger.info("Coin " + coin.upper() + " added to index")
                    else:
                        # Already Exist
                        logger.warn("Coin already in index")
                else:
                    logger.warn("Percentage isn't a number")

            else:
                logger.warn("Coin not supported")
        else:
            logger.warn("Not Enough Unlocked Percentage")
示例#3
0
    def index_add_coin(self, coin, percentage, locked):

        lockCoin = False

        totalLockedPercentage = 0.0
        totalUnlockedPercentage = 0.0
        totalUnlockedCoinsCount = 0

        indexInfo = DatabaseManager.get_index_info_model()
        indexedCoins = DatabaseManager.get_all_index_coin_models()

        if locked == "true" or locked == "True":
            lockCoin = True

        percentage_btc_amount = indexInfo.TotalBTCVal * (float(percentage) /
                                                         100)

        if percentage_btc_amount >= CondexConfig.BITTREX_MIN_BTC_TRADE_AMOUNT:

            for inCoins in indexedCoins:

                if inCoins.Locked == True:
                    totalLockedPercentage = totalLockedPercentage + inCoins.DesiredPercentage
                else:
                    totalUnlockedPercentage = totalUnlockedPercentage + inCoins.DesiredPercentage
                    totalUnlockedCoinsCount = totalUnlockedCoinsCount + 1

            if totalUnlockedPercentage > float(percentage):

                if self.coin_supported_check(coin.upper()):

                    percentageToRemove = float(
                        percentage) / totalUnlockedCoinsCount

                    for iCoin in indexedCoins:
                        if iCoin.Locked != True:
                            DatabaseManager.update_index_coin_model(
                                iCoin.Ticker,
                                iCoin.DesiredPercentage - percentageToRemove,
                                iCoin.CurrentPercentage, iCoin.UnrealizedGain,
                                iCoin.Locked)

                    if isinstance(float(percentage),
                                  (float, int, complex, long)):
                        if DatabaseManager.create_index_coin_model(
                                coin.upper(), float(percentage), 0.0, 0.0,
                                lockCoin):

                            DatabaseManager.create_realized_gain_model(
                                coin.upper(), 0.0)

                            logger.info("Coin " + coin.upper() +
                                        " added to index")
                        else:
                            # Already Exist
                            logger.warn("Coin already in index")
                    else:
                        logger.warn("Percentage isn't a number")

                else:
                    logger.warn("Coin not supported")
            else:
                logger.warn("Not Enough Unlocked Percentage")

        else:
            logger.warn(
                "Specified percentage below current bittrex trade value")