From ef762d21325eaf7e671d2158a4f33a0fd6bb12bf Mon Sep 17 00:00:00 2001 From: "Bobby (aider)" Date: Thu, 13 Feb 2025 10:09:53 -0800 Subject: [PATCH] feat: Update position ID generation to use trade entry datetime --- src/pages/journal/trading_journal_page.py | 4 ++-- src/trading/journal.py | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/pages/journal/trading_journal_page.py b/src/pages/journal/trading_journal_page.py index 37230d8..2479441 100644 --- a/src/pages/journal/trading_journal_page.py +++ b/src/pages/journal/trading_journal_page.py @@ -206,12 +206,12 @@ def trading_journal_page(): key="position_select" ) else: - position_id = generate_position_id(ticker) + position_id = generate_position_id(ticker, entry_datetime) else: if direction == "Sell": st.error("No existing positions found for this ticker") st.stop() - position_id = generate_position_id(ticker) + position_id = generate_position_id(ticker, entry_datetime) col1, col2 = st.columns(2) with col1: diff --git a/src/trading/journal.py b/src/trading/journal.py index 73969f7..7ce5315 100644 --- a/src/trading/journal.py +++ b/src/trading/journal.py @@ -298,9 +298,20 @@ def generate_id() -> int: """Generate a unique ID for the trade""" return int(datetime.now().timestamp() * 1000) -def generate_position_id(ticker: str) -> str: - """Generate a unique position ID for grouping related trades""" - timestamp = datetime.now().strftime("%Y%m%d%H%M%S") +def generate_position_id(ticker: str, entry_date: datetime = None) -> str: + """ + Generate a unique position ID for grouping related trades + + Args: + ticker (str): Stock ticker symbol + entry_date (datetime, optional): Entry date for the trade + + Returns: + str: Position ID in format TICKER_YYYYMMDDHHMMSS + """ + if entry_date is None: + entry_date = datetime.now() + timestamp = entry_date.strftime("%Y%m%d%H%M%S") return f"{ticker}_{timestamp}" def get_position_summary(ticker: str) -> dict: