/// <summary> /// /// </summary> /// <param name="side">交易別</param> /// <param name="symbol">幣別</param> /// <param name="MinQuantity">數量</param> /// <param name="price">單價</param> /// <returns></returns> internal ExchangeApiData NewOrder(string side, string symbol, decimal quantity, decimal price) { var ExchangeApiData = new ExchangeApiData(); RestClient client1 = new RestClient(ApiUrl); var request1 = new RestRequest("/api/2/order", Method.POST); client1.Authenticator = new HttpBasicAuthenticator(_apiKey, _secretKey); request1.RequestFormat = DataFormat.Json; request1.AddBody(new { symbol = symbol, side = side, quantity = quantity, price = price, }); var Content = client1.Execute(request1).Content; JObject restoredObject = JObject.Parse(Content); var errordata = (JObject)restoredObject["error"]; if (errordata != null) { ExchangeApiData.Msg = (string)errordata.Property("message").Value; ExchangeApiData.Stace = false; } else { ExchangeApiData.Stace = true; } return(ExchangeApiData); }
/// <summary> /// 交易API /// </summary> /// <param name="type">buy-market:市價買,sell-market:市價賣,buy-limit:限價買,sell-limit:限價賣</param> /// <param name="symbol">btcusdt,bccbtc</param> /// <param name="amount">限價單表示下單數量,市價買單時表示買多少錢,市價賣單時表示賣多少幣</param> /// <param name="price">下單價格,市價單不傳該參數</param> public ExchangeApiData ordersPlace(string type, string symbol, decimal amount, decimal price) { var ExchangeApiData = new ExchangeApiData();; var ParameterS = "{\"account-id\"" + ":\"" + AccountId + "\","; ParameterS += "\"amount\"" + ":\"" + amount.ToString("0.####") + "\","; ParameterS += "\"price\"" + ":\"" + price.ToString("0.#######") + "\","; ParameterS += "\"symbol\"" + ":\"" + symbol.ToLower() + "\","; ParameterS += "\"type\"" + ":\"" + type + "\"}"; //ParameterS.Add(new Parameter { Name = "account-id", Value = AccountId }); //ParameterS.Add(new Parameter { Name = "amount", Value = amount }); //ParameterS.Add(new Parameter { Name = "price", Value = price }); //ParameterS.Add(new Parameter { Name = "symbol", Value = symbol.ToLower() }); //ParameterS.Add(new Parameter { Name = "type", Value = type }); var GetReturn = RestClientPost("/v1/order/orders/place", ParameterS); JObject restoredObject = JObject.Parse(GetReturn); var status = (string)restoredObject.Property("status").Value; if (status == "ok") { ExchangeApiData.Stace = true; } else { var errcode = (string)restoredObject.Property("err-code").Value; var errmsg = (string)restoredObject.Property("err-msg").Value; ExchangeApiData.Stace = false; ExchangeApiData.Msg = errmsg; } return(ExchangeApiData); }