Skip to content

Commit 7beeeb8

Browse files
committed
Fix line length
1 parent 990f48f commit 7beeeb8

File tree

1 file changed

+95
-81
lines changed

1 file changed

+95
-81
lines changed

pyindicators/indicators/adx.py

Lines changed: 95 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
import pandas as pd
88

99
from pyindicators.exceptions import PyIndicatorException
10-
11-
from .utils import pad_zero_values_pandas, pad_zero_values_polars
10+
from pyindicators.utils import pad_zero_values_pandas
1211

1312

1413
def polars_ewm_mean_via_pandas(column: pl.Series, alpha: float) -> pl.Series:
@@ -41,12 +40,12 @@ def calculate_adx_pandas(
4140
copy_df['H-pH'] = copy_df['High'] - copy_df['High'].shift(1)
4241
copy_df['pL-L'] = copy_df['Low'].shift(1) - copy_df['Low']
4342
copy_df['+DI'] = np.where(
44-
(copy_df['H-pH'] > copy_df['pL-L']) & (copy_df['H-pH']>0),
43+
(copy_df['H-pH'] > copy_df['pL-L']) & (copy_df['H-pH'] > 0),
4544
copy_df['H-pH'],
4645
0.0
4746
)
4847
copy_df['-DI'] = np.where(
49-
(copy_df['H-pH'] < copy_df['pL-L']) & (copy_df['pL-L']>0),
48+
(copy_df['H-pH'] < copy_df['pL-L']) & (copy_df['pL-L'] > 0),
5049
copy_df['pL-L'],
5150
0.0
5251
)
@@ -60,7 +59,10 @@ def calculate_adx_pandas(
6059
del copy_df['S+DM'], copy_df['S-DM']
6160

6261
# ADX
63-
copy_df['DX'] = (np.abs(copy_df['+DMI'] - copy_df['-DMI'])/(copy_df['+DMI'] + copy_df['-DMI']))*100
62+
copy_df['DX'] = (
63+
np.abs(copy_df['+DMI'] - copy_df['-DMI'])/(copy_df['+DMI']
64+
+ copy_df['-DMI'])
65+
)*100
6466
copy_df['ADX'] = copy_df['DX'].ewm(alpha=alpha, adjust=False).mean()
6567
del copy_df['DX'], copy_df['ATR'], copy_df['TR']
6668
copy_df = pad_zero_values_pandas(
@@ -130,7 +132,8 @@ def adx(
130132

131133
if not all(col in data.columns for col in required_columns):
132134
raise PyIndicatorException(
133-
f"Input DataFrame must contain the following columns: {required_columns}"
135+
"Input DataFrame must contain the " +
136+
f"following columns: {required_columns}"
134137
)
135138

136139
if len(data) < period:
@@ -172,78 +175,89 @@ def adx(
172175

173176
# copy_df = data.clone()
174177

175-
# # True Range (TR)
176-
# copy_df = copy_df.with_columns([
177-
# (pl.col("High") - pl.col("Low")).alias("H-L"),
178-
# (pl.col("High") - pl.col("Close").shift(1).fill_null(0)).abs().alias("H-C"),
179-
# (pl.col("Low") - pl.col("Close").shift(1).fill_null(0)).abs().alias("L-C")
180-
# ])
181-
182-
# copy_df = copy_df.with_columns([
183-
# pl.col("H-L").fill_null(0).alias("H-L"),
184-
# pl.col("H-C").fill_null(0).alias("H-C"),
185-
# pl.col("L-C").fill_null(0).alias("L-C")
186-
# ])
187-
188-
# copy_df = copy_df.with_columns(
189-
# pl.max_horizontal(["H-L", "H-C", "L-C"]).alias("TR")
190-
# ).drop(["H-L", "H-C", "L-C"])
191-
192-
# # ATR using Pandas
193-
# copy_df = copy_df.with_columns(
194-
# polars_ewm_mean_via_pandas(copy_df["TR"].fill_nan(0), alpha).alias("ATR")
195-
# )
196-
197-
# # +-DX calculation
198-
# copy_df = copy_df.with_columns([
199-
# (pl.col("High") - pl.col("High").shift(1).fill_null(0)).alias("H-pH"),
200-
# (pl.col("Low").shift(1).fill_null(0) - pl.col("Low")).alias("pL-L")
201-
# ])
202-
203-
# copy_df = copy_df.with_columns([
204-
# pl.when((pl.col("H-pH") > pl.col("pL-L")) & (pl.col("H-pH") > 0))
205-
# .then(pl.col("H-pH")).otherwise(0.0).alias("+DI"),
206-
# pl.when((pl.col("H-pH") < pl.col("pL-L")) & (pl.col("pL-L") > 0))
207-
# .then(pl.col("pL-L")).otherwise(0.0).alias("-DI")
208-
# ]).drop(["H-pH", "pL-L"])
209-
210-
# # Smooth DI using Pandas
211-
# copy_df = copy_df.with_columns([
212-
# polars_ewm_mean_via_pandas(copy_df["+DI"].fill_nan(0), alpha).alias("S+DM"),
213-
# polars_ewm_mean_via_pandas(copy_df["-DI"].fill_nan(0), alpha).alias("S-DM")
214-
# ])
215-
216-
# copy_df = copy_df.with_columns([
217-
# ((pl.col("S+DM") / pl.col("ATR")) * 100).alias("+DMI"),
218-
# ((pl.col("S-DM") / pl.col("ATR")) * 100).alias("-DMI")
219-
# ]).drop(["S+DM", "S-DM"])
220-
221-
# # ADX
222-
# copy_df = copy_df.with_columns(
223-
# pl.when((pl.col("+DMI") + pl.col("-DMI")) > 0)
224-
# .then(((pl.col("+DMI") - pl.col("-DMI")).abs()) / (pl.col("+DMI") + pl.col("-DMI")) * 100)
225-
# .otherwise(0.0).alias("DX")
226-
# )
227-
228-
# copy_df = copy_df.with_columns(
229-
# polars_ewm_mean_via_pandas(copy_df["DX"].fill_nan(0), alpha).alias("ADX")
230-
# ).drop(["DX", "ATR", "TR"])
231-
232-
# # Fill NaNs
233-
# copy_df = copy_df.with_columns([
234-
# pl.col("ADX").fill_nan(0).alias("ADX"),
235-
# pl.col("+DMI").fill_nan(0).alias("+DMI"),
236-
# pl.col("-DMI").fill_nan(0).alias("-DMI")
237-
# ])
238-
239-
# # Copy to original
240-
# data = data.with_columns([
241-
# copy_df["ADX"].alias(adx_result_column),
242-
# copy_df["+DMI"].alias(di_plus_result_column),
243-
# copy_df["-DMI"].alias(di_minus_result_column)
244-
# ])
245-
246-
# # Padding zeros
247-
# data = pad_zero_values_polars(data, column=di_plus_result_column, period=period)
248-
# data = pad_zero_values_polars(data, column=di_minus_result_column, period=period)
249-
# data = pad_zero_values_polars(data, column=adx_result_column, period=period)
178+
# # True Range (TR)
179+
# copy_df = copy_df.with_columns([
180+
# (pl.col("High") - pl.col("Low")).alias("H-L"),
181+
# (pl.col("High") - pl.col("Close").shift(1)
182+
# .fill_null(0)).abs().alias("H-C"),
183+
# (pl.col("Low") - pl.col("Close").shift(1)
184+
# .fill_null(0)).abs().alias("L-C")
185+
# ])
186+
187+
# copy_df = copy_df.with_columns([
188+
# pl.col("H-L").fill_null(0).alias("H-L"),
189+
# pl.col("H-C").fill_null(0).alias("H-C"),
190+
# pl.col("L-C").fill_null(0).alias("L-C")
191+
# ])
192+
193+
# copy_df = copy_df.with_columns(
194+
# pl.max_horizontal(["H-L", "H-C", "L-C"]).alias("TR")
195+
# ).drop(["H-L", "H-C", "L-C"])
196+
197+
# # ATR using Pandas
198+
# copy_df = copy_df.with_columns(
199+
# polars_ewm_mean_via_pandas(copy_df["TR"]
200+
# .fill_nan(0), alpha).alias("ATR")
201+
# )
202+
203+
# # +-DX calculation
204+
# copy_df = copy_df.with_columns([
205+
# (pl.col("High") - pl.col("High").shift(1)
206+
# .fill_null(0)).alias("H-pH"),
207+
# (pl.col("Low").shift(1).fill_null(0) - pl.col("Low")).alias("pL-L")
208+
# ])
209+
210+
# copy_df = copy_df.with_columns([
211+
# pl.when((pl.col("H-pH") > pl.col("pL-L")) & (pl.col("H-pH") > 0))
212+
# .then(pl.col("H-pH")).otherwise(0.0).alias("+DI"),
213+
# pl.when((pl.col("H-pH") < pl.col("pL-L")) & (pl.col("pL-L") > 0))
214+
# .then(pl.col("pL-L")).otherwise(0.0).alias("-DI")
215+
# ]).drop(["H-pH", "pL-L"])
216+
217+
# # Smooth DI using Pandas
218+
# copy_df = copy_df.with_columns([
219+
# polars_ewm_mean_via_pandas(copy_df["+DI"]
220+
# .fill_nan(0), alpha).alias("S+DM"),
221+
# polars_ewm_mean_via_pandas(copy_df["-DI"]
222+
# .fill_nan(0), alpha).alias("S-DM")
223+
# ])
224+
225+
# copy_df = copy_df.with_columns([
226+
# ((pl.col("S+DM") / pl.col("ATR")) * 100).alias("+DMI"),
227+
# ((pl.col("S-DM") / pl.col("ATR")) * 100).alias("-DMI")
228+
# ]).drop(["S+DM", "S-DM"])
229+
230+
# # ADX
231+
# copy_df = copy_df.with_columns(
232+
# pl.when((pl.col("+DMI") + pl.col("-DMI")) > 0)
233+
# .then(((pl.col("+DMI") - pl.col("-DMI"))
234+
# .abs()) / (pl.col("+DMI") + pl.col("-DMI")) * 100)
235+
# .otherwise(0.0).alias("DX")
236+
# )
237+
238+
# copy_df = copy_df.with_columns(
239+
# polars_ewm_mean_via_pandas(copy_df["DX"]
240+
# .fill_nan(0), alpha).alias("ADX")
241+
# ).drop(["DX", "ATR", "TR"])
242+
243+
# # Fill NaNs
244+
# copy_df = copy_df.with_columns([
245+
# pl.col("ADX").fill_nan(0).alias("ADX"),
246+
# pl.col("+DMI").fill_nan(0).alias("+DMI"),
247+
# pl.col("-DMI").fill_nan(0).alias("-DMI")
248+
# ])
249+
250+
# # Copy to original
251+
# data = data.with_columns([
252+
# copy_df["ADX"].alias(adx_result_column),
253+
# copy_df["+DMI"].alias(di_plus_result_column),
254+
# copy_df["-DMI"].alias(di_minus_result_column)
255+
# ])
256+
257+
# # Padding zeros
258+
# data = pad_zero_values_polars(
259+
# data, column=di_plus_result_column, period=period)
260+
# data = pad_zero_values_polars(
261+
# data, column=di_minus_result_column, period=period)
262+
# data = pad_zero_values_polars
263+
# (data, column=adx_result_column, period=period)

0 commit comments

Comments
 (0)