static void Main(string[] args) { EBinanceExchange exchange = new EBinanceExchange("EspHWtI5WbB3FVUoywxqpE9SkawJKQcrb3q2vu54b428uGdNdIyZlESi29DIBS4n", "BT5OJjq1IQuVmfp8yInJMfiy8aMBdFbRIHSQoB8QyRMucbBQmjWPdI1Plzdz54o3", "rqno1092", "caojia"); CommonLab.TradePair elfbtc = new CommonLab.TradePair("elf", "btc"); CommonLab.TradePair elfeth = new CommonLab.TradePair("elf", "eth"); CommonLab.TradePair ethbtc = new CommonLab.TradePair("eth", "btc"); exchange.Subscribe(elfbtc, CommonLab.SubscribeTypes.RESTAPI); exchange.Subscribe(elfeth, CommonLab.SubscribeTypes.RESTAPI); exchange.Subscribe(ethbtc, CommonLab.SubscribeTypes.RESTAPI); while (true) { string raw; CommonLab.Ticker elfbtcticker = exchange.GetTicker(exchange.GetLocalTradingPairString(elfbtc), out raw); CommonLab.Ticker elfethticker = exchange.GetTicker(exchange.GetLocalTradingPairString(elfeth), out raw); CommonLab.Ticker ethbtcticker = exchange.GetTicker(exchange.GetLocalTradingPairString(ethbtc), out raw); double elf = 1 / elfbtcticker.Sell; double eth = elfethticker.Buy * elf; double btc = eth * ethbtcticker.Sell; string s = $"1 btc change to elf {elf} changeto eth {eth} to btc={btc}"; Console.WriteLine(s); elf = 1 / elfbtcticker.Sell * 0.999; eth = elfethticker.Buy * elf * 0.999; btc = eth * ethbtcticker.Sell * 0.999; Console.BackgroundColor = ConsoleColor.Red; s = $"1 btc change to elf {elf} changeto eth {eth} to btc={btc}"; Console.WriteLine(s); Console.BackgroundColor = ConsoleColor.Black; System.Threading.Thread.Sleep(1000); } }
static private void CheckAccount() { foreach (KeyValuePair <string, IExchanges> e in Exchanges) { string raw; var a = new CommonLab.Account(); try { a = e.Value.GetAccount(out raw); } catch (Exception err) { Console.WriteLine(err.Message + " exchange:" + e.Key + " GetAccount faile"); } if (e.Value.Name == "Bitstamp") { CommonLab.Ticker btcusdticker = e.Value.GetTicker(e.Value.GetLocalTradingPairString(new CommonLab.TradePair("btc", "usd")), out raw); btcusdrate = btcusdticker.Buy; btccnyrate = btcusdrate * 6.5; } if (a != null) { foreach (KeyValuePair <string, CommonLab.Balance> item in a.Balances) { if (item.Value.balance > 0) { Console.WriteLine(e.Key + " has " + item.Key + " balance:" + item.Value.balance.ToString()); if (item.Key.ToLower() == "btc") { Console.WriteLine("raw btc waiting for exchange..."); rawbtc += item.Value.balance; } else { CommonLab.TradePair tp = new CommonLab.TradePair(item.Key, "btc"); try { CommonLab.Ticker t = e.Value.GetTicker(e.Value.GetLocalTradingPairString(tp), out raw); ebtc += item.Value.balance * t.Last; Console.WriteLine("ebtc equals:" + (item.Value.balance * t.Buy) + " btc"); } catch (Exception ee) { Console.WriteLine(ee.Message); } } } } } } Console.WriteLine("-------------------------------"); Console.WriteLine("rawbtc:" + rawbtc + " ebtc:" + ebtc); Console.WriteLine("total btc:" + (rawbtc + ebtc)); Console.WriteLine("equls cny:" + ((rawbtc + ebtc) * btccnyrate)); }
private void E_SubscribedEvent(object sender, CommonLab.SubscribeTypes st, CommonLab.TradePair tp) { if (comboBox1.InvokeRequired) { UpdateCombox uc = new UpdateCombox(UpdateComboxMethod); comboBox1.Invoke(uc); } else { UpdateComboxMethod(); } }
public TradingPairControl(CommonLab.TradePair _tp, Dictionary <string, IExchanges> exchanges) { Tp = _tp; Exchanges = exchanges; //SuspendLayout(); InitializeComponent(); _StartMilliseconds = DateTime.Now.TimeOfDay.TotalMilliseconds; //SetupChart(); //ResumeLayout(false); //chartControl1.ChartPanel.ChartContainers.Clear(); //_ChartControl.Dock = DockStyle.Fill; //AddChart(); SetupSeries(); chartControl1.Dock = DockStyle.Fill; chartControl1.ChartPanel.ChartContainers[0].Titles[0].Text = Tp.FromSymbol + "-" + Tp.ToSymbol; }
//static CommonLab.TradePair bch_btc = new CommonLab.TradePair("bch", "btc"); //static CommonLab.TradePair btc_usdt = new CommonLab.TradePair("btc", "usdt"); //static CommonLab.TradePair btc_usd = new CommonLab.TradePair("btc", "usd"); static void Main(string[] args) { Console.WriteLine(DateTime.Now.ToString() + " select tradingpair 1-ltc/btc 2-bch/btc 3-btc/usdt 4-eth/btc 5-qtum/btc"); string tp = Console.ReadLine(); switch (tp) { case "1": ltc_btc = new CommonLab.TradePair("ltc", "btc"); break; case "2": ltc_btc = new CommonLab.TradePair("bch", "btc"); break; case "3": ltc_btc = new CommonLab.TradePair("btc", "usdt"); break; case "4": ltc_btc = new CommonLab.TradePair("eth", "btc"); break; case "5": ltc_btc = new CommonLab.TradePair("qtum", "btc"); break; } Console.WriteLine(DateTime.Now.ToString() + " Start to collecting data! 1-ok 2-bitstamp 3-huobi 4-bianace"); input = Console.ReadLine(); if (input == "1") { exchangeokex.Subscribe(ltc_btc, CommonLab.SubscribeTypes.WSS); //exchangeokex.Subscribe(bch_btc, CommonLab.SubscribeTypes.WSS); //exchangeokex.Subscribe(btc_usdt, CommonLab.SubscribeTypes.WSS); exchangeokex.TickerEvent += Exchange_TickerEvent; Console.Title = exchangeokex.Name + ltc_btc.ToString(); } else if (input == "2") { exchangebitstamp.Subscribe(ltc_btc, CommonLab.SubscribeTypes.WSS); //exchangebitstamp.Subscribe(bch_btc, CommonLab.SubscribeTypes.WSS); //exchangebitstamp.Subscribe(btc_usd, CommonLab.SubscribeTypes.WSS); exchangebitstamp.TickerEvent += Exchange_TickerEvent; Console.Title = exchangebitstamp.Name + ltc_btc.ToString(); } else if (input == "3") { exchangehuobi.Subscribe(ltc_btc, CommonLab.SubscribeTypes.WSS); //exchangehuobi.Subscribe(bch_btc, CommonLab.SubscribeTypes.WSS); //exchangehuobi.Subscribe(btc_usdt, CommonLab.SubscribeTypes.WSS); exchangehuobi.TickerEvent += Exchange_TickerEvent; Console.Title = exchangehuobi.Name + ltc_btc.ToString(); } else if (input == "4") { exchangebianace.Subscribe(ltc_btc, CommonLab.SubscribeTypes.WSS); //exchangehuobi.Subscribe(bch_btc, CommonLab.SubscribeTypes.WSS); //exchangehuobi.Subscribe(btc_usdt, CommonLab.SubscribeTypes.WSS); exchangebianace.TickerEvent += Exchange_TickerEvent; Console.Title = exchangebianace.Name + ltc_btc.ToString(); } //KFCC.ExchangeInterface.IExchanges exchangebitstamp = new BitstampExchange("SkDFzpEwvEHyXl45Bvc0nlHXPeP3e1Wa", "hIW0CYUK1NvbZR73N5rPDO0yly4GgK3l", "rqno1092", "caojia"); //KFCC.ExchangeInterface.IExchanges exchangeokex = new KFCC.EOkCoin.OkCoinExchange("a8716cf5-8e3d-4037-9a78-6ad59a66d6c4", "CF44F1C9F3BB23B148523B797B862D4C", "", ""); //KFCC.EHuobiExchange.HuobiExchange exchangehuobi = new KFCC.EHuobiExchange.HuobiExchange("cbf0909f-7842f68b-8c0db43c-04172", "7e022c00-19e4e4a8-2b3ed1d9-312e0", "0", "caojia"); Cache.Add(exchangebitstamp.Name, new exchangecahe()); Cache.Add(exchangehuobi.Name, new exchangecahe()); Cache.Add(exchangeokex.Name, new exchangecahe()); //Cache[exchangebitstamp.Name].ecahe.Add(exchangebitstamp.GetLocalTradingPairString(ltc_btc),new datacahe()); //Cache[exchangebitstamp.Name].ecahe.Add(exchangebitstamp.GetLocalTradingPairString(bch_btc), new datacahe()); //Cache[exchangebitstamp.Name].ecahe.Add(exchangebitstamp.GetLocalTradingPairString(btc_usd), new datacahe()); // Cache[exchangeokex.Name].ecahe.Add(exchangeokex.GetLocalTradingPairString(ltc_btc), new datacahe()); //Cache[exchangeokex.Name].ecahe.Add(exchangeokex.GetLocalTradingPairString(bch_btc), new datacahe()); //Cache[exchangeokex.Name].ecahe.Add(exchangeokex.GetLocalTradingPairString(btc_usdt), new datacahe()); //Cache[exchangehuobi.Name].ecahe.Add(exchangehuobi.GetLocalTradingPairString(ltc_btc), new datacahe()); //Cache[exchangehuobi.Name].ecahe.Add(exchangehuobi.GetLocalTradingPairString(bch_btc), new datacahe()); //Cache[exchangehuobi.Name].ecahe.Add(exchangehuobi.GetLocalTradingPairString(btc_usdt), new datacahe()); Thread t = new Thread(export); t.IsBackground = true; t.Start(); while (Console.ReadLine() != "exit") { Console.WriteLine("type 'exit' to quit"); } }
private static void Exchange_TickerEvent(object sender, CommonLab.Ticker t, CommonLab.EventTypes et, CommonLab.TradePair tp) { Console.WriteLine(DateTime.Now.ToString() + " " + ((KFCC.ExchangeInterface.IExchanges)sender).Name + " tp:" + tp.ToString() + " tk:" + t.ToString()); }
private static void Exchange_TradeEvent(object sender, CommonLab.Trade t, CommonLab.EventTypes et, CommonLab.TradePair tp) { tradeCacheManage.Add(t); //Console.WriteLine("tradeCacheManage- Count:{0},AvgPrice{1}",tradeCacheManage.Trades.Count,tradeCacheManage.Avg()); }
private static void Exchange_TickerEvent(object sender, CommonLab.Ticker t, CommonLab.EventTypes et, CommonLab.TradePair tp) { Console.BackgroundColor = ConsoleColor.DarkBlue; if (t.Last > tradeCacheManage.Avg()) { Console.WriteLine("5mins Avg:{0},Last price:{1} BULL", tradeCacheManage.Avg(), t.Last); Bull = true; Bear = false; } else { Console.WriteLine("5mins Avg:{0},Last price:{1} BEAR", tradeCacheManage.Avg(), t.Last); Bull = false; Bear = true; } Console.BackgroundColor = ConsoleColor.Black; }
private static void Exchange_TickerEvent(object sender, CommonLab.Ticker t, CommonLab.EventTypes et, CommonLab.TradePair tp) { Console.BackgroundColor = ConsoleColor.DarkBlue; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(DateTime.Now.ToString() + " te:{0},{1}", t.ExchangeTimeStamp, t.ToString()); }
private static void Exchange_DepthEvent(object sender, CommonLab.Depth d, CommonLab.EventTypes et, CommonLab.TradePair tp) { Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(DateTime.Now.ToString() + " de:{0},{1}", d.ExchangeTimeStamp, d.ToString(5)); }
static void Main(string[] args) { //string rawresponse = CommonLab.Utility.GetHttpContent("http://sta.github.io/websocket-sharp/", "GET", "", null); CommonLab.TradePair tp = new CommonLab.TradePair("ltc", "btc"); string raw; //KFCC.ExchangeInterface.IExchanges exchange = new BitstampExchange("SkDFzpEwvEHyXl45Bvc0nlHXPeP3e1Wa", "hIW0CYUK1NvbZR73N5rPDO0yly4GgK3l", "rqno1092", "caojia"); //exchange.Subscribe(tp, CommonLab.SubscribeTypes.WSS); //exchange.TickerEvent += Exchange_TickerEvent; //exchange.DepthEvent += Exchange_DepthEvent; //exchange.GetAccount(out raw); //string r ; //CommonLab.Ticker t = exchange.GetTicker("btcusd",out r); //Console.WriteLine(r); //Thread.Sleep(1000); //CommonLab.Depth d = exchange.GetDepth("btcusd", out r); //Console.WriteLine(r); //测试获取ticker 获取depth #region 交易所Okex现货测试 //KFCC.ExchangeInterface.IExchanges exchange = new KFCC.EOkCoin.OkCoinExchange("a8716cf5-8e3d-4037-9a78-6ad59a66d6c4", "CF44F1C9F3BB23B148523B797B862D4C", "", ""); //exchange.Subscribe(tp, CommonLab.SubscribeTypes.WSS); //exchange.TradeEvent += Exchange_TradeEvent; ////CommonLab.Ticker t=exchange.GetTicker(exchange.GetLocalTradingPairString(tp),out raw); //exchange.TickerEvent += Exchange_TickerEvent; //exchange.DepthEvent += Exchange_DepthEvent; //CommonLab.Trade[] trades=exchange.GetTrades(exchange.GetLocalTradingPairString(tp), out raw, "54892004"); //foreach (CommonLab.Trade t in trades) //{ // Console.WriteLine(t.ToString()); //} //Console.WriteLine(trades.Length.ToString()); //Console.WriteLine(raw); //List<CommonLab.Order> orders = exchange.GetHisOrders(exchange.GetLocalTradingPairString(tp)); //orders = orders.Distinct(new CommonLab.List_Order_DistinctBy_OrderID()).ToList(); //DataTable dt = CommonLab.Utility.ToDataTable(orders); //CommonLab.CsvHelper.SaveCSV(dt, "orders.csv"); #endregion //测试获取账户信息 //Console.WriteLine(raw); //int orderid=exchange.Buy(exchange.GetLocalTradingPairString(tp), t.Sell * 0.9, 1); //Console.WriteLine("Order ID:" + orderid); //exchange.CancelOrder("41055418", exchange.GetLocalTradingPairString(tp), out raw); //Console.WriteLine(raw); //exchange.GetAccount(out raw); //Console.WriteLine(raw); #region 交易所huobi测试 //KFCC.EHuobiExchange.HuobiExchange exchange = new KFCC.EHuobiExchange.HuobiExchange("cbf0909f-7842f68b-8c0db43c-04172", "7e022c00-19e4e4a8-2b3ed1d9-312e0", "0", "caojia"); //exchange.Subscribe(tp, CommonLab.SubscribeTypes.WSS); //exchange.TickerEvent += Exchange_TickerEvent; //exchange.DepthEvent += Exchange_DepthEvent; //exchange.GetAccount(out raw); //Console.WriteLine(exchange.Account.ToString(true)); //CommonLab.Ticker t = exchange.GetTicker(exchange.GetLocalTradingPairString(tp), out raw); //Console.WriteLine(raw); //Console.WriteLine(exchange.GetOrders(exchange.GetLocalTradingPairString(tp))); //交易测试 //exchange.Buy(exchange.GetLocalTradingPairString(tp), t.Sell * 0.9, 0.001); //订单状态查询 // exchange.GetOrderStatus("209244267", exchange.GetLocalTradingPairString(tp),out raw); //exchange.CancelOrder("209244267", exchange.GetLocalTradingPairString(tp), out raw); //exchange.TickerEvent += Exchange_TickerEvent; //exchange.DepthEvent += Exchange_DepthEvent; //exchange.Subscribe(tp, CommonLab.SubscribeTypes.WSS); //CommonLab.Ticker t = exchange.GetTicker(exchange.GetLocalTradingPairString(tp), out raw); // Console.WriteLine(DateTime.Now.ToString() + " te:{0},{1}", t.ExchangeTimeStamp, t.ToString()); #endregion #region Bitstamp test //KFCC.ExchangeInterface.IExchanges exchange = new BitstampExchange("SkDFzpEwvEHyXl45Bvc0nlHXPeP3e1Wa", "hIW0CYUK1NvbZR73N5rPDO0yly4GgK3l", "rqno1092", "caojia"); //exchange.Subscribe(tp, CommonLab.SubscribeTypes.WSS); //exchange.TickerEvent += Exchange_TickerEvent; //exchange.DepthEvent += Exchange_DepthEvent; #endregion #region biance测试 // EspHWtI5WbB3FVUoywxqpE9SkawJKQcrb3q2vu54b428uGdNdIyZlESi29DIBS4n //Secret: //BT5OJjq1IQuVmfp8yInJMfiy8aMBdFbRIHSQoB8QyRMucbBQmjWPdI1Plzdz54o3 EBinanceExchange exchange = new KFCC.Exchanges.EBinance.EBinanceExchange("EspHWtI5WbB3FVUoywxqpE9SkawJKQcrb3q2vu54b428uGdNdIyZlESi29DIBS4n", "BT5OJjq1IQuVmfp8yInJMfiy8aMBdFbRIHSQoB8QyRMucbBQmjWPdI1Plzdz54o3", "rqno1092", "caojia"); exchange.proxy = new CommonLab.Proxy("127.0.0.1", 1080); exchange.Subscribe(tp, CommonLab.SubscribeTypes.WSS); //exchange.GetTicker(exchange.GetLocalTradingPairString(tp), out raw); exchange.TickerEvent += Exchange_TickerEvent; //exchange.DepthEvent += Exchange_DepthEvent; // exchange.TradeEvent += Exchange_TradeEvent; //CommonLab.Trade[] trades = exchange.GetTrades(exchange.GetLocalTradingPairString(tp), out raw); //CommonLab.Ticker t = exchange.GetTicker(exchange.GetLocalTradingPairString(tp), out raw); exchange.GetAccount(out raw); Console.Write(exchange.Account.ToString(true)); //int orderid = exchange.Sell(exchange.GetLocalTradingPairString(tp), t.Buy + 0.000015, 0.1); //exchange.GetAccount(out raw); // List<CommonLab.Order> orders = exchange.GetOrdersStatus(exchange.GetLocalTradingPairString(tp), out raw); //foreach (CommonLab.Order o in orders) //{ // if (o.Status == CommonLab.OrderStatus.ORDER_STATE_PENDING || 1 == 1) // { // exchange.CancelOrder(o.Id, exchange.GetLocalTradingPairString(tp), out raw); // } // } //CommonLab.Order order = exchange.GetOrderStatus("13081100", exchange.GetLocalTradingPairString(tp), out raw); //Console.WriteLine(raw); #endregion #region Quoine测试 //KFCC.EQuoine.EQuoineExchange exchange= new KFCC.EQuoine.EQuoineExchange("EspHWtI5WbB3FVUoywxqpE9SkawJKQcrb3q2vu54b428uGdNdIyZlESi29DIBS4n", "BT5OJjq1IQuVmfp8yInJMfiy8aMBdFbRIHSQoB8QyRMucbBQmjWPdI1Plzdz54o3", "rqno1092", "caojia"); ////// CommonLab.Ticker t = exchange.GetTicker(exchange.GetLocalTradingPairString(tp), out raw); //CommonLab.Depth d= exchange.GetDepth(exchange.GetLocalTradingPairString(tp), out raw); //Console.Write(d.ToString()); #endregion #region 交易所ZB测试 //KFCC.EZBExchange.ZBExchange exchange = new KFCC.EZBExchange.ZBExchange("16de7c10-2315-454d-b023-048058a6aed5", "1b3f8111-6dfe-4160-8eab-143986e04629", "rqno1092", "caojia"); //exchange.Subscribe(tp, CommonLab.SubscribeTypes.RESTAPI); //CommonLab.Ticker t = exchange.GetTicker(exchange.GetLocalTradingPairString(tp), out raw); //string id=exchange.Buy(exchange.GetLocalTradingPairString(tp), t.Sell * 0.9, 1); //CommonLab.Order o = exchange.GetOrderStatus(id, exchange.GetLocalTradingPairString(tp), out raw); //exchange.CancelOrder(id, exchange.GetLocalTradingPairString(tp), out raw); //exchange.CancelAllOrders(); //// CommonLab.Ticker t = exchange.GetTicker(exchange.GetLocalTradingPairString(tp), out raw); // CommonLab.Account a = exchange.GetAccount(out raw); //exchange.TickerEvent += Exchange_TickerEvent; //exchange.DepthEvent += Exchange_DepthEvent; //exchange.TradeEvent += Exchange_TradeEvent; //Console.WriteLine(a); //CommonLab.Trade[] trades = exchange.GetTrades(exchange.GetLocalTradingPairString(tp), out raw); #endregion #region 测试市场数据获取 KFCC.BackTest.Model.MarketData.TxtDataSource ts = new KFCC.BackTest.Model.MarketData.TxtDataSource(@"M:\CoinPor-Git\Src\CryptoCurrency\KFCC\Test\bin\Debug\raw", "Huobi", "ltcbtc", new DateTime(2017, 12, 18), new DateTime(2017, 12, 19)); ts.GetTickers(CommonLab.TickerType.m1); #endregion Console.ReadKey(); }
private void E_DepthEvent(object sender, CommonLab.Depth d, CommonLab.EventTypes et, CommonLab.TradePair tp) { string tradingpair = ""; if (comboBox1.InvokeRequired) { GetComboxText gt = new GetComboxText(GetCtext); tradingpair = comboBox1.Invoke(gt).ToString(); } if (exchange.GetLocalTradingPairString(tp, (CommonLab.SubscribeTypes)et) != tradingpair) { return; } if (dataGridView1.InvokeRequired) { UpdateDataGDV upd = new UpdateDataGDV(UpdateDgv); dataGridView1.Invoke(upd, new object[] { (object)d }); } else { UpdateDgv(d); } }
private void Exchange_TickerEvent(object sender, CommonLab.Ticker t, CommonLab.EventTypes et, CommonLab.TradePair tp) { StringBuilder sb = new StringBuilder(); sb.Append(DateTime.Now.ToString() + tp.FromSymbol + "/" + tp.ToSymbol + ": " + t.ToString()); if (textBox1.InvokeRequired) { UpdateConsole uc = new UpdateConsole(UpdateConsoleMthod); textBox1.Invoke(uc, new object[] { (object)Color.Red, (object)sb.ToString() }); } else { UpdateConsoleMthod(Color.Blue, sb.ToString()); } }
private void Exchange_DepthEvent(object sender, CommonLab.Depth d, CommonLab.EventTypes et, CommonLab.TradePair tp) { try { StringBuilder sb = new StringBuilder(); sb.Append(DateTime.Now.ToString() + ": " + d.ToString(5)); if (textBox1.InvokeRequired) { UpdateConsole uc = new UpdateConsole(UpdateConsoleMthod); textBox1.Invoke(uc, new object[] { (object)Color.Blue, (object)sb.ToString() }); } else { UpdateConsoleMthod(Color.Blue, sb.ToString()); } } catch { } }
private void Value_TickerEvent(object sender, CommonLab.Ticker t, CommonLab.EventTypes et, CommonLab.TradePair tp) { if (!this.Tp.Compare(tp)) { return; } double msecs = DateTime.Now.TimeOfDay.TotalMilliseconds - _StartMilliseconds; _TimeSeries[((IExchanges)sender).Name].SeriesPoints.Add(new SeriesPoint(msecs, t.Buy)); }
private void Value_DepthEvent(object sender, CommonLab.Depth d, CommonLab.EventTypes et, CommonLab.TradePair tp) { if (!this.Tp.Compare(tp)) { return; } double msecs = (DateTime.Now.TimeOfDay.TotalMilliseconds - _StartMilliseconds) / 1000; try { _TimeSeries[((IExchanges)sender).Name].SeriesPoints.Add(new SeriesPoint(msecs, d.Asks[0].Price)); if (_ChartXy != null && msecs > 1000) { _ChartXy.AxisX.MinValue = msecs - 1000; } } catch { } }