diff --git a/ta_lib/volatility/Cargo.toml b/ta_lib/volatility/Cargo.toml
new file mode 100644
index 00000000..cffb9c66
--- /dev/null
+++ b/ta_lib/volatility/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "volatility"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+statistics = { path = "../statistics" }
+overlap = { path = "../overlap" }
\ No newline at end of file
diff --git a/ta_lib/volatility/src/bbands.rs b/ta_lib/volatility/src/bbands.rs
new file mode 100644
index 00000000..d7e9d012
--- /dev/null
+++ b/ta_lib/volatility/src/bbands.rs
@@ -0,0 +1,110 @@
+use overlap::sma::sma;
+use statistics::stddev::std_dev;
+
+pub fn bbands(
+ data: &[f64],
+ period: usize,
+ factor: usize,
+) -> (Vec