@@ -20,7 +20,7 @@ use std::{
20
20
str:: FromStr ,
21
21
} ;
22
22
23
- use databento:: dbn;
23
+ use databento:: dbn:: { self } ;
24
24
use nautilus_core:: { datetime:: NANOSECONDS_IN_SECOND , time:: UnixNanos } ;
25
25
use nautilus_model:: {
26
26
data:: {
@@ -630,13 +630,19 @@ pub fn decode_ohlcv_msg(
630
630
let ts_event = msg. hd . ts_event ;
631
631
let ts_init = cmp:: max ( ts_init, ts_event) + ts_event_adjustment;
632
632
633
+ // Adjust raw prices by a display factor
634
+ let mut display_factor = 1 ;
635
+ if instrument_id. venue . value == "GLBX" {
636
+ display_factor = 100 ;
637
+ } ;
638
+
633
639
let bar = Bar :: new (
634
640
bar_type,
635
- Price :: from_raw ( msg. open / 100 , price_precision) ?, // TODO: adjust for display factor
636
- Price :: from_raw ( msg. high / 100 , price_precision) ?, // TODO: adjust for display factor
637
- Price :: from_raw ( msg. low / 100 , price_precision) ?, // TODO: adjust for display factor
638
- Price :: from_raw ( msg. close / 100 , price_precision) ?, // TODO: adjust for display factor
639
- Quantity :: from_raw ( msg. volume * FIXED_SCALAR as u64 , 0 ) ?, // TODO: adjust for display factor
641
+ Price :: from_raw ( msg. open / display_factor , price_precision) ?,
642
+ Price :: from_raw ( msg. high / display_factor , price_precision) ?,
643
+ Price :: from_raw ( msg. low / display_factor , price_precision) ?,
644
+ Price :: from_raw ( msg. close / display_factor , price_precision) ?,
645
+ Quantity :: from_raw ( msg. volume * FIXED_SCALAR as u64 , 0 ) ?,
640
646
ts_event,
641
647
ts_init,
642
648
) ;
0 commit comments