Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support BinanceBar for Rust parquet #2081

Open
miller-moore opened this issue Nov 29, 2024 · 4 comments
Open

Support BinanceBar for Rust parquet #2081

miller-moore opened this issue Nov 29, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@miller-moore
Copy link
Contributor

Bug Report

Expected Behavior

Expect ParquetDataCatalog to support the BinanceBar data type.

Actual Behavior

See issue title

Steps to Reproduce the Problem

  1. Run a backtest with a BinanceBar type in BacktestDataConfig

Specifications

  • OS platform: macOS-15.1-arm64-arm-64bit
  • Python version: 3.12.2
  • nautilus_trader version: 1.206.0
@miller-moore miller-moore added the bug Something isn't working label Nov 29, 2024
@cjdsellers cjdsellers changed the title Error running backtest: unsupported data_cls for Rust parquet, was BinanceBar Support BinanceBar for Rust parquet Nov 29, 2024
@cjdsellers cjdsellers added enhancement New feature or request and removed bug Something isn't working labels Nov 29, 2024
@cjdsellers
Copy link
Member

Hi @miller-moore

Thanks for the report.

We don't currently have an Arrow schema for BinanceBar implemented in Rust. These are required to work with the DataFusion streaming backend, current implementations are here. So it's only expected streaming from Rust will work for these built-in types for now, and BinanceBar is considered a custom data type.

@miller-moore
Copy link
Contributor Author

Ok. In that case, is there a different way to get backtesting to work with BinanceBar? In other words, is the DataFusion backend required for backtesting or is there a different backend or a non-rust workaround?

@cjdsellers
Copy link
Member

You could add the data directly to a BacktestEngine with the low-level API.

Or, I see we do actually define an Arrow schema on the Python side. So I think it's possible to access these from the catalog, but the catch is it may only be possible as a one-shot backtest (not streaming).

@miller-moore
Copy link
Contributor Author

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants