Hi James,
It is based on your trading logic and how you place orders. You requested the minute data for assets in Initialize(). Then each minute new data point will be pumped into OnData(). If the trading condition is satisfied, new orders will be placed.
There are many ways to reduce the trading frequency. For example, you can add this statement
if not self.Portfolio.Invested:
Then new buy order will be placed only when you don't have assets invested in your portfolio. If you want to trade only once per day, you could use self.Time.date() to control the OnData(). For your reference, this is a simple example
https://github.com/QuantConnect/Lean/blob/master/Algorithm.Python/MACDTrendAlgorithm.py