Skip to content

Instantly share code, notes, and snippets.

@rbmzeum
Created January 28, 2025 10:48
Show Gist options
  • Save rbmzeum/1fd26c37630c5d2deb7c5233c5fe2baa to your computer and use it in GitHub Desktop.
Save rbmzeum/1fd26c37630c5d2deb7c5233c5fe2baa to your computer and use it in GitHub Desktop.
Построение кривой между двумя активами с учётом корреляции
for i in 0..=100 {
// w от -1.0 до 2.0
// let w_start = -1.0;
// let w_end = 2.0;
let w_start = 0.0;
let w_end = 1.0;
let step = (w_end - w_start) / 100.0;
let w = w_start + i as f64 * step;
let data4: Vec<f64> = data1.iter().zip(data2.iter()).map(|(&x, &y)| w*y + (1.0-w)*x).collect();
let m4: f64 = data4.iter().sum::<f64>()/data4.len() as f64;
let e4 = m4.clone();
let d4 = data4.iter().map(|x| (x - m4)*(x - m4)).collect::<Vec<f64>>().into_iter().sum::<f64>()/data4.len() as f64;
let point_d = (e4, d4.sqrt());
chart.draw_series(std::iter::once(
Circle::new(point_d, 4, YELLOW.filled())
// .set_label("Точка Г")
))?;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment