public async Task <OrderResponse> Lancer()
        {
            while (ContinuerDeBoucler)
            {
                var cotation = await pair.DerniereCotation();

                DernierOrdre = ChopperDernierOrdre();
                if (DernierOrdre != null)
                {
                    DernierOrdre = await pair.EtatOrdre(DernierOrdre.Id.ToString());
                }

                if (DernierOrdre != null && DernierOrdre.Status != OrderStatus.Done && DernierOrdre.Side == OrderSide.Buy && ((DernierOrdre.Price - cotation.Price) > 0 || ((cotation.Price - DernierOrdre.Price)) > (cotation.Price * PourcentageAvantAnnulationAchat / 100)))
                {
                    await pair.AnnulerOrdreOuvert(DernierOrdre.Id.ToString());

                    DernierOrdre = null;
                }

                if (DernierOrdre == null || (DernierOrdre.Side == OrderSide.Sell && DernierOrdre.Status == OrderStatus.Done))
                {
                    var compte = await pair.AvoirDuCompteFiat();

                    var derniereCotation = await pair.DerniereCotation();

                    var equivalentCryptoDuMontant = (montantFiatOrdre / derniereCotation.Price);

                    if (compte.Available < equivalentCryptoDuMontant)
                    {
                        montantFiatOrdre = compte.Available;
                    }

                    LoggerAH.Debug(nameof(montantFiatOrdre) + ": " + montantFiatOrdre + " " + pair.NomFiat);
                    var limiteAchat = derniereCotation.Price - (derniereCotation.Price * (pourcentageBaisseAvantAchat / 100));
                    var ordre       = await pair.Acheter(Math.Round(equivalentCryptoDuMontant, tailleMinimum), Math.Round(limiteAchat, tailleMinimum));

                    SauvegarderOrdre(ordre);
                    // return ordre;
                }

                if (DernierOrdre != null && DernierOrdre.Side == OrderSide.Buy && DernierOrdre.Status == OrderStatus.Done)
                {
                    var compte = await pair.AvoirDuCompteCrypto();

                    var derniereCotation = await pair.DerniereCotation();

                    var equivalentCryptoDuMontant = (montantFiatOrdre / derniereCotation.Price);

                    if (compte.Available < equivalentCryptoDuMontant)
                    {
                        montantFiatOrdre = compte.Available;
                    }

                    var limiteVente = derniereCotation.Price + (derniereCotation.Price * pourcentageHausseAvantVente / 100);
                    var ordre       = await pair.Vendre(Math.Round(equivalentCryptoDuMontant, tailleMinimum), Math.Round(limiteVente, tailleMinimum));

                    SauvegarderOrdre(ordre);
                    // return ordre;
                }

                //var dureeAttente = DateTime.Now.Subtract(dernierOrdre.CreatedAt.ToLocalTime());
                //if (dureeAttente > TimeSpan.FromMinutes(20) && statusOrdre.Side == OrderSide.Buy && (statusOrdre.Status == OrderStatus.Open || statusOrdre.Status == OrderStatus.Pending)) // si ordre d'achat prend trop de temps, renouveler
                //{
                //    await pair.AnnulerOrdreOuvert(dernierOrdre.Id.ToString());
                //    dernierOrdre = null;
                //}
                await Task.Delay(MillisecondsDelay);
            }
            return(DernierOrdre);
        }