MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 22

 
Renat:

Build One.

32-Bit-Anwendungen werden unter 64-Bit-Windows ausschließlich in Programme (x86) installiert - das sind die Kompatibilitätsanforderungen von Microsoft.

Die Datenverzeichnisse im Bereich Users/AppData sind kein Unsinn mehr und auch keine Empfehlungen von Microsoft (die allen Entwicklern jahrelang egal waren), sondern die harte Wahrheit des Lebens. In den neueren Betriebssystemen hat Microsoft alle Benutzer mit dem Vorschlaghammer dazu gebracht, korrekt zu arbeiten, weil es keine andere Möglichkeit gibt, mit der UAC zurechtzukommen. Auf dem Massenmarkt ist dies die einzige Möglichkeit, die bleibt.

Um das Terminal zu zwingen, die meisten Daten im lokalen Verzeichnis zu speichern oder im portablen/transportablen Modus (z.B. auf Flash) zu arbeiten, verwenden Sie das Flag /portable. Dies gilt jedoch nicht für die Speicherung allgemeiner, nicht personalisierter Daten in Users/AppData.

Wie können Sie dann erklären, dass alte Builds, einschließlich der aktuellen Version 509, nichts in Users/AppData mit den von mir angegebenen Parametern erstellen? Ich meine genau mit den Parametern, die ich angegeben habe.
 
Renat:

1. Sie können. Wir werden das Fenster auf die gleiche Weise wie MT5 umgestalten.

2. Sehen Sie sich "Datei - Datenverzeichnis öffnen" an. Von hier aus wird der Pfad gelesen

3. Verwenden Sie besser einen vollständigen Satz (mehrere Icons in einer Datei) von 16x16 bis 64x64 (128x128) .ico-Dateien. Bald werden Programme mit ihren eigenen Symbolen direkt in der Oberfläche des Betriebssystems angezeigt.

  1. Perfekt
  2. Ich habe es nachgeschlagen: D:\NewMT4\ Sollte es nicht D:\NewMT4\MQL4\ sein? Und wenn nicht, sollte es "\\\\MQL4\\\files\\\FindTwoFractals32x32.ico" sein ;???
  3. Gibt es eine Software zur Erstellung solcher Sets? Ich habe seit dreihundert Jahren keine Grafiken mehr erstellt.
