public CryptoLastTrade RequestCryptoLastTrade(string Symbol) { CryptoLastTrade lastTrade = null; try { string Url = $@"{PolygonUrl}/v1/last/crypto/{Symbol}"; Debug.WriteLine($"Request CryptoLastQuote: {Url}"); Url = AddApiKey(Url); string JSONText = JsonSecureGet(Url); lastTrade = JsonConvert.DeserializeObject <CryptoLastTrade>(JSONText); if (lastTrade != null) { OnCryptoLastTradeEvent?.Invoke(lastTrade); } } catch (Exception ex) { string Message = $"RequestCryptoLastTrade: error {ex.Message}"; FireOnExecJsonSecureGetEvent(Message); HandleJSONTextException("RequestCryptoLastTrade", "", ex); } return(lastTrade); }
private void RequestLast(RTDataRec rtDataRec) { AppendText($"Request Last for {rtDataRec.Symbol}"); switch (rtDataRec.ClusterName) { case PGClusterNames.Equities: LastTrade lastTrade = PGApi.Equities.RequestLastTrade(rtDataRec.Symbol); if (lastTrade != null) { // check invalid symbol if (lastTrade.status == PGStatusMessages.NotFound) { HandleInvalidSymbol(rtDataRec); } else if (lastTrade != null && lastTrade.last != null) { rtDataRec.Price = lastTrade.last.price; rtDataRec.LastSize = lastTrade.last.size; } } LastQuote LastQuote = PGApi.Equities.RequestLastQuote(rtDataRec.Symbol); if (LastQuote != null) { if (LastQuote != null && LastQuote.last != null) { rtDataRec.Ask = LastQuote.last.askprice; rtDataRec.Bid = LastQuote.last.bidprice; } } break; case PGClusterNames.Forex: ForexLastQuote ForexLastquote = PGApi.Forex.RequestForexLastQuote(rtDataRec.Symbol); if (ForexLastquote != null) { // check invalid symbol if (ForexLastquote.status == PGStatusMessages.NotFound) { HandleInvalidSymbol(rtDataRec); } else if (ForexLastquote != null && ForexLastquote.last != null) { rtDataRec.Ask = ForexLastquote.last.ask; rtDataRec.Bid = ForexLastquote.last.bid; } } break; case PGClusterNames.Crypto: CryptoLastTrade CryptoLasttrade = PGApi.Crypto.RequestCryptoLastTrade(rtDataRec.Symbol); if (CryptoLasttrade != null) { // check invalid symbol if (CryptoLasttrade.status == PGStatusMessages.NotFound) { HandleInvalidSymbol(rtDataRec); } else if (CryptoLasttrade != null && CryptoLasttrade.last != null) { rtDataRec.Price = CryptoLasttrade.last.price; rtDataRec.CryptoSize = CryptoLasttrade.last.size; } } break; default: throw new Exception($"Unknown ClusterName: {rtDataRec.ClusterName}"); } // get Previous values PGClusterBase Cluster = PGApi.GetPGCluster(rtDataRec.ClusterName); if (Cluster != null) { Cluster.RequestPreviousClose(rtDataRec.Symbol); Cluster.RequestDailyOpenClose(rtDataRec.Symbol); } }