using wl7 with IQFeed.
- Drop a strategy into SM
- Drop another into streaming chart. Set it it to 1-minute interval to make it easy to repro.
UI freezes each time SM/Chart runs. I have to wait until the operation is done to do anything on my computer. It seems that internal threads block the UI thread.
- Drop a strategy into SM
- Drop another into streaming chart. Set it it to 1-minute interval to make it easy to repro.
UI freezes each time SM/Chart runs. I have to wait until the operation is done to do anything on my computer. It seems that internal threads block the UI thread.
Rename
It's not happening in my experience, can you share your strategy or email it to support@wealth-lab.com?
The only thing that occurs to me as a possible cause is that your strategy is creating many thousands of trades on a long history of 1-minute bars.
If that's the case, you might try setting the "Intraday Minute-based Days Multiplier" in Preferences > Data/Trading to a smaller number, like 12 to limit the chart load to approximately the last 2 weeks of data. Adjust as required for your strategy.
If that's the case, you might try setting the "Intraday Minute-based Days Multiplier" in Preferences > Data/Trading to a smaller number, like 12 to limit the chart load to approximately the last 2 weeks of data. Adjust as required for your strategy.
You are right. I reduced the number of bars in preference and the problem disappeared. Therefore the issue is resolved.
I sometimes make the number large since if the number is not large enough then the chart will truncate my data range in *.QX files.
As a side note, If I make the number large enough then if I restart the app and I click charts, I get this exception:
System.ArgumentOutOfRangeException: The added or subtracted value results in an un-representable DateTime. (Parameter 'value')
at System.DateTime.AddTicks(Int64 value)
at System.DateTime.Add(Double value, Int32 scale)
at System.DateTime.AddDays(Double value)
at IdentifierConfiguration.CompareFactory(DateTime& , Double , IdentifierConfiguration )
at WealthLab.Data.HistoricalDataValet.ForgotProxy(DateTime& item, DateTime& ord, Int32& dir, HistoryScale key2)
at WealthLab.Data.HistoricalDataValet.GetHistory(String symbol, HistoryScale scale, DateTime start, DateTime end, Int32 maxBars, GetHistoryControlBlock cb)
at InstanceService.InterruptTask(Object , String , HistoryScale , DateTime , DateTime , Int32 , GetHistoryControlBlock , InstanceService )
at WealthLab7.MainController.GetHistory(String symbol, HistoryScale scale, DateTime startDate, DateTime endDate, Int32 maxBars, GetHistoryControlBlock cb)
at RefRule.ConnectInfo(Object , String , HistoryScale , DateTime , DateTime , Int32 , GetHistoryControlBlock , RefRule )
at WealthLab.ChartWPF.Chart.<>c__DisplayClass87_0.PopRequest()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location where exception was thrown ---
at InitializerImporter.ConnectInfo(TaskAwaiter& , InitializerImporter )
at WealthLab.ChartWPF.Chart.RunTests(Boolean isi, DataSet second)
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
I sometimes make the number large since if the number is not large enough then the chart will truncate my data range in *.QX files.
As a side note, If I make the number large enough then if I restart the app and I click charts, I get this exception:
System.ArgumentOutOfRangeException: The added or subtracted value results in an un-representable DateTime. (Parameter 'value')
at System.DateTime.AddTicks(Int64 value)
at System.DateTime.Add(Double value, Int32 scale)
at System.DateTime.AddDays(Double value)
at IdentifierConfiguration.CompareFactory(DateTime& , Double , IdentifierConfiguration )
at WealthLab.Data.HistoricalDataValet.ForgotProxy(DateTime& item, DateTime& ord, Int32& dir, HistoryScale key2)
at WealthLab.Data.HistoricalDataValet.GetHistory(String symbol, HistoryScale scale, DateTime start, DateTime end, Int32 maxBars, GetHistoryControlBlock cb)
at InstanceService.InterruptTask(Object , String , HistoryScale , DateTime , DateTime , Int32 , GetHistoryControlBlock , InstanceService )
at WealthLab7.MainController.GetHistory(String symbol, HistoryScale scale, DateTime startDate, DateTime endDate, Int32 maxBars, GetHistoryControlBlock cb)
at RefRule.ConnectInfo(Object , String , HistoryScale , DateTime , DateTime , Int32 , GetHistoryControlBlock , RefRule )
at WealthLab.ChartWPF.Chart.<>c__DisplayClass87_0.PopRequest()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location where exception was thrown ---
at InitializerImporter.ConnectInfo(TaskAwaiter& , InitializerImporter )
at WealthLab.ChartWPF.Chart.RunTests(Boolean isi, DataSet second)
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Your Response
Post
Edit Post
Login is required