Implement trade counter functionality with increment, decrement, reset, and count methods
This commit is contained in:
@@ -7,6 +7,7 @@ from utils.tokens import fetch_tokens
|
|||||||
from utils.orderbook import OrderBook, SIGNALES
|
from utils.orderbook import OrderBook, SIGNALES
|
||||||
from utils.clob_client import init_global_client, is_client_ready
|
from utils.clob_client import init_global_client, is_client_ready
|
||||||
from utils.market_time import is_in_trading_window
|
from utils.market_time import is_in_trading_window
|
||||||
|
from utils.trade_counter import reset_trades, get_trades_count, increment_trades
|
||||||
from utils.clob_orders import (
|
from utils.clob_orders import (
|
||||||
place_anchor_and_hedge,
|
place_anchor_and_hedge,
|
||||||
cache_token_trading_infos,
|
cache_token_trading_infos,
|
||||||
@@ -28,8 +29,6 @@ requests.options = session.options
|
|||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
|
|
||||||
trades = 0
|
|
||||||
|
|
||||||
logger = setup_logging()
|
logger = setup_logging()
|
||||||
set_cpu_affinity()
|
set_cpu_affinity()
|
||||||
logger.info("Polymarket HFT Market Maker started")
|
logger.info("Polymarket HFT Market Maker started")
|
||||||
@@ -64,7 +63,7 @@ async def main():
|
|||||||
logger.info("Trading session ended. Starting new session.")
|
logger.info("Trading session ended. Starting new session.")
|
||||||
gc.collect()
|
gc.collect()
|
||||||
await asyncio.sleep(10)
|
await asyncio.sleep(10)
|
||||||
trades = 0
|
reset_trades()
|
||||||
up_token, down_token, market_slug = await fetch_tokens()
|
up_token, down_token, market_slug = await fetch_tokens()
|
||||||
book = OrderBook(up_token, down_token, market_slug)
|
book = OrderBook(up_token, down_token, market_slug)
|
||||||
asyncio.create_task(cache_token_trading_infos(book))
|
asyncio.create_task(cache_token_trading_infos(book))
|
||||||
@@ -85,7 +84,7 @@ async def main():
|
|||||||
|
|
||||||
up_trend = up_bid_price > down_bid_price
|
up_trend = up_bid_price > down_bid_price
|
||||||
|
|
||||||
if trades < MAX_TRADES:
|
if get_trades_count() < MAX_TRADES:
|
||||||
trading_side = book.last_signal
|
trading_side = book.last_signal
|
||||||
|
|
||||||
if (trading_side == SIGNALES.UP) and not up_trend:
|
if (trading_side == SIGNALES.UP) and not up_trend:
|
||||||
@@ -96,9 +95,9 @@ async def main():
|
|||||||
up_bid_price,
|
up_bid_price,
|
||||||
size=5,
|
size=5,
|
||||||
)
|
)
|
||||||
trades += 1
|
current_trades = increment_trades()
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Placed UP anchor and hedge orders. Total trades: {trades}"
|
f"Placed UP anchor and hedge orders. Total trades: {current_trades}"
|
||||||
)
|
)
|
||||||
|
|
||||||
elif (trading_side == SIGNALES.DOWN) and up_trend:
|
elif (trading_side == SIGNALES.DOWN) and up_trend:
|
||||||
@@ -109,9 +108,9 @@ async def main():
|
|||||||
down_bid_price,
|
down_bid_price,
|
||||||
size=5,
|
size=5,
|
||||||
)
|
)
|
||||||
trades += 1
|
current_trades = increment_trades()
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Placed DOWN anchor and hedge orders. Total trades: {trades}"
|
f"Placed DOWN anchor and hedge orders. Total trades: {current_trades}"
|
||||||
)
|
)
|
||||||
|
|
||||||
await asyncio.sleep(0.01)
|
await asyncio.sleep(0.01)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ from py_clob_client.clob_types import OrderArgs, OrderType
|
|||||||
from py_clob_client.order_builder.constants import BUY
|
from py_clob_client.order_builder.constants import BUY
|
||||||
from config import PROFIT_MARGIN, PLACE_OPPOSITE_ORDER
|
from config import PROFIT_MARGIN, PLACE_OPPOSITE_ORDER
|
||||||
from utils.clob_client import get_client
|
from utils.clob_client import get_client
|
||||||
|
from utils.trade_counter import decrement_trades
|
||||||
from in_memory_db.utils import contains_item as in_memory_db_contains_item
|
from in_memory_db.utils import contains_item as in_memory_db_contains_item
|
||||||
|
|
||||||
|
|
||||||
@@ -49,6 +50,9 @@ async def place_anchor_and_hedge(
|
|||||||
else:
|
else:
|
||||||
logger.info(f"Order price: {price}")
|
logger.info(f"Order price: {price}")
|
||||||
|
|
||||||
|
if anchor_order_id and not in_memory_db_contains_item(anchor_order_id):
|
||||||
|
decrement_trades()
|
||||||
|
|
||||||
|
|
||||||
async def place_limit_order(token_id: str, price: float, size: int, expire=False):
|
async def place_limit_order(token_id: str, price: float, size: int, expire=False):
|
||||||
client = get_client()
|
client = get_client()
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Global trades counter
|
||||||
|
_trades = 0
|
||||||
|
|
||||||
|
|
||||||
|
def get_trades_count():
|
||||||
|
return _trades
|
||||||
|
|
||||||
|
|
||||||
|
def increment_trades():
|
||||||
|
global _trades
|
||||||
|
_trades += 1
|
||||||
|
return _trades
|
||||||
|
|
||||||
|
|
||||||
|
def decrement_trades():
|
||||||
|
global _trades
|
||||||
|
_trades -= 1
|
||||||
|
return _trades
|
||||||
|
|
||||||
|
|
||||||
|
def reset_trades():
|
||||||
|
global _trades
|
||||||
|
_trades = 0
|
||||||
Reference in New Issue
Block a user