- ago
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.

0
51
Solved
3 Answers

Reply

Bookmark

Sort
- ago
#1
It's not happening in my experience, can you share your strategy or email it to support@wealth-lab.com?
0
Cone7
- ago
#2
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.
1
Best Answer
- ago
#3
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)
0

Reply

Bookmark

Sort