Skip to main content

Module donchian

Module donchian 

Source
Expand description

§Donchian channels

upper[i]  = max(high[i-N+1 ..= i])
lower[i]  = min(low [i-N+1 ..= i])
middle[i] = (upper + lower) / 2

Classic breakout envelope (Turtle-style). Warm-up: first N-1 bars are None.


§Trading perspective

EventHabit
Close > upperUpside breakout screen
Close < lowerDownside breakout screen
Channel widthRange expansion / compression

§Engineering

DonchianParamsdonchian / DonchianStatedonchian_solution.

§Word problem

Highs 11,12,13,14 and lows 9,10,11,12 with N=3. Upper on last bar?

Expect: 14 (max of last three highs 12,13,14).

use finance_solution::stocks::ta::{donchian, DonchianParams};
let h = [11.0, 12.0, 13.0, 14.0];
let l = [9.0, 10.0, 11.0, 12.0];
let s = donchian(&h, &l, DonchianParams::new(3)).unwrap();
assert!((s.upper[3].unwrap() - 14.0).abs() < 1e-12);
assert!((s.lower[3].unwrap() - 10.0).abs() < 1e-12); // min(lows 10,11,12)

Structs§

DonchianBarOutput
DonchianParams
Donchian lookback.
DonchianSeries
DonchianSolution
DonchianState
Incremental Donchian.
ValidatedDonchian

Functions§

donchian
donchian_solution