Ejemplo n.º 1
0
        public Task <GetMarketInfoResponse> GetMarketInfoAsync(MarketRequest request)
        {
            try
            {
                var data = _externalMarketSettingsAccessor.GetExternalMarketSettings(request.Market);
                if (data == null)
                {
                    return(new GetMarketInfoResponse().AsTask());
                }

                return(new GetMarketInfoResponse
                {
                    Info = new ExchangeMarketInfo()
                    {
                        Market = data.Market,
                        BaseAsset = data.BaseAsset,
                        QuoteAsset = data.QuoteAsset,
                        MinVolume = data.MinVolume,
                        PriceAccuracy = data.PriceAccuracy,
                        VolumeAccuracy = data.VolumeAccuracy
                    }
                }.AsTask());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Cannot get FTX GetMarketInfo: {marketText}", request.Market);
                throw;
            }
        }
Ejemplo n.º 2
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <ResponseModel>(HttpMethod.Get, BuildUrl(_settings.PublicUrl, $"{request.Pair}/open/tick"));

            if (!(bool)content.Data.trading)
            {
                return(null);
            }

            dynamic data = content.Data;

            return(new MarketResponse
            {
                LastPrice = data.lastDealPrice,
                AskPrice = data.buy,
                BidPrice = data.sell,
                Volume = data.vol,
                Low = ((decimal?)data.low).GetValueOrDefault(),
                High = ((decimal?)data.high).GetValueOrDefault()
            });
        }
Ejemplo n.º 3
0
        protected void AddSecurities(Securities sec)
        {
            if (!secDict.ContainsKey(sec.Symbol))
            {
                _log.Debug("订阅{0}股票价格", sec.Symbol);

                secDict.Add(sec.Symbol, sec);

                String path1       = String.Format("/user/{0}", ConstantsHelper.AKKA_PATH_MARKET_MANAGER);
                var    marketActor = Context.ActorSelection(path1);
                // 增加一个关注的股票
                MarketRequest request = new MarketRequest()
                {
                    Type = MarketRequest.RequestType.ADD_SECURITIES, Body = sec
                };
                marketActor.Tell(request);
                //var ret = marketActor.Ask<Object>(request, TimeSpan.FromSeconds(2));
                //ret.Wait();

                //
                String path     = String.Format("/user/{0}/{1}", ConstantsHelper.AKKA_PATH_MARKET_MANAGER, sec.Symbol);
                var    secActor = Context.ActorSelection(path);
                SecuritiesQuotationRequest req = new SecuritiesQuotationRequest()
                {
                    Type = SecuritiesQuotationRequest.RequestType.WATCH_QUOTEDATA,
                    Body = Desc.Id
                };
                secActor.Tell(req);
                symbolPriceActors.Add(sec.Symbol, secActor);
            }
        }
Ejemplo n.º 4
0
        protected override Dictionary <string, decimal> GetAllPrice()
        {
            try {
                Dictionary <string, decimal> dic = new Dictionary <string, decimal>();

                MarketRequest marketRequest = coinealAPI.EnSendRequestContent <MarketRequest>(ApiUrlList.API_Market);

                var l = marketRequest.data.Where(S => S.Key.Contains("usdt")).ToDictionary(S => S.Key, S => S.Value);


                foreach (var item in l)
                {
                    if (item.Key.Length == 7)
                    {
                        dic.Add(item.Key.Insert(3, "_"), item.Value);
                    }
                    else if (item.Key.Length == 8)
                    {
                        dic.Add(item.Key.Insert(4, "_"), item.Value);
                    }
                    else
                    {
                        dic.Add(item.Key.Insert(5, "_"), item.Value);
                    }
                }


                return(dic);
            }
            catch (Exception e)
            {
                Alert(e.ToString());
                return(null);
            }
        }
Ejemplo n.º 5
0
        static void RefreshVitShopData()
        {
            MarketRequest req = new MarketRequest();

            req.Category = Category.Vit;
            GameEvents.NetWorkEvents.SendAsyncMsg.SafeInvoke(req);
        }
Ejemplo n.º 6
0
        public Market[] Get(MarketRequest request)
        {
            Market[] markets;

            if (request.Sport == "FOOTBALL")
            {
                var footballGen = new FootballMarketGenerator();
                return(footballGen.GetMarkets(request.Fixture));
            }
            else if (request.Sport == "tennis")
            {
                var tennisGen     = new TennisMarketGenerator();
                var tennisMarkets = tennisGen.GetMarkets(request.Fixture);

                markets = new Market[tennisMarkets.Count];

                for (var i = 0; i < tennisMarkets.Count; i++)
                {
                    markets[i] = tennisMarkets.Skip(i).Take(1).First();
                }
            }
            else
            {
                throw new Exception();
            }

            return(markets);
        }
