private void queryMarketData() { OkexFutureMarketData md = OkexFutureTrader.Instance.getMarketData(m_instrument, m_contract); if (md != null) { MarketDataMgr.Instance.saveMarketData(m_instrument, m_contract, md); } }
protected double getCurSellPrice(OkexFutureInstrumentType instrument, OkexFutureContractType contract) { OkexFutureMarketData md = MarketDataMgr.Instance.getMarketData(instrument, contract); if (md != null) { return(md.sell); } return(0.0); }
private void queryMarketData(OkexFutureInstrumentType instrument, OkexFutureContractType contract) { OkexFutureMarketData md = OkexFutureTrader.Instance.getMarketData(instrument, contract); if (md != null) { //saveMarketData(instrument, contract, ref md); m_marketData[instrument][contract] = md; } }
//public void update() //{ // foreach (var keyVal in m_subscribedContracts) // { // OkexFutureInstrumentType inst = keyVal.Key; // foreach(var contract in keyVal.Value) // { // queryMarketData(inst, contract); // queryDepthData(inst, contract); // } // } //} //private void queryMarketData(OkexFutureInstrumentType instrument, OkexFutureContractType contract) //{ // OkexFutureMarketData md = OkexFutureTrader.Instance.getMarketData(instrument, contract); // if(md != null) // { // //saveMarketData(instrument, contract, ref md); // m_marketData[instrument][contract] = md; // } //} //private void queryDepthData(OkexFutureInstrumentType instrument, OkexFutureContractType contract) //{ // OkexFutureDepthData dd = OkexFutureTrader.Instance.getMarketDepthData(instrument, contract); // if (dd != null) // { // //saveDepthData(instrument, contract, ref dd); // m_depthData[instrument][contract] = dd; // } //} public void saveMarketData(OkexFutureInstrumentType instrument, OkexFutureContractType contract, OkexFutureMarketData marketData) { if (!m_marketData.ContainsKey(instrument)) { ConcurrentDictionary <OkexFutureContractType, OkexFutureMarketData> mdMap = new ConcurrentDictionary <OkexFutureContractType, OkexFutureMarketData>(); m_marketData.TryAdd(instrument, mdMap); } m_marketData[instrument][contract] = marketData; }
protected double getCurPrice(OkexFutureInstrumentType instrument, OkexFutureContractType contract) { OkexFutureMarketData md = OkexFutureTrader.Instance.getMarketData(instrument, contract); if (md != null) { //if(m_tradeDirection == OkexFutureTradeDirectionType.TT_Buy) //{ // return md.sell; //} //else //{ // return md.buy; //} return(md.last); } return(0.0); }
public OkexFutureMarketData getMarketDataWithTimeLimit(OkexFutureInstrumentType instrument, OkexFutureContractType contract, long limitMillisec) { OkexFutureMarketData md = getMarketData(instrument, contract); if (md == null) { return(null); } long curTimestamp = DateUtil.getCurTimestamp(); if (curTimestamp - md.receiveTimestamp - GlobalSetting.marketDataBias > limitMillisec) { return(null); } return(md); }