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); } } }
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); //} }
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(); } }
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); } } }