Skip to content

Commit

Permalink
breakaway
Browse files Browse the repository at this point in the history
  • Loading branch information
m5l14i11 committed Jul 31, 2023
1 parent 221190d commit c5719da
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
56 changes: 56 additions & 0 deletions ta_lib/patterns/src/breakaway.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
use core::series::Series;

pub fn bullish(open: &[f64], close: &[f64]) -> Vec<bool> {
let open = Series::from(open);
let close = Series::from(close);

(close.gt_series(&open.shift(3))
& close.gt_series(&open)
& close.shift(1).lt_series(&open.shift(1))
& close.shift(2).lt_series(&open.shift(2))
& close.shift(3).lt_series(&open.shift(3))
& close.shift(4).lt_series(&open.shift(4))
& open.shift(3).lt_series(&close.shift(4)))
.into()
}

pub fn bearish(open: &[f64], close: &[f64]) -> Vec<bool> {
let open = Series::from(open);
let close = Series::from(close);

(close.lt_series(&open.shift(3))
& close.lt_series(&open)
& close.shift(1).gt_series(&open.shift(1))
& close.shift(2).gt_series(&open.shift(2))
& close.shift(3).gt_series(&open.shift(3))
& close.shift(4).gt_series(&open.shift(4))
& open.shift(3).gt_series(&close.shift(4)))
.into()
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_breakaway_bullish() {
let open = vec![4.0, 4.0, 4.0, 4.0, 5.0];
let close = vec![5.0, 4.0, 3.0, 4.0, 6.0];
let expected = vec![false, false, false, false, false];

let result = bullish(&open, &close);

assert_eq!(result, expected);
}

#[test]
fn test_breakaway_bearish() {
let open = vec![4.0, 4.0, 4.0, 6.0, 5.0];
let close = vec![5.0, 4.0, 5.0, 6.0, 4.0];
let expected = vec![false, false, false, false, false];

let result = bearish(&open, &close);

assert_eq!(result, expected);
}
}
1 change: 1 addition & 0 deletions ta_lib/patterns/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
pub mod barrier;
pub mod blockade;
pub mod bottle;
pub mod breakaway;
pub mod counterattack;
pub mod doji;
pub mod double_doji;
Expand Down

0 comments on commit c5719da

Please sign in to comment.