/// <summary>cancel /// <para>Cancel a buy or sell order.</para> /// <para>Required : uuid - uuid of buy or sell order</para> /// <para>Optional : none</para> /// </summary> public static CCEXBuySellMessage setCancel(string uuid) { try { string requestUrl = "https://c-cex.com/t/api.html?a=cancel&apikey=" + Api.key + "&uuid=" + uuid + "&nonce=" + ExchangeManager.GetNonce(); var jsonObject = JObject.Parse(GetApiRequest(requestUrl)); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { return(jsonObject["result"].ToObject <CCEXBuySellMessage>()); } else { LogManager.AddLogMessage(Name, "setSell", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG); return(null); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "setSell", ex.Message, LogManager.LogMessageType.EXCEPTION); return(null); } }
/// <summary>selllimit /// <para>Place a sell limit order in a specific market.</para> /// <para>Required : market - Market name (ex: SYM-MKT)</para> /// <para>Required : quantity - Amount to purchase</para> /// <para>Required : rate - Rate at which to place the order</para> /// <para>Optional : none</para> /// </summary> public static CCEXBuySellMessage setSell(string symbol, string market, Decimal quantity, Decimal rate) { try { string requestUrl = "https://c-cex.com/t/api.html?a=selllimit&apikey=" + Api.key + "&market=" + symbol + "-" + market + "&quantity=" + quantity + "&rate=" + rate + "&nonce=" + ExchangeManager.GetNonce(); var jsonObject = JObject.Parse(GetApiRequest(requestUrl)); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { return(jsonObject["result"].ToObject <CCEXBuySellMessage>()); } else { LogManager.AddLogMessage(Name, "setSell", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG); return(null); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "setSell", ex.Message, LogManager.LogMessageType.EXCEPTION); return(null); } }
/// <summary>mytrades /// <para>Retrieve detailed trading history.</para> /// <para>Required : marketid - name (ex: SYM-MKT)</para> /// <para>Optional : limit</para> /// </summary> public static List <CCEXTrade> getTradeList(string symbol, string market) { List <CCEXTrade> list = new List <CCEXTrade>(); try { string requestUrl = Api_privateUrl + "mytrades" + "&apikey=" + Api.key + "&marketid=" + symbol.ToLower() + "-" + market.ToLower() + "&nonce=" + ExchangeManager.GetNonce(); var jsonObject = JObject.Parse(GetApiRequest(requestUrl)); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { list = jsonObject["result"].ToObject <List <CCEXTrade> >(); } else { LogManager.AddLogMessage(Name, "getTradeList", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getTradeList", ex.Message, LogManager.LogMessageType.EXCEPTION); } return(list); }
/// <summary>getorder /// <para>Retrieve a single order by uuid.</para> /// <para>Required : uuid - uuid of the buy or sell order</para> /// <para>Optional : none</para> /// </summary> public static CCEXOrder getOrder(string uuid) { try { string requestUrl = Api_privateUrl + "getorder" + "&apikey=" + Api.key + "&uuid=" + uuid + "&nonce=" + ExchangeManager.GetNonce(); var jsonObject = JObject.Parse(GetApiRequest(requestUrl)); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { return(jsonObject["result"].ToObject <CCEXOrder>()); } else { LogManager.AddLogMessage(Name, "getOrder", "successs IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG); return(null); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getOrder", ex.Message, LogManager.LogMessageType.EXCEPTION); return(null); } }
/// <summary>getopenorders /// <para>Get all orders that you currently have opened. A specific market can be requested.</para> /// <para>Required : none</para> /// <para>Optional : market - Market name (ex: MKT-SYM)</para> /// </summary> public static List <CCEXOrder> getOpenOrdersList(string market = "", string symbol = "") { List <CCEXOrder> list = new List <CCEXOrder>(); try { string requestUrl = Api_privateUrl + "getopenorders" + "&apikey=" + Api.key + "&nonce=" + ExchangeManager.GetNonce(); if (market.Length > 0 && symbol.Length > 0) { requestUrl += "&market=" + market + "-" + symbol; } string result = GetApiRequest(requestUrl); //LogManager.AddLogMessage(Name, "getOpenOrdersList", result, LogManager.LogMessageType.DEBUG); var jsonObject = JObject.Parse(result); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { list = jsonObject["result"].ToObject <List <CCEXOrder> >(); } else { LogManager.AddLogMessage(Name, "getOpenOrdersList", "successs IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getOpenOrdersList", ex.Message, LogManager.LogMessageType.EXCEPTION); } return(list); }
/// <summary>getmarkets /// <para>Get the open and available trading markets along with other meta data.</para> /// <para>Required : none</para> /// <para>Optional : none</para> /// </summary> public static List <CCEXMarket> getMarketList() { List <CCEXMarket> list = new List <CCEXMarket>(); try { var request = new RestRequest(Api_publicUrl + "getmarkets", Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(Name, "getMarketSummariesList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG); var jsonObject = JObject.Parse(response.Content); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { list = jsonObject["result"].ToObject <List <CCEXMarket> >(); } else { LogManager.AddLogMessage(Name, "getMarketList", "success IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getMarketList", ex.Message, LogManager.LogMessageType.EXCEPTION); } return(list); }
public object aspect_symbolIcon(object rowObject) { try { ForkData fork = (ForkData)rowObject; return(ContentManager.ResizeImage(ContentManager.GetForkSymbolIcon(fork.Symbol, fork.IconUrl), listView_Forks.RowHeightEffective, listView_Forks.RowHeightEffective)); /* * if (balance != null) * { * //return DataManager.ResizeImage(ExchangeManager.GetExchangeImage(e.exchange), 24, 24); * return ContentManager.ResizeImage(ContentManager.GetSymbolIcon(balance.Symbol), listView.RowHeightEffective, listView.RowHeightEffective); * } * else * { * return ContentManager.ResizeImage(Properties.Resources.ConnectionStatus_DISABLED, listView.RowHeightEffective, listView.RowHeightEffective); * } */ } catch (Exception ex) { LogManager.AddLogMessage(Name, "aspect_symbolIcon", ex.Message, LogManager.LogMessageType.EXCEPTION); return(ContentManager.ResizeImage(Properties.Resources.ConnectionStatus_ERROR, listView_Forks.RowHeightEffective, listView_Forks.RowHeightEffective)); } }
/// <summary>Address Balance Endpoint /// <para>The Address Balance Endpoint is the simplest—and fastest—method to get a subset of information on a public address.</para> /// </summary> public static decimal getBalance(string symbol, string address) { try { var request = new RestRequest("/" + symbol.ToLower() + "/main/addrs/" + address + "/balance", Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(Name, "getTicker", "response.Content=" + response.Content, LogManager.LogMessageType.OTHER); var jsonObject = JObject.Parse(response.Content); AddressBalanceEndpoint balance = jsonObject.ToObject <AddressBalanceEndpoint>(); Decimal value = 0; if (symbol != "ETH") { value = balance.balance / 100000000; } else { value = balance.balance / 1000000000000000000; } //LogManager.AddLogMessage(Name, "getTicker", "balance=" + balance.balance + " | " + symbol + " | " + value + " | " + address, LogManager.LogMessageType.OTHER); return(value); } catch (Exception ex) { LogManager.AddLogMessage(Name, "getBalance", ex.Message, LogManager.LogMessageType.EXCEPTION); return(0); } }
/// <summary>Price /// <para>Get the latest price for a list of one or more currencies. Really fast, 20-60 ms. Cached each 10 seconds.</para> /// <para>Documentation at https://min-api.cryptocompare.com/</para> /// <para>Required : fsym - string From Symbol</para> /// <para>Required : tsyms - string[] To Symbols, include multiple symbols</para> /// <para>Optional : none</para> /// </summary> public static List <CryptoComparePrice> getPriceList(string fsym, string[] tsyms) { List <CryptoComparePrice> list = new List <CryptoComparePrice>(); try { string markets = string.Join(",", tsyms); var request = new RestRequest("/data/price?fsym=" + fsym + "&tsyms=" + markets, Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(thisClassName, "getCoinList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG); var jsonObject = JObject.Parse(response.Content); foreach (var item in jsonObject) { //LogManager.AddLogMessage(thisClassName, "getPriceList", item.Key + " | " + item.Value, LogManager.LogMessageType.DEBUG); CryptoComparePrice price = new CryptoComparePrice() { symbol = fsym, market = item.Key, value = Convert.ToDecimal(item.Value) }; list.Add(price); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getCoinList", ex.Message, LogManager.LogMessageType.EXCEPTION); } return(list); }
/// <summary>CoinList /// <para>Get general info for all the coins available on the website.</para> /// <para>Required : none</para> /// <para>Optional : none</para> /// </summary> public static List <CryptoCompareCoin> getCoinList() { List <CryptoCompareCoin> list = new List <CryptoCompareCoin>(); try { RestClient tclient = new RestClient("https://www.cryptocompare.com"); var request = new RestRequest("/api/data/coinlist/", Method.GET); //var request = new RestRequest("/data/coinlist/", Method.GET); var response = tclient.Execute(request); //LogManager.AddLogMessage(thisClassName, "getCoinList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG); var jsonObject = JObject.Parse(response.Content); CryptoCompareResult result = jsonObject.ToObject <CryptoCompareResult>(); if (result.Response.ToLower() == "success") { //LogManager.AddLogMessage(thisClassName, "getCoinList", "success : " + jsonObject["Data"].ToString(), LogManager.LogMessageType.DEBUG); var data = JObject.Parse(jsonObject["Data"].ToString()); foreach (var item in data) { CryptoCompareCoin coin = data[item.Key].ToObject <CryptoCompareCoin>(); list.Add(coin); } } else { LogManager.AddLogMessage(Name, "getCoinList", "success IS FALSE : message=" + result.Message + " | Type=" + result.Type, LogManager.LogMessageType.DEBUG); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getCoinList", ex.Message, LogManager.LogMessageType.EXCEPTION); } return(list); }
/* * private string getApiKey(string symbol) * { * * } */ public static decimal getBalance(string key) { try { var request = new RestRequest("/get_balance/?api_key=" + key, Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(Name, "getTicker", "response.Content=" + response.Content); var jsonObject = JObject.Parse(response.Content); string status = jsonObject["status"].ToString().ToLower(); if (status == "success") { //BittrexTicker ticker = jsonObject["result"].ToObject<BittrexTicker>(); //return ticker; BlockIOMessage message = jsonObject.ToObject <BlockIOMessage>(); return(message.data.available_balance); } else { LogManager.AddLogMessage(Name, "getBalance", "ERROR LOADING : SUCCESS false on key : " + key, LogManager.LogMessageType.OTHER); //return null; return(0); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getBalance", ex.Message, LogManager.LogMessageType.EXCEPTION); //return null; return(0); } }
/// <summary>Address Balance Endpoint /// <para>The Address Balance Endpoint is the simplest—and fastest—method to get a subset of information on a public address.</para> /// </summary> public static decimal getBalance(string symbol, string address) { try { if (symbol.ToLower() == "bch") { symbol = "bcc"; } var request = new RestRequest("/" + symbol.ToLower() + "/address/" + address + "?api_key=5abc4df2c200059b0ad8ec828269c5670ee1e471", Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(Name, "getTicker", "response.Content=" + response.Content, LogManager.LogMessageType.OTHER); var jsonObject = JObject.Parse(response.Content); AddressBalanceEndpoint balance = jsonObject.ToObject <AddressBalanceEndpoint>(); Decimal value = balance.balance / 100000000; //LogManager.AddLogMessage(Name, "getBalance", "balance=" + balance.balance + " | " + value + " | " + symbol, LogManager.LogMessageType.OTHER); return(value); } catch (Exception ex) { LogManager.AddLogMessage(Name, "getBalance", ex.Message, LogManager.LogMessageType.EXCEPTION); return(0); } }
public void UpdateUI(bool resize = false) { if (InvokeRequired) { UpdateUICallback d = new UpdateUICallback(UpdateUI); Invoke(d, new object[] { resize }); } else { try { //listView.SetObjects(PreferenceManager.WalletPreferences.Forks); listView.SetObjects(PreferenceManager.WalletPreferences.WalletForks); //toolStripLabel_totals.Text = listView.OLVGroups.Count + " Addresses | " + PreferenceManager.WalletPreferences.Forks.Sum(item => item.TotalInBTC).ToString("N8") + " | " + PreferenceManager.WalletPreferences.Forks.Sum(item => item.TotalInUSD).ToString("C"); toolStripLabel_totals.Text = PreferenceManager.WalletPreferences.WalletForks.Count + " Forks : " + PreferenceManager.WalletPreferences.WalletForks.Sum(item => item.TotalInBTC).ToString("N8") + " (" + PreferenceManager.WalletPreferences.WalletForks.Sum(item => item.TotalInUSD).ToString("C") + ")"; if (resize) { ResizeUI(); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "UpdateUI", ex.Message, LogManager.LogMessageType.EXCEPTION); } } }
/// <summary>/products /// <para>Get a list of available currency pairs for trading.</para> /// <para>The base_min_size and base_max_size fields define the min and max order size. The quote_increment field specifies the min order price as well as the price increment.</para> /// <para>The order price must be a multiple of this increment (i.e. if the increment is 0.01, order prices of 0.001 or 0.021 would be rejected).</para> /// <para>Product ID will not change once assigned to a product but the min/max/quote sizes can be updated in the future.</para> /// <para>Required : none</para> /// <para>Optional : none</para> /// </summary> public static List <GDAXProduct> getProductList() { List <GDAXProduct> list = new List <GDAXProduct>(); string responseString = String.Empty; try { var request = new RestRequest("/products", Method.GET); var response = client.Execute(request); responseString = response.Content; //LogManager.AddLogMessage(Name, "getProductList", "Content:" + response.Content, LogManager.LogMessageType.DEBUG); JArray jsonVal = JArray.Parse(responseString) as JArray; list = jsonVal.ToObject <GDAXProduct[]>().ToList(); UpdateStatus(true, "Updated Products"); } catch (Exception ex) { //LogManager.AddLogMessage(Name, "getProductList", "EXCEPTION!!! : " + ex.Message, LogManager.LogMessageType.EXCEPTION); var jsonObject = JObject.Parse(responseString); GDAXErrorMessage error = jsonObject.ToObject <GDAXErrorMessage>(); LogManager.AddLogMessage(Name, "getProductList", ex.Message + " | " + error.message, LogManager.LogMessageType.EXCEPTION); UpdateStatus(false, error.message); } return(list); }
public static async Task <TradeSatoshiBalance> GetBalance(string Currency) { TradeSatoshiBalance balance = new TradeSatoshiBalance(); using (HttpClient client = new HttpClient()) { try { string uri = "https://tradesatoshi.com/api/private/getbalance"; //string nonce = Guid.NewGuid().ToString(); string nonce = ExchangeManager.GetNonce(); JObject post_params = new JObject(); post_params.Add("Currency", Currency); string signature = GetSignature(uri, nonce, JsonConvert.SerializeObject(post_params)).Result; //string authenticationString = "Basic " + GlobalSettings.API_Key + ":" + signature + ":" + nonce; string authenticationString = Api.key + ":" + signature + ":" + nonce; //string authenticationString = "Basic " + Api.key + ":" + signature + ":" + nonce; client.DefaultRequestHeaders.Add("Authentication", authenticationString); string result = await client.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(post_params), Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync(); LogManager.AddLogMessage(Name, "GetBalance", "result=" + result, LogManager.LogMessageType.CONSOLE); //return JsonConvert.DeserializeObject<GetBalanceReturn>(await client.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(post_params), Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync()); } catch (Exception ex) { LogManager.AddLogMessage(Name, "GetBalance", ex.Message, LogManager.LogMessageType.EXCEPTION); //throw e; }; } return(balance); }
// GetTicker // GetMarketHistory // GetMarketSummary public static List <TradeSatoshiMarketSummary> getMarketSummariesList() { List <TradeSatoshiMarketSummary> list = new List <TradeSatoshiMarketSummary>(); string responseString = string.Empty; try { var request = new RestRequest("/public/getmarketsummaries", Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(Name, "getMarketSummaries", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG); responseString = response.Content; var jsonObject = JObject.Parse(responseString); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { list = jsonObject["result"].ToObject <List <TradeSatoshiMarketSummary> >(); UpdateStatus(true, "Updated Tickers"); } else { UpdateStatus(true, jsonObject["message"].ToString()); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getMarketSummariesList", ex.Message + " | " + responseString, LogManager.LogMessageType.EXCEPTION); UpdateStatus(false, responseString); } return(list); }
/// <summary>pricemultifull /// <para>Get all the current trading info (price, vol, open, high, low etc) of any list of cryptocurrencies in any other currency that you need.</para> /// <para>If the crypto does not trade directly into the toSymbol requested, BTC will be used for conversion.</para> /// <para>This API also returns Display values for all the fields.If the opposite pair trades we invert it (eg.: BTC-XMR).</para> /// <para>Required : fsyms - string[] From Symbol, include multiple symbols</para> /// <para>Required : tsyms - string[] To Symbols, include multiple symbols</para> /// <para>Optional : none</para> /// </summary> public static List <CryptoComparePriceFull> getPriceMultiFullList(string[] fsyms, string[] tsyms) { List <CryptoComparePriceFull> list = new List <CryptoComparePriceFull>(); try { string symbols = string.Join(",", fsyms); string markets = string.Join(",", tsyms); var request = new RestRequest("/data/pricemultifull?fsyms=" + symbols + "&tsyms=" + markets, Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG); var jsonObject = JObject.Parse(response.Content); var dataObject = JObject.Parse(jsonObject["RAW"].ToString()); foreach (var item in dataObject) { //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", item.Key + " | " + item.Value, LogManager.LogMessageType.DEBUG); var priceObject = JObject.Parse(jsonObject["RAW"][item.Key].ToString()); foreach (var priceData in priceObject) { //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", priceData.Key + " | " + priceData.Value, LogManager.LogMessageType.DEBUG); CryptoComparePriceFull price = priceObject[priceData.Key].ToObject <CryptoComparePriceFull>(); //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", price.FROMSYMBOL + " | " + price.TOSYMBOL, LogManager.LogMessageType.DEBUG); list.Add(price); } } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getPriceMultiFullList", ex.Message, LogManager.LogMessageType.EXCEPTION); } return(list); }
public void UpdateUI(bool resize = false) { if (InvokeRequired) { UpdateUICallback d = new UpdateUICallback(UpdateUI); Invoke(d, new object[] { resize }); } else { try { if (sort == "Symbol") { listView.SetObjects(symbolList.OrderBy(item => item.symbol)); } else { listView.SetObjects(symbolList.OrderBy(item => item.value)); } if (resize) { ResizeUI(); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "UpdateUI", ex.Message, LogManager.LogMessageType.EXCEPTION); } } }
/// <summary>/ticker/ /// <para>Return the list of tickers</para> /// <para>Required : none</para> /// <para>Optional : start - return results from rank [start] and above (default=1)</para> /// <para>Optional : limit - return a maximum of [limit] results (default is 100, use 0 to return all results)</para> /// <para>Optional : [NOT IN USE] convert - return price, 24h volume, and market cap in terms of another currency. Valid values are: 'AUD', 'BRL', 'CAD', 'CHF', 'CLP', 'CNY', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HUF', 'IDR', 'ILS', 'INR', 'JPY', 'KRW', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PKR', 'PLN', 'RUB', 'SEK', 'SGD', 'THB', 'TRY', 'TWD', 'ZAR'</para> /// </summary> public static List <CoinMarketCapTicker> getTickerList(int start = 0, int limit = 100) { List <CoinMarketCapTicker> list = new List <CoinMarketCapTicker>(); try { var request = new RestRequest("/v1/ticker/?start=" + start + "&limit=" + limit, Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage(thisClassName, "getTickerList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG); var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; var jsonArray = JsonConvert.DeserializeObject <List <CoinMarketCapTicker> >(response.Content, settings); //var jsonArray = JsonConvert.DeserializeObject<List<CoinMarketCapTicker>>(response.Content); list = jsonArray.ToList(); } catch (Exception ex) { LogManager.AddLogMessage(Name, "getTickerList", ex.Message, LogManager.LogMessageType.EXCEPTION); } return(list); }
/// <summary> /// handles the web server state /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void StartWebServerButton_Click(object sender, RoutedEventArgs e) { try { if (!WebServerManager.WebServerStarted) { int.TryParse(OptionsManager.CurrentOptions.Port, out var port); if (port == 0) { port = 8080; LogManager.AddLogMessage("invalid port, fallback to port 8080"); } WebServerManager.StartWebServer(port); //AddonCompiler.Insatnce.WebServer = new WebServerClient(); //AddonCompiler.Insatnce.WebServer.Start(); } else { AddonCompiler.Insatnce.WebServer.Stop(); } } catch (Exception ex) { LogManager.AddErrorLog(ex); WebServerManager.WebServerStarted = false; } WebServerButton.Content = WebServerManager.WebServerStarted ? "Stop Web Server" : "Start Web Server"; ApplicationWindows.TestWidnow.Update(); }
public void ResizeUI() { if (InvokeRequired) { ResizeUICallback d = new ResizeUICallback(ResizeUI); Invoke(d, new object[] { }); } else { try { if (balanceListControl.PreferredWidth > 0) { Visible = false; tableLayoutPanel.ColumnStyles[0].SizeType = SizeType.Absolute; tableLayoutPanel.ColumnStyles[0].Width = balanceListControl.PreferredWidth; tableLayoutPanel.ColumnStyles[1].SizeType = SizeType.Absolute; tableLayoutPanel.ColumnStyles[1].Width = tickerListControl.PreferredWidth; Visible = true; } } catch (Exception ex) { LogManager.AddLogMessage(Name, "ResizeUI", ex.Message, LogManager.LogMessageType.EXCEPTION); } } }
private void listView_Wallets_CellEditFinishing(object sender, CellEditEventArgs e) { WalletBalance balance = listView_Wallets.SelectedObject as WalletBalance; if (balance != null) { WalletBalance listItem = PreferenceManager.WalletPreferences.WalletForks.FirstOrDefault(item => item.Symbol == balance.Symbol && item.Name == balance.Name); if (listItem != null) { try { Decimal newValue = Convert.ToDecimal(e.Control.Text); //LogManager.AddLogMessage(Name, "listView_Wallets_CellEditFinishing", balance.Symbol + " | " + e.Control.Text + " | " + e.Value, LogManager.LogMessageType.DEBUG); listItem.Balance = newValue; PreferenceManager.UpdatePreferenceFile(PreferenceManager.PreferenceType.Wallet); LoadWallets(); } catch (Exception ex) { LogManager.AddLogMessage(Name, "listView_Wallets_CellEditFinishing", ex.Message, LogManager.LogMessageType.EXCEPTION); } } } //LogManager.AddLogMessage(Name, "listView_Wallets_CellEditFinishing", sender + " | " + e.Control.Text + " | " + e.Value, LogManager.LogMessageType.DEBUG); }
/// <summary>getbalances /// <para>Retrieve all balances from your account.</para> /// <para>Required : none</para> /// <para>Optional : none</para> /// </summary> public static List <CCEXBalance> getBalanceList() { List <CCEXBalance> list = new List <CCEXBalance>(); string responseString = string.Empty; try { string requestUrl = Api_privateUrl + "getbalances" + "&apikey=" + Api.key + "&nonce=" + ExchangeManager.GetNonce(); responseString = GetApiRequest(requestUrl); var jsonObject = JObject.Parse(responseString); string success = jsonObject["success"].ToString().ToLower(); if (success == "true") { list = jsonObject["result"].ToObject <List <CCEXBalance> >(); UpdateStatus(true, "Updated Balances"); } else { LogManager.AddLogMessage(Name, "getBalanceList", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG); UpdateStatus(true, jsonObject["message"].ToString()); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "getBalances", ex.Message, LogManager.LogMessageType.EXCEPTION); UpdateStatus(false, responseString); } return(list); }
public void UpdateUI(bool resize = false) { if (InvokeRequired) { UpdateUICallback d = new UpdateUICallback(UpdateUI); Invoke(d, new object[] { resize }); } else { try { listView.SetObjects(FormPreferences); groupBox.Text = listView.Items.Count + " Forms"; if (resize) { ResizeUI(); } } catch (Exception ex) { LogManager.AddLogMessage(Name, "UpdateUI", ex.Message, LogManager.LogMessageType.EXCEPTION); } } }
/// <summary>/products/<product-id>/ticker /// <para>Snapshot information about the last trade (tick), best bid/ask and 24h volume.</para> /// <para>Required : product-id</para> /// <para>Optional : none</para> /// </summary> public static GDAXProductTicker GetProductTicker(string productID) { string responseString = string.Empty; try { var request = new RestRequest("/products/" + productID + "/ticker", Method.GET); var response = client.Execute(request); //LogManager.AddLogMessage("GDAXControl", "GetProductTicker", "TICKER:" + tickresponse.Content); responseString = response.Content; var jsonObject = JObject.Parse(responseString); GDAXProductTicker ticker = jsonObject.ToObject <GDAXProductTicker>(); ticker.id = productID; string[] split = ticker.id.Split('-'); ticker.symbol = split[0]; ticker.market = split[1]; //LogManager.AddLogMessage(Name, "GetProductTicker", ticker.id + " | " + ticker.price); UpdateStatus(true, "Updated Tickers"); return(ticker); /* * GDAXProductTicker ticker = new JavaScriptSerializer().Deserialize<GDAXProductTicker>(response.Content); * ticker.id = productID; * return ticker; */ // TO TEST //return null; } catch (Exception ex) { LogManager.AddLogMessage(Name, "GetProductTicker", "EXCEPTION!!! : " + ex.Message); UpdateStatus(false, responseString); return(null); } }
private void reset_Menu_Click(object sender, EventArgs e) { FormPreference preference = listView.SelectedObject as FormPreference; LogManager.AddLogMessage(Name, "reset_Menu_Click", preference.Name, LogManager.LogMessageType.DEBUG); FormManager.ResetForm(preference); //PreferenceManager.ExportPreferences(item.type); }
// INITIALIZE public static void InitializeExchange() { LogManager.AddLogMessage(Name, "InitializeExchange", "Initialized", LogManager.LogMessageType.EXCHANGE); updateExchangeBalanceList(true); Thread.Sleep(1000); updateExchangeOrderList(true); //updateExchangeTickerList(); }
private void listView_GroupTaskClicked(object sender, GroupTaskClickedEventArgs e) { LogManager.AddLogMessage(Name, "listView_GroupTaskClicked", e.Group.GroupId + " | " + e.Group.Header + " | " + e.Group.Id + " | " + e.Group.Key + " | " + e.Group.TopDescription, LogManager.LogMessageType.DEBUG); if (manager != null) { //if (view == BalanceViewType.exchange) manager.SetChart(view, e.Group.Key.ToString()); } }
private void toolStripDropDownButton_view_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { LogManager.AddLogMessage(Name, "toolStripDropDownButton_view_DropDownItemClicked", sender.ToString() + " | " + e.ClickedItem.Tag, LogManager.LogMessageType.DEBUG); toolStripDropDownButton_view.Text = e.ClickedItem.Tag.ToString(); TradingViewCryptocurrencyMarketDefaultColumn view = (TradingViewCryptocurrencyMarketDefaultColumn)Enum.Parse(typeof(TradingViewCryptocurrencyMarketDefaultColumn), e.ClickedItem.Tag.ToString()); PreferenceManager.TradingViewPreferences.CryptocurrencyMarketParameters.defaultColumn = view; marketsWidget.setCryptocurrencyMarket(PreferenceManager.TradingViewPreferences.CryptocurrencyMarketParameters); PreferenceManager.UpdatePreferenceFile(PreferenceManager.PreferenceType.TradingView); }
private void toolStripButton_buy_Click(object sender, EventArgs e) { ExchangeManager.ExchangeBalance marketBalance = ExchangeManager.Balances.FirstOrDefault(balance => balance.Exchange == Exchange.Name && balance.Symbol == Exchange.CurrentTicker.market); if (numericUpDown_total.Value == 0 || numericUpDown_amount.Value == 0) { MessageBox.Show("No Amount Or Total To Process", "EMPTY ORDER"); } else { if (numericUpDown_total.Value > marketBalance.Balance) { MessageBox.Show("Not Enough Funds For This Buy", "INSUFFICIENT FUNDS"); } else { if (View != "stop-limit") { string message = "Buy : " + numericUpDown_amount.Value.ToString("N8") + " " + Exchange.CurrentTicker.symbol + " @ Price : " + numericUpDown_price.Value.ToString("N8") + " " + Exchange.CurrentTicker.market; string title = "TOTAL : " + numericUpDown_total.Value.ToString("N8") + " " + Exchange.CurrentTicker.market; DialogResult dialogResult = MessageBox.Show(message, title, MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { //do something LogManager.AddLogMessage(Name, "toolStripButton_buy_Click", "THIS BUY FUNCTION NEEDS TO BE ENABLED", LogManager.LogMessageType.DEBUG); ExchangeManager.CreateNewOrder(Exchange.Name, ExchangeManager.ExchangeOrderType.buy, Exchange.CurrentTicker.symbol, Exchange.CurrentTicker.market, numericUpDown_price.Value, numericUpDown_amount.Value); numericUpDown_amount.Value = 0; numericUpDown_total.Value = 0; } } else { //string message = "STOP-LIMIT Buy : " + numericUpDown_amount.Value.ToString("N8") + " " + Exchange.CurrentTicker.symbol + //" @ Price : " + numericUpDown_price.Value.ToString("N8") + " " + Exchange.CurrentTicker.market + //" With STOP LIMIT OF " + numericUpDown_stop.Value; string message = "If the lowest ask rises to or above " + numericUpDown_stop.Value + " " + Exchange.CurrentTicker.market + ", An order to buy " + numericUpDown_amount.Value + " " + Exchange.CurrentTicker.symbol + " at a price of " + numericUpDown_price.Value + " " + Exchange.CurrentTicker.market + " will be placed."; string title = "STOP-LIMIT BUY for " + numericUpDown_amount.Value + " " + Exchange.CurrentTicker.symbol + " @ " + numericUpDown_total.Value.ToString("N8") + " " + Exchange.CurrentTicker.market; DialogResult dialogResult = MessageBox.Show(message, title, MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { //do something LogManager.AddLogMessage(Name, "toolStripButton_buy_Click", "THIS STOP-LIMIT BUY FUNCTION NEEDS TO BE ENABLED", LogManager.LogMessageType.DEBUG); numericUpDown_amount.Value = 0; numericUpDown_total.Value = 0; } } } } }