Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 883

 
Askr:
Wie lädt MT5 das Kursarchiv herunter? In MT4 zum Beispiel F2 und dann drücken Sie aktualisieren, aber hier?

Sie müssen nichts auf MetaTrader 5 herunterladen. Sie können die Notierungen für den Handelsserver verwenden, mit dem Sie verbunden sind. Wenn Sie wollen, können SieCopyRates verwenden, wenn Sie wollen, können SieCopyTicks verwenden.

 
Askr:
Wie lädt MT5 das Kursarchiv herunter? In MT4 z.B. F2 und dann drückt man update, aber hier?

Sie können es nicht direkt tun. Es sei denn, Sie erstellen ein benutzerdefiniertes Symbol, für das Sie den Verlauf importieren können. Das benutzerdefinierte Symbol kann nur für die Arbeit mit der Historie verwendet werden. Es kann nicht für den Handel verwendet werden.

 
Ihor Herasko:

Was ist, wenn der EA zu diesem Zeitpunkt nicht aktiv war? Schließlich möchten wir die Daten aus der Kontohistorie abrufen. Doch leider ist dies nicht eindeutig möglich. Das ist nur mit vielen Vorbehalten möglich.

Es ist merkwürdig, warum die EntwicklerOrderCloseTime() nichtin MT5 implementiert haben.Anscheinend gab es dafür einen guten Grund).

 
lil_lil:

Es ist seltsam, warum die Entwickler nichtOrderCloseTime() in MT5 gemacht haben.Offensichtlich gab es dafür schwerwiegende Gründe).

Denn der Auftrag hat im MT5 und Mql5 eine andere Bedeutung. Um die Schließungszeit einer Position zu ermitteln, müssen wir die Aufträge und Geschäfte dieser Position auswählen und unter ihnen ein Geschäft mit dem Modifikator DEAL_ENTRY_OUT finden , dessen Zeitpunkt der Schließung der Position entspricht.

 

Guten Tag, bitte um Rat, ich kann keine Konstruktion für die folgende Bedingung machen: der Indikator wird gestartet, passende Preisparameter erscheinen in der Kerze, eine grafische Anzeige wird gezeichnet, aber sagen wir, wenn es noch weit ist, bevor die Kerze schließt, kann der Indikator eine andere Kerzenkombination an dieser Stelle erkennen. Die Frage ist, wie man den Code in den Prozess jeder zweiten Überwachung schreibt, so dass er das vorherige Ergebnis entfernt, wenn die Bedingung in dieser Kerze nicht mehr funktioniert?

Hier ist ein gutes Beispiel für die Darstellung, aber wenn ich den Tester hier laufen lassen würde, würde er mir eine falsche Candlestick-Anzeige liefern. Wie kann man das beheben?

Und eine weitere Frage - wie kann man eine Ausschreibung auf der Grundlage des folgenden Designkonzepts erstellen?

Aufgabe - gegeben: TF 1 Stunde.

Die Bedingung - die Suche Teil des Indikators nur laufen, sagen wir, nach 55 Minuten und bis zu 60 Minuten der aktuellen Kerze, und dann den Zyklus neu starten.

Wie lässt sich dieses Konstrukt umsetzen?

 
clickaider:

Guten Tag, bitte um Rat, ich kann keine Konstruktion für die folgende Bedingung machen: der Indikator wird gestartet, passende Preisparameter erscheinen in der Kerze, eine grafische Anzeige wird gezeichnet, aber sagen wir, wenn es noch weit ist, bevor die Kerze schließt, kann der Indikator eine andere Kerzenkombination an dieser Stelle erkennen. Die Frage ist, wie man den Code in den Prozess jeder zweiten Überwachung schreibt, so dass er das vorherige Ergebnis entfernt, wenn die Bedingung in dieser Kerze nicht mehr funktioniert?

Hier ist ein richtiges Beispiel für das Rendering, aber wenn ich den Tester hier ausführen würde, würde er mir einen falschen Candlestick-Wert anzeigen. Wie kann ich es reparieren?

1. das Prüfgerät funktionierte und funktioniert einwandfrei, keine Fehler.

2. Sie haben den Testprozess falsch verstanden: Wenn der erste Durchlauf des Indikators oder der Auslagerungshistorie stattfindet (denken Sie daran, dass das Zeichen dafür prev_calculated==0 ist), gehen Sie in einer Schleife um alle Balken herum. In dieser Schleife verwenden Sie also arrays-timeseries

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

die für jedes i-te Mitglied der Schleife nur EINEN Wert Open, High, Low und Close hat.

Aber wenn alle Balken durchlaufen sind, beginnt der Tester im Tick-Modus auf jedem Balken zu arbeiten - deshalb können Sie sehen, wie High nach oben und Low nach unten geht.

 
Vladimir Karputov:

1. Das Testgerät funktioniert und arbeitet korrekt, es gibt keine Fehler.

2) Es gibt einen Fehler in Ihrem Verständnis des Testprozesses: Wenn der erste Indikatorlauf oder das erste Paging der Historie stattfindet (denken Sie daran, dass das Zeichen dafür prev_calculated==0 ist), umgehen Sie alle Balken in der Schleife. In dieser Schleife verwenden Sie also arrays-timeseries

die für jedes i-te Mitglied der Schleife nur EINEN Wert Open, High, Low und Close hat.

Und wenn alle Balken durchlaufen sind, beginnt der Tester mit der Arbeit an jedem einzelnen Balken im Tick-Modus - deshalb können Sie sehen, wie das Hoch nach oben und das Tief nach unten geht.

Ja, ich stimme zu, dass beim Start des Testers das Ergebnis aufgrund der sich füllenden Preiswerte unterschiedlich ist, aber die Frage ist, wie man eine Bedingung einfügt, wenn in einer Kerze z.B. zuerst ein Muster gebildet wird, aber am Ende ein anderes erscheint, das aber nicht durch einen anderen Indikatoreintrag ersetzt werden kann, weil die entsprechende Bedingung nicht vorgeschrieben ist. Wie ist sie zu spezifizieren?

if(Cmp(shadow_upper_1,shadow_lower_0)<0 && body_size_0 < body_size_1 && shadow_lower_0 >= 0.7*shadow_upper_0 && 8*body_size_0 >= shadow_lower_0 && 7*body_size_0 <= shadow_upper_0 && close_0 >= Upper1_0 && close_0 <= body_Upper_Upper1_mediane75_0 && Upper1_1 >= Upper1_2)
         if(InpEnablePAT_DOJIUP_UPPER1) DrawPattern(index,PATTERN_TYPE_DOJIUP_UPPER1,high,low,time);

Hier ist der Code, der die Candlestick-Anzeige bildet, aber wie kann man sie wiederholbar machen?

 
clickaider:

Ja, ich stimme zu, dass beim Ausführen des Testers das Ergebnis aufgrund der sich füllenden Preiswerte unterschiedlich ausfällt, aber die Frage ist, wie man eine Bedingung in die Konstruktion einbaut, wenn in einer Kerze z.B. zuerst ein Muster gebildet wird, aber am Ende ein anderes Muster erscheint, das aber nicht durch einen anderen Indikatoreintrag ersetzt werden kann, weil die entsprechende Bedingung nicht vorgeschrieben ist. Wie ist sie zu spezifizieren?

Hier ist der Code, der die Candlestick-Anzeige bildet, aber wie kann man sie wiederholbar machen?

Speichern Sie die Taktnummer im Index. Prüfen Sie es vor dem Zeichnen. Wenn sich ein Objekt auf der Leiste befindet, löschen Sie es. ObjectDelete.

 
clickaider:

Ja, ich stimme zu, dass beim Ausführen des Testers das Ergebnis aufgrund der sich füllenden Preiswerte unterschiedlich ausfällt, aber die Frage ist, wie man eine Bedingung in die Konstruktion einbaut, wenn in einer Kerze z.B. zuerst ein Muster gebildet wird, aber am Ende ein anderes Muster erscheint, das aber nicht durch einen anderen Indikatoreintrag ersetzt werden kann, weil die entsprechende Bedingung nicht vorgeschrieben ist. Wie ist sie zu spezifizieren?

Hier ist der Code, der die Candlestick-Anzeige bildet, aber wie kann man sie wiederholbar machen?

Ich möchte nur drei Staaten nennen:

  • Zeichnen Sie Muster 1
  • Muster 2 zeichnen
  • nichts zeichnen (z.B. für DRAW_ARROW"0" in den Indikatorpuffer übergeben, wenn Sie geschrieben haben

//--- установим пустое значение 
   PlotIndexSetDouble(индекс_построения_DRAW_ARROW,PLOT_EMPTY_VALUE,0);
 
Vladimir Karputov:

Geben Sie einfach drei Staaten an:

  • Muster 1 zeichnen
  • Muster 2 zeichnen
  • nichts zeichnen (z.B. für DRAW_ARROW übergeben Sie"0" an den Indikatorpuffer, wenn Sie geschrieben haben

Ich habe Ihnen den Quellcode geschickt, könnten Sie bitte nachsehen, wo Sie ihn ablegen können?
Dateien:
PatternsBB.ex5  81 kb