Exemplo n.º 1
0
        public TriArbViewModel(TriArbOpportunity tao)
        {
            exchange1 = tao.arbitrageTransactionChain[0].baseCurrency.exchange.ToString();
            exchange2 = tao.arbitrageTransactionChain[1].baseCurrency.exchange.ToString();
            exchange3 = tao.arbitrageTransactionChain[2].baseCurrency.exchange.ToString();
            exchange4 = tao.arbitrageTransactionChain[2].quoteCurrency.exchange.ToString();

            currency1 = tao.arbitrageTransactionChain[0].baseCurrency.symbol;
            currency2 = tao.arbitrageTransactionChain[1].baseCurrency.symbol;
            currency3 = tao.arbitrageTransactionChain[2].baseCurrency.symbol;
            currency4 = tao.arbitrageTransactionChain[2].quoteCurrency.symbol;

            arbRate1 = Math.Round(tao.arbitrageTransactionChain[0].takerIndicatorRate, 4).ToString();
            arbRate2 = Math.Round(tao.arbitrageTransactionChain[1].takerIndicatorRate, 4).ToString();
            arbRate3 = Math.Round(tao.arbitrageTransactionChain[2].takerIndicatorRate, 4).ToString();

            maxVolume1 = "TODO";
            maxVolume2 = "TODO";
            maxVolume3 = "TODO";

            tradeInstruction1 = "TODO";
            tradeInstruction2 = "TODO";
            tradeInstruction3 = "TODO";

            fee1 = "TODO";
            fee2 = "TODO";
            fee3 = "TODO";

            maxInitialVolume = Math.Round(tao.maxInitialVolume, 4).ToString(); //TODO: get exchange granularity
            percentageGain   = Math.Round((tao.arbitrageRate - 1) * 100, 4) + "%";
            volumeGain       = "TODO";
        }
Exemplo n.º 2
0
        public void ArbChainGenerator(string startingCurrency, Exchange startingExchange, Exchange endExchange)
        {
            List <TriArbTransaction> startingList = GetTriArbSubList(startingExchange, startingCurrency);

            foreach (TriArbTransaction t in startingList)
            {
                List <TriArbTransaction> u = GetTriArbSubList(t.quoteCurrency.exchange, t.quoteCurrency.symbol);
                FilterSubList(ref u, startingCurrency);

                foreach (TriArbTransaction v in u)
                {
                    List <TriArbTransaction> w = GetFinalSubListBySymbol(v.quoteCurrency.exchange, v.quoteCurrency.symbol, startingCurrency);

                    foreach (TriArbTransaction x in w)
                    {
                        List <TriArbTransaction> ltat = new List <TriArbTransaction>();
                        ltat.Add(_triArbTransactionList.FindLast(y => y.quoteCurrency.exchange == t.quoteCurrency.exchange &&
                                                                 y.quoteCurrency.symbol == t.quoteCurrency.symbol &&
                                                                 y.baseCurrency.exchange == t.baseCurrency.exchange &&
                                                                 y.baseCurrency.symbol == t.baseCurrency.symbol &&
                                                                 y.inversed == t.inversed));
                        ltat.Add(_triArbTransactionList.FindLast(y => y.quoteCurrency.exchange == v.quoteCurrency.exchange &&
                                                                 y.quoteCurrency.symbol == v.quoteCurrency.symbol &&
                                                                 y.baseCurrency.exchange == v.baseCurrency.exchange &&
                                                                 y.baseCurrency.symbol == v.baseCurrency.symbol &&
                                                                 y.inversed == v.inversed));
                        ltat.Add(_triArbTransactionList.FindLast(y => y.quoteCurrency.exchange == x.quoteCurrency.exchange &&
                                                                 y.quoteCurrency.symbol == x.quoteCurrency.symbol &&
                                                                 y.baseCurrency.exchange == x.baseCurrency.exchange &&
                                                                 y.baseCurrency.symbol == x.baseCurrency.symbol &&
                                                                 y.inversed == x.inversed));

                        TriArbOpportunity tao = new TriArbOpportunity(ltat);
                        _triArbTransactionChainList.Add(tao);
                    }
                }
            }
        }
Exemplo n.º 3
0
 public void AddToTriArbTransactionChainList(TriArbOpportunity m)
 {
     _triArbTransactionChainList.Add(m);
 }