Skip to content

Commit

Permalink
test_build_liquidity_summary passess
Browse files Browse the repository at this point in the history
  • Loading branch information
miohtama committed Sep 6, 2024
1 parent 9fc26a9 commit f11523f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
4 changes: 4 additions & 0 deletions tests/test_liquidity_universe.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from tradingstrategy.liquidity import GroupedLiquidityUniverse, LiquidityDataUnavailable
from tradingstrategy.pair import DEXPair, LegacyPairUniverse, PandasPairUniverse
from tradingstrategy.timebucket import TimeBucket
from tradingstrategy.utils.forward_fill import forward_fill
from tradingstrategy.utils.liquidity_filter import build_liquidity_summary
from tradingstrategy.utils.token_filter import filter_pairs_default

Expand Down Expand Up @@ -194,6 +195,9 @@ def test_build_liquidity_summary(persistent_test_client: Client):
)

liquidity_df = client.fetch_all_liquidity_samples(TimeBucket.d7).to_pandas()
liquidity_df = liquidity_df.loc[liquidity_df["pair_id"].isin(pairs_df["pair_id"])] # Filter to our pair set before forward fill
liquidity_df = liquidity_df.set_index("timestamp").groupby("pair_id")
liquidity_df = forward_fill(liquidity_df, TimeBucket.d7.to_frequency(), columns=("close",))
historical_max, today = build_liquidity_summary(liquidity_df, pairs_df["pair_id"])
assert len(historical_max) > 100
print(historical_max.most_common(10))
Expand Down
14 changes: 8 additions & 6 deletions tradingstrategy/utils/liquidity_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,16 @@ def get_somewhat_realistic_max_liquidity(
Cannot have more than 100M USD
"""

try:
liquidity_samples = liquidity_df.obj.loc[pair_id]["close"].nlargest(samples)
sample = min(liquidity_samples)
import ipdb ; ipdb.set_trace()
if sample > broken_liquidity:
# Filter out bad data
return 0
return -1
return sample
except KeyError:
# Pair not available, because liquidity data is not there, or zero, or broken
return 0
return -1


def get_liquidity_today(
Expand All @@ -71,7 +69,7 @@ def get_liquidity_today(
return sample
except KeyError:
# Pair not available, because liquidity data is not there, or zero, or broken
return 0
return -1


def build_liquidity_summary(
Expand Down Expand Up @@ -99,7 +97,11 @@ def build_liquidity_summary(
Ensure the data is indexed by the time we run this code.
:return:
Two counters of historical max liquidity, liquidity today
Two counters of historical max liquidity, liquidity today.
All in USD.
Pair liquidity value is set to `-1` if the lookup failed (data not available, data contains inrealistic values, etc.)
"""

assert isinstance(liquidity_df, (pd.DataFrame, DataFrameGroupBy))
Expand Down

0 comments on commit f11523f

Please sign in to comment.