Ejemplo n.º 7
0
 public Task <HasSymbolResponse> HasSymbolAsync(MarketRequest request)
 {
     return(Task.FromResult(new HasSymbolResponse()
     {
         Result = _manager.HasSymbol(request.Market)
     }));
 }
Ejemplo n.º 8
0
        private void requestShopData(bool isAsyn, Category cat)
        {
            MarketRequest request = new MarketRequest();

            request.Category = cat;

            GameEvents.NetWorkEvents.SendAsyncMsg.SafeInvoke(request);
        }
Ejemplo n.º 9
0
        public Task <GetOrderBookResponse> GetOrderBookAsync(MarketRequest request)
        {
            var result = _manager.GetOrderBook(request.Market);

            return(Task.FromResult(new GetOrderBookResponse()
            {
                OrderBook = result
            }));
        }
Ejemplo n.º 10
0
        private void requestData()
        {
#if Test
            MarketResponse res = ShopHelper.getShopDataTest(cate);
            OnResponse(res);
#else
            MarketRequest request = new MarketRequest();
            request.Category = cate;
            GameEvents.NetWorkEvents.SendAsyncMsg.SafeInvoke(request);
#endif
        }
Ejemplo n.º 11
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <dynamic>(HttpMethod.Get, BuildUrl(_settings.PublicUrl, $"instrument?symbol={request.Pair}"));

            return(new MarketResponse {
                LastPrice = content[0].lastPrice
            });
        }
        public Task <GetMarketInfoResponse> GetMarketInfoAsync(MarketRequest request)
        {
            if (MarketInfo.TryGetValue(request.Market, out var info))
            {
                return(Task.FromResult(new GetMarketInfoResponse()
                {
                    Info = info
                }));
            }

            return(Task.FromResult(new GetMarketInfoResponse()
            {
                Info = null
            }));
        }
Ejemplo n.º 13
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <dynamic>(HttpMethod.Get, BuildUrl(_settings.PublicUrl, $"ticker.do?symbol={request.Pair}"));

            return(new MarketResponse
            {
                LastPrice = content.ticker.last,
                AskPrice = content.ticker.buy,
                BidPrice = content.ticker.sell,
                High = content.ticker.high,
                Low = content.ticker.low,
                Volume = content.ticker.vol
            });
        }
Ejemplo n.º 14
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <dynamic>(HttpMethod.Get, BuildUrl(_settings.PublicUrl, $"market/detail/merged?symbol={request.Pair}"));

            return(new MarketResponse
            {
                LastPrice = content.tick.close,
                AskPrice = content.tick.ask[0],
                BidPrice = content.tick.bid[0],
                Volume = content.tick.vol,
                High = content.tick.high,
                Low = content.tick.low
            });
        }
Ejemplo n.º 15
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <dynamic>(HttpMethod.Get, BuildUrl(_settings.PublicUrl, $"pubticker/{request.Pair}"));

            return(new MarketResponse
            {
                LastPrice = content.last_price,
                AskPrice = content.ask,
                BidPrice = content.bid,
                Volume = content.volume,
                High = content.high,
                Low = content.low
            });
        }
        public Task <OrderEntry[]> RequestMarketCheck(string itemName)
        {
            var request = new MarketRequest(itemName, false);

            this.pendingRequests.Enqueue(request);
            return(Task.Run(() =>
            {
                var doneEvent = new ManualResetEvent(false);
                OrderEntry[] data = null;
                using var _ = request.UpdateSubject.Subscribe(md =>
                {
                    data = md.orders;
                    doneEvent.Set();
                });
                doneEvent.WaitOne();
                Debug.Assert(data != null, "Market data cannot be null");
                return data;
            }));
        }
        public Task <(string description, long scrapValue, OrderEntry[] orders)> RequestMarketCheckWithDescription(
            string itemName)
        {
            var request = new MarketRequest(itemName, true);

            this.pendingRequests.Enqueue(request);
            return(Task.Run(() =>
            {
                var doneEvent = new ManualResetEvent(false);
                (string description, long scrapValue, OrderEntry[] orders)? data = null;
                using var subscribe = request.UpdateSubject.Subscribe(md =>
                {
                    data = md;
                    doneEvent.Set();
                });
                doneEvent.WaitOne();
                Debug.Assert(data.HasValue, "Market data cannot be null");
                return data.Value;
            }));
        }
Ejemplo n.º 18
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <dynamic>(HttpMethod.Get, BuildUrl(_settings.PublicUrl, $"ticker/{request.Pair}?ignore_invalid=1"));

            dynamic data = content[request.Pair];

            return(new MarketResponse
            {
                LastPrice = data.last,
                Volume = data.vol,
                AskPrice = data.buy,
                BidPrice = data.sell,
                High = data.high,
                Low = data.low
            });
        }
Ejemplo n.º 19
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <Dictionary <string, dynamic> >(HttpMethod.Get, BuildUrl(_settings.PublicUrl, "ticker"));

            dynamic item = content[request.Pair];

            return(new MarketResponse
            {
                LastPrice = item.last_trade,
                High = item.high,
                Low = item.low,
                Volume = item.vol,
                AskPrice = item.buy_price,
                BidPrice = item.sell_price
            });
        }
