Skip to content

WebullFeeModel charges SPXW options the SPX exchange fee #9922

Open

Description

@Amadeus-22

Expected Behavior

WebullFeeModel charges SPXW (weekly SPX) index options the SPXW exchange fee: $1.00 per contract below $1 and $1.09 at $1 or more, including the $0.50 Webull fee.

Actual Behavior

They are charged the SPX rate ($1.07 / $1.16), so every SPXW fill costs $0.07 more per contract. That matters most for 0DTE strategies, which trade SPXW heavily.

GetIndexOptionFee picks the tier from security.Symbol.Underlying.Value. For a real SPXW contract (AddIndexOption("SPX", "SPXW")) the underlying is the SPX index, so the "SPXW" case is never reached. The existing tests build an index named "SPXW" as the underlying, which doesn't happen in practice. VIXW and NDXP resolve to VIX and NDX the same way, but those pairs share the same fees, so their totals are right.

Potential Solution

Use the option's own ticker, security.Symbol.ID.Symbol, as InteractiveBrokersFeeModel does. That resolves SPX, SPXW, VIXW, NDXP and XSP correctly. I can open a PR with the fix and a test.

Reproducing the Problem

var spx = Symbol.Create("SPX", SecurityType.Index, Market.USA);
var spxw = Symbol.CreateOption(spx, "SPXW", Market.USA, OptionStyle.European, OptionRight.Call, 5000m, new DateTime(2026, 6, 19));
// security priced at 0.80, MarketOrder(spxw, 1)
new WebullFeeModel().GetOrderFee(new OrderFeeParameters(security, order)); // 1.07, expected 1.00

System Information

master (2f5e8df), net10.0.

Checklist

  • I have completely filled out this template
  • I have confirmed that this issue exists on the current master branch
  • I have confirmed that this is not a duplicate issue by searching issues

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions