From 195b8d30f14a47657fa0ab8974cb519d4c53676b Mon Sep 17 00:00:00 2001 From: George Hill Date: Wed, 23 Oct 2024 13:27:30 +0100 Subject: [PATCH] refine quote parsing --- nautilus_core/persistence/src/arrow/quote.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nautilus_core/persistence/src/arrow/quote.rs b/nautilus_core/persistence/src/arrow/quote.rs index 894a78432236..dd846d116197 100644 --- a/nautilus_core/persistence/src/arrow/quote.rs +++ b/nautilus_core/persistence/src/arrow/quote.rs @@ -152,8 +152,9 @@ impl DecodeFromRecordBatch for QuoteTick { let ts_init = ts_init_values.value(i).into(); let mut instrument_id_ = instrument_id; - if !instrument_id.symbol.as_str().ends_with("IDEALPRO=CASH") { - + let symbol = instrument_id.symbol.as_str(); + let is_currency_pair = symbol.ends_with("CASH") || symbol.ends_with("IND"); + if !is_currency_pair { let mut index: usize = ts_event .as_u64() @@ -161,8 +162,12 @@ impl DecodeFromRecordBatch for QuoteTick { [4..6] .parse() .expect("Not a valid number"); - + index -= 1; + if index >= letter_months.len() { + panic!("index < letter_months: index is {:?} {:?}", index, instrument_id) + } + assert!(index < letter_months.len()); let letter = letter_months[index]; let year = &ts_event.as_u64().to_string()[0..4];