static void Main(string[] args)
        {
            // The pair we will work on
            string pair = "XXBTZEUR";

            SendingRateManager SRM = new SendingRateManager();
             KrakenClient.KrakenClient client = new KrakenClient.KrakenClient();

             //string result = client.CancelOrder("O3V2NP-DTB7Z-EEKGIC").ToString();
             //Console.WriteLine(result);
             //Console.ReadKey();

             KrakenService.Recorder rec1 = new KrakenService.Recorder(pair,SRM);
             KrakenService.Analysier ana1 = new KrakenService.Analysier(rec1);
             KrakenService.Player play1 = new Player(ana1, rec1.Pair,SRM);

            int i = 0;
            while(i < 40)
            {

                Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                HTMLUpdate("DateTime", unixTimestamp.ToString());
                HTMLUpdate("LastPrice", ana1.LastPrice.ToString());
                HTMLUpdate("LastMiddleQuote", ana1.LastMiddleQuote.ToString());
                HTMLUpdate("LastLowerAsk", ana1.LastLowerAsk.ToString());
                HTMLUpdate("LastHigherBid", ana1.LastHigherBid.ToString());

                Thread.Sleep(1000);
                Console.WriteLine("--------------------------------------");
                Console.WriteLine("Last Middle Quote:" + ana1.LastMiddleQuote);
                Console.WriteLine("Last Trade price:" + ana1.LastPrice);
                Console.WriteLine("Opened order exist : " + ana1.OpenedOrdersExist());
                Console.WriteLine("Average : " + ana1.WeightedAverage);
                Console.WriteLine("Ecart Type : " + ana1.WeightedStandardDeviation);
                Console.WriteLine("BTC : " + rec1.CurrentBalance.BTC + "; EURO : " + rec1.CurrentBalance.EUR);
                Console.WriteLine("Sell or buy :" + ana1.SellorBuy().ToString() + " ; Potential Earning: " + ana1.PotentialPercentageOfEarning + " ; minimal earning required: " + ana1.MinimalPercentageOfEarning);
                i++;
            }
            Console.WriteLine("--------------------------------------");
            Console.ReadKey();

            while(true)
            {
                Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                HTMLUpdate("DateTime", unixTimestamp.ToString());

                play1.Play();
                Console.WriteLine("--------------------------------------");
                Console.WriteLine("Player Status :" + play1.playerState);
                Console.WriteLine("Last Middle Quote:" + ana1.LastMiddleQuote);
                Console.WriteLine("Last Trade price:" + ana1.LastPrice);
                Console.WriteLine("Opened order exist : " + ana1.OpenedOrdersExist());
                Console.WriteLine("Average : " + ana1.WeightedAverage);
                Console.WriteLine("Ecart Type : " + ana1.WeightedStandardDeviation);
                Console.WriteLine("BTC : " + rec1.CurrentBalance.BTC + "; EURO : " + rec1.CurrentBalance.EUR);
                Console.WriteLine("Sell or buy :" + ana1.SellorBuy().ToString() + " ; Potential Earning: " + ana1.PotentialPercentageOfEarning + " ; minimal earning required: " + ana1.MinimalPercentageOfEarning);
                Thread.Sleep(1000);
            }
        }
        public Player(Analysier i_analysier, string i_pair, SendingRateManager srm)
        {
            NumberProvider = new NumberFormatInfo();
            NumberProvider.CurrencyDecimalSeparator = ".";
            SRM = srm;

            analysier = i_analysier;
            client = new KrakenClient.KrakenClient();
            MyOpenedOrders = analysier.MyOpenedOrders;
            playerState = PlayerState.Pending;
        }
Exemple #3
0
        public Broker()
        {
            client = new KrakenClient.KrakenClient();
            //var balance = client.GetBalance();
            //var parsed = JObject.Parse(balance.ToString());
            //foreach (var pair in parsed)
            //{
            //    Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
            //}

            var pairs  = new List <string>(new string[] { "BCHEUR" });
            var ticker = client.GetTicker(pairs);
        }
        public Recorder(string i_pair, SendingRateManager srm)
        {
            NumberProvider = new NumberFormatInfo();
            NumberProvider.CurrencyDecimalSeparator = ".";

            SRM = srm;
            CurrentBalance = new Balance();
            client = new KrakenClient.KrakenClient();
            ListOftradingDatas = new List<TradingData>();
            ListOfCurrentOrder = new List<CurrentOrder>();
            ListOfOHLCData = new List<OHLCData>();
            Pair = i_pair;
            IntervalInSecond = Convert.ToDouble(ConfigurationManager.AppSettings["IntervalStoredInMemoryInSecond"]); // it is to keep the data in memory from X (inetrval) to now.
            OrderBookCount = Convert.ToInt16(ConfigurationManager.AppSettings["OrderBookCount"]);
            OpenedOrders = new List<CurrentOrder>();

            // Start recording
            GetOpenOrders();
            RecordBalance();
            Task.Run(() => RecordRecentTradeData());
            Task.Run(() => RecordOrderBook());
            Task.Run(() => RecordOHLCData());
        }
