Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            // 注册日志
            XmlConfigurator.Configure(new FileInfo("log4net.config"));

            // 启用监听
            StartOptions options = new StartOptions();

            options.Urls.Add("http://localhost:6666");
            options.Urls.Add("http://127.0.0.1:6666");
            options.Urls.Add(string.Format("http://{0}:6666", Environment.MachineName));
            options.Urls.Add("http://+:6666");
            options.Urls.Add("http://localhost:80");
            options.Urls.Add("http://127.0.0.1:80");
            options.Urls.Add(string.Format("http://{0}:80", Environment.MachineName));
            options.Urls.Add("http://+:80");
            WebApp.Start <Startup>(options);

            CoinUtils.Init();

            // 状态检查
            TradeStateUtils.Begin();

            while (true)
            {
                Console.ReadLine();
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            // 大起大落
            Task.Run(() =>
            {
                Price24Alert.RunAlert();
            });

            var symbols = CoinUtils.GetAllCommonSymbols("usdt");

            // 空
            //EmptyOrderTask.Run(symbols);

            //ReadAutoBuySellText(symbols);

            //while (true)
            //{
            //    Console.WriteLine("请输入symbol");
            //    var symbol = Console.ReadLine();
            //    Console.WriteLine("请输入big");
            //    var big = Console.ReadLine();
            //    Console.WriteLine("请输入small");
            //    var small = Console.ReadLine();

            //    PriceAlert.RunAlert(symbols.Find(it => it.BaseCurrency == symbol), decimal.Parse(big), decimal.Parse(small));
            //}

            Console.WriteLine("over - over - over");
            Console.ReadLine();
        }
Ejemplo n.º 3
0
        public static List <CommonSymbol> InitHtData()
        {
            // 准备好各种对
            var symbols = CoinUtils.GetAllCommonSymbols("ht");

            return(symbols.ToList());
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure(new FileInfo("log4net.config"));
            ILog logger = LogManager.GetLogger("program");

            logger.Info("----------------------  begin  --------------------------------");

            // 初始化
            CoinUtils.Init();
            var symbols = CoinUtils.GetAllCommonSymbols();

            // 初始化kline
            KlineUtils.Begin();

            // 不停的对每个币做操作
            BuyOrSellUtils.Begin();

            // 状态检查
            TradeStateUtils.Begin();

            while (true)
            {
                Console.ReadLine();
            }
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            // 注册日志
            XmlConfigurator.Configure(new FileInfo("log4net.config"));
            logger.Info("-----------------------Main---------------------------");

            CoinUtils.Init();

            var         client = new RestClient("http://118.31.44.235/api/Control/listAll");
            RestRequest req    = new RestRequest(Method.GET);

            req.AddHeader("content-type", "application/json");
            req.AddHeader("cache-type", "no-cache");
            var response = client.ExecuteTaskAsync(req).Result;

            var controlList = JsonConvert.DeserializeObject <List <DogControl> >(response.Content);

            var commonSymbols = new List <CommonSymbol>();

            foreach (var control in controlList)
            {
                commonSymbols.Add(new CommonSymbol
                {
                    BaseCurrency  = control.SymbolName,
                    QuoteCurrency = control.QuoteCurrency
                });
            }

            // 开始
            RunCoin(commonSymbols);

            Console.ReadLine();
        }
