Implement trading session management and add market time utilities
This commit is contained in:
@@ -6,3 +6,5 @@ CHAIN_ID = 137
|
||||
REQUEST_TIMEOUT = 5
|
||||
PROFIT_MARGIN = 0.02
|
||||
TRADING_BPS_THRESHOLD = 50
|
||||
MARKET_SESSION_SECONDS = 900
|
||||
TIMEZONE = "US/Eastern"
|
||||
|
||||
@@ -4,6 +4,7 @@ from utils.logger import setup_logging
|
||||
from utils.tokens import fetch_tokens
|
||||
from utils.clob_client import init_clob_client
|
||||
from utils.orderbook import OrderBook
|
||||
from utils.market_time import is_in_trading_window
|
||||
|
||||
|
||||
async def main():
|
||||
@@ -16,7 +17,16 @@ async def main():
|
||||
book.start()
|
||||
|
||||
while True:
|
||||
await asyncio.sleep(10)
|
||||
if not is_in_trading_window():
|
||||
|
||||
book.stop()
|
||||
logger.info("Trading session ended. Starting new session.")
|
||||
|
||||
up_token, down_token, market_slug = await fetch_tokens()
|
||||
book = OrderBook(up_token, down_token, market_slug)
|
||||
book.start()
|
||||
|
||||
await asyncio.sleep(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import time
|
||||
from config import MARKET_SESSION_SECONDS
|
||||
|
||||
|
||||
def get_period_elapsed_seconds():
|
||||
ts = int(time.time())
|
||||
period_start = (ts // MARKET_SESSION_SECONDS) * MARKET_SESSION_SECONDS
|
||||
return ts - period_start
|
||||
|
||||
|
||||
def is_in_trading_window():
|
||||
elapsed_seconds = get_period_elapsed_seconds()
|
||||
return elapsed_seconds > MARKET_SESSION_SECONDS
|
||||
+2
-5
@@ -1,9 +1,6 @@
|
||||
import pytz
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
MARKET_INTERVAL_SECONDS = 900
|
||||
TIMEZONE = "US/Eastern"
|
||||
from config import MARKET_SESSION_SECONDS, TIMEZONE
|
||||
|
||||
|
||||
def get_market_slug(coin: str = "btc") -> str:
|
||||
@@ -14,5 +11,5 @@ def get_market_slug(coin: str = "btc") -> str:
|
||||
et_tz = pytz.timezone(TIMEZONE)
|
||||
now = datetime.now(et_tz)
|
||||
ts = int(now.timestamp())
|
||||
start = (ts // MARKET_INTERVAL_SECONDS) * MARKET_INTERVAL_SECONDS
|
||||
start = (ts // MARKET_SESSION_SECONDS) * MARKET_SESSION_SECONDS
|
||||
return f"{coin.lower()}-updown-15m-{start}"
|
||||
|
||||
Reference in New Issue
Block a user