If you're talking about the performance as the speed in which the software algorithm can be executed on your hardware, then my suggestion would be to work with an averaged historical-data array. This way you can still make realtime or close-to-realtime calculations on incoming data feeds without having to consider the whole past data-density, while staying on a close-to-zero deviation from the effective values.
If you're talking about the performance as in 'outperforming the market' then your problem is tightly dependent on the forecasting algorithm itself and the parameters it takes to operate. The only viable way to decouple the two would be to create a bold dependency-management layer between your strategy and the algorithm that allowed its user to connect arguments from their strategy to parameters of the forecasting algorithm. This will very probably have a strong influence on the speed in which the algorithm can execute, because of all the indirection and checks that the system has to perform to remain stable and rolling.