示例#1
0
        internal void OnForexQuote(ForexQuote quote)
        {
            RTDataRec Rec = GetRTDataRec(quote.p, PGClusterNames.Forex);

            Rec.AskTick = quote.a == 0 ? TickType.FlatTick
                                                : Rec.Ask > quote.a ? TickType.DownTick : TickType.UpTick;
            Rec.Ask     = quote.a;
            Rec.BidTick = quote.b == 0 ? TickType.FlatTick
                                                : Rec.Bid > quote.b ? TickType.DownTick : TickType.UpTick;
            Rec.Bid    = quote.b;
            Rec.Spread = (Rec.Ask - Rec.Bid).ToString("0.00000");
        }
        private void OnForexQuote(ForexQuote quote)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(quote);
            }
            else
            {
                Text = $"Quote: Pair: {quote.p}, " +
                       $"Bid: {quote.b}, Ask: {quote.a}, " +
                       $"FX Exchange: {quote.x}, " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( quote.t )} EST";
            }
            AppendText(Text);
        }
示例#3
0
        // =====>>>>>>>>>> JSONText Message Received

        public override void OnWebSocketJSONText(string JSONText)
        {
            try
            {
                string ObjJSONText;

                List <object> PGBaseList = JsonConvert.DeserializeObject <List <object> >(JSONText);
                foreach (var PGBase in PGBaseList)
                {
                    ObjJSONText = PGBase.ToString();
                    PolygonBase pGBase = JsonConvert.DeserializeObject <PolygonBase>(ObjJSONText);

                    switch (pGBase.ev)
                    {
                    case "C":
                        ForexQuote quote = JsonConvert.DeserializeObject <ForexQuote>(ObjJSONText);
                        if (quote != null)
                        {
                            OnForexQuoteEvent?.Invoke(quote);
                        }
                        break;

                    case "CA":
                        ForexAggregate forexAgg = JsonConvert.DeserializeObject <ForexAggregate>(ObjJSONText);
                        if (forexAgg != null)
                        {
                            OnForexAggEvent?.Invoke(forexAgg);
                        }
                        break;

                    case "status":
                        Status StatusIn = JsonConvert.DeserializeObject <Status>(ObjJSONText);
                        HandleStatusMessage(StatusIn);
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (System.Exception ex)
            {
                HandleJSONTextException("websocket_MessageReceived", JSONText, ex);
            }
        }