private void OnCryptoTrade(CryptoTrade trade)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(trade);
            }
            else
            {
                Text = $"Trade: Pair: {trade.pair}, " +
                       $"Price: {trade.p}, Size: {trade.s}, " +
                       $"Trade ID: {trade.i}, Exchange ID: {trade.xt}, " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( trade.t )} EST";
            }
            AppendText(Text);
        }
        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);
        }
        protected void OnLastTrade(LastTrade lastTrade)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(lastTrade);
            }
            else
            {
                Text = $"Trade: Symbol: {lastTrade.symbol}, " +
                       $"Price: {lastTrade.last.price}, Size: {lastTrade.last.size}, " +
                       $"Exchange ID: {lastTrade.last.exchange}, " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( lastTrade.last.timestamp )}";
            }
            AppendText(Text);
        }
        private void OnEquitiesTrade(Trade trade)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(trade);
            }
            else
            {
                Text = $"Trade: Symbol: {trade.sym}, " +
                       $"Price: {trade.p}, Size: {trade.s}, " +
                       $"Trade ID: {trade.i}, Exchange ID: {trade.x}, " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( trade.t )} EST";
            }
            AppendText(Text);
        }
Ejemplo n.º 5
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);
            }
        }
        private void OnCryptoLevel2(CryptoLevel2 cryptoLevel2)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(cryptoLevel2);
            }
            else
            {
                Text = $"Trade: Pair: {cryptoLevel2.pair}, " +
                       $"Bid Prices: {cryptoLevel2.b.ToString()}" +
                       $"Ask Prices: {cryptoLevel2.a.ToString()}, " +
                       $"Exchange ID: {cryptoLevel2.xt}, " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( cryptoLevel2.t )} EST";
            }
            AppendText(Text);
        }
        private void OnForexAgg(ForexAggregate forexAgg)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(forexAgg);
            }
            else
            {
                Text = $"Quote: Pair: {forexAgg.pair}, " +
                       $"Open: {forexAgg.o}, Close: {forexAgg.c}, " +
                       $"High: {forexAgg.h}, Low: {forexAgg.l}, " +
                       $"Volume: {forexAgg.v} EST" +
                       $"Tick Start: {PGBase.UnixTimestampMillisToESTDateTime( forexAgg.s )} EST";
            }
            AppendText(Text);
        }
        protected void OnLastQuote(LastQuote LastQuote)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(LastQuote);
            }
            else
            {
                Text = $"LastQuote: Symbol: {LastQuote.symbol}, " +
                       $"Bid: {LastQuote.last.bidprice}, Bid Size: {LastQuote.last.bidsize}, " +
                       $"Ask: {LastQuote.last.askprice}, Ask Size: {LastQuote.last.asksize}, " +
                       $"Bid ID: {LastQuote.last.bidexchange}, Ask ID: {LastQuote.last.askexchange} " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( LastQuote.last.timestamp )} EST";
            }
            AppendText(Text);
        }
        private void OnEquitiesQuote(Quote quote)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(quote);
            }
            else
            {
                Text = $"Quote: Symbol: {quote.sym}, " +
                       $"Bid: {quote.bp}, Bid Size: {quote.bs}, " +
                       $"Ask: {quote.ap}, Ask Size: {quote.asz}, " +
                       $"Bid ID: {quote.bx}, Ask ID: {quote.ax} " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( quote.t )} EST";
            }
            AppendText(Text);
        }
        private void OnCryptoQuote(CryptoQuote quote)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(quote);
            }
            else
            {
                Text = $"Trade: Pair: {quote.pair}, " +
                       $"Last Trade: {quote.lp}, Last Trade Size: {quote.ls}, " +
                       $"Bid: {quote.bp}, Bid Size: {quote.bs}, " +
                       $"Ask: {quote.ap}, Ask Size: {quote.asz}, " +
                       $"Exchange ID: {quote.xt}, " +
                       $"Exchange Timestamp: {PGBase.UnixTimestampMillisToESTDateTime( quote.t )} EST";
            }
            AppendText(Text);
        }
        private void OnCryptoAgg(CryptoAggregate cryptoAgg)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(cryptoAgg);
            }
            else
            {
                Text = $"Trade: Pair: {cryptoAgg.pair}, " +
                       $"Open: {cryptoAgg.o}, Open Exchange: {cryptoAgg.ox}, " +
                       $"High: {cryptoAgg.h}, High Exchange: {cryptoAgg.hx}, " +
                       $"Low: {cryptoAgg.l}, Low Exchange: {cryptoAgg.lx}, " +
                       $"Close: {cryptoAgg.cl}, Close Exchange: {cryptoAgg.cx}, " +
                       $"Volume: {cryptoAgg.v}, " +
                       $"Tick Start: {PGBase.UnixTimestampMillisToESTDateTime( cryptoAgg.s )} EST" +
                       $"Tick End: {PGBase.UnixTimestampMillisToESTDateTime( cryptoAgg.e )} EST";
            }
            AppendText(Text);
        }