Ejemplo n.º 6
0
        public async Task <string> shouge(long orderId)
        {
            try
            {
                var dogMoreBuy = new DogMoreBuyDao().GetDogMoreBuyByBuyOrderId(orderId);
                if (dogMoreBuy.IsFinished)
                {
                    return("已完成出售");
                }

                var dogMoreSellList = new DogMoreSellDao().ListDogMoreSellByBuyOrderId(orderId);
                if (dogMoreSellList.Count > 0 &&
                    dogMoreSellList.Find(it =>
                                         it.SellState != StateConst.Canceled.ToString() &&
                                         it.SellState != StateConst.PartialFilled.ToString() &&
                                         it.SellState != StateConst.Filled.ToString()
                                         ) != null)
                {
                    // 存在操作中的,则不操作
                    return("存在出售中的");
                }

                var          symbols = CoinUtils.GetAllCommonSymbols(dogMoreBuy.QuoteCurrency);
                CommonSymbol symbol  = symbols.Find(it => it.BaseCurrency == dogMoreBuy.SymbolName);

                CoinTrade.ShouGeDogMore(dogMoreBuy, symbol);

                return("操作结束");
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex);
                return(ex.Message);
            }
        }
        public AddressViewModel GetAddress(string addressText, int currentPage, int pageSize = AppSettings.PageSize)
        {
            var addressQueries = new AccountQueries(_context);
            var tokenQueries   = new TokenQueries(_context);

            var account = addressQueries.QueryAccount(addressText);

            if (account != null)
            {
                SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);
                var addressVm = AddressViewModel.FromAddress(account, tokenQueries.QueryTokens().ToList());

                addressVm.Transactions = GetAddressTransactions(addressVm.Address, currentPage, pageSize);

                foreach (var addressVmNativeBalance in addressVm.NativeBalances)
                {
                    addressVmNativeBalance.TxnCount = GetTransactionCount(addressVm.Address);
                }

                SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);
                CalculateAddressSoulValue(new List <AddressViewModel> {
                    addressVm
                });
                return(addressVm);
            }

            if (Address.IsValidAddress(addressText))
            {
                return(new AddressViewModel {
                    Address = addressText, Balance = 0, Name = "anonymous", Value = 0
                });
            }

            return(null);
        }
Ejemplo n.º 8
0
        public static decimal GetSoulPrice()
        {
            Func <string> test      = () => CoinUtils.GetCoinPrice().GetAwaiter().GetResult();
            var           soulPrice = Caching.GetObjectFromCache("soulPrice", 3, test);

            return(decimal.Parse(soulPrice, CultureInfo.InvariantCulture));
        }
Ejemplo n.º 9
0
        public async Task BuyTest(string quoteCurrency)
        {
            var symbols = CoinUtils.GetAllCommonSymbols(quoteCurrency);
            var account = AccountConfigUtils.GetAccountConfig("qq");

            foreach (var symbol in symbols)
            {
                PlatformApi       api = PlatformApi.GetInstance("qq");
                OrderPlaceRequest req = new OrderPlaceRequest();
                req.account_id = account.MainAccountId;
                req.amount     = "0.0000001";
                req.price      = "0.001";
                req.source     = "api";
                req.symbol     = symbol.BaseCurrency + symbol.QuoteCurrency;
                req.type       = "buy-limit";

                try
                {
                    HBResponse <long> order = api.OrderPlace(req);

                    logger.Error($"3 ------------------------");
                }
                catch (Exception ex)
                {
                    logger.Error($"{ symbol.BaseCurrency + symbol.QuoteCurrency}" + ex.Message, ex);
                }
            }
        }
Ejemplo n.º 10
0
        public async Task <string> shouge(long orderId)
        {
            try
            {
                var dogEmptySell = new DogEmptySellDao().GetDogEmptySellBySellOrderId(orderId);
                if (dogEmptySell.IsFinished)
                {
                    return("已经完成的不操作");
                }

                var dogEmptyBuyList = new DogEmptyBuyDao().ListDogEmptyBuyBySellOrderId(orderId);
                if (dogEmptyBuyList.Count > 0 && dogEmptyBuyList.Find(it => it.BuyState != StateConst.Canceled.ToString() && it.BuyState != StateConst.PartialFilled.ToString() && it.BuyState != StateConst.Filled.ToString()) != null)
                {
                    // 存在操作中的,则不操作
                    return("存在操作中的,则不操作");
                }

                CommonSymbol symbol = CoinUtils.GetCommonSymbol(dogEmptySell.SymbolName, dogEmptySell.QuoteCurrency);

                // 先初始化一下
                AnalyzeResult analyzeResult = AnalyzeResult.GetAnalyzeResult(symbol);
                if (analyzeResult == null)
                {
                    return("分析结果未null");
                }
                return(CoinTrade.ShouGeDogEmpty(dogEmptySell, symbol, analyzeResult, true));
            }
            catch (Exception ex)
            {
                logger.Error($"严重 orderId:{orderId}- {ex.Message}", ex);
                return(ex.Message);
            }
        }
