When one hooks up certain Framework Algorithm components using the project creating wizard, it will trade, other times not.

What are some general rules for hooking up these components so that they will trade as intended.

Here I chose some compenents and when I ran a backtest it generated insights but no trading happened with the default project.  By handling events and overriding OnData was able to force some trading but I wasn't sure I had done it correctly.  For example I might be bypassing some of the components.

To try to find out what might be needed to hook them properly up I subclassed all the framework components, overriding whatever methods I could.  

That did not seem to reveal how it should really be hooked up, so I tried hooking up event handlers.

To get some trading to happen I store the insights in a dictionary and then during OnData override I trade on the insights.

I look at the Lean Github repo a lot and update my own fork with tests and examples, and search repeatedly in Visual Studio trying to see how the framework components should hook up, but so far have not got a good idea for how to hook them up to get trading to happen properly.

What thought process should one go through to figure out how to hook framework components up properly, and what is wrong with this example?