Need to restart the machine to force MC to read new INPUT va

Questions about MultiCharts and user contributed studies.
tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Need to restart the machine to force MC to read new INPUT va

Postby tonyng » 14 Jul 2014

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.

User avatar
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

Postby TJ » 14 Jul 2014

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.
Please see if the below describes the problem you encountered. If not, please ignore and further escalate the issue to tech support.


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?

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 14 Jul 2014

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.

User avatar
Smoky
Posts: 517
Joined: 03 Dec 2010
Location: Thailand
Has thanked: 99 times
Been thanked: 121 times

Re: Need to restart the machine to force MC to read new INPU

Postby Smoky » 15 Jul 2014

The only way to change input on the fly is to use Global Variables with third party software, who can make every change on real time ;)

User avatar
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

Postby Andrew MultiCharts » 15 Jul 2014

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.
How exactly do you change the input's value?

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 15 Jul 2014

Select:

Signals -> Format.. -> Inputs

So I changed the value there.

User avatar
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

Postby Andrew MultiCharts » 15 Jul 2014

And after you changed the inputs in code 1, you expect the values to be updated (through ADE) in code 2?

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 15 Jul 2014

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.

User avatar
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

Postby Andrew MultiCharts » 16 Jul 2014

tonyng,

Couple of questions:
  • What data feed do you use?
  • Are both MC connected to the same account for receiving data?

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 17 Jul 2014

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.
Attachments
HiLoLog.rar
(249.97 KiB) Downloaded 155 times
Last edited by tonyng on 17 Jul 2014, edited 2 times in total.

User avatar
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

Postby Andrew MultiCharts » 17 Jul 2014

4 MC64 program running side by side connecting to the same TS Account.
By "4 MC64" do you mean 4 instances (main frames) of the same MultiCharts 64 bit?

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 17 Jul 2014

Each of MC64 has it's own main frame. Yes we have 4 of them running. I have updated the previous message to include our log file

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 17 Jul 2014

Forgot to mention that our NQ tick bar's resolution is 800 Tick per bar

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 17 Jul 2014

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.

tonyng
Posts: 51
Joined: 04 Oct 2013
Has thanked: 2 times
Been thanked: 5 times

Re: Need to restart the machine to force MC to read new INPU

Postby tonyng » 17 Jul 2014

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.

User avatar
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

Postby Andrew MultiCharts » 23 Jul 2014

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.
Could you send us the following files to support@multicharts.com?
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.


Return to “MultiCharts”