Skip to content

v2.0.9

Choose a tag to compare

@GeneBO98 GeneBO98 released this 12 Oct 14:20

Major Features

Options Trading Support

  • Options P/L Calculation Fix - Fixed incorrect profit/loss calculations for options trades imported from IBKR and Lightspeed brokers. Options trades now correctly apply the 100x
    contract multiplier when calculating dollar values.
  • Options Filter Enhancement - Added ability to filter trades by option type (Calls/Puts) when the Options instrument type filter is selected. The option type filter dynamically
    appears only when relevant.
  • Options Columns - Added 6 new customizable columns for options data:
    • Instrument Type
    • Underlying Symbol
    • Option Type (with color-coded badges: green for CALL, red for PUT)
    • Strike Price
    • Expiration Date
    • Contract Size

Dynamic Table Scaling

  • Intelligent Column Sizing - Trade list table now dynamically adjusts layout based on the number of visible columns:
    • ≤8 columns: Auto layout for natural sizing
    • 9-12 columns: Fixed layout optimized for container width
    • 13+ columns: Allows horizontal scroll as needed
  • Adaptive Cell Padding - Cell padding automatically adjusts based on column count:
    • ≤6 columns: Spacious padding (px-6 py-4)
    • 7-10 columns: Moderate padding (px-4 py-3)
    • 11+ columns: Compact padding (px-3 py-2)
  • Fullwidth Table Mode - New toggle button to expand the table to full screen width with margins. User preference is saved to localStorage and persists across sessions.

News Enrichment System

  • Manual Enrichment Trigger - Added a "Trade Enrichment" button in user settings to manually trigger news enrichment for trades missing news data.
  • Automatic Post-Import Enrichment - Trade imports now automatically queue background jobs to enrich newly imported trades with news data.
  • Background Processing - Implemented news_enrichment and news_backfill job types for efficient batch processing of trade enrichment.

Bug Fixes

Analytics

  • Filter Apply Button - Fixed non-functioning Apply Filters button on Analytics page caused by null reference errors when joining undefined arrays.

Options Trading

  • IBKR Options Parser - Fixed csvParser.js parseIBKRTransactions function (lines 3003-3112) to correctly apply 100x multiplier for options value calculations.
  • Lightspeed Options Parser - Fixed parseLightspeedTransactions function (lines 1505-1539) to correctly handle options contract multipliers.

UI/UX

  • Symbol Column Overflow - Fixed symbol column badges (OPT, FUT, News) overflowing into adjacent columns by:
    • Implementing flex-wrap for badge container
    • Reducing badge padding and icon sizes
    • Adding proper spacing controls

UI Improvements

  • Compact Badges - Reduced padding on instrument type and news badges for better space utilization
  • Smooth Transitions - Added 300ms animated transitions when toggling fullwidth mode
  • Icon Improvements - Reduced news icon size from 14px to 12px for better proportion in compact mode
  • Responsive Icons - Added expand/collapse icons to fullwidth toggle button for clear visual feedback

Technical Improvements

Backend

  • Option Type Filter Support - Added optionTypes query parameter handling in trade controller and model
  • Enhanced Trade Queries - Updated SQL queries to support filtering by option type (call/put)
  • Job Queue Enhancement - Added processNewsEnrichment function to handle post-import enrichment jobs

Frontend

  • Column Customizer - Enhanced with 6 new options-related columns
  • LocalStorage Integration - Added persistent storage for fullwidth table preference
  • Dynamic Computed Properties - Implemented smart layout calculations based on visible column count
  • Filter State Management - Added option type filter state with proper initialization and reset handling

Database Changes

  • No schema changes required - utilized existing option_type column in trades table

API Changes

  • New Query Parameters:
    • optionTypes - Filter trades by option type (call, put)
  • New Endpoint Usage:
    • POST /api/users/enrich-trades - Manually trigger trade enrichment
      Full Changelog: v2.0.8...v2.0.9