internal TradeCirculaire(ValeurEchange m1m2, Richesse etapeM2, ValeurEchange m2m3, ValeurEchange m3m1) : base(3) { Investissement = m1m2.RichesseAvantTrade(etapeM2); EtapeM2 = Investissement.Quantite > 0 ? etapeM2 : new Richesse(0, etapeM2.Monnaie); EtapeM3 = m2m3.RichesseApresTrade(EtapeM2); ApresTrade = m3m1.RichesseApresTrade(EtapeM3); }
private static Richesse TrouveProchaineEtape(Monnaie monnaieInitiale, Monnaie monnaiePivot, ValeurEchange valeurEchangeInitiale, ValeurEchange valeurEchangeFinale, ref int i, ref int j) { Richesse etapeSensNaturelle = valeurEchangeInitiale.GetRichesseToTrade(monnaieInitiale, i); Richesse etapeSensInverse = valeurEchangeInitiale.RichesseAvantTrade(valeurEchangeFinale.GetRichesseToTrade(monnaiePivot, j)); if (etapeSensNaturelle < etapeSensInverse) { ++i; return(etapeSensNaturelle); } ++j; return(etapeSensInverse); }