Skip to content

Conversation

@Favian0363
Copy link

Vectorizes previous_high_low() method by replacing the per-candle loop

Problem

The current implementation loops through every candle and calls np.where() to find resampled periods

This creates O(n × m) complexity where n = candles, m = resampled periods.

Solution

Use np.searchsorted for O(log m) binary search
Eliminate loop completely
Use groupby().cummax & cummin for vectorized broken flag calc

Benchmarks

Before vectorization:
..previous_high_low test time: 1.3034696578979492
previous_high_low test time: 1.2444789409637451
previous_high_low test time: 1.194727897644043

After vectorization:
..previous_high_low test time: 0.010783195495605469
previous_high_low test time: 0.01098489761352539
previous_high_low test time: 0.00976705551147461

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant