MetaTrader 4 Build 529 beta released with new compiler - page 22

 
Renat:

Build One.

32-bit applications on 64-bit Windows are installed exclusively in Program Files (x86) - these are the compatibility requirements of Microsoft.

Data directories in Users/AppData area are no longer rubbish, and no longer Microsoft recommendations (which all developers did not care about for many years), but the hard truth of life. In recent operating systems, Microsoft has sledgehammered everybody to work correctly, because there is no other way to cope with UAC. In the mass market this is the only way left.

To force terminal to store most of data in local directory or work in portable/transportable (e.g. on flash) mode, use /portable flag. But this still does not apply to storing general non-personalized data in Users/AppData.

Then how can you explain that old builds, including the current 509, do not create anything in Users/AppData with the parameters I specified? I mean exactly with the parameters I have specified.
 
Renat:

1. you can. we will re-do the window in the same way as MT5

2. Look at "File - Open data directory". This is where the path will be read from

3. better use full set (several icons in one file) from 16x16 to 64x64 (128x128) .ico files. Soon programs will be shown with their native icons right in the interface of the operating system.

  1. Perfect
  2. I looked it up: D:\NewMT4\ Shouldn't it be D:\NewMT4\MQL4\ ? And if it's not, it should be "\\\MQL4\\\files\\\FindTwoFractals32x32.ico";???
  3. Is there any software to create such sets? Haven't done graphics in three hundred years.
(chuckles): Thank you.
 
artmedia70:
  1. Fine
  2. I looked it up: D:\NewMT4\ Shouldn't it be D:\NewMT4\MQL4\ ? And if not, the path should be "\\MQL4\\\files\\FindTwoFractals32x32.ico";???
  3. Is there any software to create these kits? Haven't done any graphics in three hundred years.
Thank you.

2. terminal knows that the MQL4 follower is added automatically. So it's written correctly with \\files

3. Look around - there are all sorts of ICON Studio releases, including free ones.

 
Renat:

2. the terminal knows that the MQL4 follower is added automatically. So it's written correctly with \\files

3. Search around - there are all sorts of ICON Studio releases, including free ones.


Thank you
 
Barbarian:
Then how can you explain that old builds, including the current 509, do not create anything in Users/AppData with the parameters I specified? I mean exactly with the parameters I mentioned.

The reason is that someone did not care about Microsoft requirements and worked against the system of rights management for many years. We are fixing the accumulated problems of MT4.

At the moment, if you want to mass sell anything actively writing in their directories, you need to think straight about strict UAC and restricted user rights. And don't forget the installation base of millions of computers.

 

Renat, could you publish short announcements with a list of changes in new builds? So that we don't have to test blindly.

Will these features be implemented? Do we just have to wait?

'ChartGetInteger' - function not defined

'ChartWindowFind' - function not defined

'AccountInfoString' - function not defined

'TimeTradeServer' - function not defined

'ExpertRemove' - function not defined

'AccountInfoInteger' - function not defined

 
ALXIMIKS:


All I try to do is to return the functionality of my MT4 509 indicator (it is 90% functional now, the only thing I miss is the possibility to shift to the future)

But to see the future, you need to shift the time-series to the past.

You have been told, use SetIndexShift(0, 1);

You don't need to copy anything.

And the description in the tooltip will tweak it.

 
komposter:

Renat, could you publish short announcements with a list of changes in new builds? So that we don't have to test blindly.

Will these features be implemented? Do we just have to wait?

I'll add "SymbolSelect" to the list. +1 to the wish for a description of the new builds.
 
komposter:

Renat, could you publish short announcements with a list of changes in new builds? So that we don't have to test blindly.

Will these features be implemented? Do we just have to wait?

'ChartGetInteger' - function not defined

'ChartWindowFind' - function not defined

'AccountInfoString' - function not defined

'TimeTradeServer' - function not defined

'ExpertRemove' - function not defined

'AccountInfoInteger' - function not defined

They will be implemented.

We will prepare a list of changes next week, when we will start involving traders in mass testing. For now, we are running tests without announcements and only in the Russian forum.

 
komposter:

You have been told, use SetIndexShift(0, 1);

