Exemplo n.º 1
0
        private static TradePivot MeilleurEchangeDepuis(Richesse dispo, ValeurEchange veEURO, ValeurEchange veUSD, Monnaie monnaiePivot)
        {
            Monnaie       monnaieInitiale       = dispo.Monnaie; // EURO ou USD
            var           newTradePivot         = monnaieInitiale == EURO ? TradePivot.newTradeEurUsd : TradePivot.newTradeUsdEur;
            ValeurEchange valeurEchangeInitiale = monnaieInitiale == EURO ? veEURO : veUSD;
            ValeurEchange valeurEchangeFinale   = monnaieInitiale == EURO ? veUSD : veEURO;

            TradePivot tmp             = null;
            Richesse   richesseToTrade = new Richesse(0, monnaieInitiale);
            Richesse   etape;
            TradePivot bestTrade = newTradePivot(richesseToTrade, veEURO, veUSD);
            int        i = 0, j = 0;

            while (tmp == null || tmp.GainFee > bestTrade.GainFee)
            {
                if (tmp != null)
                {
                    bestTrade = tmp;
                }
                etape           = TrouveProchaineEtape(monnaieInitiale, monnaiePivot, valeurEchangeInitiale, valeurEchangeFinale, ref i, ref j);
                richesseToTrade = etape < dispo ? etape : dispo;
                tmp             = newTradePivot(richesseToTrade, veEURO, veUSD);
            }
            if (bestTrade.GainFee.Quantite > 0)
            {
                return(bestTrade);
            }
            return(null);
        }
Exemplo n.º 2
0
        internal TreeSet <TradePivot> TrouveMeilleurEchangeEURUSD(Richesse dispoEuro, Richesse dispoUSD)
        {
            TreeSet <TradePivot> ret = new TreeSet <TradePivot>();

            foreach (Monnaie monnaiePivot in MonnaieTradableEURUSD)
            {
                if (BaseEtQuoteToVe.TryGetValue(EURO, monnaiePivot, out ValeurEchange veEURO) && BaseEtQuoteToVe.TryGetValue(USD, monnaiePivot, out ValeurEchange veUSD))
                {
                    TradePivot bestTrade = MeilleurEchangeDepuis(dispoEuro, veEURO, veUSD, monnaiePivot);
                    if (bestTrade == null)
                    {
                        bestTrade = MeilleurEchangeDepuis(dispoUSD, veEURO, veUSD, monnaiePivot);
                    }
                    if (bestTrade != null)
                    {
                        ret.Add(bestTrade);
                    }
                }
            }
            return(ret);
        }