We have 2 machines running MC64 8.8 9189 -> Production and Development (both are running windows 2008 R2) with MSSQL 2008 R2.
On Production today, we have 4 separate MC running. Each of them has 1 signal and 2 indicators and the signal is using ADE to read the values set by the 2 indicators.
Somehow one of the INPUT parameter value was set too low on the signal. So we reset it to a higher value. This new higher value should generate one more new trade on the chart. It did worked on our development machine but the production one.
After so many tries, we gave up. We need to reboot the production machine to get rid of this problem.
We think this is a cache read problem with MC. Somehow MC kept reading the old value from the cache instead the newly updated value.
The funny thing is we cannot reproduce the same problem with our development machine.
It's a very hard to catch bug since it cannot be re-produced again. I just want to report an observation we have so far. There is no solution here. The only way to find out this problem is by running 2 different machines at the same time.
By the way, We have used "Process Explorer v15.23" from Sysinternals to kill all MC64 related processes and MC still resists to read the newly updated value.
Need to restart the machine to force MC to read new INPUT va
- TJ
- Posts: 7742
- Joined: 29 Aug 2006
- Location: Global Citizen
- Has thanked: 1033 times
- Been thanked: 2222 times
Re: Need to restart the machine to force MC to read new INPU
Please see if the below describes the problem you encountered. If not, please ignore and further escalate the issue to tech support.We have 2 machines running MC64 8.8 9189 -> Production and Development (both are running windows 2008 R2) with MSSQL 2008 R2.
On Production today, we have 4 separate MC running. Each of them has 1 signal and 2 indicators and the signal is using ADE to read the values set by the 2 indicators.
Somehow one of the INPUT parameter value was set too low on the signal. So we reset it to a higher value. This new higher value should generate one more new trade on the chart. It did worked on our development machine but the production one.
After so many tries, we gave up. We need to reboot the production machine to get rid of this problem.
We think this is a cache read problem with MC. Somehow MC kept reading the old value from the cache instead the newly updated value.
The funny thing is we cannot reproduce the same problem with our development machine.
It's a very hard to catch bug since it cannot be re-produced again. I just want to report an observation we have so far. There is no solution here. The only way to find out this problem is by running 2 different machines at the same time.
By the way, We have used "Process Explorer v15.23" from Sysinternals to kill all MC64 related processes and MC still resists to read the newly updated value.
If you change the input value in the code and re-compile the study,
the changed value WILL NOT be reflected in any indicator/strategy that are already running in a chart.
Even if you remove the wsp and open it again, it will not effect any changes.
To effect the change, you will need to remove the indicator/strategy from the chart and re-apply it.
This protocol is done for good reasons...
Imagine this:
Say, you have 20 charts, each chart has one or more moving averages on it.
Some of the moving averages are of 5 periods in length, some are 10, and some are 20.
If you recompile the code with a new input value of 100, do you want ALL the moving averages in ALL the charts to change their length to 100?
Re: Need to restart the machine to force MC to read new INPU
Thanks for responding. This is not our case here. We don't need to re-compile anything here. Just to changed one of the input value. It worked fine right after rebooting the machine. The whole point here is it should just use the new input value without the need to reboot the machine. With our development machine, the chart actually changes if the input value was altered.
That's why we are thinking it's a cache/buffer problem.
That's why we are thinking it's a cache/buffer problem.
- Andrew MultiCharts
- Posts: 1587
- Joined: 11 Oct 2011
- Has thanked: 931 times
- Been thanked: 559 times
Re: Need to restart the machine to force MC to read new INPU
How exactly do you change the input's value?Thanks for responding. This is not our case here. We don't need to re-compile anything here. Just to changed one of the input value. It worked fine right after rebooting the machine. The whole point here is it should just use the new input value without the need to reboot the machine. With our development machine, the chart actually changes if the input value was altered.
That's why we are thinking it's a cache/buffer problem.
- Andrew MultiCharts
- Posts: 1587
- Joined: 11 Oct 2011
- Has thanked: 931 times
- Been thanked: 559 times
Re: Need to restart the machine to force MC to read new INPU
And after you changed the inputs in code 1, you expect the values to be updated (through ADE) in code 2?
Re: Need to restart the machine to force MC to read new INPU
We have one signal and two indicators running. The two indicators are more like the publishers. They don't receive any data at all. On the other hand, the Signal is more like the subscriber and it does not send data.
The trouble is not about the indicators nor the signals. It is about the chart not getting updated when the input value got changed for the Signal. We can have our development machine updating the chart but the production one.
There was a missing trade again this morning with NQ. The development machine had a trade but the production one. After Ctrl-R was pressed at MC production, the missing trade showed up. I think there is a problem with the MC database/Cache again. Something is not right with ether TS or MC64.
The trouble is not about the indicators nor the signals. It is about the chart not getting updated when the input value got changed for the Signal. We can have our development machine updating the chart but the production one.
There was a missing trade again this morning with NQ. The development machine had a trade but the production one. After Ctrl-R was pressed at MC production, the missing trade showed up. I think there is a problem with the MC database/Cache again. Something is not right with ether TS or MC64.
- Andrew MultiCharts
- Posts: 1587
- Joined: 11 Oct 2011
- Has thanked: 931 times
- Been thanked: 559 times
Re: Need to restart the machine to force MC to read new INPU
tonyng,
Couple of questions:
Couple of questions:
- What data feed do you use?
- Are both MC connected to the same account for receiving data?
Re: Need to restart the machine to force MC to read new INPU
Hi Andrew,
Datafeed: TS 9.1 update24.
Symbol: NQU4 Tick, NQU4 5mins, NYSE Tick
4 MC64 program running side by side connecting to the same TS Account.
We just saw the same problem this morning. we have 4 MC64 running and each of them has 1 Signal (NQU4) and 2 indicators (NYSE Tick and NQU4 5min). MC64 missed one of the trade and didn't show up on the chart. I have to press Ctrl-R to reload and show the missing trade. I think this bug is hard to catch. Unless someone like us has exactly the same thing running on a different machine with only TS 9.1.
By the way, I have just purged all the TS Cache files and delete MC64 database 2 days ago after I reported the datafeed problem.
I have written a log program to log all the tick data. One before the reload and one after it.
The 1140717.log is the one has missing trade and 1140717.log1 is the one after the reload. You can see starting from line 286 of both logs, the tick time and value is different.
This missing trade will pop up at line 404 with 1140171.log1.
Datafeed: TS 9.1 update24.
Symbol: NQU4 Tick, NQU4 5mins, NYSE Tick
4 MC64 program running side by side connecting to the same TS Account.
We just saw the same problem this morning. we have 4 MC64 running and each of them has 1 Signal (NQU4) and 2 indicators (NYSE Tick and NQU4 5min). MC64 missed one of the trade and didn't show up on the chart. I have to press Ctrl-R to reload and show the missing trade. I think this bug is hard to catch. Unless someone like us has exactly the same thing running on a different machine with only TS 9.1.
By the way, I have just purged all the TS Cache files and delete MC64 database 2 days ago after I reported the datafeed problem.
I have written a log program to log all the tick data. One before the reload and one after it.
The 1140717.log is the one has missing trade and 1140717.log1 is the one after the reload. You can see starting from line 286 of both logs, the tick time and value is different.
This missing trade will pop up at line 404 with 1140171.log1.
- Attachments
-
- HiLoLog.rar
- (249.97 KiB) Downloaded 155 times
Last edited by tonyng on 17 Jul 2014, edited 2 times in total.
- Andrew MultiCharts
- Posts: 1587
- Joined: 11 Oct 2011
- Has thanked: 931 times
- Been thanked: 559 times
Re: Need to restart the machine to force MC to read new INPU
By "4 MC64" do you mean 4 instances (main frames) of the same MultiCharts 64 bit?4 MC64 program running side by side connecting to the same TS Account.
Re: Need to restart the machine to force MC to read new INPU
Hi Andrew
I think I am very close to find the problem. I can reproduce it now with my development machine.
Our Strategy depends on two indicators to provide trending information. Somehow the indicator was providing wrong info. We fixed the problem by pressing Ctrl-R at the indicator chart. Just like the way we did it for the Signal.
Seems like it's a datafeed buffer problem here. If user do these following actions, MC64 will provide subtle wrong data unless each chart got refreshed.
1. Change to a different started date for @NQU14 with the Signal chart (800 tick bar) (i.e. from 6/30/2014 to 7/7/2014)
2. Signal Chart will get missing trade
3. Press Ctrl-R at the Signal Chart
4. Signal Chart showed missing trade as history
5. later on, Signal Chart issue wrong entry
6. Go to the Indicator chart for @NQU14 5 mins bar
7. Press Ctrl-R at the Indicator Chart
8. Reload the Strategy again at the Signal Chart
9. Signal Chart will skip the wrong entry in the history.
Note: Purging the TS cache folder and the MC64 database will not fix the problem.
Seems like the only way to fix this problem is by using Ctrl-R at each of the charts.
Here is my question? How often should I press Ctrl R? Should I do it every 1 hr? When is the right time to press Ctrl-R to get around any potential datafeed buffer issue?
It is a very painful experience. Please help us with a easier solution.
I think I am very close to find the problem. I can reproduce it now with my development machine.
Our Strategy depends on two indicators to provide trending information. Somehow the indicator was providing wrong info. We fixed the problem by pressing Ctrl-R at the indicator chart. Just like the way we did it for the Signal.
Seems like it's a datafeed buffer problem here. If user do these following actions, MC64 will provide subtle wrong data unless each chart got refreshed.
1. Change to a different started date for @NQU14 with the Signal chart (800 tick bar) (i.e. from 6/30/2014 to 7/7/2014)
2. Signal Chart will get missing trade
3. Press Ctrl-R at the Signal Chart
4. Signal Chart showed missing trade as history
5. later on, Signal Chart issue wrong entry
6. Go to the Indicator chart for @NQU14 5 mins bar
7. Press Ctrl-R at the Indicator Chart
8. Reload the Strategy again at the Signal Chart
9. Signal Chart will skip the wrong entry in the history.
Note: Purging the TS cache folder and the MC64 database will not fix the problem.
Seems like the only way to fix this problem is by using Ctrl-R at each of the charts.
Here is my question? How often should I press Ctrl R? Should I do it every 1 hr? When is the right time to press Ctrl-R to get around any potential datafeed buffer issue?
It is a very painful experience. Please help us with a easier solution.
Re: Need to restart the machine to force MC to read new INPU
On second thought. I think from now on we will always press Ctrl-R to reload the chart whenever there is a event of changing. Seems like this is the only way to force MC64 to think right.
- Andrew MultiCharts
- Posts: 1587
- Joined: 11 Oct 2011
- Has thanked: 931 times
- Been thanked: 559 times
Re: Need to restart the machine to force MC to read new INPU
Could you send us the following files to support@multicharts.com?1. Change to a different started date for @NQU14 with the Signal chart (800 tick bar) (i.e. from 6/30/2014 to 7/7/2014)
2. Signal Chart will get missing trade
3. Press Ctrl-R at the Signal Chart
4. Signal Chart showed missing trade as history
5. later on, Signal Chart issue wrong entry
6. Go to the Indicator chart for @NQU14 5 mins bar
7. Press Ctrl-R at the Indicator Chart
8. Reload the Strategy again at the Signal Chart
9. Signal Chart will skip the wrong entry in the history.
1. The workspace to reproduce the situation.
2. Export of used symbols (without data) from QuoteManager in .qmd archive: https://www.multicharts.com/trading-sof ... rting_Data
3. The exported scripts with all dependant functions that are used on the workspace: https://www.multicharts.com/trading-sof ... ng_Studies
4. Number of bar/bars, their date and time where the issue takes place.
5. The screenshots demonstrating the issue.