Ejemplo n.º 12
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 "Q":
                        Quote quote = JsonConvert.DeserializeObject <Quote>(ObjJSONText);
                        if (quote != null)
                        {
                            OnQuoteEvent?.Invoke(quote);
                        }
                        break;

                    case "T":
                        Trade trade = JsonConvert.DeserializeObject <Trade>(ObjJSONText);
                        if (trade != null)
                        {
                            OnTradeEvent?.Invoke(trade);
                        }
                        break;

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

                    case "A":
                        ASecond ASecRef = JsonConvert.DeserializeObject <ASecond>(ObjJSONText);
                        if (ASecRef != null)
                        {
                            OnASecondEvent?.Invoke(ASecRef);
                        }
                        break;

                    case "AM":
                        AMinute AMinRef = JsonConvert.DeserializeObject <AMinute>(ObjJSONText);
                        if (AMinRef != null)
                        {
                            OnAMinuteEvent?.Invoke(AMinRef);
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (System.Exception ex)
            {
                HandleJSONTextException("websocket_MessageReceived", JSONText, ex);
            }
        }
Ejemplo n.º 13
0
        // =====>>>>>>>>>> JSONText Message Received

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

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

                    switch (PGBaseRef.ev)
                    {
                    case "Q":
                        Quote QuoteRef = JsonConvert.DeserializeObject <Quote>(ObjJSONText);
                        if (QuoteRef != null)
                        {
                            OnQuoteEvent?.Invoke(QuoteRef);
                        }
                        break;

                    case "T":
                        Trade TradeRef = JsonConvert.DeserializeObject <Trade>(ObjJSONText);
                        if (TradeRef != null)
                        {
                            OnTradeEvent?.Invoke(TradeRef);
                        }
                        break;

                    case "status":
                        Status StatusRef = JsonConvert.DeserializeObject <Status>(ObjJSONText);
                        if (StatusRef != null)
                        {
                            if (StatusRef.status.Contains(PGStatusMessages.AuthSuccess))
                            {
                                if (IsReconnect)
                                {
                                    FireOnPGRestartedEvent();
                                }

                                FireOnPGReadyEvent(IsReconnect);
                            }

                            OnPGStatusEvent?.Invoke(StatusRef.status, StatusRef.message);
                        }
                        break;

                    case "A":
                        ASecond ASecRef = JsonConvert.DeserializeObject <ASecond>(ObjJSONText);
                        if (ASecRef != null)
                        {
                            OnASecondEvent?.Invoke(ASecRef);
                        }
                        break;

                    case "AM":
                        AMinute AMinRef = JsonConvert.DeserializeObject <AMinute>(ObjJSONText);
                        if (AMinRef != null)
                        {
                            OnAMinuteEvent?.Invoke(AMinRef);
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (System.Exception ex)
            {
                HandleJSONTextException("websocket_MessageReceived", JSONText, ex);
            }
        }
Ejemplo n.º 14
0
 public StatusValues(PGBase pGBase)
 {
     StatusValuesObjs.Add(this);
 }
Ejemplo n.º 15
0
 public RTDataRec(string Symbol, string ClusterName)
 {
     this.Symbol      = PGBase.GetSymbolOnly(Symbol);
     this.ClusterName = ClusterName;
     _PriceTick       = _AskTick = _BidTick = _ChangeTick = TickType.FlatTick;
 }
Ejemplo n.º 16
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 "XQ":
                        CryptoQuote quote = JsonConvert.DeserializeObject <CryptoQuote>(ObjJSONText);
                        if (quote != null)
                        {
                            OnCryptoQuoteEvent?.Invoke(quote);
                        }
                        break;

                    case "XT":
                        CryptoTrade trade = JsonConvert.DeserializeObject <CryptoTrade>(ObjJSONText);
                        if (trade != null)
                        {
                            OnCryptoTradeEvent?.Invoke(trade);
                        }
                        break;

                    case "XA":
                        CryptoAggregate cryptoAgg = JsonConvert.DeserializeObject <CryptoAggregate>(ObjJSONText);
                        if (cryptoAgg != null)
                        {
                            OnCryptoAggEvent?.Invoke(cryptoAgg);
                        }
                        break;

                    case "XS":
                        CryptoSIP CryptoSIPRef = JsonConvert.DeserializeObject <CryptoSIP>(ObjJSONText);
                        if (CryptoSIPRef != null)
                        {
                            OnCryptoSIPEvent?.Invoke(CryptoSIPRef);
                        }
                        break;

                    case "XL2":
                        CryptoLevel2 cryptoLevel2 = JsonConvert.DeserializeObject <CryptoLevel2>(ObjJSONText);
                        if (cryptoLevel2 != null)
                        {
                            OnCryptoLevel2Event?.Invoke(cryptoLevel2);
                        }
                        break;

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

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