Пример #1
0
        public static bool GetPoloniexInitData()
        {
            dynamic ticker     = JsonConvert.DeserializeObject(WebReq("https://poloniex.com/public?command=returnTicker"));
            dynamic currencies = JsonConvert.DeserializeObject(WebReq("https://poloniex.com/public?command=returnCurrencies"));


            var        exchange = GlobalData.Exchange.Poloniex;
            GlobalData db       = GlobalData.Instance;

            decimal transactionFee = 0.0025M; //hard coded taker fee of 0.25%. this lowers once volume goes over 600btc($1 800 000 as of his writing) per month

            //coin black list
            //disabled means transfers/withdrawls, frozen means market frozen.
            //just avoid both for now.

            foreach (var coin in currencies)
            {
                if (coin.First.disabled.Value == 1 || coin.First.frozen.Value == 1)
                {
                    db.AddCoinToBlckList(new Currency(coin.Name, exchange));
                }
            }

            //transaction black list
            //N/A. well.. this could be done from the frozen coins but it already get removed for now



            //master transaction list
            foreach (var trans in ticker)
            {
                Transaction transactionBuilder = new Transaction();
                Currency    currencyBuilder    = new Currency();
                string[]    pairParser;

                pairParser = trans.Name.Split('_');

                //TODO: add more information about currencies to init phase
                currencyBuilder.symbol   = pairParser[1];
                currencyBuilder.exchange = exchange;
                db.AddCurrencyToMasterList(currencyBuilder);
                transactionBuilder.baseCurrency = currencyBuilder;

                currencyBuilder          = new Currency();
                currencyBuilder.exchange = exchange;
                currencyBuilder.symbol   = pairParser[0];
                db.AddCurrencyToMasterList(currencyBuilder);
                transactionBuilder.quoteCurrency = currencyBuilder;


                //transactionBuilder.bid = decimal.Parse(trans.First.highestBid.Value);
                //transactionBuilder.ask = decimal.Parse(trans.First.lowestAsk.Value);
                transactionBuilder.identifier      = trans.Name.ToString();
                transactionBuilder.transactionType = Transaction.type.Trade;

                db.AddTransactionToMasterlist(transactionBuilder);
            }

            return(true);
        }
Пример #2
0
        public static bool GetBittrexInitData()
        {
            dynamic    ticker       = JsonConvert.DeserializeObject(WebReq("https://bittrex.com/api/v1.1/public/getmarketsummaries"));
            dynamic    transactions = JsonConvert.DeserializeObject(WebReq("https://bittrex.com/api/v1.1/public/getmarkets"));
            dynamic    currencies   = JsonConvert.DeserializeObject(WebReq("https://bittrex.com/api/v1.1/public/getcurrencies   "));
            var        exchange     = GlobalData.Exchange.Bittrex;
            GlobalData db           = GlobalData.Instance;

            //coin black list

            foreach (var coin in currencies.result)
            {
                if (coin.IsActive.Value != true)
                {
                    db.AddCoinToBlckList(new Currency(coin.Currency.Value, exchange));
                }
            }

            //transaction black list
            //TODO: this needs to be done
            //foreach(var t in transactions.result)
            //{
            //    if(!t.IsActive)
            //    {
            //        db.AddTransactionToBlckList(new Transaction(
            //    }
            //}



            //master transaction list
            foreach (var trans in ticker.result)
            {
                Transaction transactionBuilder = new Transaction();
                Currency    currencyBuilder    = new Currency();
                string[]    pairParser;

                pairParser = trans.MarketName.Value.Split('-');

                currencyBuilder.symbol          = pairParser[1];
                currencyBuilder.exchange        = exchange;
                transactionBuilder.baseCurrency = currencyBuilder;

                currencyBuilder                  = new Currency();
                currencyBuilder.symbol           = pairParser[0];
                currencyBuilder.exchange         = exchange;
                transactionBuilder.quoteCurrency = currencyBuilder;


                //transactionBuilder.bid = decimal.Parse(trans.Bid.Value.ToString(), System.Globalization.NumberStyles.Float);
                //transactionBuilder.ask = decimal.Parse(trans.Ask.Value.ToString(), System.Globalization.NumberStyles.Float);
                transactionBuilder.identifier      = trans.MarketName.Value.ToString();
                transactionBuilder.transactionType = Transaction.type.Trade;

                db.AddTransactionToMasterlist(transactionBuilder);
            }

            return(true);
        }
