ChartNavigate during initialisation - page 3

 
Dina Paches:

Why is that? Did I write/bring nonsense?

Not that it's nonsense... but it's just that we're investigating the navigation here and redrawing the graph has no effect whatsoever (as it was clearly stated at the beginning of the experiment that graph scrolling should be disabled).

The test code runs for a minute or two at most, our computers are powerful - so the load is negligible.

 
Vladimir Karputov:

Not that it's nonsense... but it's just that we're investigating the navigation here and graph redrawing has no effect whatsoever (as it was clearly stated at the beginning of the experiment that graph scrolling should be disabled).

The test code is run for a minute or two at most, our computers are powerful - so the load is negligible.

Test codes can run frequently. /* Now a minute here, then a minute there, then an hour elsewhere, etc...

I was referring in this post to Renat's words. He has, I believe, more powerful computers than yours.

You, Vladimir, published these test codes to show work(research results), for download. Redrawing the chart on every tick in them is not appropriate

 
P./S.: In the input parameters you have the option to disable/enable only chart redraw viaChartRedraw(). However, inside the test codes you have a chart redraw on every tick via Comment
 
Dina Paches:

Test codes can run frequently. /* Now a minute here, then a minute there, then an hour elsewhere, etc...

I was referring in this post to what Renat said. I assume he has more powerful computers than you do.

You, Vladimir, published these test codes to show work(research results), for download. Re-drawing of graphs on every tick in them is not appropriate.

You're right about the redrawing. It's just not appropriate now ))

 
Ihor Herasko:

You're right about the redrawing. It's just not the right thing to do right now).

Um... Not the place for redrawing on every tick. Not the place for trying to convince you that it's not worth paying attention to.

And not said about it.

But now, at the expense of your and Vladimir's efforts to convince that it's out of place and not worth attention, the emphasis has really shifted away from the topic)

 

Build 1865.

Made a change to the indicator:

   if(count%12==0/* || count==19*/)

That is, every 12th tick we forcefully move the chart. What is it for:

  1. You can manually move the chart between 12 ticks and see the number of the first visible bar
  2. Visual tracking of movement.


So far we have a theory: shift of the chart depends on the GRAPHIC WIDE!

Files:
 

Indicator version 1.002:

removed all Comment (now output via Print)

Default:

//--- input parameters
input bool redraw=false;
input ENUM_CHART_POSITION position=CHART_END;

Clear dependence on chart scale. And there is some memory if one manually shifts the chart once.

Files:
 
Ihor Herasko:

I have come across a problem with the ChartNavigate function. Doing something wrong or is there really a problem with the function. Write back if you have used it often enough.

So, the essence of the problem: ChartNavigate does not shift the chart When starting the terminal If I call this function in OnInit(). I have purposely read the documentation several times. Nowhere does it say that the function can not be called during the initialization.

Code indicator for playback:

Steps to play:

  1. Turn off chart autoplay.
  2. Attach indicator to the chart. ChartNavigate will trigger by moving the chart to the desired position.
  3. Unload the terminal.
  4. Load the terminal. ChartNavigate will not work by displaying the chart without an offset.
OK, if the function would give an error. But it doesn't. All calls are successful, but it is when the terminal is reloaded that the chart offset does not occur.

Please tell me, before unloading the terminal, do you reset the chart to the most recent prices?

Why do I ask:

I am using your code to see how it would work for me in these conditions. At first I thought that the problem described by you is reproduced in my code. Later I understood that it doesn't. If the chart is restored to the latest prices before being unloaded, it works according to the code when the terminal is loaded. If I do not return to the latest prices before unloading, the chart remains where it was before unloading.

 
Vladimir Karputov:

Build 1865.

Made a change to the indicator:

That is, every 12th tick we forcefully move the chart. What is it for:

  1. You can manually move the chart between 12 ticks and see the number of the first visible bar
  2. Visual tracking of movement.


So far we have a theory: shift of the chart depends on the GRAPHIC WIDE!

Vladimir Karputov:

Indicator version 1.002:

...

There is a clear dependence onthe scale of the graph. And there is some memory if you manually shift the chart once.


The author of the thread has created this thread due to the following question - ChartNavigate during initialization:

Forum on trading, automated trading systems and testing trading strategies

ChartNavigate on initialization

Ihor Herasko, 2018.06.25 12:17

...

So, the crux of the problem: ChartNavigate does not shift the chart At the start of the terminal If you call the function in OnInit().


You, Vladimir, do your research not in OnInit() but in OnCalculate(). Not on the issue described by the author of the thread.

That is, you are considering something else in this thread.

If you have detected a real problem, maybe you should contact Service Desk with its description?


P./S.: According to the latest test code of the indicator attached here, you no longer have a forced re-rendering of the chart on every tick. But instead it now prints in the log at every tick. Due to the fact that there is no check if the number of the first bar on the chart has changed.

In addition, your code contains active deletion of comments. That is, if you put your code on the chart, where some other program will create some needed comments, your test code will remove them

P./S.: Removed a duplicate quote at the beginning of the post, put quotes from another, interlinked one in its place.

 
Dina Paches:


The author of the topic created it on the following question - ChartNavigate during initialisation:


You, Vladimir, are doing your research not in OnInit() but in OnCalculate(). Not on the issue described by the author of the thread.

That is, you are considering something else in this thread.

If you have detected a real problem, maybe you should contact Service Desk with its description?


P./S.: According to the latest test code of the indicator attached here, you no longer have a forced re-rendering of the chart on every tick. But instead it now prints in the log at every tick. Due to the fact that there is no check if the number of the first bar on the chart has changed.

In addition, your code contains active deletion of comments. I.e., if you put your code on the chart, where some other program will create some needed comments, your test code will remove them

Dina, is it working for you? I've been struggling for 2-3 hours now (just today, not counting yesterday's tests) trying to get a non-working version of OnInit, but to no avail. Everything always works as it should. If I put the indicator on two charts and restart the terminal, it works only on the chart which was active at the time of closing and opening the terminal. On the second, not active chart does not work. But this, in my opinion, is understandable, there is no chart rendering and no chart itself, despite the fact that the data is received.