Skip to content

Commit

Permalink
#22 Type of ZigZagFilter() was changed to Pandas Dataframe instead of…
Browse files Browse the repository at this point in the history
… dict
  • Loading branch information
Tim55667757 committed Nov 25, 2023
1 parent 61f6389 commit 0d8c299
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions pricegenerator/PriceGenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -542,15 +542,15 @@ def GetTrend(firstClose: float, lastClose: float, trendDeviation: float = 0.005)
return trend

@staticmethod
def ZigZagFilter(datetimes: pd.Series, values: Union[pd.Series, list], deviation: float) -> dict:
def ZigZagFilter(datetimes: pd.Series, values: Union[pd.Series, list], deviation: float) -> pd.DataFrame:
"""
This method filter input data as Zig-Zag indicator: when input value of candlestick price (e.g. close price)
is difference with next values with define percent then this point is a point of Zig-Zag indicator.
:param datetimes: input Pandas Series with datetime values.
:param values: input Pandas Series or list, e.g. list of closes values of candlesticks.
:param deviation: float number in `[0, 1]` interval is a relative difference between `i` and `i + 1` values to set as Zig-Zag point.
:return: dict with Pandas Series filtered data `{"datetimes": filtered_datetimes, "filtered": filtered_values}`.
:return: Pandas DataFrame with two Series of filtered data `"datetimes": filtered_datetimes` and `"filtered": filtered_values`.
"""
filteredPoints = [True]
prev = values[0]
Expand All @@ -563,7 +563,7 @@ def ZigZagFilter(datetimes: pd.Series, values: Union[pd.Series, list], deviation
else:
filteredPoints.append(False)

return {"datetimes": datetimes[filteredPoints], "filtered": values[filteredPoints]}
return pd.DataFrame(data={"datetimes": datetimes[filteredPoints], "filtered": values[filteredPoints]}, columns=["datetimes", "filtered"])

def GetStatistics(self) -> list[str]:
"""
Expand Down

0 comments on commit 0d8c299

Please sign in to comment.