Skip to content

heikinashi

heikinashi

Classes:

Name Description
HeikinAshi

Heikin-Ashi

HeikinAshi

HeikinAshi(candles: Optional[List[Candle]] = None)

Bases: CandlestickType

Heikin-Ashi

Heikin Ashi is a charting technique that can be used to predict future price movements. It is similar to traditional candlestick charts. However, unlike a regular candlestick chart, the Heikin Ashi chart tries to filter out some of the market noise by smoothing out strong price swings to better identify trend movements in the market.

Sources

https://www.investopedia.com/trading/heikin-ashi-better-candlestick/

Methods:

Name Description
prev_derived

Returns the previous derived Candle

set_candle_refs

Replace CandlestickType Candles to own by reference

transform

Transforms the Candle's into their candlestick type, using the given CalcMode.

Attributes:

Name Type Description
index int

Current derived_candles index off calculation

Source code in hexital/core/candlestick_type.py
def __init__(self, candles: Optional[List[Candle]] = None):
    self.candles = candles if candles else []
    self.derived_candles = WeakList()

index property

index: int

Current derived_candles index off calculation

prev_derived

prev_derived(index: Optional[int] = None) -> Candle | None

Returns the previous derived Candle

Source code in hexital/core/candlestick_type.py
def prev_derived(self, index: Optional[int] = None) -> Candle | None:
    """Returns the previous derived Candle"""
    if not self.derived_candles:
        return None

    if index is not None:
        return self.derived_candles[index]

    if self._derived_idx == 0:
        return None

    return self.derived_candles[self._derived_idx - 1]

set_candle_refs

set_candle_refs(candles: List[Candle])

Replace CandlestickType Candles to own by reference

Source code in hexital/core/candlestick_type.py
def set_candle_refs(self, candles: List[Candle]):
    """Replace CandlestickType Candles to own by reference"""
    self.candles = candles

transform

transform(mode: CalcMode = INSERT, index: Optional[int] = None)

Transforms the Candle's into their candlestick type, using the given CalcMode. INSERT: Fresh transformation, will re-transform all Candles. Slow APPEND: Will transform all Candles at the end that have no derived Candles PREPEND: Will transform all Candles from the start until hitting already Transformed candles

Source code in hexital/core/candlestick_type.py
def transform(self, mode: CalcMode = CalcMode.INSERT, index: Optional[int] = None):
    """Transforms the Candle's into their candlestick type, using the given CalcMode.
    INSERT: Fresh transformation, will re-transform all Candles. Slow
    APPEND: Will transform all Candles at the end that have no derived Candles
    PREPEND: Will transform all Candles from the start until hitting already Transformed candles
    """
    if mode == CalcMode.INSERT:
        start_index = 0
    elif index is not None:
        start_index = index
    else:
        start_index = self._find_transform_index()

    self._derived_idx = len(self.derived_candles) if mode == CalcMode.APPEND else 0

    if mode == CalcMode.INSERT:
        self.derived_candles.reset()

    for index in range(start_index, len(self.candles)):
        candle = self.candles[index]

        candles = self.transform_candle(candle)

        # None Candles never added to derived
        if not candles:
            candle.refs[self.acronym] = None
            continue

        if candles := self._insert_derived_candles(candles):
            candle.refs[self.acronym] = candles
        else:
            break