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(); } }
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(); }
public static List <CommonSymbol> InitHtData() { // 准备好各种对 var symbols = CoinUtils.GetAllCommonSymbols("ht"); return(symbols.ToList()); }
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(); } }
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(); }
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); }
public static decimal GetSoulPrice() { Func <string> test = () => CoinUtils.GetCoinPrice().GetAwaiter().GetResult(); var soulPrice = Caching.GetObjectFromCache("soulPrice", 3, test); return(decimal.Parse(soulPrice, CultureInfo.InvariantCulture)); }
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); } } }
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); } }
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 }); }
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 }
} //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
public static List <CommonSymbol> InitEthData(List <string> allPre120) { // 准备好各种对 var ethSymbols = CoinUtils.GetAllCommonSymbols("eth"); ethSymbols.RemoveAll(it => !allPre120.Contains(it.BaseCurrency)); return(ethSymbols.ToList()); }
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 }
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)); }
/// <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}, 没有赚头"); }
public static List <CommonSymbol> InitHtData() { // 准备好各种对 var htSymbols = CoinUtils.GetAllCommonSymbols("ht"); foreach (var symbol in htSymbols) { KlineUtils.CheckTableExistAndCreate(symbol); } return(htSymbols.ToList()); }
public static void Begin() { logger.Info("---------------------- begin --------------------------------"); // 初始化 var symbols = CoinUtils.GetAllCommonSymbols(); // 定时任务, 不停的获取最新数据, 以供分析使用 foreach (var symbol in symbols) { RunHistoryKline(symbol); } }
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; } } }
} //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
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); }
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); }
private static void BeginTrade() { // 初始化 CoinUtils.Init(); UserPools.Push("xx"); UserPools.Push("qq"); DogControlUtils.InitAsync(); // 不停的对每个币做操作 BeginTradeAllSymbol(); // 状态检查 TradeStateUtils.Begin(); }
private static void BeginTrade() { // 初始化 CoinUtils.Init(); UserPools.Push("xx"); UserPools.Push("qq"); // 初始化k线 //KlineUtils.Begin(); // 不停的对每个币做操作 BuyOrSellUtils.Begin(); // 状态检查 TradeStateUtils.Begin(); }
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); }
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); } }
} //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); }
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) { } } }); }
} //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