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

 
Es ist möglich, dassUpper[i] bei einigen Takten nicht ausgefüllt ist (gleich 0).
 
Sergey Savinkin:
Es ist möglich, dassUpper[i] bei einigen Balken nicht gefüllt ist (gleich 0).

Ich glaube, ich habe einen Hinweis auf die Lösung gefunden: Wenn die Bedingung vor der Ausführung des Codes gegen den aktuellen Kursstand geschrieben wird, gibt das Protokoll Folgendes aus:

Wichtiger Punkt - diese Parameter stimmen mit dem bereits früher erstellten Preis überein

Zur Klarstellung:

Hier zeigt die letzte Zeile des Protokolls an, dass der Kurs die obere Linie überschritten hat. Die Frage ist nur, warum das so ist. Ich habe eine Version, die während der Neuberechnung des Indikators von Anfang bis zum jetzigen Zeitpunkt der Code registriert diese Ereignisse und stoppt am letzten Ereignis - es erklärt den Unterschied zwischen Preis und aktuellen Log-Daten, aber nicht erklären, etwas anderes - ich brauche nur den Code zu machen Vergleich in der Logik "Preis ging über die obere Linie - Alarm geben, aber nicht gehen - nichts tun".

Auch überprüft Code Bedingung, wenn der Preis unter der oberen Linie ist - es einfach nicht aufzeichnen Ereignis in Protokollen, die auf Screenshot oben ist - ich aufgehört, es am Ende zu verstehen, wenn es überhaupt funktioniert.

 

Meine Freunde, ich bin neu bei MQL5, also wenn die Probleme, über die ich hier schreibe, meine eigenen Fehler sind, dann treten Sie mich bitte nicht zu sehr.

Ich wollte eine Eule mit mehreren Währungen erstellen, stieß aber im Strategietester auf einige seltsame Dinge, die nur beim Testen von Eulen mit mehreren Währungen auftreten. Ich erhalte einige seltsame Verschiebungen von Zeitseriensymbolen, die nicht das Hauptdiagrammsymbol sind. Ich habe eine einfache Eule, die Null und erste Bar offen Zeiten durch zwei Symbole am Anfang eines jeden Balkens bekommt gemacht. Aus irgendeinem Grund verschiebt sich die Zeitreihe des zweiten Symbols nach 1 Takt. Erscheint auf jedem Symbol und in jedem Zeitrahmen. Ich habe mit EURUSD getestet, das zweite Symbol war GBPUSD. Ich habe es umgekehrt versucht, ich habe es bei anderen Paaren versucht, der Fehler erscheint immer. Dies ist das Bild aus dem Journal nach der Prüfung am М15:

Protokollbild nach dem Test auf H1:

Einstellungen des Strategietesters:

Hier ist der Code für den Test:

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
input string SecondSymbol="GBPUSD";

int OnInit()
  {
   SymbolSelect(SecondSymbol,true);//выбираем второй символ в MarketWatch(для тестера)
//---
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
//---

  }

void OnTick()
  {
   static datetime BarTime;//время начала бара
   int per=PeriodSeconds(PERIOD_CURRENT);

   datetime time_curr=TimeCurrent()/per*per;
   if(time_curr!=BarTime)
     {
      BarTime=time_curr;

      datetime Time_One[],Time_Two[];
      bool yes=ArraySetAsSeries(Time_One,true);
      yes=ArraySetAsSeries(Time_Two,true);

      int i=CopyTime(NULL,PERIOD_CURRENT,0,2,Time_One);    //текущий символ
      i=CopyTime(SecondSymbol,PERIOD_CURRENT,0,2,Time_Two);//второй символ
      
      Print("ВремяНачалаБара по ",Symbol(),":",Time_One[0]," ВремяНачалаБара по ",SecondSymbol,":",Time_Two[0]);
     }
  }

Für jede Hilfe wären wir dankbar.

 
stroganow:

Meine Freunde, ich bin neu bei MQL5, also wenn die Probleme, über die ich hier schreibe, meine eigenen Fehler sind, dann treten Sie mich bitte nicht zu sehr.

