From b549edd7571fae9764b0ad7ad080f3741c8ae593 Mon Sep 17 00:00:00 2001 From: Nawaz Haider Date: Sat, 3 Jan 2026 15:37:11 +0600 Subject: [PATCH] Fix typo in cache_token_trading_infos function and update order placement logic for bid prices --- main.py | 10 +++++----- utils/clob_orders.py | 37 +++++++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/main.py b/main.py index 8140946..7b3262e 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,7 @@ from utils.clob_client import init_global_client from utils.market_time import is_in_trading_window from utils.clob_orders import ( place_anchor_and_hedge, - cache_tocken_trading_infos, + cache_token_trading_infos, ) from utils.cpu_affinity import set_cpu_affinity from config import MAX_TRADES @@ -37,7 +37,7 @@ async def main(): await asyncio.sleep(2) up_token, down_token, market_slug = await fetch_tokens() book = OrderBook(up_token, down_token, market_slug) - await asyncio.create_task(cache_tocken_trading_infos(book)) + await asyncio.create_task(cache_token_trading_infos(book)) book.start() await asyncio.sleep(5) # Allow some time for initial order book data @@ -64,7 +64,7 @@ async def main(): trades = 0 up_token, down_token, market_slug = await fetch_tokens() book = OrderBook(up_token, down_token, market_slug) - asyncio.create_task(cache_tocken_trading_infos(book)) + asyncio.create_task(cache_token_trading_infos(book)) book.start() market_data = book.get_current_market_data() @@ -90,7 +90,7 @@ async def main(): up_token, down_token, "UP", - up_ask_price, + up_bid_price, size=5, ) trades += 1 @@ -103,7 +103,7 @@ async def main(): up_token, down_token, "DOWN", - down_ask_price, + down_bid_price, size=5, ) trades += 1 diff --git a/utils/clob_orders.py b/utils/clob_orders.py index 6dec8a9..dcd23ab 100644 --- a/utils/clob_orders.py +++ b/utils/clob_orders.py @@ -1,7 +1,7 @@ import asyncio import logging -from py_clob_client.client import ClobClient -from py_clob_client.clob_types import OrderArgs +import time +from py_clob_client.clob_types import OrderArgs, OrderType from py_clob_client.order_builder.constants import BUY from config import PROFIT_MARGIN, PLACE_OPPOSITE_ORDER from utils.clob_client import get_client @@ -11,7 +11,7 @@ from in_memory_db.utils import contains_item as in_memory_db_contains_item logger = logging.getLogger(__name__) -async def cache_tocken_trading_infos( +async def cache_token_trading_infos( order_book, ) -> None: client = get_client() @@ -35,9 +35,9 @@ async def place_anchor_and_hedge( anchor_token_id = down_token_id hedge_token_id = up_token_id - anchor_order_id = await place_limit_order(anchor_token_id, price, size) - if PLACE_OPPOSITE_ORDER and anchor_token_id: - for _ in range(900 * 100): + anchor_order_id = await place_limit_order(anchor_token_id, price, size, expire=True) + if PLACE_OPPOSITE_ORDER and anchor_order_id: + for _ in range(10 * 100): if in_memory_db_contains_item(anchor_order_id): hedge_order_id = await place_limit_order( hedge_token_id, 1 - price - PROFIT_MARGIN, size @@ -50,16 +50,25 @@ async def place_anchor_and_hedge( logger.info(f"Order price: {price}") -async def place_limit_order(token_id: str, price: float, size: int): +async def place_limit_order(token_id: str, price: float, size: int, expire=False): client = get_client() + expiration = 0 + if expire: + one_minute = 60 + desired_seconds = 5 + expiration = int(time.time()) + one_minute + desired_seconds try: - response = client.create_and_post_order( - OrderArgs( - token_id=token_id, - price=price, - size=size, - side=BUY, - ) + + order_args = OrderArgs( + token_id=token_id, + price=price, + size=size, + side=BUY, + expiration=expiration, + ) + signed_order = client.create_order(order_args) + response = client.post_order( + signed_order, OrderType.GTD if expire else OrderType.GTC ) logger.info( f"Placed limit order: Token ID={token_id}, Price={price}, Size={size}, ID={response['orderID']}"