public void GetData()
        {
            // Initialize the Chrome Driver
            driver = new ChromeDriver();



            // Go to the home page
            driver.Navigate().GoToUrl("https://www.quadrigacx.com/trade");
            while (true)
            {
                try
                {
                    //sleep for a second
                    System.Threading.Thread.Sleep(50);

                    //get the tables off the page
                    var table = driver.FindElementsByClassName("table");

                    //buy orders
                    //only get the top buy order
                    var allRows2 = table[0].FindElement(By.TagName("tbody"));
                    var allRows  = allRows2.FindElements(By.TagName("tr"));
                    var cell     = allRows[0].FindElements(By.XPath("./*"));

                    //store value on first run
                    if (TopBuyValue == "")
                    {
                        TopBuyPrice  = cell[0].Text.Replace("CAD", "").Replace(",", "").Replace("$", "");
                        TopBuyAmount = cell[1].Text.Substring(0, cell[1].Text.Length - 3);
                        TopBuyValue  = cell[2].Text;
                        //create object
                        Console.WriteLine("quad buy " + cell[0].Text + " " + cell[1].Text + " " + cell[2].Text);
                        Order newBid = Space.CreateObject <Order>();

                        newBid.Amount    = Convert.ToDecimal(TopBuyAmount);
                        newBid.Price     = Convert.ToDecimal(TopBuyPrice);
                        newBid.OrderType = OrderTypeBuy;
                        CurrentExchange.CurrentOrder.Add(newBid);
                        Space.CommitChanges();
                    }

                    //nully pulled values
                    string price  = cell[0].Text.Replace("CAD", "").Replace(",", "").Replace("$", "");
                    string amount = cell[1].Text.Substring(0, cell[1].Text.Length - 3);
                    string value  = cell[2].Text;

                    if (TopBuyPrice != price || TopBuyAmount != amount || TopBuyValue != value)
                    {
                        TopBuyPrice  = cell[0].Text.Replace("CAD", "").Replace(",", "").Replace("$", "");
                        TopBuyAmount = cell[1].Text.Substring(0, cell[1].Text.Length - 3);
                        TopBuyValue  = cell[2].Text;

                        //create object
                        Console.WriteLine("quad buy " + cell[0].Text + " " + cell[1].Text + " " + cell[2].Text);
                        Order newBid = Space.CreateObject <Order>();

                        newBid.Amount    = Convert.ToDecimal(TopBuyAmount);
                        newBid.Price     = Convert.ToDecimal(TopBuyPrice);
                        newBid.OrderType = OrderTypeBuy;
                        CurrentExchange.CurrentOrder.Add(newBid);
                        Space.CommitChanges();
                        ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "Bitfinex", "quadrigacx.com", Space);
                    }

                    //Sell orders
                    //only get the top sell order

                    var allSellRows2 = table[1].FindElement(By.TagName("tbody"));
                    var allSellRows  = allSellRows2.FindElements(By.TagName("tr"));
                    var sellCell     = allSellRows[0].FindElements(By.XPath("./*"));

                    //store value on first run
                    if (TopSellValue == "")
                    {
                        TopSellPrice  = sellCell[0].Text.Replace("CAD", "").Replace(",", "").Replace("$", "");
                        TopSellAmount = sellCell[1].Text.Substring(0, sellCell[1].Text.Length - 3);
                        TopSellValue  = sellCell[2].Text;

                        Console.WriteLine("quad sell " + sellCell[0].Text + " " + sellCell[1].Text + " " + sellCell[2].Text);

                        Order newSell = Space.CreateObject <Order>();
                        newSell.OrderType = OrderTypeSell;
                        newSell.Amount    = Convert.ToDecimal(TopSellAmount);
                        newSell.Price     = Convert.ToDecimal(TopSellPrice);

                        CurrentExchange.CurrentOrder.Add(newSell);

                        Space.CommitChanges();
                    }

                    //nully pulled values
                    string sellPrice  = sellCell[0].Text.Replace("CAD", "").Replace(",", "").Replace("$", "");
                    string sellAmount = sellCell[1].Text.Substring(0, sellCell[1].Text.Length - 3);
                    string sellValue  = sellCell[2].Text;

                    if (TopSellPrice != sellPrice || TopSellAmount != sellAmount || TopSellValue != sellValue)
                    {
                        TopSellPrice  = sellCell[0].Text.Replace("CAD", "").Replace(",", "").Replace("$", "");
                        TopSellAmount = sellCell[1].Text.Substring(0, sellCell[1].Text.Length - 3);
                        TopSellValue  = sellCell[2].Text;

                        //create object
                        Console.WriteLine("quad sell " + sellCell[0].Text + " " + sellCell[1].Text + " " + sellCell[2].Text);

                        Order newSell = Space.CreateObject <Order>();
                        newSell.OrderType = OrderTypeSell;
                        newSell.Amount    = Convert.ToDecimal(TopSellAmount);
                        newSell.Price     = Convert.ToDecimal(TopSellPrice);

                        CurrentExchange.CurrentOrder.Add(newSell);

                        Space.CommitChanges();
                        ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "quadrigacx.com", "Bitfinex", Space);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("quad error");
                    Console.WriteLine(ex.Message);
                }
            }
        }
