Пример #1
0
        public static IEnumerable<CoinInformation> GetCoinsToMine(
            List<CoinInformation> coinApiInformation,
            CoinSuggestionsAlgorithm algorithm,
            Strategy strategyConfiguration,
            List<Coin> existingCoinConfigurations)
        {
            IEnumerable<CoinInformation> coinsToMine = coinApiInformation;

            //filter coins based on algorithm
            coinsToMine = FilterCoinsOnAlgorithm(coinsToMine, algorithm);

            //order coins based on mining strategies
            coinsToMine = OrderCoinsOnStrategy(coinsToMine, strategyConfiguration);

            //filter based on MinimumThresholdSymbol
            coinsToMine = FilterCoinsOnThresholdSymbol(coinsToMine, strategyConfiguration);

            //filter based on MinimumThresholdValue
            coinsToMine = FilterCoinsOnThresholdValue(coinsToMine, strategyConfiguration);

            //added checks for coin.Symbol and coin.Exchange
            //current CoinChoose.com feed for LTC profitability has a NULL exchange for Litecoin
            coinsToMine = FilterOutConfiguredCoins(coinsToMine, existingCoinConfigurations);

            //suggest the top 3 coins
            coinsToMine = coinsToMine.Take(3);

            return coinsToMine;
        }
Пример #2
0
        public static IEnumerable <CoinInformation> GetCoinsToMine(
            List <CoinInformation> coinApiInformation,
            CoinSuggestionsAlgorithm algorithm,
            Strategy strategyConfiguration,
            List <Coin> existingCoinConfigurations)
        {
            IEnumerable <CoinInformation> coinsToMine = coinApiInformation;

            //filter coins based on algorithm
            coinsToMine = FilterCoinsOnAlgorithm(coinsToMine, algorithm);

            //order coins based on mining strategies
            coinsToMine = OrderCoinsOnStrategy(coinsToMine, strategyConfiguration);

            //filter based on MinimumThresholdSymbol
            coinsToMine = FilterCoinsOnThresholdSymbol(coinsToMine, strategyConfiguration);

            //filter based on MinimumThresholdValue
            coinsToMine = FilterCoinsOnThresholdValue(coinsToMine, strategyConfiguration);

            //added checks for coin.Symbol and coin.Exchange
            //current CoinChoose.com feed for LTC profitability has a NULL exchange for Litecoin
            coinsToMine = FilterOutConfiguredCoins(coinsToMine, existingCoinConfigurations);

            //suggest the top 3 coins
            coinsToMine = coinsToMine.Take(3);

            return(coinsToMine);
        }
Пример #3
0
        private static IEnumerable<CoinInformation> FilterCoinsOnAlgorithm(IEnumerable<CoinInformation> coins, CoinSuggestionsAlgorithm algorithm)
        {
            if (algorithm == CoinSuggestionsAlgorithm.SHA256)
                coins = coins.Where(c => c.Algorithm.Equals(AlgorithmNames.SHA256, StringComparison.OrdinalIgnoreCase));
            else if (algorithm == CoinSuggestionsAlgorithm.Scrypt)
                coins = coins.Where(c => c.Algorithm.Equals(AlgorithmNames.Scrypt, StringComparison.OrdinalIgnoreCase));

            return coins;
        }
Пример #4
0
        private static IEnumerable <CoinInformation> FilterCoinsOnAlgorithm(IEnumerable <CoinInformation> coins, CoinSuggestionsAlgorithm algorithm)
        {
            if (algorithm == CoinSuggestionsAlgorithm.SHA256)
            {
                coins = coins.Where(c => c.Algorithm.Equals(AlgorithmFullNames.SHA256, StringComparison.OrdinalIgnoreCase));
            }
            else if (algorithm == CoinSuggestionsAlgorithm.Scrypt)
            {
                coins = coins.Where(c => c.Algorithm.Equals(AlgorithmFullNames.Scrypt, StringComparison.OrdinalIgnoreCase));
            }

            return(coins);
        }