Ejemplo n.º 11
0
        public async Task <object> listEmptySellIsNotFinished(string symbolName, string quoteCurrency, string userName)
        {
            var list         = new List <DogEmptySell>();
            var symbols      = CoinUtils.GetAllCommonSymbols(quoteCurrency);
            var nowPriceList = new DogNowPriceDao().ListDogNowPrice(quoteCurrency);
            Dictionary <string, decimal> closeDic = new Dictionary <string, decimal>();

            foreach (var item in nowPriceList)
            {
                if (item.QuoteCurrency != quoteCurrency)
                {
                    continue;
                }
                closeDic.Add(item.SymbolName, item.NowPrice);
            }
            if (string.IsNullOrEmpty(symbolName))
            {
                list = new DogEmptySellDao().listEveryMaxPriceEmptySellIsNotFinished(userName, quoteCurrency);
            }
            else
            {
                list = new DogEmptySellDao().ListDogEmptySellNotFinished(symbolName, userName, quoteCurrency);
            }

            return(new { list, closeDic });
        }
Ejemplo n.º 12
0
        public void SetupHandlers() //todo separate each call
        {
            TemplateEngine.Server.Get("/", request => HTTPResponse.Redirect(AppSettings.UrlHome));

            TemplateEngine.Server.Get(AppSettings.UrlHome, RouteHome);

            TemplateEngine.Server.Post(AppSettings.UrlHome, RouteSearch);

            TemplateEngine.Server.Get(AppSettings.UrlError, RouteError);

            TemplateEngine.Server.Get(AppSettings.UrlTokens, RouteTokens);

            TemplateEngine.Server.Get($"{AppSettings.UrlTokens}/{{input}}", RouteTokensNft);

            TemplateEngine.Server.Get("/marketcap", request =>
            {
                var info      = CoinUtils.GetCoinInfoAsync(CoinUtils.SoulId).Result;
                var marketCap = info["quotes"]["USD"].GetDecimal("market_cap");
                return($"${marketCap}");
            });

            TemplateEngine.Server.Get("/rates", request =>
            {
                var coins = HomeController.GetRateInfo();

                var html = TemplateEngine.Render(coins, "rates");
                return(html);
            });

            TemplateEngine.Server.Get($"{AppSettings.UrlToken}/{{input}}", RouteToken);

            TemplateEngine.Server.Get($"{AppSettings.UrlTransactions}", RouteTransactions);
            TemplateEngine.Server.Get($"{AppSettings.UrlTransactions}/{{page}}", RouteTransactions);

            TemplateEngine.Server.Get($"{AppSettings.UrlTransaction}/{{input}}", RouteTransaction);

            TemplateEngine.Server.Get($"{AppSettings.UrlAddresses}", RouteAddresses);

            TemplateEngine.Server.Get($"{AppSettings.UrlAddress}/{{input}}", RouteAddress);
            TemplateEngine.Server.Get($"{AppSettings.UrlAddress}/{{input}}/{{page}}", RouteAddress);

            TemplateEngine.Server.Get($"{AppSettings.UrlBlocks}", RouteBlocks);
            TemplateEngine.Server.Get($"{AppSettings.UrlBlocks}/{{page}}", RouteBlocks);

            TemplateEngine.Server.Get($"{AppSettings.UrlBlock}/{{input}}", RouteBlock);

            TemplateEngine.Server.Get($"{AppSettings.UrlChains}", RouteChains);

            TemplateEngine.Server.Get($"{AppSettings.UrlChain}/{{input}}", RouteChain);

            TemplateEngine.Server.Get($"{AppSettings.UrlApps}", RouteApps);

            TemplateEngine.Server.Get($"{AppSettings.UrlApp}/{{input}}", RouteApp);

            TemplateEngine.Server.Get($"{AppSettings.UrlMarketplace}", RouteMarketplace);
            TemplateEngine.Server.Get($"{AppSettings.UrlMarketplace}/{{chain}}/{{page}}", RouteMarketplace);

            //SetupAPIHandlers(); todo
        }
