public IRuleResult RuleExecuted(Solbot solbot) { var accountInfo = _binanceClient.General.GetAccountInfo(); var result = false; var baseMsg = string.Empty; var quoteMsg = string.Empty; if (accountInfo.Success) { var availableBase = accountInfo.Data.Balances.FirstOrDefault(e => e.Asset == solbot.Communication.Symbol.BaseAsset).Free; var availableQuote = accountInfo.Data.Balances.FirstOrDefault(e => e.Asset == solbot.Communication.Symbol.QuoteAsset).Free; solbot.Communication.AvailableAsset = new AvailableAssetMessage { Base = availableBase, Quote = availableQuote }; baseMsg = $"{solbot.Communication.Symbol.BaseAsset}:{availableBase}"; quoteMsg = $"{solbot.Communication.Symbol.QuoteAsset}:{availableQuote}"; result = true; } return(new ExchangeRuleResult { Success = result, Message = LogGenerator.ExchangeLog(baseMsg, quoteMsg, accountInfo.Error?.Message) }); }
public IRuleResult RuleExecuted(Solbot solbot) { var accountInfo = _kucoinClient.GetAccounts(); var result = false; var baseMsg = string.Empty; var quoteMsg = string.Empty; if (accountInfo.Success) { var accountType = accountInfo.Data.Where(a => a.Type == KucoinAccountType.Trade).ToList(); var quote = accountType.FirstOrDefault(q => q.Currency == solbot.Communication.Symbol.QuoteAsset); KucoinAccount basee = null; if (solbot.Communication.Symbol.BaseAsset.ToUpper() == "BSV") { basee = accountType.FirstOrDefault(q => q.Currency == "BCHSV"); } else { basee = accountType.FirstOrDefault(q => q.Currency == solbot.Communication.Symbol.BaseAsset); } var baseAvailable = basee != null ? basee.Available : 0m; if (accountType.AnyAndNotNull()) { solbot.Communication.AvailableAsset = new AvailableAssetMessage { Quote = quote.Available, Base = baseAvailable }; baseMsg = $"{solbot.Communication.Symbol.BaseAsset}:{baseAvailable}"; quoteMsg = $"{solbot.Communication.Symbol.QuoteAsset}:{quote.Available}"; result = true; } } return(new ExchangeRuleResult { Success = result, Message = LogGenerator.ExchangeLog(baseMsg, quoteMsg, accountInfo.Error?.Message) }); }
public IRuleResult RuleExecuted(Solbot solbot) { var accountInfo = _binanceClient.GetAccountInfo(); var availableBase = accountInfo.Data.Balances.FirstOrDefault(e => e.Asset == solbot.Communication.Symbol.BaseAsset).Free; var availableQuote = accountInfo.Data.Balances.FirstOrDefault(e => e.Asset == solbot.Communication.Symbol.QuoteAsset).Free; solbot.Communication.AvailableAsset = new AvailableAssetMessage { Base = availableBase, Quote = availableQuote }; return(new ExchangeRuleResult { Success = true, Message = LogGenerator.ExchangeLog($"{solbot.Communication.Symbol.BaseAsset}:{availableBase}", $"{solbot.Communication.Symbol.QuoteAsset}:{availableQuote}") }); }