Hello,

    When trying to set a FeeTransactionModel in a QCFrameworkAlgorithm, I get this error. 

Runtime Error: NameError : name 'ConstantFeeTransactionModel' is not defined
at OnSecuritiesChanged in main.py:line 44
NameError : name 'ConstantFeeTransactionModel' is not defined

 

I am unable to attach a backtest... I guess I cannot attach backtests with runtime errors?  Here's the code:

from Alphas.ConstantAlphaModel import ConstantAlphaModel

from Portfolio.EqualWeightingPortfolioConstructionModel import EqualWeightingPortfolioConstructionModel

from Risk.NullRiskManagementModel import NullRiskManagementModel


class BasicTemplateFrameworkAlgorithm(QCAlgorithmFramework):

def Initialize(self):

# Set requested data resolution
self.UniverseSettings.Resolution = Resolution.Minute

self.SetStartDate(2018, 11, 26) #Set Start Date
self.SetEndDate(2018, 11, 27) #Set End Date
self.SetCash(100000) #Set Strategy Cash

self.SetUniverseSelection(ScheduledUniverseSelectionModel(
self.DateRules.Every(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday),
self.TimeRules.At(4, 0),
self.SelectSymbols))

self.SetAlpha(ConstantAlphaModel(InsightType.Price, InsightDirection.Up, TimeSpan.FromMinutes(20), 0.025, None))
self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel())
self.SetExecution(NullExecutionModel())
self.SetRiskManagement(NullRiskManagementModel())


def SelectSymbols(self, dateTime):
symbols = []
symbols.append(Symbol.Create('SPY', SecurityType.Equity, Market.USA))
return symbols


def OnOrderEvent(self, orderEvent):
if orderEvent.Status == OrderStatus.Filled:
# self.Debug("Purchased Stock: {0}".format(orderEvent.Symbol))
pass

def OnSecuritiesChanged(self, changes):
for instrument in changes.AddedSecurities:
self.Securities[instrument].FeeModel = ConstantFeeTransactionModel(0)
#self.Securities[instrument].SlippageModel = ConstantSlippageModel(0)
#self.Securities[instrument].SetDataNormalizationMode(DataNormalizationMode.Raw)

Author