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

 
Aleksey Vyazmikin:

OK, weiter geht's mit der Visualisierung von Gedanken :)

Weiß zeigt an, wo wir die Anfrage stellen, gelb die Taktzeit, die wir bekommen sollten.

Ist das klarer? Falls nicht, stellen Sie bitte Fragen zur Klärung.

Alexey, in Ihrem obigen Beitrag haben Sie um eine REVEAL-Aufgabe gebeten...

"Ich benötige das Datum des letzten Balkens des aktuellen Zeitrahmens, der sich auf den ausgewählten Balken des oberen Zeitrahmens bezieht.

Ist das klar?"

Es ist also schwer zu verstehen, was Sie wirklich brauchen.

Auf die vorhergehende Anfrage habe ich geantwortet - https://www.mql5.com/ru/forum/6343/page869#comment_7537714.

Wenn auf dem letzten "mit Visualisierung der Gedanken", dann fragen Sie einfach nach der Öffnungszeit des Balkens der oberen TF mit einer Verschiebung von 0.

Das ist nicht ganz klar - was ist das Problem?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2018.05.23
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Kirill Belousov:

Alexey, in Ihrem obigen Beitrag haben Sie um eine RETURN-Aufgabe gebeten...

"Ich benötige das Datum des letzten Balkens des aktuellen Zeitrahmens, der sich auf den ausgewählten Balken des oberen Zeitrahmens bezieht.

Ist das klar?"

Es ist also schwer zu verstehen, was Sie wirklich brauchen.

Auf die vorhergehende Anfrage habe ich geantwortet - https://www.mql5.com/ru/forum/6343/page869#comment_7537714.

Wenn auf der letzten "mit Visualisierung der Gedanken", dann fragen Sie einfach nach der Öffnungszeit des Balkens der oberen TF mit einer Verschiebung von 0.

Nicht ganz klar - was ist das Problem?

Entschuldigung, ich habe Ihre Antwort übersehen.

Kirill Belousov:

Wenn ich Ihre Anfrage richtig verstanden habe, dann:

1. Bestimmen Sie die Schließzeit des gewünschten Balkens der oberen TF.

Das ist es, was ich nicht kann!

Kirill Belousov:

Wenn bei letzterem "mit Visualisierung der Gedanken", dann fordern Sie einfach die Eröffnungszeit des Balkens der oberen TF mit einem Offset von 0.

Ich bin mir nicht ganz im Klaren - wo liegt das Problem?

Wenn ich es so anfordere, bekomme ich 10:00 und ich muss die Zeit 23:49 bekommen!

 
Aleksey Vyazmikin:

OK, weiter geht's mit der Visualisierung von Gedanken :)

Weiß zeigt an, wo wir die Anfrage stellen, gelb die Taktzeit, die wir bekommen sollten.

Ist das klarer? Falls nicht, stellen Sie bitte Fragen zur Klärung.

Frage:

Um 10:30 Uhr sollten wir die Anzahl der Balken der Periode H1 mit der Zeit 23:45 auf dem Diagramm M5 erhalten

Habe ich es richtig verstanden?

 
Alexey Viktorov:

Frage:

Um 10:30 Uhr muss ich die Nummer des H1-Periodenbalkens mit einer Zeit von 23:45 Uhr auf dem M5-Diagramm erhalten.

Habe ich das richtig verstanden?

Ich brauche die Zeit 23:45 in diesem Fall (in der Tat habe ich nicht M5, sondern M1 des aktuellen TF, aber es spielt keine Rolle) - es ist die Zeit der letzten Bar des aktuellen TF in der Struktur der letzten Bar des TF oben. Die Verschiebung auf dem Diagramm ist 1 Balken für H1, aber es kann eine weitere Verschiebung geben, sagen wir, ich brauche Informationen auf 11 Uhr, d.h. die Verschiebung wird 2 sein.

 
Aleksey Vyazmikin:

Entschuldigung, ich habe Ihre Antwort übersehen.

Das ist es, was ich nicht kann!

Wenn ich das anfordere, bekomme ich 10:00 und ich muss eine Zeit von 23:49 erreichen!

1. Definieren Sie die gewünschte Verschiebung (Balken) für die hohe TF. - Die Zeit zwischen der Eröffnung und der Schließung dieses Balkens (soweit ich das verstehe) analysieren Sie für die Balken der unteren TF innerhalb dieses Balkens.

2. Erhalten Sie die Öffnungszeit

3. Addieren Sie die Dauer der TF in Sekunden für diese TF zur Öffnungszeit. - d.h. auf diese Weise erhalten Sie die Schlusszeit des Balkens der großen TF.

4. Ziehen Sie die Dauer der Junior-TF ab (wenn M1, dann 60 Sekunden) - dies ist die Eröffnungszeit des letzten Taktes der Junior-TF in der Struktur der Senior-TF. Ermitteln Sie die Verschiebung dieses Balkens anhand der berechneten Zeit. (Sie können einfach 2-3 Sekunden von der Zeit der Schließung des Balkens der großen TF abziehen und den Balken der kleinen TF finden, auf den sich diese Zeit bezieht). Wenn die Abfrage NICHT streng ist, wird einfach der nächstgelegene verfügbare Balken auf der linken Seite (ab dem angeforderten Zeitpunkt) ermittelt, wenn plötzlich der letzte Balken auf der jüngeren TF fehlt.

 
Kirill Belousov:

1. Bestimmen Sie die Verschiebung (bar), die für die höhere TF erforderlich ist. - Die Zeit zwischen der Eröffnung und der Schließung dieses Balkens (so wie ich Sie verstehe) analysieren Sie für die Balken der unteren TF innerhalb dieses Balkens.

2. Erhalten Sie die Öffnungszeit

3. Addieren Sie die Dauer der TF in Sekunden für diese TF zur Öffnungszeit. - d.h. auf diese Weise erhalten Sie die Schlusszeit des Balkens der großen TF.

4. Ziehen Sie die Dauer der Junior-TF ab (wenn M1, dann 60 Sekunden) - dies ist die Eröffnungszeit des letzten Taktes der Junior-TF in der Struktur der Senior-TF. Ermitteln Sie die Verschiebung dieses Balkens anhand der berechneten Zeit. (Sie können einfach 2-3 Sekunden von der Zeit der Schließung des Balkens der großen TF abziehen und den Balken der kleinen TF finden, auf den sich diese Zeit bezieht). Wenn die Anforderung nicht streng ist, wird einfach der nächstgelegene verfügbare Balken auf der linken Seite (ab dem angeforderten Zeitpunkt) herangezogen, falls der letzte Balken im jüngsten Zeitrahmen nicht vorhanden ist.

Sie werden es nicht glauben, aber vor einer Stunde habe ich einen ähnlichen Algorithmus auf Papier geschrieben! Aber das ist ein bisschen mühsam, ich dachte, es gäbe einen einfacheren Weg.

Nur Punkt 4 kann nicht funktionieren, meine Prüfung ist im Gegenteil - wenn die Situation nicht Standard ist, muss ich die Zeit zyklisch ablaufen lassen, bis der Balken den Bereich verlässt.

 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Fragen von MQL4 MT4 MetaTrader 4 Anfängern" verschoben.
 

Ich möchte ein Array von Strukturen deklarieren - keine Probleme, bis ich irgendwo gesehen habe, dass eine Struktur einen Konstruktor haben kann...

Wie deklariere ich ein Array von Strukturen mit einem Konstruktor? (Ich weiß, wie man diesen Konstruktor loswird)

es funktioniert:

struct MyStruct
  {
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; }
  };
//+------------------------------------------------------------------+
MyStruct cluster(100);

funktioniert nicht, aber ich möchte, dass es funktioniert:

struct MyStruct
  {
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; }
  };
//+------------------------------------------------------------------+
MyStruct cluster(100)[47];
 

Eine schlechte Lösung. Es ist besser, Klassen anstelle von struct zu verwenden. Es ist dasselbe, aber man kann mit Zeigern arbeiten.

class MyClass : 
  {
   public:
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; } // этого не надо
  };
//+------------------------------------------------------------------+
MyClass * cluster[47];

for(int n = 0; n < 47; n++)
        cluster[n] = new MyClass;

Ich habe es in meinem Browser geschrieben, ich glaube nicht, dass ich es vermasselt habe. Ich bin eine Stunde lang weggelaufen.

 
Ich weiß, ich weiß, dass es unangenehm ist, Variablen in der Öffentlichkeit zu platzieren, aber ich habe keine Zeit dafür.