Exemple #5
0
 public Broker()
 {
     client = new KrakenClient.KrakenClient();
 }
        private void GetData()
        {
            WebClient webClient = new WebClient();

            webClient.Headers.Add("user-agent", "Only a test!");
            BusLayer.Currency currencyHelper = new BusLayer.Currency();

            KrakenClient.KrakenClient client = new KrakenClient.KrakenClient();

            DataLayer.MstCurrencyList.MstCurrencyListDataTable currentLisTbl = currencyHelper.GetCurrentListRows();

            DataLayer.PrmCurrency.PrmCurrencyDataTable currencyTable = currencyHelper.GetCurrencyRows();

            try
            {
                foreach (DataLayer.MstCurrencyList.MstCurrencyListRow listRow in currentLisTbl)
                {
                    string currencyCode = listRow.Code;

                    if (currencyCode == "BTC")
                    {
                        currencyCode = "XBT";
                    }

                    foreach (DataLayer.PrmCurrency.PrmCurrencyRow currencyRow in currencyTable)
                    {
                        try
                        {
                            string newcurrencyCode = currencyCode + currencyRow.Currency;

                            Jayrock.Json.JsonObject js5on = client.GetTicker(new List <string> {
                                newcurrencyCode
                            });

                            string innerRes = string.Empty;
                            if (newcurrencyCode == "XBTUSD")
                            {
                                innerRes = "XXBTZUSD";
                            }
                            else if (newcurrencyCode == "XBTEUR")
                            {
                                innerRes = "XXBTZEUR";
                            }
                            else if (newcurrencyCode == "ETHUSD")
                            {
                                innerRes = "XETHZUSD";
                            }
                            else if (newcurrencyCode == "ETHEUR")
                            {
                                innerRes = "XETHZEUR";
                            }
                            else if (newcurrencyCode == "XRPUSD")
                            {
                                innerRes = "XXRPZUSD";
                            }
                            else if (newcurrencyCode == "XRPEUR")
                            {
                                innerRes = "XXRPZEUR";
                            }
                            else if (newcurrencyCode == "LTCUSD")
                            {
                                innerRes = "XLTCZUSD";
                            }
                            else if (newcurrencyCode == "LTCEUR")
                            {
                                innerRes = "XLTCZEUR";
                            }
                            else if (newcurrencyCode == "ZECUSD")
                            {
                                innerRes = "XZECZUSD";
                            }
                            else if (newcurrencyCode == "ZECEUR")
                            {
                                innerRes = "XZECZEUR";
                            }
                            else if (newcurrencyCode == "DASHUSD")
                            {
                                innerRes = "DASHUSD";
                            }
                            else if (newcurrencyCode == "DASHEUR")
                            {
                                innerRes = "DASHEUR";
                            }



                            if (innerRes != string.Empty)
                            {
                                Dictionary <string, object> values = JsonConvert.DeserializeObject <Dictionary <string, object> >(js5on["result"].ToString());

                                Dictionary <string, object> Innervalues = JsonConvert.DeserializeObject <Dictionary <string, object> >(values[innerRes].ToString());

                                //create the new row
                                DataLayer.TrnKrakenValue.TrnKrakenValueDataTable newTbl = new DataLayer.TrnKrakenValue.TrnKrakenValueDataTable();
                                DataLayer.TrnKrakenValue.TrnKrakenValueRow       newRow = newTbl.NewTrnKrakenValueRow();

                                newRow.TrnKrakenValueGuid  = Guid.NewGuid();
                                newRow.MstCurrencyListGuid = listRow.MstCurrencyListGuid;
                                newRow.Ask                 = decimal.Parse(JsonConvert.DeserializeObject <List <string> >(Innervalues["a"].ToString())[0], new CultureInfo("en-US"));
                                newRow.Bid                 = decimal.Parse(JsonConvert.DeserializeObject <List <string> >(Innervalues["b"].ToString())[0], new CultureInfo("en-US"));
                                newRow.CreateDate          = DateTime.Now;
                                newRow.PrmCurrencyId       = currencyRow.PrmCurrencyId;
                                newRow.PrmCurrencySourceId = 3;


                                newTbl.AddTrnKrakenValueRow(newRow);
                                currencyHelper.UpdateCurrencyValue(newRow);
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

            //kraken is ask

            /*
             * XBTEUR
             * XBTUSD
             *
             * ETHEUR
             * ETHUSD
             *
             * XRPEUR
             * XRPUSD
             *
             *
             * LTC
             * ZEC
             * DASH
             *
             * <pair_name> = pair name
             * a = ask array(<price>, <whole lot volume>, <lot volume>),
             * b = bid array(<price>, <whole lot volume>, <lot volume>),
             * c = last trade closed array(<price>, <lot volume>),
             * v = volume array(<today>, <last 24 hours>),
             * p = volume weighted average price array(<today>, <last 24 hours>),
             * t = number of trades array(<today>, <last 24 hours>),
             * l = low array(<today>, <last 24 hours>),
             * h = high array(<today>, <last 24 hours>),
             * o = today's opening price
             *
             *
             *
             *
             *
             *
             * bitstamp
             * https://www.bitstamp.net/api/
             *
             * btcusd, btceur,
             * ethusd, etheur,
             * xrpusd, xrpeur
             *
             *
             * {"high": "1.74000",
             * "last": "1.68754",
             * "timestamp": "1516295176" ,  to use
             * "bid": "1.68001",  to use
             * "vwap": "1.33150",
             * "volume": "164572084.34820374",
             * "low": "0.94344",
             *      "ask": "1.68749",  to use
             * "open": "1.29849"}
             *
             */
        }