Ejemplo n.º 1
0
        /// <summary>
        ///     Function returning the portfolio of the user
        /// </summary>
        /// <returns>
        ///     A <see cref="Portfolio"/> object representing the portfolio of the user on Bittrex
        /// </returns>
        override public Portfolio GetFolio()
        {
            Portfolio   myFolio = new Portfolio();
            Balance     oneBalance;
            MainCryptos ccyBase;
            MainCryptos ccyPair;
            string      currency;

            IEnumerable <BittrexSharp.Domain.CurrencyBalance> one_balance = this.my_bittrex.GetBalances().Result.Result;

            this.my_balances.Clear();

            foreach (var row in one_balance)
            {
                if ((double)row.Available > 0)
                {
                    this.my_balances.Add(row.Currency, (double)row.Available);
                }
            }

            foreach (KeyValuePair <string, double> row in this.my_balances)
            {
                currency = row.Key;

                if (row.Value != 0.00)
                {
                    ccyBase    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                    ccyPair    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                    oneBalance = new Balance(ccyBase, ccyPair, row.Value);
                    myFolio.AddBalance(oneBalance);
                }
            }

            return(myFolio);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Function returning the portfolio of the user
        /// </summary>
        /// <returns>
        ///     A <see cref="Portfolio"/> object representing the portfolio of the user on CexIO
        /// </returns>
        override public Portfolio GetFolio()
        {
            Portfolio   myFolio = new Portfolio();
            Balance     oneBalance;
            MainCryptos ccyBase;
            MainCryptos ccyPair;
            string      queryJson;
            string      stringResponse;
            Dictionary <dynamic, dynamic> dicoResults = new Dictionary <dynamic, dynamic>();
            Price  BTCPrice = this.GetPrice(MainCryptos.BTC.ToString());
            double BTCSpot  = BTCPrice.price;
            string currency;

            this.endpoint = "balance/";
            this.nonce    = DateTimeOffset.Now.ToUnixTimeSeconds();
            this.bodyRequest.Clear();

            this.hexHash = this.getSignature(this.nonce);

            this.bodyRequest.Clear();

            this.bodyRequest.Add("key", this.apiKey);
            this.bodyRequest.Add("signature", this.hexHash);
            this.bodyRequest.Add("nonce", this.nonce.ToString());

            queryJson = Newtonsoft.Json.JsonConvert.SerializeObject(this.bodyRequest);

            this.httpRequest = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, this.api + this.endpoint);

            this.httpRequest.Content = new System.Net.Http.StringContent(queryJson, System.Text.Encoding.UTF8, "application/json");

            this.httpRequest.Content.Headers.Add("key", this.apiKey);
            this.httpRequest.Content.Headers.Add("signature", this.hexHash);
            this.httpRequest.Content.Headers.Add("nonce", this.nonce.ToString());

            this.httpResponse = this.httpClient.SendAsync(this.httpRequest).Result;
            stringResponse    = this.httpResponse.Content.ReadAsStringAsync().Result;

            this.responseRequest = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <dynamic, dynamic> >(stringResponse);

            foreach (KeyValuePair <dynamic, dynamic> row in this.responseRequest)
            {
                if (System.Linq.Enumerable.Contains(Enum.GetNames(typeof(MainCryptos)), row.Key))
                {
                    currency = row.Key.ToUpper();
                    Dictionary <dynamic, dynamic> dicoRow = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <dynamic, dynamic> >(row.Value.ToString());

                    if (Double.Parse(dicoRow["available"], System.Globalization.CultureInfo.InvariantCulture) != 0.00)
                    {
                        ccyBase    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                        ccyPair    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                        oneBalance = new Balance(ccyBase, ccyPair, Double.Parse(dicoRow["available"], System.Globalization.CultureInfo.InvariantCulture));
                        myFolio.AddBalance(oneBalance);
                    }
                }
            }

            return(myFolio);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Function returning the portfolio of the user
        /// </summary>
        /// <returns>
        ///     A <see cref="Portfolio"/> object representing the portfolio of the user on Bitfinex
        /// </returns>
        override public Portfolio GetFolio()
        {
            Portfolio   myFolio = new Portfolio();
            Balance     oneBalance;
            MainCryptos ccyBase;
            MainCryptos ccyPair;

            this.endpoint = "balances";
            string completeUrl = this.apiV1 + this.endpoint;

            this.nonce = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();

            this.request = new HttpRequestMessage(HttpMethod.Post, completeUrl);

            this.body.Clear();
            this.body.Add("request", "/v1/" + this.endpoint);
            this.body.Add("nonce", nonce.ToString());

            this.setRequestHeaders(this.body);

            this.response        = this.client.SendAsync(this.request).Result;
            this.jStringResponse = this.response.Content.ReadAsStringAsync().Result;

            try
            {
                this.listDico = JsonConvert.DeserializeObject <List <Dictionary <dynamic, dynamic> > >(this.jStringResponse);

                this.requestResponse.Clear();

                foreach (Dictionary <dynamic, dynamic> row in this.listDico)
                {
                    string currency = row["currency"].ToUpper();

                    if (Double.Parse(row["available"], System.Globalization.CultureInfo.InvariantCulture) != 0.00)
                    {
                        ccyBase    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                        ccyPair    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                        oneBalance = new Balance(ccyBase, ccyPair, Double.Parse(row["available"], System.Globalization.CultureInfo.InvariantCulture));
                        myFolio.AddBalance(oneBalance);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                this.requestResponse = new Dictionary <dynamic, dynamic>()
                {
                    { "ERROR", "ERROR" }
                };
            }

            return(myFolio);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Function returning the portfolio of the user
        /// </summary>
        /// <returns>
        ///     A <see cref="Portfolio"/> object representing the portfolio of the user on Coinbase
        /// </returns>
        override public Portfolio GetFolio()
        {
            Portfolio   myFolio = new Portfolio();
            Balance     oneBalance;
            MainCryptos ccyBase;
            MainCryptos ccyPair;
            string      currency;
            string      api      = "https://api.coinbase.com/v2/accounts";
            Price       BTCPrice = this.GetPrice(MainCryptos.BTC.ToString());
            double      BTCSpot  = BTCPrice.price;

            this.dicoResponse = new Dictionary <dynamic, dynamic>();
            Dictionary <dynamic, dynamic> dicoOneBalance = new Dictionary <dynamic, dynamic>();

            this.response = this.coinbase.SendRequest(api, "", RestSharp.Method.GET);

            try
            {
                this.requestResponse = JsonConvert.DeserializeObject <List <Dictionary <dynamic, dynamic> > >(this.response.Data.ToString());

                foreach (Dictionary <dynamic, dynamic> row in this.requestResponse)
                {
                    Dictionary <string, double> dico1Crypto = new Dictionary <string, double>();
                    currency       = row["currency"].ToUpper();
                    dicoOneBalance = JsonConvert.DeserializeObject <Dictionary <dynamic, dynamic> >(row["balance"].ToString());

                    if (Double.Parse(dicoOneBalance["amount"], System.Globalization.CultureInfo.InvariantCulture) != 0.00)
                    //if (Double.Parse(row["available"], System.Globalization.CultureInfo.InvariantCulture) != 0.00)
                    {
                        ccyBase    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                        ccyPair    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                        oneBalance = new Balance(ccyBase, ccyPair, Double.Parse(dicoOneBalance["amount"], System.Globalization.CultureInfo.InvariantCulture));
                        myFolio.AddBalance(oneBalance);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                dicoResponse = new Dictionary <dynamic, dynamic>()
                {
                    { "ERROR", "ERROR" }
                };
            }

            return(myFolio);
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Function returning the portfolio of the user
        /// </summary>
        /// <returns>
        ///     A <see cref="Portfolio"/> object representing the portfolio of the user on Binance
        /// </returns>
        override public Portfolio GetFolio()
        {
            Portfolio   myFolio = new Portfolio();
            Balance     oneBalance;
            MainCryptos ccyBase;
            MainCryptos ccyPair;

            string stringResponse = "";
            string currency;
            Dictionary <dynamic, dynamic> dicoPortfolio = new Dictionary <dynamic, dynamic>();

            this.endpoint = "api/v3/account";

            this.queryString = "";

            this.bodyRequest.Clear();

            this.bodyRequest.Add("recvWindow", 1000000.ToString());
            this.bodyRequest.Add("timestamp", (DateTimeOffset.Now.ToUnixTimeMilliseconds()).ToString());

            foreach (KeyValuePair <string, string> row in this.bodyRequest)
            {
                this.queryString += row.Key + "=" + row.Value + "&";
            }
            this.queryString = this.queryString.Substring(0, this.queryString.Length - 1);

            this.hexHash = Tools.byteToString(hasher.ComputeHash(System.Text.Encoding.UTF8.GetBytes(queryString))).ToLower();

            this.queryString += "&signature=" + this.hexHash;

            this.httpRequest = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, this.api + this.endpoint + "?" + this.queryString);

            this.httpRequest.Headers.Add("X-MBX-APIKEY", this.api_key);

            this.httpResponse = this.httpClient.SendAsync(this.httpRequest).Result;

            stringResponse = this.httpResponse.Content.ReadAsStringAsync().Result;

            this.responseRequest = JsonConvert.DeserializeObject <Dictionary <dynamic, dynamic> >(stringResponse);

            if (this.responseRequest.ContainsKey("balances"))
            {
                this.listDico = JsonConvert.DeserializeObject <List <Dictionary <dynamic, dynamic> > >(this.responseRequest["balances"].ToString());
            }
            else
            {
                this.listDico = new List <Dictionary <dynamic, dynamic> >();
            }

            foreach (Dictionary <dynamic, dynamic> row in this.listDico)
            {
                Dictionary <string, double> dico1Crypto = new Dictionary <string, double>();
                currency = row["asset"].ToUpper();

                if (Double.Parse(row["free"], System.Globalization.CultureInfo.InvariantCulture) != 0.00)
                {
                    ccyBase    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                    ccyPair    = (MainCryptos)Enum.Parse(typeof(MainCryptos), currency);
                    oneBalance = new Balance(ccyBase, ccyPair, Double.Parse(row["free"], System.Globalization.CultureInfo.InvariantCulture));
                    myFolio.AddBalance(oneBalance);
                }
            }

            return(myFolio);
        }