Пример #3
0
        public static bool GetCryptopiaInitData()
        {
            dynamic    ticker     = JsonConvert.DeserializeObject(WebReq("https://www.cryptopia.co.nz/api/GetMarkets"));
            dynamic    currencies = JsonConvert.DeserializeObject(WebReq("https://www.cryptopia.co.nz/api/GetCurrencies"));
            var        exchange   = GlobalData.Exchange.Cryptopia;
            GlobalData db         = GlobalData.Instance;

            //coin black list

            foreach (var coin in currencies.Data)
            {
                if (coin.Status.Value != "OK")
                {
                    db.AddCoinToBlckList(new Currency(coin.Symbol.Value, exchange));
                }
            }

            //transaction black list



            //master transaction list
            foreach (var trans in ticker.Data)
            {
                Transaction transactionBuilder = new Transaction();
                Currency    currencyBuilder    = new Currency();
                string[]    pairParser;

                pairParser = trans.Label.Value.Split('/');

                currencyBuilder.symbol          = pairParser[0];
                currencyBuilder.exchange        = exchange;
                transactionBuilder.baseCurrency = currencyBuilder;

                currencyBuilder                  = new Currency();
                currencyBuilder.symbol           = pairParser[1];
                currencyBuilder.exchange         = exchange;
                transactionBuilder.quoteCurrency = currencyBuilder;


                //transactionBuilder.bid = decimal.Parse(trans.BidPrice.Value.ToString(),System.Globalization.NumberStyles.Float);
                //transactionBuilder.ask = decimal.Parse(trans.AskPrice.Value.ToString(),System.Globalization.NumberStyles.Float);
                transactionBuilder.identifier      = trans.TradePairId.Value.ToString();
                transactionBuilder.transactionType = Transaction.type.Trade;

                db.AddTransactionToMasterlist(transactionBuilder);
            }

            return(true);
        }
Пример #4
0
        public static bool GetKrakenInitData()
        {
            string     krakenTickerUrl = "https://api.kraken.com/0/public/Ticker?pair=";
            dynamic    currencies      = JsonConvert.DeserializeObject(WebReq("https://api.kraken.com/0/public/Assets"));
            dynamic    transactions    = JsonConvert.DeserializeObject(WebReq("https://api.kraken.com/0/public/AssetPairs"));
            var        exchange        = GlobalData.Exchange.Kraken;
            GlobalData db = GlobalData.Instance;

            //have to use currency list to get the proper names of the coins
            //also the url for the transaction list is absurd

            var krakenCoinDict = new Dictionary <string, string>();

            foreach (var coin in currencies.result)
            {
                krakenCoinDict.Add(coin.Name, coin.First.altname.Value);
            }

            foreach (var pair in transactions.result)
            {
                if (!pair.Name.ToString().Contains(".d"))
                {
                    krakenTickerUrl = krakenTickerUrl + pair.Name + ",";
                }
            }
            krakenTickerUrl = krakenTickerUrl.Remove(krakenTickerUrl.LastIndexOf(','));


            dynamic ticker = JsonConvert.DeserializeObject(WebReq(krakenTickerUrl));

            //coin black list

            //doesn't need one, only reurn good currencies, currencies are highly vetted
            //no curent way to do this

            //transaction black list

            //none, only returns good pairs
            //no current way to do this directly. it can be implied that if a pair is not returned then it is not active


            //master transaction list
            //master coin list
            foreach (var trans in transactions.result)
            {
                if (!trans.Name.ToString().Contains(".d"))
                {
                    Transaction transactionBuilder = new Transaction();
                    Currency    currencyBuilder    = new Currency();

                    transactionBuilder.identifier      = trans.Name;
                    transactionBuilder.transactionType = Transaction.type.Trade;



                    currencyBuilder.symbol   = krakenCoinDict[[email protected]()];
                    currencyBuilder.exchange = exchange;
                    db.AddCurrencyToMasterList(currencyBuilder);
                    transactionBuilder.baseCurrency = currencyBuilder;

                    currencyBuilder          = new Currency();
                    currencyBuilder.symbol   = krakenCoinDict[trans.First.quote.ToString()];
                    currencyBuilder.exchange = exchange;
                    db.AddCurrencyToMasterList(currencyBuilder);
                    transactionBuilder.quoteCurrency = currencyBuilder;


                    //transactionBuilder.bid = decimal.Parse(ticker.result[trans.Name].b[0].Value.ToString(), System.Globalization.NumberStyles.Float);
                    //transactionBuilder.ask = decimal.Parse(ticker.result[trans.Name].a[0].Value.ToString(), System.Globalization.NumberStyles.Float);


                    db.AddTransactionToMasterlist(transactionBuilder);
                }
            }

            return(true);
        }