- ago
I have a C# strategy that makes backtest trades. When I click on the symbols (in an IQ data feed) in the Positions sheet of the backtest results, some of the charts are updated to the current bar, and some are not. I also have not been getting my buy/sell signals for the non-updating charts, however I see in the positions sheet the signals occurred (in the background?). I am aware of the trick to click on " xx symbols loaded" to require a data load, and I have been doing that regularly throughout the day. I have read the postings regarding issues with updating, but none answer my questions.
0
317
11 Replies

Reply

Bookmark

Sort
- ago
#1
More on this issue: as I move down the symbol list in the positions sheet and click on each one to bring up the chart, I see that the lower in the list I go, the more recent the bars are. The bottom 7 are updated to the most recent hourly bar.
0
Cone8
 ( 24.57% )
- ago
#2
Please describe your workflow. It sounds like your clicking charts in the middle of the day to update them for trading. Some of the charts update and some do not, is that correct?

1. Do you expect hourly bars on the hour or on the :30 min mark? (10:30, 11:30, ..., 15:30, 16:00)
2. Do you have the Reg. Session Option selected for IQFeed?
3. How many symbols are you dealing with?
4. Are you using streaming? If no, why not?
5. What are some of the symbols (higher in the list) that don't update quickly?

The only thing I can imagine by your description is that you're trading some illiquid (symbols that don't trade frequently). IQFeed won't update these until a tick occurs in the next interval - which could be several minutes. Wealth-Lab will close the bar on time if you use a Streaming Chart or Streaming/Streaming Bars in the Strategy Monitor.
0
- ago
#3
Yes, I am clicking "xx symbols loaded", then running backtest to update the charts throughout the day, right after the half hour. The hourly bars come on the half hour. The charts are updating according to what I described in my post. Yes, I have "Regular session only" checked for IQ feed in the data manager/streaming providers sheet. I am using a dataset with 10 symbols. How do I know if I am "using streaming"? I create a new "data provider linked" dataset using IQ Feed. There is no check box to "use streaming". Attached is a shot of the recent positions. Going up the list from the bottom, all are updated to the current bar until the 5/5 entry LGIH. That one is one bar behind. The chart for the symbol above - DHI - is missing the most recent three bars.
0
Cone8
 ( 24.57% )
- ago
#4
This one isn't too intuitive, but we'll get some Data Management and Streaming videos out there soon. The clue is in the Help Guide (F1) > Chart > Streaming Charts

Now, it's a lot easier to set this up for trading with the Strategy Monitor (see Help for that), but let's give a procedure to set up a streaming chart workspace -

1. Select you default Streaming Provider in Data Manager > Streaming Providers

2. In Preferences > Data/Trading, set the Intraday Minute-based Days Multiplier to make sure you have enough data for trading your strategy. If the value is 10 (for 1-minute), then you'll get 10 days * 60 days of hourly data loaded.

3. Open 12 chart windows (looks like you have about 12 symbols) and tile them.

4. Type your symbols one by one into each chart and check that the correct Market is selected in the bottom status bar of the chart window.

5. Drag and drop your Strategy into each chart window

6. Another toolbar is now available to select your Position Size.

7. Click the Stream button to start Streaming and then Auto-Stage and/or Place as required.

8. Save your Workspace so you don't have to do this all over again! Just open the Workspace next time.

Bonus Tip! Alt+Stream
You can toggle Streaming on all charts by holding the Alt button when clicking Stream. You can do the same thing for the chart status and toolbar.
1
- ago
#5
I do not find the "stream button" you refer to.
0
- ago
#6
Right below the symbol entry field on each chart it is.
0
- ago
#7
Not finding it. Here is what I see.
0
Glitch8
 ( 10.41% )
- ago
#8
Hey pepeters, that's a Strategy Window. Streaming is not possible there. Streaming is only available in a Chart Window.
0
- ago
#9
@pepeters

So, back to step 3 - click Chart (12 times).
0
- ago
#10
Ok. I was looking at a chart that I opened from within the strategies. When I click on "chart" in the left of the upper toolbar, it looks somewhat different, see attached, and the "stream" button is way to the left, not below the symbol. Hopefully I have the right chart. I opened only two charts, and dragged my strategy to each one. Clicking "stream" once did not result in the bars updating, however after toggling "stream" twice I got the error message shown below.

The reason I am doing this is because the hourly bars don't begin to form when I am in the backtest section, and I need to see them as they form, if I am going to trade them.

Note that a strategy can be set to use one time-frame bar, e.g., 60 min, and the streaming Chart can be set to a shorter time frame bar, say 15 min. But I am doing this to try to see the one-hour bar as it forms.

Any suggestions on how to debug are welcome.

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at WealthLab.ChartWPF.SeriesStyleBase.RenderHighlight(DrawingContext dc)
at WealthLab.ChartWPF.ChartPane.RenderPane(DrawingContext dc)
at WealthLab.ChartWPF.ChartPane.OnRender(DrawingContext dc)
at System.Windows.UIElement.Arrange(Rect finalRect)
at System.Windows.Controls.Grid.ArrangeOverride(Size arrangeSize)
at System.Windows.FrameworkElement.ArrangeCore(Rect finalRect)
at System.Windows.UIElement.Arrange(Rect finalRect)
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
at System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
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
- ago
#11
Although I only tried it with Yahoo's daily data, I couldn't repro this exception because WL7 doesn't let me click Stream twice. Is there a chance the bars weren't updating because the chart was still backfilling?
0

Reply

Bookmark

Sort