You don't need to copy anything.

And the description in the tooltip will tweak it.


described my idea (to swing the graph, putting the present into the past while coming up with my future), if it's not very clear, alas........

i would be glad if you suggest another way to draw what i need on the minus bars with adequate values on the plus bars.

(I was moving present into past, then supplemented it with my vision of future, and all that again moved, but into future).

As for ArrayCopy (llow,Low); and ArrayCopySeries (llow, 1); initial idea about wrong work of ArrayCopy (llow,Low) appeared because of wrong returned values of some its function in comparison with using ArrayCopySeries (llow, 1). But starting the loop on searching for differences between values of both arrays obtained by ArrayCopy (llow,Low) and ArrayCopySeries (llow, 1) I got only 0 (array members are absolutely equal) for all possible counting errors. Sometimes interesting values came through, i.e. Low = 1.351400000000000000000000; but the difference was always 0. I decided to analyze my function line by line where I pass arrays to get values of indicator buffer.

I obtained interesting data for ArrayMaximum. Code:

 int z=      100;        // z- количество баров для проверки
     delt=     2;        // delt - количество баров для выборки в функции ArrayMaximum()
     poz_max1= 0;        // poz_max1- значение(номер бара) получаемое от функции ArrayMaximum() для массива получаемого от ArrayCopySeries (llow1,   1);
     poz_max2= 0;        // poz_max2- значение(номер бара) получаемое от функции ArrayMaximum() для массива получаемого от ArrayCopy       (llow2, Low);

 double llow1[];         //  массив получаемый от ArrayCopySeries (llow1,   1);
        llow2[];         //  массив получаемый от ArrayCopy       (llow2, Low);

 ArrayCopySeries (llow1,   1);  
 ArrayCopy       (llow2, Low);
 
 while(true){                                     // цикл проверки разности с динамической точностью
    for (int i =z;i>=0;i--){                      // цикл проверки разности с статической  точностью
       poz_max1=ArrayMaximum (llow1, delt, i);    // находим бар с максимальным значением среди delt баров начиная с i для массива получаемого от ArrayCopySeries (llow1,   1);
       poz_max2=ArrayMaximum (llow2, delt, i);    // находим бар с максимальным значением среди delt баров начиная с i для массива получаемого от ArrayCopy       (llow2, Low);
    
       if (poz_max1-poz_max2>x){                  // проверяем или одинаковые результаты мы получили (еще не выучил закарлюки которые нада для красивого принта)
          Print ("poz_max1[i]= ",poz_max1,"   poz_max2[i]= ",poz_max2,"   diff[i]= ",poz_max1-poz_max2, "    i=",i); 
          Print ("llow1[i]= ", llow1[i],"   llow2[i]= ",llow2[i],"    i=",i); 
          Print ("llow1[poz_max1]= ", llow1[poz_max1],"   llow2[poz_max1]= ",llow2[poz_max1],"    i=",i); 
          Print ("==========================================================");  
          brc=true;                               // флаг выхода 
       } 
    }
    if (brc==true||x<1 e-15) return(0);
    x/=10;
 }

The result, different implementation of ArrayMaximum for two arrays

2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: ==========================================================
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:        llow1[i]= 1.3297          llow2[i]= 1.3297    i=1
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: llow1[poz_max1]= 1.3512   llow2[poz_max1]= 1.3297    i=1
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:     poz_max1[i]= 2            poz_max2[i]= 1        diff[i]= 1    i=1
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: ==========================================================
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:        llow1[i]= 1.3501          llow2[i]= 1.3501     i=4
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: llow1[poz_max1]= 1.3512   llow2[poz_max1]= 1.3501    i=4
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:     poz_max1[i]= 5            poz_max2[i]= 4         diff[i]= 1    i=4
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: ==========================================================

The conclusion: the values to be searched in ArrayMaximum() for the arrays obtained with ArrayCopy (llow, low) and ArrayCopySeries (llow, 1) are different.

For ArrayCopy (llow2,Low) , the ArrayMaximum() bars go in the forward direction:

For ArrayMaximum (llow2,5,5), bars 5, 4, 3, 2, 1 will be looked at.

This is how it should be ?????????????

Reason: