diff --git a/src/pages/journal/trading_journal_page.py b/src/pages/journal/trading_journal_page.py index 2b798f1..1ed3f9f 100644 --- a/src/pages/journal/trading_journal_page.py +++ b/src/pages/journal/trading_journal_page.py @@ -306,8 +306,8 @@ def trading_journal_page(): # Display trades grouped by position for position_id, trades in positions.items(): - # Sort trades by entry_date - trades.sort(key=lambda x: x['entry_date']) + # Sort trades by entry_date and put sells after buys + trades.sort(key=lambda x: (x['entry_date'], 0 if x.get('direction') == 'buy' else 1)) first_trade = trades[0] with st.expander(f"{first_trade['ticker']} - Position {position_id}"): @@ -317,10 +317,15 @@ def trading_journal_page(): col1, col2 = st.columns(2) with col1: try: - entry_price = float(trade['entry_price']) if trade['direction'] == 'sell': - st.metric("Exit Price", f"${entry_price:.2f}") + # For sells, use entry_price as the exit price + exit_price = float(trade['entry_price']) + st.metric("Exit Price", f"${exit_price:.2f}") + # Update the trade's exit_price and exit_date + trade['exit_price'] = exit_price + trade['exit_date'] = trade['entry_date'] else: + entry_price = float(trade['entry_price']) st.metric("Entry Price", f"${entry_price:.2f}") except (ValueError, TypeError): price_label = "Exit Price" if trade['direction'] == 'sell' else "Entry Price" @@ -338,14 +343,6 @@ def trading_journal_page(): st.metric("Target", f"${trade['target_price']:.2f}") if trade.get('stop_loss'): st.metric("Stop Loss", f"${trade['stop_loss']:.2f}") - if trade.get('exit_price'): - try: - exit_price = float(trade['exit_price']) - st.metric("Exit Price", f"${exit_price:.2f}") - st.metric("Exit Date", format_datetime(trade['exit_date'])) - except (ValueError, TypeError): - st.metric("Exit Price", "N/A") - st.metric("Exit Date", format_datetime(trade['exit_date'])) if trade.get('strategy'): st.text(f"Strategy: {trade['strategy']}")