Source code for backtrader.indicators.contrib.close_line_cci
#!/usr/bin/env python
"""Functional-test indicators migrated to contrib.
Generated from a single functional strategy module to preserve file-local
helper functions and constants without cross-test name collisions.
"""
from .. import (
Indicator,
MeanDev,
MovAv,
)
__all__ = [
"CloseLineCCI",
]
[docs]
class CloseLineCCI(Indicator):
"""Custom CCI indicator designed to evaluate simple single close lines instead of HLC.
Lines:
cci (Line): Output Commodity Channel Index line.
"""
lines = ("cci",)
params = (
("period", 20),
("factor", 0.015),
("movav", MovAv.Simple),
)
def __init__(self):
"""Initialize and calculate close-based CCI indicator components."""
tp = self.data
tpmean = self.p.movav(tp, period=self.p.period)
meandev = MeanDev(tp, tpmean, period=self.p.period)
self.lines.cci = (tp - tpmean) / (self.p.factor * meandev)