Skip to content

Commit

Permalink
Add get_mid_price
Browse files Browse the repository at this point in the history
  • Loading branch information
mberk committed Apr 19, 2023
1 parent 21e327d commit 8f233cf
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
9 changes: 9 additions & 0 deletions betfairutil/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1827,6 +1827,15 @@ def get_best_price_size(
return next(iter(runner.get("ex", {}).get(side.ex_key, [])), None)


def get_mid_price(
runner: Union[Dict[str, Any], RunnerBook]
) -> Optional[Union[int, float]]:
best_back = get_best_price(runner, Side.BACK)
best_lay = get_best_price(runner, Side.LAY)
if best_back is not None and best_lay is not None:
return (best_back + best_lay) / 2


def get_best_price(
runner: Union[Dict[str, Any], RunnerBook], side: Side
) -> Optional[Union[int, float]]:
Expand Down
9 changes: 9 additions & 0 deletions tests/test_non_prices.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
from betfairutil import get_market_books_from_prices_file
from betfairutil import get_market_id_from_string
from betfairutil import get_market_time_as_datetime
from betfairutil import get_mid_price
from betfairutil import get_minimum_book_percentage_market_books_from_prices_file
from betfairutil import get_number_of_jumps_remaining
from betfairutil import get_pre_event_volume_traded_from_prices_file
Expand Down Expand Up @@ -1232,3 +1233,11 @@ def test_get_number_of_jumps_remaining(race_change: Dict[str, Any]):
race_change["rpc"]["J"] = [{"L": 1000}]
number_of_jumps_remaining = get_number_of_jumps_remaining(race_change)
assert number_of_jumps_remaining == 1


def test_get_mid_price(market_book: Dict[str, Any]):
runner_book = get_runner_book_from_market_book(market_book, selection_id=123)
assert get_mid_price(runner_book) is None

runner_book["ex"]["availableToLay"].append({"price": 1.99, "size": 1})
assert get_mid_price(runner_book) == pytest.approx(1.985)

0 comments on commit 8f233cf

Please sign in to comment.