Esempio n. 1
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);
        }
Esempio n. 2
0
        private TradeCirculaire CalculTradeCirculaire(Monnaie m1, Monnaie m2, Monnaie m3)
        {
            if (!BaseEtQuoteToVe.TryGetValue(m1, m2, out ValeurEchange ve12) ||
                !BaseEtQuoteToVe.TryGetValue(m2, m3, out ValeurEchange ve23) ||
                !BaseEtQuoteToVe.TryGetValue(m3, m1, out ValeurEchange ve31))
            {
                return(null);
            }
            TradeCirculaire partantDeM1 = CalculTradeCirculaireEnPartantDe(m1, ve12, ve12, ve23, ve31, TradeCirculaire.constructeurFromM1);
            TradeCirculaire partantDeM2 = CalculTradeCirculaireEnPartantDe(m2, ve23, ve12, ve23, ve31, TradeCirculaire.constructeurFromM2);
            TradeCirculaire partantDeM3 = CalculTradeCirculaireEnPartantDe(m3, ve31, ve12, ve23, ve31, TradeCirculaire.constructeurFromM3);

            TradeCirculaire best = partantDeM1;

            if (best.Gain < partantDeM2.Gain)
            {
                best = partantDeM2;
            }
            if (best.Gain < partantDeM3.Gain)
            {
                best = partantDeM3;
            }
            return(best);
        }