PINE LIBRARY

ema_stoploss_lib

40
Library "ema_stoploss_lib"

This library derives stop-loss levels from a dynamic list of EMA lengths. It computes each EMA internally (so dynamic lengths are allowed), keeps strict side filtering (long: only EMAs below the source; short: only EMAs above), sorts by distance to the source, and returns the n-th nearest value plus the original index of that EMA length.

get_stop_loss(index)

Initializes (once) a default length list:
21, 50, 100, 200, 250, 500, 750, 1000.

Returns: [sl_buy, sl_sell, nearest_buy_idx, nearest_sell_idx]

sl_buy / sl_sell: selected EMA values

nearest_buy_idx / nearest_sell_idx: 0-based indices in the original lensArr

Parameters & Notes

Index (input in the example; default 2) is 0-based:
0 = nearest, 1 = second nearest, 2 = third, etc.

If there aren’t enough EMAs on the requested side, the value becomes na (plot will skip that bar).

Strict filtering means no fallback to the opposite side.

Performance:

EMA updates are O(n) per bar (n = number of lengths).

Sorting is O(k²) (k = candidates on the chosen side) — negligible for small lists.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.