siglab-py 0.5.33__py3-none-any.whl → 0.5.36__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of siglab-py might be problematic. Click here for more details.

@@ -141,7 +141,6 @@ def compute_candles_stats(
141
141
  close_short_periods_ewm = pd_candles['close'].ewm(span=int(sliding_window_how_many_candles/slow_fast_interval_ratio), adjust=False)
142
142
  close_long_periods_ewm = pd_candles['close'].ewm(span=sliding_window_how_many_candles, adjust=False)
143
143
 
144
-
145
144
  pd_candles['pct_change_close'] = pd_candles['close'].pct_change() * 100
146
145
  pd_candles['sma_short_periods'] = close_short_periods_rolling.mean()
147
146
  pd_candles['sma_long_periods'] = close_long_periods_rolling.mean()
@@ -201,29 +200,27 @@ def compute_candles_stats(
201
200
  pd_candles.loc[bearish_ema_crosses, 'ema_cross'] = -1
202
201
  bullish_indices = pd.Series(pd_candles.index.where(pd_candles['ema_cross'] == 1), index=pd_candles.index).astype('Int64')
203
202
  bearish_indices = pd.Series(pd_candles.index.where(pd_candles['ema_cross'] == -1), index=pd_candles.index).astype('Int64')
204
- pd_candles['ema_bullish_cross_last_id'] = bullish_indices.rolling(window=pd_candles.shape[0]).max()
205
- pd_candles['ema_bearish_cross_last_id'] = bearish_indices.rolling(window=pd_candles.shape[0]).min()
206
- pd_candles['ema_bullish_cross_last_id'].astype('Int64')
207
- pd_candles['ema_bearish_cross_last_id'].astype('Int64')
208
- pd_candles['ema_cross_last'] = np.where(
209
- (pd_candles['ema_bullish_cross_last_id'].notna()) & (
210
- pd_candles['ema_bearish_cross_last_id'].isna() |
211
- (pd_candles['ema_bullish_cross_last_id'] > pd_candles['ema_bearish_cross_last_id'])
212
- ),
213
- 'bullish',
214
- np.where(
215
- (pd_candles['ema_bearish_cross_last_id'].notna()) & (
216
- pd_candles['ema_bullish_cross_last_id'].isna() |
217
- (pd_candles['ema_bearish_cross_last_id'] > pd_candles['ema_bullish_cross_last_id'])
218
- ),
219
- 'bearish',
220
- None # type: ignore
221
- )
222
- )
223
- pd_candles['ema_cross_last'] = pd_candles['ema_cross_last'].where(
224
- pd_candles['ema_bullish_cross_last_id'].isna() & pd_candles['ema_bearish_cross_last_id'].isna(),
225
- None
226
- )
203
+ pd_candles['ema_bullish_cross_last_id'] = bullish_indices.rolling(window=pd_candles.shape[0], min_periods=1).max().astype('Int64')
204
+ pd_candles['ema_bearish_cross_last_id'] = bearish_indices.rolling(window=pd_candles.shape[0], min_periods=1).max().astype('Int64')
205
+ conditions = [
206
+ (pd_candles['ema_bullish_cross_last_id'].notna() &
207
+ pd_candles['ema_bearish_cross_last_id'].notna() &
208
+ (pd_candles['ema_bullish_cross_last_id'] > pd_candles['ema_bearish_cross_last_id'])),
209
+
210
+ (pd_candles['ema_bullish_cross_last_id'].notna() &
211
+ pd_candles['ema_bearish_cross_last_id'].notna() &
212
+ (pd_candles['ema_bearish_cross_last_id'] > pd_candles['ema_bullish_cross_last_id'])),
213
+
214
+ (pd_candles['ema_bullish_cross_last_id'].notna() &
215
+ pd_candles['ema_bearish_cross_last_id'].isna()),
216
+
217
+ (pd_candles['ema_bearish_cross_last_id'].notna() &
218
+ pd_candles['ema_bullish_cross_last_id'].isna())
219
+ ]
220
+ choices = ['bullish', 'bearish', 'bullish', 'bearish']
221
+ pd_candles['ema_cross_last'] = np.select(conditions, choices, default=None) # type: ignore
222
+ pd_candles.loc[bullish_ema_crosses, 'ema_cross'] = 'bullish'
223
+ pd_candles.loc[bearish_ema_crosses, 'ema_cross'] = 'bearish'
227
224
 
228
225
  pd_candles['max_short_periods'] = close_short_periods_rolling.max()
229
226
  pd_candles['max_long_periods'] = close_long_periods_rolling.max()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siglab_py
3
- Version: 0.5.33
3
+ Version: 0.5.36
4
4
  Summary: Market data fetches, TA calculations and generic order gateway.
5
5
  Author: r0bbarh00d
6
6
  Author-email: r0bbarh00d <r0bbarh00d@gmail.com>
@@ -26,14 +26,14 @@ siglab_py/tests/unit/analytic_util_tests.py,sha256=5Vic-lwuGvgLfjcP1gmrdBizMn0hX
26
26
  siglab_py/tests/unit/market_data_util_tests.py,sha256=A1y83itISmMJdn6wLpfwcr4tGola8wTf1D1xbelMvgw,2026
27
27
  siglab_py/tests/unit/trading_util_tests.py,sha256=9DZmTZlW55lPtNfTCukgDdiyBiMYv9R4mEFWJIJiTNg,3870
28
28
  siglab_py/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- siglab_py/util/analytic_util.py,sha256=06f0lHcskW2jyzBYTDXJQxqiiHx37j6rEDoHJVK7Xuk,56265
29
+ siglab_py/util/analytic_util.py,sha256=dJxU-tUA4EY8uB9QOUSTMGXKcuKIY9K8tqx_WutfxJc,56374
30
30
  siglab_py/util/aws_util.py,sha256=KGmjHrr1rpnnxr33nXHNzTul4tvyyxl9p6gpwNv0Ygc,2557
31
31
  siglab_py/util/market_data_util.py,sha256=mUXg4uaiX3b6_klgJWIEgnUQU4IUd6CwTOqKLiQWRlU,31307
32
32
  siglab_py/util/notification_util.py,sha256=vySgHjpHgwFDLW0tHSi_AGh9JBbPc25IUgvWxmjAeT8,2658
33
33
  siglab_py/util/retry_util.py,sha256=g-UU6pkPouWZZRZEqP99R2Z0lX5xzckYkzjwqqSDpVQ,922
34
34
  siglab_py/util/slack_notification_util.py,sha256=G27n-adbT3Q6oaHSMvu_Nom794rrda5PprSF-zvmzkM,1912
35
35
  siglab_py/util/trading_util.py,sha256=-TGNgJdy4HMDPgq31KQn_lRawFxuXnFU5NnLRb1XM5o,5757
36
- siglab_py-0.5.33.dist-info/METADATA,sha256=6s5uBcTqm5pVFzEHPXUXIvO-eNCexGksDMK8LsDMw9c,829
37
- siglab_py-0.5.33.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
38
- siglab_py-0.5.33.dist-info/top_level.txt,sha256=AbD4VR9OqmMOGlMJLkAVPGQMtUPIQv0t1BF5xmcLJSk,10
39
- siglab_py-0.5.33.dist-info/RECORD,,
36
+ siglab_py-0.5.36.dist-info/METADATA,sha256=AK6heAiXGV0PdxVT5EpjwtJHl9p-Qs7Fua3XTnf1kbw,829
37
+ siglab_py-0.5.36.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
38
+ siglab_py-0.5.36.dist-info/top_level.txt,sha256=AbD4VR9OqmMOGlMJLkAVPGQMtUPIQv0t1BF5xmcLJSk,10
39
+ siglab_py-0.5.36.dist-info/RECORD,,