For a simple strategy which trades based on RSI, there are a couple ways to set this up.

One way, is to create a SymbolData object and attach a QCAlgorithm RSI Indicator at a specified Resolution. During initialization, I can query historical data at the same Resolution and manually run tradebars through the symbol's indicator via the .Update() function to warm up the specified time period. If I want to use previous RSI values as part of the strategy, I can attach a RollingWindow or deque to the symbol and run the values out of the indicator's .Updated() callback. At this point in my trade logic, I can then access the symbol's current RSI value or its previous values.

Alternatively, I can skip most of that setup by simply querying the history and calling something like calculate_RSI(df).

Is the latter strategy generally going to be computationally cost-prohibitive?