From your guys perspective what is the better way based on the way Ninja has been built?
My assumption is as follows:
1 Strategy - 500 Instruments
Lower memory footprint, less startup time and less resources required.
Synchronized Single threaded OnBarUpdate calls, possible lag in processing data when running against OnTick updates?
500 Instruments - 500 Strategies
Higher memory footprint, longer startup time, more resources required.
Each strategy instance runs in its own thread I assume, less lag when processing OnTick updates as they are asynchronous.
Are these assumptions correct? If so I may want to move back to the second option.
Additionally when I run against this many symbols and actually place trades through Ninja simulator I eventually get database contention issues and the logs fill up with this message:
2018-05-16 10:34:31:980|3|524288|Error on executing DB command: System.Data.SqlServerCe.SqlCeException (0x80004005): A duplicate value cannot be inserted into a unique index. [ Table name = Orders,Constraint name = PK__Orders__000000000000033E ] at System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr) at System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& pCursor, Boolean& isBaseTableCursor) at System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options) at System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery() at NinjaTrader.Cbi.Order.DbAdd() at NinjaTrader.Cbi.DB.DBThread()
Comment