OptionForge updates

Last updated: June 3, 2026 at 7:03 AM

2026-06-03

  • Fix sim_params.tick_interval = "hour" which was previously ticking every possible tick.

2026-05-23

  • Make live option marking atomic per trade. Previously when data was missing for a single tick, some legs could get updated

while others were kept at previous good tick. This creates spurious price swings. Now, the entire trade is updated together. (As before if there are consecutive ticks with missing data, the trade is closed at the last tick with full data). This happens less due to data pre-processing.

  • Webserver updated to allow multiple backtests to execute in parallel (still limited to 1 per user). Should reduce wait times when server is busy.

2026-05-12

  • trade:adjust() now accepts Strike selector (was only Delta and TradeDelta)
  • UPI: Ulcer Performance Index is now shown in chart title and available in grid search
  • portfolio:find_leg() added. Takes same arguments as trade:add_leg except qty and does not actually open, just searches. NOTE that this is provisional and likely to change.
  • User Counts UI: add scroll for large number of User Counts

2026-05-04

  • Fix trade:export() for sim_params.archvie = "SPX-30" and others.
  • trade:risk_graph() make colors more distinct in the chart.

2026-05-02

  • Fix short dated DTE calculations (use seconds instead of integer hours for expiration and DTE)
  • Improve handling of missing data for expired options
  • Add Markdown docs download on https://option-forge.com/docs for use by local LLM or agent of choice.
  • Risk graphs can be sorted by name. Use trade:risk_graph(trade.id .. "my trade") to allow sorting/grouping by name
  • Allow up to 250 risk\_graphs to be shown
  • Allow user to write a forge_end() function that is called when the backtest is done. Has access to O and portfolio

2026-04-21

  • Added the changelog page.
  • Lua: add trade:legs() which returns an iterator of Legs
  • UI: add 'Download NAV' button to Run Output which downloads datetime,NAV as CSV.
  • Remove the "Share this script:" box since it's simple to share the lua code. The "Share" functionality which shares the result of the backtests remains.

2026-04-19

  • Updated backtester handling of missing data.
  • Add 30-minute tick data. Available with sim_params.archive = "SPX-30". From there, it's possible to do sim_params.tick_time = "14:00" and if you want to tick every 30 minutes: sim_params.tick_interval = "30-minute". If you do so. Be sure to add a guard so you don't enter a trade every 30 minutes.

Looking for the main site? Return home.