示例#1
0
        public static List <Symbol> InitSymbols(Settings setting)
        {
            List <string> exhanges = new List <string>()
            {
                "gate", "okex", "huobi"
            };
            ISymbolFactory symbolFactory = new SymbolFactory();
            List <Symbol>  symbols       = new List <Symbol>();

            foreach (var SymSettingList in setting.Symbols)
            {
                if (Currencies.gate_okex_Intersect.Contains($"{SymSettingList[0]}-{SymSettingList[1]}") || Currencies.okex_huobiIntersect.Contains($"{SymSettingList[0]}-{SymSettingList[1]}") || Currencies.gate_huobiIntersect.Contains($"{SymSettingList[0]}-{SymSettingList[1]}"))
                {
                    foreach (string exchange in exhanges)
                    {
                        Symbol symbolObj = symbolFactory.CreateSymbol(exchange, SymSettingList[0], SymSettingList[1]);
                        symbols.Add(symbolObj);
                        //Console.WriteLine($"Symbol: {symbolObj.ExchangeName} {symbolObj.SymbolName} has been initialized");
                    }
                }
                else if (Currencies.gateReadyToGo.Contains($"{SymSettingList[0]}-{SymSettingList[1]}") || Currencies.okexReadyToGo.Contains($"{SymSettingList[0]}-{SymSettingList[1]}") || Currencies.huobiReadyToGo.Contains($"{SymSettingList[0]}-{SymSettingList[1]}"))
                {
                    Console.WriteLine($"{SymSettingList[0]}-{SymSettingList[1]} available only for 1 exchange. This symbol will not not be included in the program");
                    continue;
                }
                else
                {
                    Console.WriteLine($"{SymSettingList[0]}-{SymSettingList[1]} does not support by any exchange!!!");
                    continue;
                }
            }
            return(symbols);
        }
示例#2
0
        public static List <SymbolMarket> InitSymbolMarkets(Settings setting, List <Symbol> symbols, HttpClient client)
        {
            ISymbolFactory      symbolFactory = new SymbolFactory();
            List <SymbolMarket> symbolMarkets = new List <SymbolMarket>();

            foreach (var SymSettingList in setting.Symbols)
            {
                //var responseString = client.GetStringAsync($"https://data.gateio.la/api2/1/ticker/{SymSettingList[0].ToLower()}_usdt");
                //JObject jsonObj = JObject.Parse(responseString.Result);
                //decimal coinUSDT = Convert.ToDecimal(jsonObj["last"], CultureInfo.InvariantCulture);
                //decimal minVolume = lotMinUsd / coinUSDT;

                if (Currencies.gate_okex_Intersect.Contains($"{SymSettingList[0]}-{SymSettingList[1]}") || Currencies.okex_huobiIntersect.Contains($"{SymSettingList[0]}-{SymSettingList[1]}") || Currencies.gate_huobiIntersect.Contains($"{SymSettingList[0]}-{SymSettingList[1]}"))
                {
                    decimal minDiffValue = Convert.ToDecimal(setting.General.minDiff, CultureInfo.InvariantCulture);
                    decimal minStepValue = Convert.ToDecimal(setting.General.minStep, CultureInfo.InvariantCulture);
                    decimal lotMinUsd    = Convert.ToDecimal(setting.General.lotMinUsd, CultureInfo.InvariantCulture);
                    decimal minVolume    = Currencies.getMinVolume(SymSettingList[0], lotMinUsd, client);

                    SymbolMarket symMarketObj = symbolFactory.CreateSymbolMarket($"{SymSettingList[0]}-{SymSettingList[1]}", minDiffValue, minStepValue, minVolume, symbols);
                    symbolMarkets.Add(symMarketObj);
                    symMarketObj.SymMarketStatus();
                }
                else
                {
                    //Console.WriteLine($"{SymSettingList[0]}-{SymSettingList[1]} does not support by any exchange!!!");
                    continue;
                }
            }
            return(symbolMarkets);
        }
示例#3
0
        public static List <DiffState> InitDiffStates(List <Symbol> specificSymbols, decimal minDiffValue, decimal minStepValue)
        {
            ISymbolFactory   symbolFactory = new SymbolFactory();
            List <DiffState> diffStates    = new List <DiffState>();

            foreach (Symbol symbolObj in specificSymbols)
            {
                foreach (Symbol secondSymbolObj in specificSymbols)
                {
                    if (symbolObj != secondSymbolObj)
                    {
                        bool      isFoudPair   = false;
                        DiffState diffStateObj = symbolFactory.CreateDiffState(symbolObj, secondSymbolObj, minDiffValue, minStepValue);

                        foreach (DiffState diffStateListObj in diffStates)
                        {
                            if (diffStateListObj.ObjB == symbolObj && diffStateListObj.ObjA == secondSymbolObj)
                            {
                                isFoudPair = true;
                            }
                        }
                        if (!isFoudPair)
                        {
                            diffStates.Add(diffStateObj);
                        }
                    }
                }
            }
            return(diffStates);
        }