Expand description
§Trading Sessions
A Rust crate for identifying and verifying trading sessions based on Unix timestamps.
§Getting Started
Add the following to your Cargo.toml
:
[dependencies]
trading_sessions = "0.1.0"
§Features
IdentifyTradingSession
: Determine the trading session from a Unix timestamp.SessionVerification
: Verify if a given session string matches the identified trading session.SessionColumn
: Add a “Session” column to aLazyFrame
based on Unix timestamps.
§Examples
§IdentifyTradingSession
use trading_sessions::IdentifyTradingSession;
let session_identifier = IdentifyTradingSession::new(1708574400);
assert_eq!(session_identifier.identify_trading_session(), "Tokyo");
§SessionVerification
use trading_sessions::SessionVerification;
let verifier = SessionVerification::new(1708574400, "Tokyo".to_string());
assert!(verifier.verify());
§SessionColumn
use polars::prelude::*;
use trading_sessions::SessionColumn;
let df = df! {
"time" => [1708574400, 1708596000, 1708696800]
}.unwrap();
let lazy_frame = df.lazy();
let mut session_column = SessionColumn::new(lazy_frame);
session_column.apply_session_column();
let result_df = session_column.lazyframe.collect().unwrap();
assert_eq!(result_df.column("Session").unwrap().str_value(0).unwrap(), "Tokyo");
§Return Types
Successful operations return a string representing the trading session or a boolean indicating the verification result. Errors are typically handled by the calling code and are dependent on the context in which these functions are used.
§Notes
- The crate assumes all timestamps are in UTC.
- Daylight Saving Time is not considered in the current version.
use polars::prelude::*;
mod trading_sessions;
Structs§
- Identify
Trading Session - Identifies the trading session based on the stored Unix timestamp in seconds.
- Session
Column - Adds a “Session” column to a
LazyFrame
based on Unix timestamps in a “time” column. - Session
Verification - Verifies if the given session string matches the trading session identified by the Unix timestamp.