Ich wollte eine Eule mit mehreren Währungen erstellen, stieß aber im Strategietester auf einige seltsame Dinge, die nur beim Testen von Eulen mit mehreren Währungen auftreten. Ich erhalte einige seltsame Verschiebungen von Zeitseriensymbolen, die nicht das Hauptdiagrammsymbol sind. Ich habe eine einfache Eule, die Null und erste Bar offene Zeit durch zwei Symbole am Anfang eines jeden Balkens bekommt gemacht. Aus irgendeinem Grund verschiebt sich die Zeitreihe des zweiten Symbols nach 1 Takt. Erscheint auf jedem Symbol und in jedem Zeitrahmen. Ich habe mit EURUSD getestet, das zweite Symbol war GBPUSD. Ich habe es umgekehrt versucht, ich habe es bei anderen Paaren versucht, der Fehler erscheint immer. Dies ist das Bild aus dem Journal nach der Prüfung am М15:

Protokollbild nach dem Test auf H1:

Einstellungen des Strategietesters:

Der Code zum Testen:

Für jede Hilfe wären wir dankbar.

Das Prüfgerät arbeitet korrekt. Es gibt einen Fehler in der Programmlogik: Zwei Symbole sind wie zwei Leben verschiedener Personen (hier ist "Person" analog zu "Symbol"). Und die zweite Person muss nicht zur gleichen Zeit wie die erste Person aufwachen ("aufwachen" ist analog zu "neuer Balken erscheint").

Sie müssen also warten, bis ein neuer Balken erscheint UND auf das erste Symbol UND auf das zweite.


Hinzugefügt: Artikel"neuer Balken" Event-Handler

 

Können Sie mir sagen, hier ist ein Bild von einem bullischen Pin Bar, wie sollte der grundsätzliche Code der Bedingung aussehen, um ihn zu erkennen?

if(low[i] <= open[i] && high[i] > close[i] && open[i] >= close[i] && close[i] <= Base[i]) // верно ли это утверждение?
 
clickaider:

Können Sie mir sagen, hier ist ein Bild von einem bullischen Pin Bar, wie sollte der grundsätzliche Code der Bedingung aussehen, um ihn zu erkennen?

Dies ist ein bärischer Pin Bar. Die Richtung der Kerze ist nicht wichtig. Die Position des langen Schattens ist wichtig: nach oben ist er bärisch, nach unten ist er bullisch. Außerdem ist eine Bestätigung durch die Füllstandsanzeiger erforderlich.
 
Artyom Trishkin:
Dies ist ein bärischer Pin Bar. Die Richtung der Kerze ist nicht wichtig. Die Position des langen Schattens ist wichtig: oben ist bärisch, unten ist bullisch. Und wir brauchen die Bestätigung durch die Füllstandsanzeiger.
Können wir das anhand einer Code-Konstruktion zeigen? Es ist nur nicht ganz klar, wie der Code aussehen soll
 
clickaider:
Ist es möglich, dies durch eine Code-Konstruktion zu zeigen? Es ist nur nicht ganz klar, wie der Code aussehen soll
Ich kann Ihnen den Code nicht von meinem Handy aus schreiben. Auf einen Blick:
Sie benötigen die Größe der Kerze von High Low, die Größe des Kerzenkörpers, den prozentualen Anteil des Körpers an der Größe der gesamten Kerze, die Größe des kurzen Schattens, der einen bestimmten Schwellenwert nicht überschreiten sollte (so dass er nicht vorhanden oder im Verhältnis zum Körper relativ klein war), und die Position des oberen/unteren Körpers im Verhältnis zur Gesamtgröße der Kerze.
Etwa so...
 
Artyom Trishkin:
Ich kann Ihnen den Code nicht von meinem Mobiltelefon aus schreiben. Auf einen Blick:
Sie benötigen die Größe der Kerze vom Hoch-Tief, die Größe des Kerzenkörpers, den prozentualen Anteil des Körpers an der Größe der gesamten Kerze, die Größe des kurzen Schattens, der einen bestimmten Schwellenwert nicht überschreiten sollte (also entweder nicht vorhanden oder im Verhältnis zum Körper relativ klein war), und die Position des oberen/unteren Körpers im Verhältnis zur Gesamtgröße der Kerze.
Etwa so...

Grafisch sieht es so aus:

 
clickaider:

Grafisch sieht es folgendermaßen aus:

Beschreiben Sie nun in Worten, was Sie grafisch dargestellt haben. Verwenden Sie hoch, niedrig, offen, geschlossen.
Sobald du es in Worten beschreibst, hast du bereits die ToR für dich selbst geschrieben :)
Es bleibt nur noch, die Wortkonstruktionen durch Code zu ersetzen.