public void listBoxTicker_SelectedIndexChanged_UIResultHandler(RequestItemGroup resultResponse) { if (Helper.IsResultHasErrors(resultResponse)) { return; } Dictionary <int, PriceCandle> priceHistory = (Dictionary <int, PriceCandle>)resultResponse.items[0].result.resultData; chart = new PriceChart(ticker, Graphics.FromHwnd(panelChart.Handle), 0, 0, panelChart.Width, panelChart.Height); chart.SetData(priceHistory, ConvertDataType.BAR_5, ConvertDataType.BAR_15); chart.ReDrawFull(); Text = "Chart " + market.MarketName() + " " + ticker; timerLastPrice.Start(); }
// private AppTimer timerAlerts; // Dictionary<string, TradePair> tradePairs; public Form1() { InitializeComponent(); // ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls12; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; labelInfo.Text = "Please wait..Loading"; Helper.Init(); Global.uiScheduler = TaskScheduler.FromCurrentSynchronizationContext(); AppSettingsManager.LoadSettings(); Global.markets.Init(); Global.marketsState.Init(); StatusBar.Init(statusLabelDate, statusLabelMain); toolStripComboBoxMarket.Items.Clear(); foreach (var market in Global.markets.GetMarketList()) { toolStripComboBoxMarket.Items.Add(market.ToString()); } RequestConsumer.requestManager.Create(Global.markets.GetMarketList()); RequestConsumer.CreateRequestThreads(Global.markets.GetMarketList()); timerMarkets = new AppTimer(26000, TimerMarkets_Tick, this); timerCheckAlerts = new AppTimer(5000, TimerCheckAlerts_Tick, this); timerCheckAlerts.Start(); toolStripComboBoxMarket.SelectedIndex = 0; }
public FormAlertMain(Market market_) { InitializeComponent(); market = market_; timerUpdateAlerts = new AppTimer(5000, timerUpdateAlerts_Tick, this); ShowAlertList(); timerUpdateAlerts.Start(); }
public void GetMarketCurrent_UIResultHandler(RequestItemGroup resultResponse) { if (RequestManager.IsResultHasErrors(resultResponse)) { return; } Dictionary <string, MarketCurrent> currenciesDict = (Dictionary <string, MarketCurrent>)resultResponse.items[0].result.resultData; // Dictionary<string, TradePair> pairs = (Dictionary<string, TradePair>)resultResponse.items[0].result.resultData; if (!marketsLoaded) { if (Global.marketsState.curMarketPairs[resultResponse.market] == null) { Dictionary <string, TradePair> tradePairs = new Dictionary <string, TradePair>(); foreach (KeyValuePair <string, MarketCurrent> pair in currenciesDict) { Pair pairinfo = new Pair(pair.Value.ticker); TradePair tpair = new TradePair { currency1 = pairinfo.currency1, currency2 = pairinfo.currency2, isActive = true, ticker = pair.Value.ticker }; tradePairs.Add(pair.Key, tpair); } Global.marketsState.SetPairs(resultResponse.market, tradePairs); } bool allMarketsReady = true; foreach (var marketName in Global.markets.GetMarketList()) { if (Global.marketsState.curMarketPairs[marketName] == null) { allMarketsReady = false; break; } } if (allMarketsReady) { marketsLoaded = true; } } if (marketsLoaded) { Market curmarket = ExchangeManager.GetMarketByMarketName(toolStripComboBoxMarket.Text); if (curmarket.HaveKey()) { toolButtonTickerBtc.Enabled = true; toolButtonTickerUsd.Enabled = true; if (curmarket.Options().AllPairRatesSupported) { toolStripButtonAlerts.Enabled = true; } } if (curmarket.Options().ChartDataSupported) { toolStripButtonChart.Enabled = true; } toolStripButtonBalance.Enabled = true; toolStripComboBoxMarket.Enabled = true; labelInfo.Text = ""; } List <MarketCurrentView> currencies = currenciesDict.Values.Select(item => new MarketCurrentView { ticker = item.ticker, origPrice = item.lastPrice, lastPrice = item.lastPrice, lastPriceUSD = 0, percentChange = item.percentChange, volumeBtc = item.volumeBtc, volumeUSDT = item.volumeUSDT }).ToList(); if (currenciesDict.ContainsKey("USDT_BTC")) { double btcPrice = currenciesDict["USDT_BTC"].lastPrice; foreach (var item in currencies) { if (item.ticker.StartsWith("BTC")) { item.volumeUSDT = item.volumeBtc * btcPrice; } if (item.ticker.StartsWith("BTC")) { item.lastPriceUSD = item.lastPrice * btcPrice; } else if (item.ticker.StartsWith("USDT")) { double usdprice = item.lastPrice; item.lastPriceUSD = usdprice; item.lastPrice = item.lastPrice / btcPrice; } } } currencies = currencies.OrderByDescending(x => x.volumeUSDT).ToList(); List <MarketCurrentView> currenciesCopy = new List <MarketCurrentView>(); foreach (MarketCurrentView item in currencies) { MarketCurrentView newItem = new MarketCurrentView() { ticker = item.ticker, origPrice = item.origPrice, lastPrice = item.lastPrice, lastPriceUSD = item.lastPriceUSD, percentChange = item.percentChange, volumeBtc = item.volumeBtc, volumeUSDT = item.volumeUSDT }; currenciesCopy.Add(newItem); } if (ExchangeManager.GetMarketByMarketName(resultResponse.market).Options().AllPairRatesSupported) { Global.marketsState.Update(resultResponse.market, currenciesCopy); } if (resultResponse.market != toolStripComboBoxMarket.Text) { return; } var dataView = currencies.Select(item => new { ticker = item.ticker, lastPrice = item.lastPrice, lastPriceUSDT = item.lastPriceUSD, percentChange = item.percentChange, volumeBtc = item.volumeBtc, volumeUSDT = item.volumeUSDT, lastPriceDisplay = Helper.PriceToStringBtc(item.lastPrice), lastPriceUSDTDisplay = item.lastPriceUSD.ToString("N3") + " $", percentChangeDisplay = item.percentChange.ToString("0") + " %", volumeBtcDisplay = item.volumeBtc.ToString("N2"), volumeUSDTDisplay = item.volumeUSDT.ToString("N0") + " $" }).ToList(); List <GVColumn> columns = new List <GVColumn>() { new GVColumn("ticker", "Currency", "string"), new GVColumn("lastPrice", "Price BTC", "DisplayField", "lastPriceDisplay"), new GVColumn("lastPriceUSDT", "Price $", "DisplayField", "lastPriceUSDTDisplay"), new GVColumn("percentChange", "Change %", "DisplayField", "percentChangeDisplay"), new GVColumn("volumeBtc", "Volume BTC", "DisplayField", "volumeBtcDisplay"), new GVColumn("volumeUSDT", "Volume $", "DisplayField", "volumeUSDTDisplay"), new GVColumn("lastPriceDisplay", "Price BTC", "string", "", false), new GVColumn("lastPriceUSDTDisplay", "Price $", "string", "", false), new GVColumn("percentChangeDisplay", "Change %", "string", "", false), new GVColumn("volumeBtcDisplay", "Volume BTC", "string", "", false), new GVColumn("volumeUSDTDisplay", "Volume $", "string", "", false) }; if (gvMarkets == null) { gvMarkets = new DataGridViewExWrapper(); } gvMarkets.Create(dgridMarkets, dataView, columns, true); DataGridViewCellStyle styleTicker = new DataGridViewCellStyle { Font = new Font("Tahoma", 9.0F, FontStyle.Bold), ForeColor = Color.Black }; DataGridViewCellStyle stylePrice = new DataGridViewCellStyle { Font = new Font("Tahoma", 9.0F, FontStyle.Regular), ForeColor = Color.Black }; gvMarkets.SetColumnStyle("ticker", styleTicker); gvMarkets.SetColumnStyle("lastPrice", stylePrice); gvMarkets.SetColumnStyle("lastPriceUSDT", stylePrice); //gvMarkets.AutoSizeFillExcept("volumeUSDT"); // gv.RowColorByCondition("orderType", (string s) => { return s == "1"; }, Color.LightPink); timerMarkets.Start(); }
public void GetMarketCurrent_UIResultHandler(RequestItemGroup resultResponse) { if (Helper.IsResultHasErrors(resultResponse)) { return; } Dictionary <string, MarketCurrent> currenciesDict = (Dictionary <string, MarketCurrent>)resultResponse.items[0].result.resultData; List <MarketCurrentView> currencies = currenciesDict.Values.Select(item => new MarketCurrentView { ticker = item.ticker, lastPrice = item.lastPrice, lastPriceUSD = 0, percentChange = item.percentChange, volumeBtc = item.volumeBtc, volumeUSDT = item.volumeUSDT }).ToList(); if (currenciesDict.ContainsKey("USDT_BTC")) { double btcPrice = currenciesDict["USDT_BTC"].lastPrice; foreach (var item in currencies) { if (item.ticker.StartsWith("BTC")) { item.volumeUSDT = item.volumeBtc * btcPrice; } if (item.ticker.StartsWith("BTC")) { item.lastPriceUSD = item.lastPrice * btcPrice; } else if (item.ticker.StartsWith("USDT")) { double usdprice = item.lastPrice; item.lastPriceUSD = usdprice; item.lastPrice = item.lastPrice / btcPrice; } } } currencies = currencies.OrderByDescending(x => x.volumeUSDT).ToList(); var dataView = currencies.Select(item => new { ticker = item.ticker, lastPrice = Helper.PriceToStringBtc(item.lastPrice), lastPriceUSDT = item.lastPriceUSD.ToString("N3") + " $", percentChange = item.percentChange.ToString("0") + " %", volumeBtc = item.volumeBtc.ToString("N2"), volumeUSDT = item.volumeUSDT.ToString("N0") + " $" }).ToList(); List <DGVColumn> columns = new List <DGVColumn>() { new DGVColumn("ticker", "Currency", "string"), new DGVColumn("lastPrice", "Price BTC", "string"), new DGVColumn("lastPriceUSDT", "Price $", "string"), new DGVColumn("percentChange", "Change %", "string"), new DGVColumn("volumeBtc", "Volume BTC", "string"), new DGVColumn("volumeUSDT", "Volume $", "string") }; gvMarkets = new DataGridViewWrapper(dgridMarkets, true); gvMarkets.Create(dataView, columns); DataGridViewCellStyle styleTicker = new DataGridViewCellStyle { Font = new Font("Tahoma", 9.0F, FontStyle.Bold), ForeColor = Color.Black }; DataGridViewCellStyle stylePrice = new DataGridViewCellStyle { Font = new Font("Tahoma", 9.0F, FontStyle.Regular), ForeColor = Color.Black }; gvMarkets.SetColumnStyle("ticker", styleTicker); gvMarkets.SetColumnStyle("lastPrice", stylePrice); gvMarkets.SetColumnStyle("lastPriceUSDT", stylePrice); gvMarkets.AutoSizeFillExcept("volumeUSDT"); // gv.RowColorByCondition("orderType", (string s) => { return s == "1"; }, Color.LightPink); timerMarkets.Start(); }