Thanks, a good new year to your too. I did not understand the design pattern question, but as to the rest, algo names can be generated dynamically, but need not contain the asset since that's already in the Asset name. "Component" is used for the model number in a machine learning algo. Pool trades are sent at the end of the run function and when a position changes intrabar. You can have many asset/algo loops, but only 2 nested, and the number of assets and algos must not change between loops. Multiple instances of the same script will not be managed correctly, so rename the script for running it in several instances. You can store any number of trade results in a non-shifted series.