(Vielen Dank.
 
artmedia70:
  1. Fein
  2. Ich habe es nachgeschlagen: D:\NewMT4\ Sollte es nicht D:\NewMT4\MQL4\ sein? Und wenn nicht, sollte es "\\MQL4\\files\\FindTwoFractals32x32.ico" im Pfad sein .
  3. Gibt es eine Software zur Erstellung dieser Kits? Ich habe seit dreihundert Jahren keine Grafik mehr gemacht.
Ich danke Ihnen.

2. das Terminal weiß, dass der MQL4-Folger automatisch hinzugefügt wird. So ist es richtig geschrieben mit \\Dateien

3. schauen Sie sich um - es gibt alle möglichen ICON Studio Versionen, auch kostenlose.

 
Renat:

2. Das Terminal weiß, dass der MQL4-Folger automatisch hinzugefügt wird. So ist es richtig geschrieben mit \\Dateien

3. schauen Sie sich um - es gibt alle möglichen ICON Studio Versionen, auch kostenlose.


Dankeschön
 
Barbarian:
Wie können Sie dann erklären, dass alte Builds, einschließlich der aktuellen Version 509, nichts in Users/AppData mit den von mir angegebenen Parametern erstellen? Ich meine genau mit den von mir genannten Parametern.

Der Grund dafür ist, dass sich jemand nicht um die Anforderungen von Microsoft kümmerte und viele Jahre lang gegen das System der Rechteverwaltung arbeitete. Wir sind dabei, die angesammelten Probleme von MT4 zu beheben.

Wenn Sie etwas in Massen verkaufen wollen, das aktiv in die Verzeichnisse geschrieben wird, müssen Sie sich Gedanken über strenge UAC und eingeschränkte Benutzerrechte machen. Nicht zu vergessen ist die Installationsbasis von Millionen von Computern.

 

Renat, könnten Sie kurze Ankündigungen mit einer Liste der Änderungen in neuen Builds veröffentlichen? Damit wir nicht blindlings testen müssen.

Werden diese Funktionen implementiert werden? Müssen wir einfach warten?

'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:


Ich versuche nur, die Funktionalität meines MT4 509 Indikators wiederherzustellen (er ist jetzt zu 90% funktionsfähig, das einzige, was ich vermisse, ist die Möglichkeit, in die Zukunft zu wechseln)

Aber um die Zukunft zu sehen, muss man die Zeitreihe in die Vergangenheit verschieben.

Man hat Ihnen gesagt, Sie sollen SetIndexShift(0, 1) verwenden;

Sie brauchen nichts zu kopieren.

Und die Beschreibung in der QuickInfo wird sie optimieren.

 
komposter:

Renat, könnten Sie kurze Ankündigungen mit einer Liste der Änderungen in neuen Builds veröffentlichen? Damit wir nicht blindlings testen müssen.

Werden diese Funktionen implementiert werden? Müssen wir einfach warten?

Ich werde die Liste um "SymbolSelect" erweitern. +1 auf den Wunsch nach Beschreibungen von Neubauten.
 
komposter:

Renat, könnten Sie kurze Ankündigungen mit einer Liste der Änderungen in neuen Builds veröffentlichen? Damit wir nicht blindlings testen müssen.

Werden diese Funktionen implementiert werden? Müssen wir einfach warten?

'ChartGetInteger' - function not defined

'ChartWindowFind' - function not defined

'AccountInfoString' - function not defined

'TimeTradeServer' - function not defined

'ExpertRemove' - function not defined

'AccountInfoInteger' - function not defined

Sie werden umgesetzt werden.

Wir werden in der nächsten Woche eine Liste der Änderungen vorbereiten, wenn wir die Händler in die Massentests einbeziehen werden. Im Moment laufen die Tests ohne Ankündigungen und nur im russischen Forum.

 
komposter:

Man hat Ihnen gesagt, Sie sollen SetIndexShift(0, 1) verwenden;

Sie brauchen nichts zu kopieren.

Und die Beschreibung in der QuickInfo wird sie optimieren.


meine Idee beschrieben (den Graphen zu schwenken, die Gegenwart in die Vergangenheit zu setzen, während ich mir meine Zukunft ausdenke), wenn das nicht sehr klar ist, leider........

Ich würde mich freuen, wenn Sie einen anderen Weg vorschlagen, um das, was ich brauche, auf den Minus-Balken mit entsprechenden Werten auf den Plus-Balken zu zeichnen.

(Ich habe die Gegenwart in die Vergangenheit verschoben, dann habe ich sie mit meiner Zukunftsvision ergänzt, und das alles hat sich wieder verschoben, aber in die Zukunft).

Was ArrayCopy (llow,Low); und ArrayCopySeries (llow, 1) betrifft, so erschien die anfängliche Idee, dass ArrayCopy (llow,Low) falsch arbeitet, weil einige der zurückgegebenen Werte der Funktion falsch sind im Vergleich zu ArrayCopySeries (llow, 1). Aber wenn ich eine Schleife auf der Suche nach Unterschieden zwischen den Werten der beiden Arrays durch ArrayCopy (llow,Low) und ArrayCopySeries (llow, 1) erhielt ich nur 0 (Array Mitglieder sind absolut gleich) für alle Varianten der Berechnung Genauigkeit. Manchmal kamen interessante Werte durch, z.B. Low = 1.351400000000000000000000; aber die Differenz war immer 0. Ich beschloss, meine Funktion Zeile für Zeile zu analysieren, wo ich Arrays übergebe, um Werte des Indikatorpuffers zu erhalten.

Ich habe interessante Daten für ArrayMaximum erhalten. 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;
 }

Das Ergebnis, unterschiedliche Implementierung von ArrayMaximum für zwei 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: ==========================================================

Die Schlussfolgerung: Die in ArrayMaximum() zu suchenden Werte in Arrays, die mit ArrayCopy (llow, low) und ArrayCopySeries (llow, 1) erhalten wurden, sind unterschiedlich.

Bei ArrayCopy (llow2,Low) gehen die ArrayMaximum()-Balken in Vorwärtsrichtung:

Für ArrayMaximum (llow2,5,5) werden die Balken 5, 4, 3, 2, 1 betrachtet.

So sollte es sein ?????????????