Пример #1
0
        public static decimal OcoStopLimitWithPercent(int symbolID, decimal LimitPriece, decimal Percent)
        {
            var FilterRepo  = new FiltersRepository();
            var filtro      = FilterRepo.GetBySymbol_Type("PRICE_FILTER", symbolID);
            var numerocasas = filtro.tickSize.ToString().IndexOf("1") - 1;
            var umporcento  = (LimitPriece / 100);
            var Limitaceito = LimitPriece - (umporcento * Percent);

            return(Math.Round(Limitaceito, numerocasas));
        }
Пример #2
0
 public static decimal ArredondarQuantidadeVenda(List <OrdemComission> Comissoes, Ordem MainOrdem)
 {
     using (var FilterRepo = new FiltersRepository())
     {
         var filtro = FilterRepo.GetBySymbol_Type("LOT_SIZE", MainOrdem.Chamada.Symbol_id);
         if (Comissoes.Count == 1)
         {
             var asset = Comissoes.FirstOrDefault();
             if (asset.ComissionAsset != "BNB")
             {
                 if (filtro.stepSize == 1)
                 {
                     return((int)(MainOrdem.Quantidade - asset.ComissionAmount));
                 }
                 else
                 {
                     var numerocasas   = filtro.stepSize.ToString().IndexOf("1") - 1;
                     var multiplicador = Math.Pow(10, numerocasas);
                     var n1            = (MainOrdem.Quantidade - asset.ComissionAmount) * (decimal)multiplicador;
                     return(Math.Floor(n1) / (decimal)multiplicador);
                 }
             }
             else
             {
                 return(MainOrdem.Quantidade);
             }
         }
         else
         {
             var symbol      = MainOrdem.Chamada.Symbol.symbol;
             var symbolAsset = symbol.Substring(0, symbol.Length - 3).ToUpper();
             var group       = Comissoes.GroupBy(x => x.ComissionAsset);
             //var ComissoesBNB = Comissoes.Where(x => x.ComissionAsset == "BNB").Sum(x => x.ComissionAmount);
             var ComissoesMoedaCorrente = Comissoes.Where(x => x.ComissionAsset == symbolAsset).Sum(x => x.ComissionAmount);
             if (ComissoesMoedaCorrente > 0)
             {
                 if (filtro.stepSize == 1)
                 {
                     return((int)(MainOrdem.Quantidade - ComissoesMoedaCorrente));
                 }
                 else
                 {
                     var numerocasas   = filtro.stepSize.ToString().IndexOf("1") - 1;
                     var multiplicador = Math.Pow(10, numerocasas);
                     var n1            = (MainOrdem.Quantidade - ComissoesMoedaCorrente) * (decimal)multiplicador;
                     return(Math.Floor(n1) / (decimal)multiplicador);
                 }
             }
             else
             {
                 return(MainOrdem.Quantidade);
             }
         }
     }
 }