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

 

Ich füge diese Zeilen in den Quellcode des Indikators ein:

#property version             "1.00"
#property description         "This indicator looks for two consecutive fractal and puts signal pointers"
#property description         "Flag DrawArrowSig : true = Set signal arrow, false = No set signal arrow"
#property icon                "\\files\\FindTwoFractals32x32.ico";

Das ist es, was wir am Ende haben:


Daraus ergibt sich die Frage:

  1. Ist es überhaupt möglich, Ressourcen in Indikatoren zu verwenden?
  2. Ist der Pfad zur Symboldatei "\\files\\FindTwoFractals32x32.ico" korrekt angegeben ; wenn der tatsächliche Speicherort der Datei D:\NewMT4\MQL4\files ist und das Terminal mit ME /portable gestartet wird
  3. Welche Größe in Pixeln ist für ein Symbol akzeptabel?
Ich danke Ihnen.
 
artmedia70:

Ich füge diese Zeilen in den Quellcode des Indikators ein:

Das ist es, was wir am Ende haben:


Daraus ergibt sich die Frage:

  1. Ist es überhaupt möglich, Ressourcen in Indikatoren zu verwenden?
  2. Ist der Pfad zur Symboldatei "\\files\\FindTwoFractals32x32.ico" korrekt angegeben ; wenn der tatsächliche Speicherort der Datei D:\NewMT4\MQL4\files ist und das Terminal mit ME /portable gestartet wird
  3. Welche Pixelgröße ist für ein Symbol akzeptabel?
Ich danke Ihnen.


1. es ist möglich. wir werden das Fenster auf die gleiche Größe wie MT5 ändern

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

3. es ist besser, einen kompletten Satz (mehrere Icons in einer Datei) von 16x16 bis 64x64 (128x128) .ico-Dateien zu verwenden. Bald werden Programme mit ihren eigenen Symbolen direkt in der Oberfläche des Betriebssystems angezeigt.

Sie können auch mehr über Ressourcen lesen:

 

Sie haben einen sehr praktischen Trick bei der Erstellung von externen und Eingabeparametern angewandt, um die Variable nach // durch ihre Beschreibung zu ersetzen.

Ist es möglich, die Beschreibungen der benutzerdefinierten Funktionen zu ersetzen, jetzt mache ich eine leere Initialisierung einer Variablen vom Typ String in meinen Funktionen, um alle Parameter der übergebenen Werte zu sehen

 
double  iBands(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          period,           // период
   int          deviation,        // отклонение
   int          bands_shift,      // сдвиг относительно цены
   int          applied_price,    // тип цены
   int          mode,             // индекс линии
   int          shift             // сдвиг
   );
У deviation тип double должен быть.
 

Der größte Teil des Problems wird durch die explizite Benennung von Variablen im Prototyp gelöst. Das heißt, nicht typ1, typ2, sondern transaction_type, trade_operation, etc.

Wenn es Aufzählungswerte gibt, ist es besser, sie mit enum zu beschreiben, was dann eine automatische Ersetzung während der Bearbeitung ermöglicht.

 
Renat:
Aus Gründen der UAC-Kompatibilität bringen wir alles in dieselbe Ansicht. Die Migration des Verzeichnisses im 534er Build ist abgeschlossen.

D.h. es gibt mehr als eine 534er Version? Die Frage stellt sich von selbst, denn ich habe 534 Build, Terminal ist nicht in X:\Programme (x86) und nicht in X:\Programmdateien installiert, OS Windows 7, Rechte im Administratorsystem, nur für den Fall, dass ich Vollzugriff auf Verzeichnisse und Unterverzeichnisse von Terminal setze, aber "Müll" wird immer noch in X:\Users\xxx\AppData\Roaming\MetaQuotes\ erstellt. Gleichzeitig wird auch "Müll" in X:\ProgramData\MetaQuotes erstellt. In 529 Build mit allen oben genannten, Müll in X:\Users\xxx\AppData\Roaming\MetaQuotes\ wurde nicht erstellt.

Ich vergaß, der Parameter /portable ist eingeschaltet.

 
Was ist dieser mysteriöse Parameter "/portable"? Wo sollte sie aufgenommen werden? Oder ist es nicht so?
 
Zhunko:
Was ist dieser mysteriöse Parameter "/portable"? Wo sollte sie aufgenommen werden? Oder nicht?
Der Parameter startet das Terminal zwangsweise in seiner Sandbox und wird beim Starten des Terminals oder Unitors aktiviert. Theoretisch sollte dies verhindern, dass das Programm Müll im System erzeugt. Ich habe eine Batch-Datei erstellt - start terminal.exe /portable
 
Barbarian:

D.h. es gibt mehr als eine 534er Version? Die Frage stellt sich von selbst, denn ich habe 534 Build, Terminal ist nicht in X:\Programme (x86) und nicht in X:\Programmdateien installiert, OS Windows 7, Rechte im Systemadministrator, nur für den Fall, dass ich Vollzugriff auf Verzeichnisse und Unterverzeichnisse von Terminal setze, aber "Müll" wird immer noch in X:\Users\xxx\AppData\Roaming\MetaQuotes\ erstellt. Gleichzeitig wird auch "Müll" in X:\ProgramData\MetaQuotes erstellt. In 529 Build mit allen oben genannten, Müll in X:\Users\xxx\AppData\Roaming\MetaQuotes\ wurde nicht erstellt.

Ich vergaß, dass der Parameter /portable aktiviert ist.

Bauen Sie einen.

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

Die Datenverzeichnisse im Bereich Users/AppData sind nicht länger Unsinn und auch keine Microsoft-Empfehlungen mehr (um die sich alle Entwickler jahrelang nicht kümmerten), 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. Stellen Sie sich vor, dass die Benutzerkontensteuerung überall aktiviert ist und nie deaktiviert wird.

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

 
Barbarian:
Der Parameter erzwingt die Ausführung des Terminals in seiner Sandbox und wird aktiviert, wenn das Terminal oder der Unicast gestartet wird. Sie soll verhindern, dass das Programm Müll auf dem System anlegt. Ich habe eine Batch-Datei erstellt - start terminal.exe /portable
Seltsam... Sollte dies nicht die Standardeinstellung sein, wie es früher der Fall war?