Overall Statistics
Total Orders
1
Average Win
0%
Average Loss
0%
Compounding Annual Return
25.568%
Drawdown
9.500%
Expectancy
0
Start Equity
100000
End Equity
129034.83
Net Profit
29.035%
Sharpe Ratio
1.175
Sortino Ratio
1.298
Probabilistic Sharpe Ratio
76.048%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0.001
Beta
0.994
Annual Standard Deviation
0.104
Annual Variance
0.011
Information Ratio
0.049
Tracking Error
0.005
Treynor Ratio
0.123
Total Fees
$106.50
Estimated Strategy Capacity
$180000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
Portfolio Turnover
0.24%
from AlgorithmImports import *

class CustomFeeModelExampleAlgorithm(QCAlgorithm):
    def initialize(self) -> None:
        self.set_start_date(2024, 1, 1)
        
        self.spy = self.add_equity("SPY")
        self.spy.set_fee_model(MyFeeModel())
        
    def on_data(self, slice):
        self.set_holdings(self.spy.symbol, 1)

# Define the custom fee model
class MyFeeModel(FeeModel):
    def get_potential_order_price(self, order: Order, security: Security) -> float:
        if order.direction == OrderDirection.BUY:
            return security.bid_price
        return security.ask_price

    def get_order_fee(self, parameters: OrderFeeParameters) -> OrderFee:
        order = parameters.order
        security = parameters.security
        price = self.get_potential_order_price(order, security)
        count = order.absolute_quantity
        
        return OrderFee(CashAmount(0.5 * count, security.quote_currency.symbol))