Ejemplo n.º 13
0
    }               //end detect coin

    public async Task <CoinUtils> detectCoin(CoinUtils cu, int milliSecondsToTimeOut)
    {
        cu.generatePan();

        var t00 = detectOne(00, cu.cc.nn, cu.cc.sn, cu.cc.an[00], cu.pans[00], cu.getDenomination());
        var t01 = detectOne(01, cu.cc.nn, cu.cc.sn, cu.cc.an[01], cu.pans[01], cu.getDenomination());
        var t02 = detectOne(02, cu.cc.nn, cu.cc.sn, cu.cc.an[02], cu.pans[02], cu.getDenomination());
        var t03 = detectOne(03, cu.cc.nn, cu.cc.sn, cu.cc.an[03], cu.pans[03], cu.getDenomination());
        var t04 = detectOne(04, cu.cc.nn, cu.cc.sn, cu.cc.an[04], cu.pans[04], cu.getDenomination());
        var t05 = detectOne(05, cu.cc.nn, cu.cc.sn, cu.cc.an[05], cu.pans[05], cu.getDenomination());
        var t06 = detectOne(06, cu.cc.nn, cu.cc.sn, cu.cc.an[06], cu.pans[06], cu.getDenomination());
        var t07 = detectOne(07, cu.cc.nn, cu.cc.sn, cu.cc.an[07], cu.pans[07], cu.getDenomination());
        var t08 = detectOne(08, cu.cc.nn, cu.cc.sn, cu.cc.an[08], cu.pans[08], cu.getDenomination());
        var t09 = detectOne(09, cu.cc.nn, cu.cc.sn, cu.cc.an[09], cu.pans[09], cu.getDenomination());
        var t10 = detectOne(10, cu.cc.nn, cu.cc.sn, cu.cc.an[10], cu.pans[10], cu.getDenomination());
        var t11 = detectOne(11, cu.cc.nn, cu.cc.sn, cu.cc.an[11], cu.pans[11], cu.getDenomination());
        var t12 = detectOne(12, cu.cc.nn, cu.cc.sn, cu.cc.an[12], cu.pans[12], cu.getDenomination());
        var t13 = detectOne(13, cu.cc.nn, cu.cc.sn, cu.cc.an[13], cu.pans[13], cu.getDenomination());
        var t14 = detectOne(14, cu.cc.nn, cu.cc.sn, cu.cc.an[14], cu.pans[14], cu.getDenomination());
        var t15 = detectOne(15, cu.cc.nn, cu.cc.sn, cu.cc.an[15], cu.pans[15], cu.getDenomination());
        var t16 = detectOne(16, cu.cc.nn, cu.cc.sn, cu.cc.an[16], cu.pans[16], cu.getDenomination());
        var t17 = detectOne(17, cu.cc.nn, cu.cc.sn, cu.cc.an[17], cu.pans[17], cu.getDenomination());
        var t18 = detectOne(18, cu.cc.nn, cu.cc.sn, cu.cc.an[18], cu.pans[18], cu.getDenomination());
        var t19 = detectOne(19, cu.cc.nn, cu.cc.sn, cu.cc.an[19], cu.pans[19], cu.getDenomination());
        var t20 = detectOne(20, cu.cc.nn, cu.cc.sn, cu.cc.an[20], cu.pans[20], cu.getDenomination());
        var t21 = detectOne(21, cu.cc.nn, cu.cc.sn, cu.cc.an[21], cu.pans[21], cu.getDenomination());
        var t22 = detectOne(22, cu.cc.nn, cu.cc.sn, cu.cc.an[22], cu.pans[22], cu.getDenomination());
        var t23 = detectOne(23, cu.cc.nn, cu.cc.sn, cu.cc.an[23], cu.pans[23], cu.getDenomination());
        var t24 = detectOne(24, cu.cc.nn, cu.cc.sn, cu.cc.an[24], cu.pans[24], cu.getDenomination());


        var taskList = new List <Task> {
            t00, t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24
        };
        await Task.WhenAll(taskList.ToArray());

        //Get data from the detection agents

        for (int i = 0; i < 25; i++)
        {
            if (responseArray[i] != null)
            {
                cu.setPastStatus(responseArray[i].outcome, i);
                CoreLogger.Log(cu.cc.sn + " detect:" + i + " " + responseArray[i].fullResponse);
            }
            else
            {
                cu.setPastStatus("undetected", i);
            }; // should be pass, fail, error or undetected.
        }      //end for each detection agent

        cu.setAnsToPansIfPassed();
        cu.calculateHP();
        // cu.gradeCoin(); // sets the grade and figures out what the file extension should be (bank, fracked, counterfeit, lost
        cu.calcExpirationDate();
        cu.grade();

        return(cu);
    }    //end detect coin
Ejemplo n.º 14
0
        public static List <CommonSymbol> InitEthData(List <string> allPre120)
        {
            // 准备好各种对
            var ethSymbols = CoinUtils.GetAllCommonSymbols("eth");

            ethSymbols.RemoveAll(it => !allPre120.Contains(it.BaseCurrency));
            return(ethSymbols.ToList());
        }
Ejemplo n.º 15
0
        public void SetupHandlers() //todo separate each call
        {
            TemplateEngine.Server.Get("/", request => HTTPResponse.Redirect(AppSettings.UrlHome));

            TemplateEngine.Server.Get(AppSettings.UrlHome, RouteHome);

            TemplateEngine.Server.Post(AppSettings.UrlHome, RouteSearch);

            TemplateEngine.Server.Get(AppSettings.UrlError, RouteError);

            TemplateEngine.Server.Get(AppSettings.UrlTokens, RouteTokens);

            TemplateEngine.Server.Get($"{AppSettings.UrlTokens}/{{input}}", RouteTokensNft);

            TemplateEngine.Server.Get("/marketcap", request =>
            {
                var marketCap = CoinUtils.GetCoinMarketCap().GetAwaiter().GetResult();
                return($"$ {marketCap}");
            });

            TemplateEngine.Server.Get("/rates", request =>
            {
                //var coins = HomeController.GetRateInfo();

                var html = TemplateEngine.Render("", "rates");
                return(html);
            });

            TemplateEngine.Server.Get($"{AppSettings.UrlToken}/{{input}}", RouteToken);

            TemplateEngine.Server.Get($"{AppSettings.UrlTransactions}", RouteTransactions);
            TemplateEngine.Server.Get($"{AppSettings.UrlTransactions}/{{page}}", RouteTransactions);

            TemplateEngine.Server.Get($"{AppSettings.UrlTransaction}/{{input}}", RouteTransaction);

            TemplateEngine.Server.Get($"{AppSettings.UrlAddresses}", RouteAddresses);

            TemplateEngine.Server.Get($"{AppSettings.UrlAddress}/{{input}}", RouteAddress);
            TemplateEngine.Server.Get($"{AppSettings.UrlAddress}/{{input}}/{{page}}", RouteAddress);

            TemplateEngine.Server.Get($"{AppSettings.UrlBlocks}", RouteBlocks);
            TemplateEngine.Server.Get($"{AppSettings.UrlBlocks}/{{page}}", RouteBlocks);

            TemplateEngine.Server.Get($"{AppSettings.UrlBlock}/{{input}}", RouteBlock);

            TemplateEngine.Server.Get($"{AppSettings.UrlChains}", RouteChains);

            TemplateEngine.Server.Get($"{AppSettings.UrlChain}/{{input}}", RouteChain);

            TemplateEngine.Server.Get($"{AppSettings.UrlSoulMasters}", RouteSoulMasters);
            TemplateEngine.Server.Get($"{AppSettings.UrlSoulMasters}/{{page}}", RouteSoulMasters);

            TemplateEngine.Server.Get($"{AppSettings.UrlMarketplace}", RouteMarketplace);
            TemplateEngine.Server.Get($"{AppSettings.UrlMarketplace}/{{chain}}/{{page}}", RouteMarketplace);

            //SetupAPIHandlers(); todo
        }
Ejemplo n.º 16
0
        public static void Begin()
        {
            var symbols = CoinUtils.GetAllCommonSymbols();

            RunCoin(symbols.Where(it => it.BaseCurrency != "btc").ToList());
            //var splitIndex = 16;
            //RunCoin(symbols.GetRange(0, splitIndex + 1));
            //RunCoin(symbols.GetRange(splitIndex, symbols.Count - splitIndex));
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 计算多单收割的数量
        /// </summary>
        /// <param name="buyQuantity"></param>
        /// <param name="buyTradePrice"></param>
        /// <param name="nowPrice"></param>
        /// <param name="symbol"></param>
        /// <returns></returns>
        public static decimal CalcSellQuantityForMoreShouge(decimal buyQuantity, decimal buyTradePrice, decimal nowPrice, CommonSymbol symbol)
        {
            if (nowPrice <= buyTradePrice * (decimal)1.03)
            {
                throw new Exception("收割多价格不合理");
            }

            // 作用是,价格越高,则收割的量越多
            var position = (decimal)0.66;

            // 作用是,价格越高,则收割的量越多
            decimal sellQuantity = buyQuantity * buyTradePrice / nowPrice;

            sellQuantity = sellQuantity + (buyQuantity - sellQuantity) * position;
            sellQuantity = decimal.Round(sellQuantity, symbol.AmountPrecision);

            var newSellQuantity = sellQuantity;

            if (newSellQuantity == buyQuantity)
            {
                if (symbol.AmountPrecision == 4)
                {
                    newSellQuantity -= (decimal)0.0001;
                }
                else if (symbol.AmountPrecision == 3)
                {
                    newSellQuantity -= (decimal)0.001;
                }
                else if (symbol.AmountPrecision == 2)
                {
                    newSellQuantity -= (decimal)0.01;
                }
                else if (symbol.AmountPrecision == 1)
                {
                    newSellQuantity -= (decimal)0.1;
                }
                else if (symbol.AmountPrecision == 0)
                {
                    newSellQuantity -= (decimal)1;
                }
            }

            // 是否满足最小出售数量
            if (!CoinUtils.IsBiggerThenLeast(symbol.BaseCurrency, symbol.QuoteCurrency, sellQuantity))
            {
                newSellQuantity = CoinUtils.GetLeast(symbol.BaseCurrency, symbol.QuoteCurrency);
            }

            if (buyQuantity > newSellQuantity && buyQuantity * buyTradePrice < newSellQuantity * nowPrice)
            {
                return(newSellQuantity);
            }

            throw new Exception($"计算sellquantity不合理, buyQuantity:{buyQuantity},newSellQuantity:{newSellQuantity}, 没有赚头");
        }
Ejemplo n.º 18
0
        public static List <CommonSymbol> InitHtData()
        {
            // 准备好各种对
            var htSymbols = CoinUtils.GetAllCommonSymbols("ht");

            foreach (var symbol in htSymbols)
            {
                KlineUtils.CheckTableExistAndCreate(symbol);
            }
            return(htSymbols.ToList());
        }
Ejemplo n.º 19
0
        public static void Begin()
        {
            logger.Info("----------------------  begin  --------------------------------");
            // 初始化
            var symbols = CoinUtils.GetAllCommonSymbols();

            // 定时任务, 不停的获取最新数据, 以供分析使用
            foreach (var symbol in symbols)
            {
                RunHistoryKline(symbol);
            }
        }
Ejemplo n.º 20
0
 private void CalculateAddressSoulValue(List <AddressViewModel> list)
 {
     SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);
     foreach (var address in list)
     {
         var soulBalances = address.NativeBalances.Where(b => b.Token.Symbol == AppSettings.NativeSymbol);
         foreach (var balanceViewModel in soulBalances)
         {
             balanceViewModel.Value = balanceViewModel.Balance * SoulRate;
             address.Value          = balanceViewModel.Value;
         }
     }
 }
Ejemplo n.º 21
0
    }    //End Write To

    public void overWrite(String folder, FoundersCloudCoin cc)
    {
        CoinUtils    cu        = new CoinUtils(cc);
        const string quote     = "\"";
        const string tab       = "\t";
        String       wholeJson = "{" + Environment.NewLine; //{
        String       json      = this.setJSON(cc);

        wholeJson += tab + quote + "cloudcoin" + quote + ": [" + Environment.NewLine;     // "cloudcoin" : [
        wholeJson += json;
        wholeJson += Environment.NewLine + tab + "]" + Environment.NewLine + "}";

        File.WriteAllText(folder + cu.fileName + ".stack", wholeJson);
    }    //End Overwrite
Ejemplo n.º 22
0
        public static List <CoinRateViewModel> GetRateInfo()
        {
            var symbols = new[] { "USD", "BTC", "ETH", "NEO" };

            var tasks = symbols.Select(symbol => CoinUtils.GetCoinInfoAsync(CoinUtils.SoulId, symbol));
            var rates = Task.WhenAll(tasks).GetAwaiter().GetResult();

            int days     = 15;
            var soulData = CoinUtils.GetChartForCoin("SOUL", "USD", days);

            var coins = new List <CoinRateViewModel>();

            for (int i = 0; i < rates.Length; i++)
            {
                var symbol = symbols[i];

                var historicalData = symbol == "USD" ? null : CoinUtils.GetChartForCoin(symbol, "USD", days);

                var chart = new Dictionary <string, decimal>();
                for (int day = 0; day < days; day++)
                {
                    DateTime date     = DateTime.Now - TimeSpan.FromDays(day);
                    var      chartKey = $"{date.Day}/{date.Month}";

                    decimal price;
                    if (historicalData == null)
                    {
                        price = soulData[day];
                    }
                    else
                    {
                        price = soulData[day] / historicalData[day];
                    }

                    chart[chartKey] = price;
                }

                var coin = new CoinRateViewModel
                {
                    Symbol           = symbol,
                    Rate             = rates[i]["quotes"][symbol].GetDecimal("price"),
                    ChangePercentage = rates[i]["quotes"][symbol].GetDecimal("percent_change_24h"),
                    Chart            = chart,
                };
                coins.Add(coin);
            }

            return(coins);
        }
Ejemplo n.º 23
0
        public TokenViewModel GetToken(string symbol)
        {
            var tokenQuery = new TokenQueries(_context);
            var token      = tokenQuery.QueryToken(symbol);

            if (token != null)
            {
                SoulRate = token.Symbol == "SOUL" ? CoinUtils.GetCoinRate(CoinUtils.SoulId) : 0;

                return(TokenViewModel.FromToken(token,
                                                AppSettings.MockLogoUrl,
                                                SoulRate));
            }

            return(null);
        }
Ejemplo n.º 24
0
        private static void BeginTrade()
        {
            // 初始化
            CoinUtils.Init();

            UserPools.Push("xx");
            UserPools.Push("qq");

            DogControlUtils.InitAsync();

            // 不停的对每个币做操作
            BeginTradeAllSymbol();

            // 状态检查
            TradeStateUtils.Begin();
        }
Ejemplo n.º 25
0
        private static void BeginTrade()
        {
            // 初始化
            CoinUtils.Init();

            UserPools.Push("xx");
            UserPools.Push("qq");

            // 初始化k线
            //KlineUtils.Begin();

            // 不停的对每个币做操作
            BuyOrSellUtils.Begin();

            // 状态检查
            TradeStateUtils.Begin();
        }
Ejemplo n.º 26
0
        public List <TokenViewModel> GetTokens()
        {
            var tokenQuery = new TokenQueries(_context);
            var tokenList  = tokenQuery.QueryTokens();
            var tokensList = new List <TokenViewModel>();

            SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);

            foreach (var token in tokenList)
            {
                SoulRate = token.Symbol == "SOUL" ? CoinUtils.GetCoinRate(CoinUtils.SoulId) : 0;
                tokensList.Add(TokenViewModel.FromToken(token,
                                                        AppSettings.MockLogoUrl,
                                                        SoulRate));
            }

            return(tokensList);
        }
Ejemplo n.º 27
0
        private unsafe WarmStart(CoinWarmStart coinWarmStart, int numberColumns, double *colSolution, int numberRows, double *rowPrice)
        {
            this.coinWarmStart = coinWarmStart;
            this.numberColumns = numberColumns;
            this.numberRows    = numberRows;

            if (numberColumns > 0)
            {
                this.colSolution = CoinUtils.NewDoubleArray(numberColumns);
                CoinUtils.CoinDisjointCopyN(colSolution, numberColumns, this.colSolution);
            }

            if (numberRows > 0)
            {
                this.rowPrice = CoinUtils.NewDoubleArray(numberRows);
                CoinUtils.CoinDisjointCopyN(rowPrice, numberRows, this.rowPrice);
            }
        }
Ejemplo n.º 28
0
    }    //end importJSON

    // en d json test
    public String setJSON(FoundersCloudCoin cc)
    {
        const string quote = "\"";
        const string tab   = "\t";
        String       json  = (tab + tab + "{ " + Environment.NewLine);                                       // {

        json += tab + tab + quote + "nn" + quote + ":" + quote + cc.nn + quote + ", " + Environment.NewLine; // "nn":"1",
        json += tab + tab + quote + "sn" + quote + ":" + quote + cc.sn + quote + ", " + Environment.NewLine; // "sn":"367544",
        json += tab + tab + quote + "an" + quote + ": [" + quote;                                            // "an": ["
        for (int i = 0; (i < 25); i++)
        {
            json += cc.an[i];    // 8551995a45457754aaaa44
            if (i == 4 || i == 9 || i == 14 || i == 19)
            {
                json += quote + "," + Environment.NewLine + tab + tab + tab + quote;     //",
            }
            else if (i == 24)
            {
                // json += "\""; last one do nothing
            }
            else
            {     // end if is line break
                json += quote + ", " + quote;
            }

            // end else
        }                                           // end for 25 ans

        json += quote + "]," + Environment.NewLine; //"],
        // End of ans
        CoinUtils cu = new CoinUtils(cc);

        cu.calcExpirationDate();
        json += tab + tab + quote + "ed" + quote + ":" + quote + cu.cc.ed + quote + "," + Environment.NewLine;     // "ed":"9-2016",
        if (string.IsNullOrEmpty(cc.pown))
        {
            cc.pown = "uuuuuuuuuuuuuuuuuuuuuuuuu";
        }                                                                                                       //Set pown to unknow if it is not set.
        json += tab + tab + quote + "pown" + quote + ":" + quote + cc.pown + quote + "," + Environment.NewLine; // "pown":"uuupppppffpppppfuuf",
        json += tab + tab + quote + "aoid" + quote + ": []" + Environment.NewLine;
        json += tab + tab + "}" + Environment.NewLine;
        // Keep expiration date when saving (not a truley accurate but good enought )
        return(json);
    }
Ejemplo n.º 29
0
        public static void RunAlert()
        {
            var symbols = CoinUtils.GetAllCommonSymbols("usdt");

            Task.Run(() =>
            {
                while (true)
                {
                    try
                    {
                        foreach (var symbol in symbols)
                        {
                            PlatformApi api = PlatformApi.GetInstance("xx");
                            var period      = "1min";
                            var klines      = api.GetHistoryKline(symbol.BaseCurrency + symbol.QuoteCurrency, period);

                            var nowPrice = klines[0].Close;
                            // 5分钟内有5%, 或者 15分钟内有10%
                            foreach (var item in klines)
                            {
                                if (Utils.GetDateById(item.Id) > DateTime.Now.AddMinutes(-5) && (
                                        item.Close / nowPrice > (decimal)1.05 || nowPrice / item.Close > (decimal)1.05))
                                {
                                    Console.WriteLine($"{symbol.BaseCurrency}, now:{nowPrice} ->{ item.Close} ");
                                    OpenUrlUtils.Open();
                                }

                                if (Utils.GetDateById(item.Id) > DateTime.Now.AddMinutes(-15) && (
                                        item.Close / nowPrice > (decimal)1.10 || nowPrice / item.Close > (decimal)1.10))
                                {
                                    Console.WriteLine($"{symbol.BaseCurrency}, now:{nowPrice} ->{ item.Close} ");
                                    OpenUrlUtils.Open();
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
            });
        }
Ejemplo n.º 30
0
    }    //end read all bytes

    public bool writeTo(String folder, FoundersCloudCoin cc)
    {
        CoinUtils    cu            = new CoinUtils(cc);
        const string quote         = "\"";
        const string tab           = "\t";
        String       wholeJson     = "{" + Environment.NewLine; //{
        bool         alreadyExists = true;
        String       json          = this.setJSON(cc);

        if (!File.Exists(folder + cu.fileName + ".stack"))
        {
            wholeJson += tab + quote + "cloudcoin" + quote + ": [" + Environment.NewLine;     // "cloudcoin" : [
            wholeJson += json;
            wholeJson += Environment.NewLine + tab + "]" + Environment.NewLine + "}";
            File.WriteAllText(folder + cu.fileName + ".stack", wholeJson);
        }
        else
        {
            if (folder.Contains("Counterfeit") || folder.Contains("Trash"))
            {
                //Let the program delete it
                alreadyExists = false;
                return(alreadyExists);
            }
            else if (folder.Contains("Imported"))
            {
                File.Delete(folder + cu.fileName + ".stack");
                File.WriteAllText(folder + cu.fileName + ".stack", wholeJson);
                alreadyExists = false;
                return(alreadyExists);
            }
            else
            {
                Console.WriteLine(cu.fileName + ".stack" + " already exists in the folder " + folder);
                CoreLogger.Log(cu.fileName + ".stack" + " already exists in the folder " + folder);
                return(alreadyExists);
            } //end else
        }     //File Exists
        File.WriteAllText(folder + cu.fileName + ".stack", wholeJson);
        alreadyExists = false;
        return(alreadyExists);
    }    //End Write To