[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 381

 
double MarketInfo( string symbol, int type) 

Dies ist von Hilfe, aber ist es möglich, NULL als ein Symbol zu verwenden, um nur das Instrument zu "beobachten", auf dem der EA arbeitet?

Es ist nur so, dass wir mehrere EAs desselben Typs für verschiedene Paare planen.

Zum Beispiel so:

MarketInfo(NULL,MODE_ASK)
 
moskitman:

Dies ist von der Hilfe, aber ist es möglich, NULL als Symbol zu verwenden, um nur das Instrument zu "beobachten", auf dem der EA ausgeführt wird?

Zum Beispiel so:

NULL wird nicht funktionieren, wie es scheint.

Aber Symbol() wird funktionieren =)

 

Guten Tag. Ich habe die folgende Frage. DasMQL4-Buchauf MQL4.community enthält im Abschnitt "Einfache MQL-Programme" ein Beispiel für tradingexpert.mq4 mit folgendem Inhalt (siehe beigefügte Datei). Die externen Variablen extern double StopLoss =200 und extern double TakeProfit =39 werden in Block 1-2 deklariert. Block 8-9 Aufrufe der Funktionen New_Stop(StopLoss) und New_Stop(TakeProfit) werden zur Berechnung der SL- und TP-Parameter verwendet. Eine Beschreibung der Funktion findet sich in Block 11-12.

Frage: Der formale Parameter der Funktion New_Stop ist vom Typ int(int Parametr), während die Parameter, die im Funktionsaufruf New_Stop(StopLoss)(New_Stop(TakeProfit)) übergeben werden, vom Typ double sind... Im MQL4-Buch, zu finden bei MQL4.community im Abschnitt "Language Basics", Unterabschnitt "Functions", steht "Function Properties" "Die Anzahl, der Typ und die Reihenfolge der Parameter, die in einem Funktionsaufruf übergeben werden, müssen mit der Anzahl, dem Typ und der Reihenfolge der formalen Parameter übereinstimmen, die in der Funktionsbeschreibung übergeben werden (die Ausnahme ist ein Funktionsaufruf, der Standardparameter hat - siehe Funktionsaufruf und Funktionsbeschreibung und Rückgabeoperator. Wie ist dieser Widerspruch zu erklären: Demnach hätte ich bei der Deklaration der Variablen StopLoss und TakeProfit den Typ int und nicht double angeben müssen (der Compiler gibt keinen Fehler aus)?

Um das Forum nicht zu überfrachten, danke ich im Voraus für die Antwort.

Dateien:
 

Hallo, können Sie mir einen Tipp geben... Ich habe das halbe Internet durchsucht, und die Informationen sind unterschiedlich

Das Wesen des Expert Advisors besteht darin, Positionen für verschiedene Instrumente zu eröffnen. "Im wirklichen Leben funktioniert es und zeigt die aktuellen Preise an, aber ich kann es nicht durch die Geschichte laufen lassen... Die Funktion gibt Null zurück.

Ich möchte den aktuellen Kurs für zwei Währungen anzeigen, z.B. EURUSD und EURCHF.

Ich rufe den aktuellen Kurs mit dieser Funktion auf (ich verfolge die Historie, wenn der EURUSD-Chart aktiv ist):

MarketInfo("EURUSD",MODE_BID) ---> aktuellen Kurs ermitteln

MarketInfo("EURCHF ",MODE_BID) ---> liefert Null

Ich habe auf diesem Forum gefunden, dass MarketInfo nicht auf Geschichte funktioniert, verwenden Sie "iClose".

Aber wenn ich das Zitat mit der Option

iClose("EURUSD",PERIOD_M1,0) ---> Ich erhalte den aktuellen Kurs

iClose("EURCHF",PERIOD_M1,0) ---> ergibt Null

Wie kann ich sonst die aktuellen Kurse für verschiedene Instrumente im Strategietester abrufen? Dankeschön

 
faton:

Der MT4-Tester ist nicht mehrwährungsfähig. Mit anderen Worten: Es können nur EAs für einzelne Währungen getestet werden.

 
moskitman:

Der MT4-Tester ist nicht mehrwährungsfähig. Mit anderen Worten: Es können nur EAs für einzelne Währungen getestet werden.


danke
 
faton:

danke

Genauer gesagt, testen Sie mit einem Tool und Sie können andere Tools für die Analyse verwenden.
 
sergeev:


Danke für Ihre Hilfe!))
 
DhP:

Zumindest scheint es so:

Vielen Dank für Ihr Feedback!!! sehr hilfreich!
 
7777877:

Guten Tag. Ich habe die folgende Frage. DasMQL4-Buchauf MQL4.community enthält im Abschnitt "Einfache MQL-Programme" ein Beispiel für tradingexpert.mq4 mit folgendem Inhalt (siehe beigefügte Datei). Die externen Variablen extern double StopLoss =200 und extern double TakeProfit =39 werden in Block 1-2 deklariert. Block 8-9 Aufrufe der Funktionen New_Stop(StopLoss) und New_Stop(TakeProfit) werden zur Berechnung der SL- und TP-Parameter verwendet. Block 11-12 enthält eine Beschreibung der Funktion.

Frage: Der formale Parameter der Funktion New_Stop ist vom Typ int(int Parametr), während die Parameter, die im Funktionsaufruf New_Stop(StopLoss)(New_Stop(TakeProfit)) übergeben werden, vom Typ double sind... Im MQL4-Buch, zu finden unter MQL4.community im Kapitel "Language Fundamentals" im Abschnitt "Functions", Unterabschnitt "Function Properties" steht "Die Anzahl, der Typ und die Reihenfolge der Parameter, die in einem Funktionsaufruf übergeben werden, müssen mit der Anzahl, dem Typ und der Reihenfolge der formalen Parameter übereinstimmen, die in der Funktionsbeschreibung übergeben werden (die Ausnahme ist ein Funktionsaufruf, der Standardparameter hat - siehe Funktionsaufruf und Funktionsbeschreibung und Rückgabeoperator. Wie ist dieser Widerspruch zu erklären: Demnach hätte ich bei der Deklaration der Variablen StopLoss und TakeProfit den Typ int und nicht double angeben müssen (der Compiler gibt keinen Fehler aus)?

Vielen Dank im Voraus für die Antwort, um das Forum nicht zu überladen.

Die externen Parameter (extern double StopLoss =200; extern double TakeProfit =39; ) sollten im Prinzip vom Typ Integer sein (genauer gesagt, nach der Idee des Autors - es ist ein Wert in Punkten). Beim Aufruf der Funktion wird die implizite Typumwandlung verwendet. Der Fließkommatyp wird in den Ganzzahltyp umgewandelt, wobei die Genauigkeit verloren geht. In diesem Fall spielt es keine Rolle: Die Größe von Stop und Gewinn wird wie beabsichtigt in Pips festgelegt - sie ist immer ganzzahlig.

IMHO ist der Beispielcode schlecht geschrieben.

Die Verwendung des absoluten Wertes von Konstanten ist ein sehr schlechter und falscher Stil, mit mnemonischen Namen.

         if (OrderType()>1)                     // Попался отложенный
           {
 

Die schlechteste Implementierung der Auftragsaufzählung: Es ist schwer, sich eine "zurückgebliebenere" Implementierung vorzustellen. Sie scheint absichtlich langsam zu sein: zusätzliche Berechnungen, unnötige Funktionsaufrufe - die zeitlich teuerste Operation, und das bei jeder Iteration der Schleife. Und das, obwohl sich die Anzahl der Aufträge innerhalb der Schleife nicht ändert.

   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
Grund der Beschwerde: