Example #1
0
 public static List <string> FilterByBaseCurency(
     this List <string> symbols,
     ExchangerEnum exchanger   = ExchangerEnum.Bittrex,
     BaseCurrencyEnum currency = BaseCurrencyEnum.BTC)
 {
     return(symbols.Where(s => s.ToUpper().StartsWith(currency.ToString())).ToList());
 }
Example #2
0
        public static List <string> FilterByIgnoreCoins(
            this List <string> symbols,
            IgnoreCoinSettings[] ignoreCoinSettings,
            ExchangerEnum exchanger)
        {
            if (symbols == null || !symbols.Any())
            {
                return(symbols);
            }

            var ignoreSymbol = ignoreCoinSettings.FirstOrDefault(ss => ss.Exchanger.Equals(exchanger.ToString()));

            if (ignoreSymbol == null)
            {
                return(symbols);
            }

            symbols.RemoveAll(s => ignoreSymbol.Symbols.Contains(SymbolHelper.ToGlobalSymbol(s, exchanger)));
            return(symbols);
        }
Example #3
0
        public static List<CoinInfo> FillCoinPrices(
            this List<CoinInfo> coins,
            ExchangerEnum exchanger,
            List<KeyValuePair<string, ExchangeTicker>> marketTickers)
        {
            if (marketTickers == null || !marketTickers.Any())
            {
                return coins;
            }

            foreach (var coin in coins)
            {
                var ticker = marketTickers.FirstOrDefault(
                    t => t.Key.Equals(coin.ExchangeSymbol.Binance, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.Bittrex, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.HitBtc, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.KuCoin, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.Cryptopia, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.Okex, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.Gate, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.Huobi, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.Upbit, StringComparison.OrdinalIgnoreCase)
                         || t.Key.Equals(coin.ExchangeSymbol.Yobit, StringComparison.OrdinalIgnoreCase));

                if (ticker.Key == null)
                {
                    continue;
                }

                switch (exchanger)
                {
                    case ExchangerEnum.Binance:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Binance,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.Bittrex:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Bittrex,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.HitBtc:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.HitBtc,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.KuCoin:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.KuCoin,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.Cryptopia:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Cryptopia,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.Yobit:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Yobit,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.Okex:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Okex,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.Gate:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Gate,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.Huobi:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Huobi,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }

                    case ExchangerEnum.Upbit:
                    {
                        coin.ExchangePrices.Add(
                            new ExchangePrice
                            {
                                Exchanger = ExchangerEnum.Upbit,
                                LastPrice = ticker.Value.Last
                            });

                        break;
                    }
                }
            }

            return coins;
        }
Example #4
0
        public static List <ExchangeSymbol> FillExchangerSymbols(
            this List <ExchangeSymbol> globalSymbols,
            ExchangerEnum exchanger,
            List <string> symbols)
        {
            if (symbols == null || !symbols.Any())
            {
                return(globalSymbols);
            }

            switch (exchanger)
            {
            default:
            {
                return(globalSymbols);
            }

            case ExchangerEnum.Binance:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Binance)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Binance = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.Bittrex:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Bittrex)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Bittrex = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.HitBtc:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.HitBtc)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.HitBtc = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.KuCoin:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.KuCoin)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.KuCoin = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.Cryptopia:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Cryptopia)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Cryptopia = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.Yobit:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Yobit)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Yobit = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.Okex:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Okex)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Okex = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.Huobi:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Huobi)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Huobi = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.Gate:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Gate)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Gate = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }

            case ExchangerEnum.Upbit:
            {
                foreach (var globalSymbol in globalSymbols)
                {
                    foreach (var symbol in symbols)
                    {
                        if (SymbolHelper.ToGlobalSymbol(symbol, ExchangerEnum.Upbit)
                            .Equals(globalSymbol.GlobalSymbol))
                        {
                            globalSymbol.Upbit = symbol;
                        }
                    }
                }

                return(globalSymbols);
            }
            }
        }
Example #5
0
        public static string ToGlobalSymbol(string symbol, ExchangerEnum exchanger)
        {
            switch (exchanger)
            {
            default:
            {
                return(symbol);
            }

            case ExchangerEnum.Binance:
            {
                return(symbol.Replace("-", string.Empty));
            }

            case ExchangerEnum.Bittrex:
            {
                // BTC-LTC => LTCBTC
                var items = symbol.Split(new[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
                return($"{items[1]}{items[0]}");
            }

            case ExchangerEnum.Okex:
            {
                // btc_ltc => BTCLTC
                return(symbol.Replace("_", string.Empty).ToUpper());
            }

            case ExchangerEnum.HitBtc:
            case ExchangerEnum.Bithumb:
            {
                return(symbol);
            }

            case ExchangerEnum.KuCoin:
            {
                return(symbol.Replace("-", string.Empty));
            }

            case ExchangerEnum.Cryptopia:
            {
                return(symbol.Replace("/", string.Empty));
            }

            case ExchangerEnum.Yobit:
            {
                return(symbol.Replace("_", string.Empty).ToUpper());
            }

            case ExchangerEnum.Gate:
            {
                // eth_btc => BTCETH
                var items = symbol.Split(new[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                return($"{items[0].ToUpper()}{items[1].ToUpper()}");
            }

            case ExchangerEnum.Huobi:
            {
                return($"{symbol.Replace("btc", string.Empty).ToUpper()}BTC");
            }

            case ExchangerEnum.Upbit:
            {
                var items = symbol.Split(new[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
                return($"{items[1].ToUpper()}{items[0].ToUpper()}");
            }
            }
        }