Ejemplo n.º 20
0
        public async Task <MarketResponse> GetMarketAsync(MarketRequest request)
        {
            if (String.IsNullOrEmpty(request.Pair))
            {
                throw new ArgumentNullException(nameof(request.Pair));
            }

            var content = await CallAsync <dynamic>(HttpMethod.Get, BuildUrl(_settings.PublicUrl, $"GetMarket/{request.Pair}"));

            var response = new MarketResponse
            {
                AskPrice  = content.Data.AskPrice,
                BidPrice  = content.Data.BidPrice,
                High      = content.Data.High,
                Low       = content.Data.Low,
                LastPrice = content.Data.LastPrice,
                Volume    = content.Data.Volume
            };

            return(response);
        }
Ejemplo n.º 21
0
    public void GetMarketplace()
    {
        Debug.Log("Starts get");
        while (File.Exists("Passout.json"))
        {
            File.Delete("Passout.json");
        }

        MarketRequest req     = new MarketRequest();
        string        message = JsonUtility.ToJson(req);

        using (FileStream fs = File.Create("Passin.json"))
        {
            byte[] info = new UTF8Encoding(true).GetBytes(message);
            fs.Write(info, 0, info.Length);
            fs.Flush();
            fs.Close();
            fs.Dispose();
        }

        StartCoroutine(ReadFile());
    }
Ejemplo n.º 22
0
        public static void btnTransPanel(string panelName)
        {
            if (panelName.Equals(UIDefine.UI_MAIL))
            {
                EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_MAIL);
            }

            else if (panelName.Equals(UIDefine.UI_BAG))
            {
                //CSPlayerPropRequest msg_prop = new CSPlayerPropRequest();
                //GameEvents.NetWorkEvents.SendHalfSyncMsg.SafeInvoke(msg_prop);

                //EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_BAG);
                EngineCoreEvents.UIEvent.ShowUIByOther.SafeInvoke(UIDefine.UI_BAG, UIDefine.UI_GAMEENTRY);
            }
#if OFFICER_SYS
            else if (panelName.Equals(UIDefine.UI_POLICE))
            {
                EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_POLICE);
            }
#endif
            else if (panelName.Equals(UIDefine.UI_EVENT_INGAME_ENTRY))
            {
                CSEventDropInfoRequest req = new CSEventDropInfoRequest();

#if TEST
                req.EventId = 2;
#endif

#if !NETWORK_SYNC || UNITY_EDITOR
                GameEvents.NetWorkEvents.SendAsyncMsg.SafeInvoke(req);
#else
                GameEvents.NetWorkEvents.SendMsg.SafeInvoke(req);
#endif
            }
            else if (panelName.Equals(UIDefine.UI_SHOP))
            {
                if (ShopHelper.IsShopDataAvaliable(Category.Common))
                {
                    ShopHelper.OpenShop(Category.Common);
                }
                else
                {
                    MessageHandler.RegisterMessageHandler(MessageDefine.MarketResponse, GameEntryHelper.TransPanel);

                    MarketRequest req = new MarketRequest();
                    req.Category = Category.Common;

                    GameEvents.NetWorkEvents.SendAsyncMsg.SafeInvoke(req);
                }
            }
            else if (panelName.Equals(UIDefine.UI_SCENETALK))
            {
                TalkUIHelper.OnStartTalk(3);
            }
            else if (panelName.Equals(UIDefine.UI_SLOTS))
            {
                EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_ACTIVITY);
            }
            else if (panelName.Equals(UIDefine.UI_ACHIEVEMENT))
            {
                EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_ACHIEVEMENT);
            }
            else if (panelName.Equals(UIDefine.UI_FRIEND))
            {
                EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_FRIEND);
            }
            else if (panelName == UIDefine.UI_CHAPTER)
            {
                EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_CHAPTER);
            }
            else if (panelName.Equals(UIDefine.UI_COMBINE))
            {
                EngineCoreEvents.UIEvent.ShowUIEvent.SafeInvoke(UIDefine.UI_COMBINE);
            }
        }
Ejemplo n.º 23
0
        public async Task <MarketResponse> GetMarket(MarketRequest request)
        {
            var query = request.Hours.HasValue ? $"/{request.TradePairId}/{request.Hours}" : $"/{request.TradePairId}";

            return(await GetResult <MarketResponse>(PublicApiCall.GetMarket, query));
        }
 public async Task <List <Market> > GetMarketsAsync(MarketRequest request)
 {
     return(await this.httpClient.GetAsync <List <Market> >($"{baseUrl}/api/v1/markets{Query(request)}"));
 }
 public List <Market> GetMarkets(MarketRequest request) => GetMarketsAsync(request).GetAwaiter().GetResult();