greed 0.5.2

A rust tool to automate trades 📈
Documentation
use crate::platform::bar::bar_request::BarRequest;
use apca::data::v2::bars::Adjustment::Split;
use apca::data::v2::bars::ListReq;
use apca::data::v2::Feed;

impl From<BarRequest> for ListReq {
    fn from(value: BarRequest) -> Self {
        Self {
            symbol: value.symbol.to_string(),
            limit: value.limit,
            start: value.start,
            end: value.end,
            timeframe: value.timeframe.into(),
            adjustment: Some(Split),
            feed: Some(Feed::IEX),
            page_token: None,
            _non_exhaustive: (),
        }
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::asset::AssetSymbol;
    use crate::platform::bar::time_frame::TimeFrame;
    use apca::data::v2::Feed::IEX;
    use chrono::{TimeZone, Utc};

    #[test]
    fn into_alpaca() {
        let start_time = Utc.timestamp_nanos(0);
        let end_time = Utc.timestamp_nanos(1000);
        let request = BarRequest {
            symbol: AssetSymbol::new("VTI"),
            limit: Some(100),
            start: start_time,
            end: end_time,
            timeframe: TimeFrame::OneDay,
        };
        let alpaca_request: ListReq = request.into();
        let expected = ListReq {
            symbol: "VTI".to_string(),
            limit: Some(100),
            start: start_time,
            end: end_time,
            timeframe: TimeFrame::OneDay.into(),
            adjustment: Some(Split),
            feed: Some(IEX),
            page_token: None,
            _non_exhaustive: (),
        };
        assert_eq!(alpaca_request, expected)
    }
}