Beispiel #2
0
        public void GetData()
        {
            // Initialize the Chrome Driver
            driver = new ChromeDriver();

            // Go to the home page
            driver.Navigate().GoToUrl("https://www.bitfinex.com");
            //find login button
            var loginButton = driver.FindElementById("login-button");

            loginButton.Click();
            System.Threading.Thread.Sleep(1000);
            //find username and pw
            //userPasswordField
            //login
            var userNameField     = driver.FindElementById("login");
            var userPasswordField = driver.FindElementById("auth-password");

            //send login values
            userNameField.SendKeys("");
            userPasswordField.SendKeys("");

            //click button
            var loginbtn = driver.FindElementByName("action");

            loginbtn.Click();
            System.Threading.Thread.Sleep(1000);
            //   driver.Navigate().GoToUrl("https://www.bitfinex.com/trading");

            // btn btn-green
            //sleep for a second
            //     System.Threading.Thread.Sleep(30000);

            //userPasswordField

            while (true)
            {
                //try
                // {


                System.Threading.Thread.Sleep(70);

                //get the tables off the page
                var table = driver.FindElementsByClassName("compact");

                if (table != null && table.Count == 11)
                {
                    //buy orders
                    //only get the top buy order
                    var allRows2 = table[8].FindElement(By.TagName("tbody"));
                    var allRows  = allRows2.FindElements(By.TagName("tr"));
                    var cell     = allRows[0].FindElements(By.XPath("./*"));

                    //store value on first run
                    if (TopBuyValue == "")
                    {
                        string temp = cell[0].Text.Replace("\r\n", "|");
                        TopBuyPrice  = temp.Split('|')[1];
                        TopBuyAmount = temp.Split('|')[3];
                        TopBuyValue  = (Convert.ToDecimal(TopBuyPrice) * Convert.ToDecimal(TopBuyAmount)).ToString();

                        Order newBid = Space.CreateObject <Order>();

                        newBid.Amount    = Convert.ToDecimal(TopBuyAmount);
                        newBid.Price     = Convert.ToDecimal(TopBuyPrice);
                        newBid.OrderType = OrderTypeBuy;
                        CurrentExchange.CurrentOrder.Add(newBid);
                        Space.CommitChanges();
                        //Console.WriteLine("bitfinex buy " + price + " " + amount + " " + value);
                        //   ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "quadrigacx.com", "Bitfinex", Space);
                    }
                    string temp2 = cell[0].Text.Replace("\r\n", "|");
                    //nully pulled values
                    string price  = temp2.Split('|')[1];
                    string amount = temp2.Split('|')[3];
                    string value  = (Convert.ToDecimal(price) * Convert.ToDecimal(amount)).ToString();

                    if (TopBuyPrice != price || TopBuyAmount != amount || TopBuyValue != value && amount != "0" && value != "0" && amount != "" && value != "")
                    {
                        TopBuyPrice  = price;
                        TopBuyAmount = amount;
                        TopBuyValue  = value;

                        //create object

                        Order newBid = Space.CreateObject <Order>();

                        newBid.Amount    = Convert.ToDecimal(TopBuyAmount);
                        newBid.Price     = Convert.ToDecimal(TopBuyPrice);
                        newBid.OrderType = OrderTypeBuy;
                        CurrentExchange.CurrentOrder.Add(newBid);
                        Space.CommitChanges();
                        Console.WriteLine("bitfinex buy " + price + " " + amount + " " + value);
                        ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "quadrigacx.com", "Bitfinex", Space);
                    }

                    //Sell orders
                    //only get the top sell order

                    var allSellRows2 = table[9].FindElement(By.TagName("tbody"));
                    var allSellRows  = allSellRows2.FindElements(By.TagName("tr"));
                    var sellCell     = allSellRows[0].FindElements(By.XPath("./*"));

                    //store value on first run
                    if (TopSellValue == "")
                    {
                        string temp3 = sellCell[0].Text.Replace("\r\n", "|");
                        TopSellPrice  = temp3.Split('|')[1];
                        TopSellAmount = temp3.Split('|')[2];
                        TopSellValue  = (Convert.ToDecimal(TopBuyPrice) * Convert.ToDecimal(TopBuyAmount)).ToString();

                        Order newSell = Space.CreateObject <Order>();
                        newSell.OrderType = OrderTypeSell;
                        newSell.Amount    = Convert.ToDecimal(TopSellAmount);
                        newSell.Price     = Convert.ToDecimal(TopSellPrice);

                        CurrentExchange.CurrentOrder.Add(newSell);

                        Space.CommitChanges();
                        //create object
                        //    Console.WriteLine("bitfinex sell " + sellPrice + " " + sellAmount + " " + sellValue);
                    }

                    //nully pulled values
                    string temp4      = sellCell[0].Text.Replace("\r\n", "|");
                    string sellPrice  = temp4.Split('|')[2];
                    string sellAmount = temp4.Split('|')[1];
                    string sellValue  = (Convert.ToDecimal(sellPrice) * Convert.ToDecimal(sellAmount)).ToString();

                    if (TopSellPrice != sellPrice || TopSellAmount != sellAmount || TopSellValue != sellValue && sellAmount != "0" && sellValue != "0" && sellAmount != "" && sellValue != "")
                    {
                        TopSellPrice  = sellPrice;
                        TopSellAmount = sellAmount;
                        TopSellValue  = sellValue;


                        Order newSell = Space.CreateObject <Order>();
                        newSell.OrderType = OrderTypeSell;
                        newSell.Amount    = Convert.ToDecimal(TopSellAmount);
                        newSell.Price     = Convert.ToDecimal(TopSellPrice);

                        CurrentExchange.CurrentOrder.Add(newSell);

                        Space.CommitChanges();
                        //create object
                        Console.WriteLine("bitfinex sell " + sellPrice + " " + sellAmount + " " + sellValue);

                        ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "Bitfinex", "quadrigacx.com", Space);

                        if (testtrade)
                        {
                        }
                    }
                }
            }
            //}
            //catch (Exception ex )
            //{
            //    Console.WriteLine("bitfinxe error");
            //    Console.WriteLine(ex.Message);
            //}
        }
Beispiel #3
0
        public static void GetData(IObjectSpace Space)
        {
            Exchange  CurrentExchange = Space.FindObject <Exchange>(new BinaryOperator("Name", "Bitfinex"));
            OrderType OrderTypeSell   = Space.FindObject <OrderType>(new BinaryOperator("Name", "Sell"));
            OrderType OrderTypeBuy    = Space.FindObject <OrderType>(new BinaryOperator("Name", "Buy"));
            float     currentAsk      = 0;
            float     currentBid      = 0;

            var doneEvent = new AutoResetEvent(false);


            using (var ws = new WebSocketSharp.WebSocket("wss://api.bitfinex.com/ws/"))
            {
                string message = "{\"event\":\"ping\"}";

                string getUSDOrderBookRAW = "{\"event\":\"subscribe\",\"channel\":\"book\",\"pair\":\"BTCUSD\",\"prec\":\"R0\"}";

                string getusdorderbook = "{\"event\":\"subscribe\",\"channel\":\"book\",\"pair\":\"BTCUSD\",\"prec\":\"P0\",\"freq\":\"F0\",\"count\":1}";



                ws.OnMessage += (sender, e) =>
                {
                    try
                    {
                        //   Console.WriteLine("drag0n says: " + e.Data);
                        dynamic queryData = JsonConvert.DeserializeObject(e.Data);
                        float   price     = queryData[1];
                        float   amount    = queryData[3];


                        if (amount > 0)
                        {
                            //new bid order added

                            // currentBid = price;
                            //         Console.WriteLine("Bid " + price + "  " + amount);

                            Order newSell = Space.CreateObject <Order>();
                            newSell.OrderType = OrderTypeBuy;
                            newSell.Amount    = Convert.ToDecimal(amount);
                            newSell.Price     = Convert.ToDecimal(price);

                            CurrentExchange.CurrentOrder.Add(newSell);
                            Space.CommitChanges();
                            //   CreateArbTrade((decimal)0.5, "BitStamp", "quadrigacx.com", Space);
                            ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "quadrigacx.com", "Bitfinex", Space);
                        }
                        else if (amount < 0)
                        {
                            //new ask order added

                            //    Console.WriteLine("Ask " + price + "  " + amount);
                            Order newSell = Space.CreateObject <Order>();
                            newSell.OrderType = OrderTypeSell;
                            newSell.Amount    = Convert.ToDecimal(amount * -1);
                            newSell.Price     = Convert.ToDecimal(price);

                            CurrentExchange.CurrentOrder.Add(newSell);
                            Space.CommitChanges();
                            ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "Bitfinex", "quadrigacx.com", Space);

                            // CreateArbTrade((decimal)0.5, "BitStamp", "quadrigacx.com", Space);
                            //   Console.WriteLine("Ask " + price + "  " + amount);
                        }
                    }
                    catch (Exception ex)
                    {
                        //  Console.WriteLine(ex.Message);
                    }
                };

                ws.Connect();

                ws.Send(getusdorderbook);
                //  Console.Read();
                doneEvent.WaitOne();
            }
        }
Beispiel #4
0
        public void GetData()
        {
            // Initialize the Chrome Driver
            driver = new ChromeDriver();

            // Go to the home page
            driver.Navigate().GoToUrl("https://www.bitstamp.net/market/tradeview/");

            while (true)
            {
                try
                {
                    System.Threading.Thread.Sleep(50);

                    var table = driver.FindElementsByClassName("order-book");

                    //buy orders
                    //only get the top buy order

                    var allRows2 = table[1].FindElement(By.TagName("tbody"));

                    var allRows = allRows2.FindElements(By.TagName("tr"));

                    var cell = allRows[0].FindElements(By.XPath("./*"));

                    //store value on first run
                    if (TopBuyValue == "")
                    {
                        TopBuyPrice  = cell[4].Text;
                        TopBuyAmount = cell[3].Text;
                        TopBuyValue  = cell[2].Text;
                    }

                    //nully pulled values
                    string price  = cell[4].Text;
                    string amount = cell[3].Text;
                    string value  = cell[2].Text;

                    if (TopBuyPrice != price || TopBuyAmount != amount || TopBuyValue != value)
                    {
                        TopBuyPrice  = cell[4].Text;
                        TopBuyAmount = cell[3].Text;
                        TopBuyValue  = cell[2].Text;
                        Console.WriteLine("bitstamp sell " + TopBuyPrice + " " + TopBuyAmount + " " + TopBuyValue);

                        Order newBuy = Space.CreateObject <Order>();
                        newBuy.OrderType = OrderTypeBuy;
                        newBuy.Amount    = Convert.ToDecimal(TopBuyAmount);
                        newBuy.Price     = Convert.ToDecimal(TopBuyPrice);

                        CurrentExchange.CurrentOrder.Add(newBuy);
                        ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "quadrigacx.com", "BitStamp", Space);
                        Space.CommitChanges();
                    }

                    //Sell order

                    var sellallRows2 = table[2].FindElement(By.TagName("tbody"));

                    var sellallRows = sellallRows2.FindElements(By.TagName("tr"));

                    var sellcell = sellallRows[0].FindElements(By.XPath("./*"));

                    //store value on first run
                    if (TopSellValue == "")
                    {
                        TopSellPrice  = sellcell[0].Text;
                        TopSellAmount = sellcell[1].Text;
                        TopSellValue  = sellcell[2].Text;
                    }

                    //nully pulled values
                    string sellprice  = sellcell[0].Text;
                    string sellamount = sellcell[1].Text;
                    string sellvalue  = sellcell[2].Text;

                    if (TopSellPrice != sellprice || TopSellAmount != sellamount || TopSellValue != sellvalue)
                    {
                        TopSellPrice  = sellprice;
                        TopSellAmount = sellamount;
                        TopSellValue  = sellvalue;
                        Console.WriteLine("bitstamp sell " + TopSellPrice + " " + TopSellAmount + " " + TopSellValue);

                        Order newSell = Space.CreateObject <Order>();
                        newSell.OrderType = OrderTypeSell;
                        newSell.Amount    = Convert.ToDecimal(TopSellAmount);
                        newSell.Price     = Convert.ToDecimal(TopSellPrice);

                        CurrentExchange.CurrentOrder.Add(newSell);
                        Space.CommitChanges();
                        ArbitrageTradeHelper.CreateArbTrade((decimal)0.5, "BitStamp", "quadrigacx.com", Space);
                        //  BitStamp quadrigacx.com
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }