public void onTradeEvent(long orderID, OkexTradeQueryResultType result, OkexFutureOrderBriefInfo info) { if (tradeEventHandler != null) { tradeEventHandler(orderID, result, info); } }
private static OkexTradeQueryResultType getResultType(OkexOrderStatusType status) { OkexTradeQueryResultType ret = OkexTradeQueryResultType.TQR_Unfinished; if (status == OkexOrderStatusType.OS_AllTraded || status == OkexOrderStatusType.OS_Canceled) { return(OkexTradeQueryResultType.TQR_Finished); } return(ret); }
private void queryTrade(object sender, ElapsedEventArgs e) { lock (tracerLock) { if (!valid) { return; } if (orderID == 0) { entity.onTradeEvent(orderID, OkexTradeQueryResultType.TQR_Timeout, null); return; } OkexFutureOrderBriefInfo info; if (resultTimer != null) { resultTimer.Start(); } bool ret = OkexFutureTrader.Instance.getOrderInfoByID(instrument, contract, orderID, out info); if (ret) { if (resultTimer != null) { resultTimer.Stop(); } OkexTradeQueryResultType tqr = getResultType(info.status); entity.onTradeEvent(orderID, tqr, info); if (tqr == OkexTradeQueryResultType.TQR_Finished) { stop(); FutureTradeMgr.Instance.removeTracer(localID); } } } }