Login Page - Create Account

Support Board


Date/Time: Fri, 19 Apr 2024 05:01:33 +0000



Chart Update Interval

View Count: 2400

[2019-06-18 21:38:24]
hurleydood - Posts: 15
I have 24 charts open and with the market closed and the CPU is throttling above average and closer to maximum when I use 10ms as my chart update interval.
What I was reading here that the charts are not updating unless there are updates to the chart. Is that still the case? I have the same setup on NT7 in which I wrote a study to force update the chart on every tick and it never gets close to using the same amount of CPU usage as SC while idle or in active markets. I believe it's because my NT7 study updates the chart on an event instead of using a timer. I may have to write an SC study to get the same result. Can I get some clarity on how SC works regarding chart updates or use of high performance timers?
Date Time Of Last Edit: 2019-06-18 21:38:41
[2019-06-19 03:20:22]
Sierra Chart Engineering - Posts: 104368
Refer to help topic 30:
High CPU Usage | Inactive User Interface | Poor Performance | Long Time to Load Chart Data | Charts Reloading Often

What I was reading here that the charts are not updating unless there are updates to the chart. Is that still the case?
A chart can continuously update if one or more studies is causing that.

Refer to:
Working with ACSIL Arrays and Understanding Looping: When the Study Function is Called
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2019-06-19 03:21:00
[2019-06-19 14:57:37]
hurleydood - Posts: 15
I checked it out and studies are capped to "Chart Update Interval". On NT7/8/C# I can set the Chart Update Interval to 10000ms, the study will still process data on each tick regardless of chart update interval, and in the study I can force a redraw on each tick or an elapsed time like 10ms and uses less CPU. Can OnExternalDataImmediateStudyCall be used so I can set Chart Update Interval to 10000ms and force a redraw purely on events and/or other conditions like when the price changes?
Date Time Of Last Edit: 2019-06-19 15:10:06
[2019-06-19 18:44:46]
Sierra Chart Engineering - Posts: 104368
OnExternalDataImmediateStudyCall has been removed and is no longer supported.


What you want to do is not possible. Instead what you need to do is process a batch of trades, every time the study function is called. You can access those in various ways. Refer to:
sc.GetTimeAndSales()
sc.ReadIntradayFileRecordForBarIndexAndSubIndex()
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2019-07-29 21:20:54]
hurleydood - Posts: 15
Can you change the way you do chart updates?
On my 24 chart setup SC reads the disk over 1500 times a second even when the market is closed.
[2019-07-30 09:19:51]
Sierra Chart Engineering - Posts: 104368
On my 24 chart setup SC reads the disk over 1500 times a second even when the market is closed.
This is not actually true. The data is read from an internal cache, when a symbol is actively trading. We will check to see when there is not active trading, whether their is a read from the OS. This may be the case and we may be able to optimize around that, but even in that particular case it is coming from an internal cache maintained by the operating system. There is no actual disc read occurring.

We will have a look to see if there is any further optimization we can do, but as it is now, this should not be a problem. When you are monitoring it, you are introducing more processing which otherwise would not even occur.

Make sure the flush time in Global Settings >> Data/Trade Service Settings >>Advanced >>Intraday File Flush Time is set to 0 so there is the default flushing which ensures the cache is going to be utilized.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2019-07-30 09:22:24
[2019-08-02 19:26:12]
hurleydood - Posts: 15
It makes no difference between monitoring or not. It is still occurring and using a lot of CPU on the OS level. SC barely uses much CPU. On my system using OS file cache seems to use a lot of CPU. My "Intel Power Gadget" app goes to full throttle and its a power huge power drain on my laptop. I may not have the most optimized system but it's on an SSD, 32GB of ram and no other programs are running, issue is on W7/W10. My configuration has 8 15M charts, 8 1M charts, and 8 DOMs. My Intraday Flush File Time is the default value of 0. Is the file system the only way to notify the charts to update. Don't they have something in Windows similar to inotify on Linux? Or could there be some extra room in SC RAM to store chart new chart data? Thanks.
[2019-08-03 09:08:43]
Sierra Chart Engineering - Posts: 104368
This is not making sense to us. We have never observed this or heard of any problem like this. If it is using a lot of CPU at the OS level there is something unusual going on with your system. As we said we have never observed or heard of anything like this.

One reason the files have to be checked is that charts allow updating from externally updated files. When we looked into this, we do see one small optimization we can make and that relates to continuing to read from the internal cache even when disconnected from the data feed. We have done some work towards that but have not been able to return back to it.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2019-08-05 01:43:11]
hurleydood - Posts: 15
I would like to know why it's just my system too. I did a fresh install and observe the same issues on Windows 7 and Windows 10. Constantly reading from the OS file cache is using a lot of CPU at least on my system. I am sure this goes unnoticed because SC CPU is very low and even with 24 charts open. But it seems like bad practice to constantly read from disk file cache instead from ram. When you say externally updated it sounds like your updating the files when data arrives and the charts individually poll the OS file cache for updates which is an expensive Syscall. Also with my setup it's happening at 1500 times a second. It would be nice to see this be done differently.
[2019-08-05 03:19:59]
Sierra Chart Engineering - Posts: 104368
The file remains open, and Sierra Chart is only reading the last record in the file when disconnected from the data feed. Which is about 24 bytes. This is all that happens. And Windows is not so inefficient, that that is an expensive call. It is not.

When you say externally updated it sounds like your updating the files when data arrives and the charts individually poll the OS file cache for updates which is an expensive Syscall. Also with my setup it's happening at 1500 times a second. It would be nice to see this be done differently.
No, this is not what happens. There is an internal cache that is used when a chart file is being updated during trading activity. There are no direct reads of the underlying file in this case.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2019-08-05 03:20:43
[2019-08-15 21:18:44]
Sierra Chart Engineering - Posts: 104368
When we looked into this, we do see one small optimization we can make and that relates to continuing to read from the internal cache even when disconnected from the data feed. We have done some work towards that but have not been able to return back to it.
This has been completed and is available in version 1975.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account