public void tradeAsync(OkexFutureInstrumentType instrument, OkexFutureContractType contract, double price, long amount, OkexContractTradeType tradeType, HttpAsyncReq.ResponseCallback callback, uint leverRate = 10, bool matchPrice = false) { string strMatchPrice = ""; if (matchPrice) { strMatchPrice = "1"; } else { strMatchPrice = "0"; } if (leverRate != 10 && leverRate != 20) { leverRate = 10; } uint nType = (uint)tradeType; postRequest.future_async_trade_ex(OkexDefValueConvert.getInstrumentStr(instrument), OkexDefValueConvert.getContractTypeStr(contract), price.ToString(), amount.ToString(), nType.ToString(), strMatchPrice, leverRate.ToString(), callback); }
/// <summary> /// 撤销订单 异步 /// </summary> /// <param name="symbol">btc_usd: 比特币 ltc_usd: 莱特币</param> /// <param name="order_id">订单ID(多个订单ID中间以","分隔,一次最多允许撤消3个订单)</param> /// <returns></returns> public void cancelOrderAsync(String symbol, String order_id, HttpAsyncReq.ResponseCallback callback) { try {// 构造参数签名 Dictionary <String, String> paras = new Dictionary <String, String>(); paras.Add("api_key", api_key); if (!StringUtil.isEmpty(symbol)) { paras.Add("symbol", symbol); } if (!StringUtil.isEmpty(order_id)) { paras.Add("order_id", order_id); } String sign = MD5Util.buildMysignV1(paras, this.secret_key); paras.Add("sign", sign); // 发送post请求 HttpUtilManager httpUtil = HttpUtilManager.getInstance(); httpUtil.requestHttpPostAsync(url_prex, CANCEL_ORDER_URL, paras, callback); } catch (Exception e) { throw e; } }
public void cancelAysnc(OkexCoinType commodity, OkexCoinType currency, string orderID, HttpAsyncReq.ResponseCallback callback) { string c0 = OkexDefValueConvert.getCoinName(commodity); string c1 = OkexDefValueConvert.getCoinName(currency); string symbol = c0 + "_" + c1; postRequest.cancelOrderAsync(symbol, orderID, callback); }
public void tradeAsync(OkexCoinType commodity, OkexCoinType currency, OkexStockTradeType tradeType, double price, double amount, HttpAsyncReq.ResponseCallback callback) { string c0 = OkexDefValueConvert.getCoinName(commodity); string c1 = OkexDefValueConvert.getCoinName(currency); string symbol = c0 + "_" + c1; string strType = OkexDefValueConvert.getStockTradeTypeStr(tradeType); postRequest.tradeAsync(symbol, strType, price.ToString(), amount.ToString(), callback); }
/// <summary> /// 下单交易 异步 /// </summary> /// <param name="symbol">btc_usd: 比特币 ltc_usd: 莱特币</param> /// <param name="type">买卖类型: 限价单(buy/sell) 市价单(buy_market/sell_market)</param> /// <param name="price">下单价格 [限价买单(必填): 大于等于0,小于等于1000000 | 市价买单(必填): BTC :最少买入0.01个BTC 的金额(金额>0.01*卖一价) / LTC :最少买入0.1个LTC 的金额(金额>0.1*卖一价)]</param> /// <param name="amount"> 交易数量 [限价卖单(必填):BTC 数量大于等于0.01 / LTC 数量大于等于0.1 | 市价卖单(必填): BTC :最少卖出数量大于等于0.01 / LTC :最少卖出数量大于等于0.1]</param> /// <returns></returns> public void tradeAsync(String symbol, String type, String price, String amount, HttpAsyncReq.ResponseCallback callback) { try { // 构造参数签名 Dictionary <String, String> paras = new Dictionary <String, String>(); paras.Add("api_key", api_key); if (!StringUtil.isEmpty(symbol)) { paras.Add("symbol", symbol); } if (!StringUtil.isEmpty(type)) { paras.Add("type", type); } if (!StringUtil.isEmpty(price)) { paras.Add("price", price); } if (!StringUtil.isEmpty(amount)) { paras.Add("amount", amount); } String sign = MD5Util.buildMysignV1(paras, this.secret_key); paras.Add("sign", sign); // 发送post请求 HttpUtilManager httpUtil = HttpUtilManager.getInstance(); httpUtil.requestHttpPostAsync(url_prex, TRADE_URL, paras, callback); } catch (Exception e) { throw e; } }
/// <summary> /// 取消订单 /// </summary> /// <param name="symbol">btc_usd:比特币 ltc_usd :莱特币</param> /// <param name="contractType">合约类型: this_week:当周 next_week:下周 month:当月 quarter:季度</param> /// <param name="orderId">订单ID</param> /// <returns></returns> public void future_cancel_async(String symbol, String contractType, String orderId, HttpAsyncReq.ResponseCallback callback) { try { // 构造参数签名 Dictionary <String, String> paras = new Dictionary <String, String>(); if (!StringUtil.isEmpty(contractType)) { paras.Add("contract_type", contractType); } if (!StringUtil.isEmpty(orderId)) { paras.Add("order_id", orderId); } if (!StringUtil.isEmpty(api_key)) { paras.Add("api_key", api_key); } if (!StringUtil.isEmpty(symbol)) { paras.Add("symbol", symbol); } String sign = MD5Util.buildMysignV1(paras, secret_key); paras.Add("sign", sign); // 发送post请求 HttpUtilManager httpUtil = HttpUtilManager.getInstance(); httpUtil.requestHttpPostAsync(url_prex, FUTURE_CANCEL_URL, paras, callback); } catch (Exception e) { throw e; } }
/// <summary> /// 期货下单 /// </summary> /// <param name="symbol">btc_usd:比特币 ltc_usd :莱特币</param> /// <param name="contractType">合约类型: this_week:当周 next_week:下周 month:当月 quarter:季度</param> /// <param name="price">价格</param> /// <param name="amount">委托数量</param> /// <param name="type">1:开多 2:开空 3:平多 4:平空</param> /// <param name="matchPrice">是否为对手价 0:不是 1:是 ,当取值为1时,price无效</param> /// <param name="leverRate">杠杆率,10或20</param> /// <returns></returns> public void future_async_trade_ex(String symbol, String contractType, String price, String amount, String type, String matchPrice, String leverRate, HttpAsyncReq.ResponseCallback callback) { try { // 构造参数签名 Dictionary <String, String> paras = new Dictionary <String, String>(); if (!StringUtil.isEmpty(symbol)) { paras.Add("symbol", symbol); } if (!StringUtil.isEmpty(contractType)) { paras.Add("contract_type", contractType); } if (!StringUtil.isEmpty(api_key)) { paras.Add("api_key", api_key); } if (!StringUtil.isEmpty(price)) { paras.Add("price", price); } if (!StringUtil.isEmpty(amount)) { paras.Add("amount", amount); } if (!StringUtil.isEmpty(type)) { paras.Add("type", type); } if (!StringUtil.isEmpty(matchPrice)) { paras.Add("match_price", matchPrice); } if (!StringUtil.isEmpty(leverRate)) { paras.Add("lever_rate", leverRate); } String sign = MD5Util.buildMysignV1(paras, secret_key); paras.Add("sign", sign); // 发送post请求 HttpUtilManager httpUtil = HttpUtilManager.getInstance(); httpUtil.requestHttpPostAsync(url_prex, FUTURE_TRADE_URL, paras, callback); } catch (Exception e) { throw e; } }
public void requestHttpPostAsync(String url, Dictionary <String, String> paras, HttpAsyncReq.ResponseCallback callback) { HttpAsyncReq req = new HttpAsyncReq(); req.requestHttpPostAsync(url, paras, callback); }
public void requestHttpGetAsync(String url, String param, HttpAsyncReq.ResponseCallback callback) { HttpAsyncReq req = new HttpAsyncReq(); req.requestHttpGetAsync(url, param, callback); }
public void devolveAsync(OkexFutureInstrumentType instrument, OkexDevolveType devolveDir, double amount, HttpAsyncReq.ResponseCallback callback) { string symbol = OkexDefValueConvert.getInstrumentStr(instrument); string type = "1"; if (devolveDir == OkexDevolveType.DT_Future2Stock) { type = "2"; } else { type = "1"; } postRequest.future_devolve_async(symbol, type, amount.ToString(), callback); }
public void cancelAsync(OkexFutureInstrumentType instrument, OkexFutureContractType contract, long orderID, HttpAsyncReq.ResponseCallback callback) { postRequest.future_cancel_async(OkexDefValueConvert.getInstrumentStr(instrument), OkexDefValueConvert.getContractTypeStr(contract), orderID.ToString(), callback); }