コード例 #1
0
        private void queryMarketData()
        {
            OkexFutureMarketData md = OkexFutureTrader.Instance.getMarketData(m_instrument, m_contract);

            if (md != null)
            {
                MarketDataMgr.Instance.saveMarketData(m_instrument, m_contract, md);
            }
        }
コード例 #2
0
ファイル: OkexBasicStrategy.cs プロジェクト: hmn21/OkexTrader
        protected double getCurSellPrice(OkexFutureInstrumentType instrument, OkexFutureContractType contract)
        {
            OkexFutureMarketData md = MarketDataMgr.Instance.getMarketData(instrument, contract);

            if (md != null)
            {
                return(md.sell);
            }
            return(0.0);
        }
コード例 #3
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;
            }
        }
コード例 #4
0
ファイル: MarketDataMgr.cs プロジェクト: voicevon/OkexTrader
        //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;
        }
コード例 #5
0
ファイル: OkexBasicStrategy.cs プロジェクト: hmn21/OkexTrader
        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);
        }
コード例 #6
0
ファイル: MarketDataMgr.cs プロジェクト: voicevon/OkexTrader
        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);
        }