**"lib_priceaction"**

a library for everything related to price action, starting off with displacements

**displacement(len, min_strength, o, c)**

calculate if there is a displacement and how strong it is

Parameters:

**len (int)**: The amount of candles to consider for the deviation

**min_strength (float)**: The minimum displacement strength to trigger a signal

**o (float)**: The source series on which calculations are based

**c (float)**: The source series on which calculations are based

Returns: a tuple of (bool signal, float displacement_strength)

v2 tweaked formula

Updated:

calculate if there is a displacement and how strong it is

Parameters:

Returns: a tuple of (bool signal, float displacement_strength)

Updated:

**displacement(len, min_strength, o, c)**calculate if there is a displacement and how strong it is

Parameters:

**len (int)**: The amount of candles to consider for the deviation**min_strength (float)**: The minimum displacement strength to trigger a signal**o (float)**: The source series on which calculations are based**c (float)**: The source series on which calculations are basedReturns: a tuple of (bool signal, float displacement_strength)

Release Notes:

v3, removed rounding

Release Notes:

v4

v5 added functions to calculate retracement ratio AND target price for given ratio

Added:

calculate a ratio how far a price has retraced compared to a move between two reference levels

Parameters:

Returns: the retracement ratio (float, always positive) or na if one of the inputs was na

calculate a ratio how far a price has retraced compared to a move between two reference levels

Parameters:

Returns: the retracement target ratio price level (float) or na if one of the inputs was na

Added:

**retracement_ratio(price_start, price_end, price_retracement)**calculate a ratio how far a price has retraced compared to a move between two reference levels

Parameters:

**price_start (float)**: The start price level of the reference move**price_end (float)**: The end price level of the reference move**price_retracement (float)**: The retraced price levelReturns: the retracement ratio (float, always positive) or na if one of the inputs was na

**target_ratio_price(price_start, price_end, target_ratio)**calculate a ratio how far a price has retraced compared to a move between two reference levels

Parameters:

**price_start (float)**: The start price level of the reference move**price_end (float)**: The end price level of the reference move**target_ratio (float)**: The target retracement ratio (must be positive)Returns: the retracement target ratio price level (float) or na if one of the inputs was na

v6

Added:

check if a price is in a certain range, e.g. to check if price reached a target zone

Parameters:

Returns: true if x is between a and b (inclusive)

check if two price ranges overlap, e.g. to check if a target is price is possible that fits both target zones

Parameters:

Returns: true if x is between a and b (inclusive

Added:

**in_range(x, a, b)**check if a price is in a certain range, e.g. to check if price reached a target zone

Parameters:

**x (float)**: the price variable**a (float)**: one range limit (sign agnostic)**b (float)**: other range limit (sign agnostic)Returns: true if x is between a and b (inclusive)

**range_overlap(a1, b1, a2, b2)**check if two price ranges overlap, e.g. to check if a target is price is possible that fits both target zones

Parameters:

**a1 (float)**: one limit of range 1**b1 (float)**: other limit of range 1**a2 (float)**: one limit of range 2**b2 (float)**: other limit of range 2Returns: true if x is between a and b (inclusive