FeeStrategy

FeeStrategy#

class sigtech.framework.strategies.fee_strategy.FeeStrategy

Baseclasses: DailyStrategy

Fee Strategy - a strategy which wraps another strategy, deducts fees every day and re-balances the inner strategy on a regular schedule.

Keyword arguments:

  • currency

  • start_date

  • strategy_name - the name of the strategy to wrap.

  • fee - the fee amount, eg 0.01 would mean 1% annual fee accrued daily.

  • fee_daycount - optional, defaults to ACT/365.

  • fee_rebalance_frequency - optional, defaults to eod of month.

  • business_day_convention - optional, defaults to PRECEDING.

  • holiday_calendar

  • turnover_fee - instead of a fixed fee, apply fee based on the turnover of the inner strategy.

  • turnover_levels - the number of levels down the strategy tree to descend when calculating turnover.

Example object creation:

import datetime as dtm
from sigtech.framework.default_strategy_objects.rolling_futures import es_index_front

rf = sig.FeeStrategy(currency='USD',
                     start_date=dtm.date(2000, 1, 5),
                     strategy_name=es_index_front().name,
                     fee=0.01)

The fee for a particular day would be -0.01 * dcf(yesterday, today, ACT/365) * inner_strategy_value(today).

business_day_convention: Optional[str]
fee: Optional[float]
fee_daycount: Optional[str]
fee_rebalance_frequency: Optional[str]
holiday_calendar: Optional[str]
strategy: Optional[Strategy]
strategy_name: Optional[str]
turnover_fee: Optional[float]
turnover_levels: Optional[int]
AVAILABLE_REBALANCE_FREQS

Subclasses: ScheduleFrequenciesWithIntraday

alias of ScheduleFrequencies

schedule_information()

Schedule information for the strategy.

strategy_initialization(dt)

Initial decision run on the start date of the strategy.

Parameters:

dt – Reference datetime.