Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1851

 
Mihail Marchukajtes:

Alexej, ich danke Ihnen vielmals. Ich werde auf jeden Fall alles überprüfen und Sie über das Ergebnis informieren. Was den Blick in die Zukunft betrifft, so ist er absolut unwichtig und wird nicht passieren, wenn der EA so schreibt, wie der Indikator liest. Wenn es keinen Unterschied zwischen ihnen gibt, spielt das keine Rolle. Alternativ können wir bei einem neuen Balken die erste Änderung des OI abwarten und den neuen Wert für den ersten vorherigen Balken aufzeichnen. Wir können auch keinen neuen Wert aufzeichnen, sondern den alten, der zuletzt für den ersten Balken galt. Das heißt, wir beginnen mit dem Schreiben am Ende des vorherigen Taktes.

Wichtig ist nicht der OI, den wir dem Minutenbalken zuweisen, sondern wie der Indikator aus der Datei gelesen wird.

Denken Sie nicht nur an das Training, sondern auch an die Verwendung des Modells, wenn die Daten vom Markt genommen werden - dort sind die zuverlässigsten Daten verfügbar. Im Moment werden die Daten bei der Eröffnung der Kerze gespeichert, d.h. bei einem Null-Bar gibt es keine Änderung nach der Eröffnung (wenn ich es richtig verstanden habe :) ). Wenn Sie ihn bei einem geschlossenen Balken benötigen, können Sie ihn auf jede andere Weise ändern. Der einzige Unterschied ist der Wert des letzten oder vorletzten Balkens.

 

neocognitron - eine Art Faltungsnetzwerk, aber ohne Lehrer

https://habr.com/ru/post/214317/

Wer weiß, wie es funktioniert, bitte erklären Sie es mir

 
Aleksey Vyazmikin:

Denken Sie außerdem nicht nur an das Training, sondern auch an die Anwendung des Modells, wenn die Daten vom Markt genommen werden - damit die zuverlässigsten Daten vorhanden sind. Im Moment werden die Daten bei der Eröffnung der Kerze gespeichert, d.h. auf dem Null-Balken gibt es keine Änderung nach der Eröffnung (wenn ich es richtig verstanden habe :) ). Der einzige Unterschied ist der letzte oder vorletzte Balken, von dem der EA Daten erhalten soll.

Obwohl der Expert Advisor mit der Eröffnung des Balkens seine Arbeit aufnimmt, erhält er die Daten des ersten Balkens. In meinem Fall wird er sogar vom zweiten Balken genommen; nun, das ist mein Fehler, denn wir sollten nicht 30 Sekunden warten, bis die Werte des ersten Balkens aktualisiert werden; der zweite Balken wurde bereits seit geraumer Zeit berechnet. Aus diesem Grund ist es nicht so beängstigend, den ersten OI-Wert in den offenen Balken zu schreiben. Es stellt sich heraus, dass ich den aktuellen Wert in den Verlauf schreibe. Es gibt keinen Blick zurück. Und es spielt keine Rolle, wir nehmen es nicht von einer Kopie. Das Wichtigste ist, dass der Indikator ihn richtig anzeigt. Sie haben in Ihrem Indikator eine zusätzliche Funktion zum Lesen einer Datei, die die Bedingung "True Date" enthält. Für das korrekte Laden des Verlaufs aus der Datei musste ich die folgende Zeile hinzufügen

 if(New_Data==true)
            {
               ArrayResize(oi,x+2,1000);
               if(cnt==0)
               {
               Arh_Time=StringToTime(str);///////////// Если честно в обще не понял зачем ты так это всё разделил
                  oi[x].time=Arh_Time;                 //если запись первая, т.е. дата, то конвертируем из стринга в дататайм
               }

               else if(cnt==1)
               {
                  oi[x].oi=Arh_oi;   //если запсиь вторая, т.е. ОИ, то конвертируем в инт и
                  New_Data=false;
                  x++;
               }
            }

Und der Indikator begann mit den Daten zu arbeiten, die pro Minute und pro Tick aufgezeichnet wurden, alles in einer Datei. Ich habe sogar überprüft, wie die verschiedenen Zeitrahmen aufgebaut sind, und alles hat gut gepasst, aber ich musste auch diese Zeile im Hauptteil ändern

for(int s=f; s<count_size; s++)
            {
               //Print("Test_02");
               if(oi[s].time>time[i])
               {
                  //Print("Test_03");
                  if (s>1)BufOI[i-1]=oi[s-1].oi; /// иначе всё бралось с минутой позже
                  //Print("s=",s);
                  f=s;
                  break;
               }
               if(s+1==count_size)
               {
                  BufOI[i]=SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST);
                  //Print("OI=",SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST));
                  if(BufOI[i]<1)BufOI[i]=BufOI[i-1];
                  if(BufOI[i]<1 && BufOI[i-1]<1)BufOI[i]=100;
                  f=s;
               }
            }

Ich habe diese Zeile im Hauptteil geändert, ansonsten habe ich den EA auf den Chart gesetzt und auf die Eröffnung gewartet.

Hier ist ein Indikator und nicht danken :-)!!!! Nur ein Scherz mit vielen Dank. Wie wäre es mit 37 Pfund? Wollen Sie verdienen?

Dateien:
OI_Test.mq5  16 kb
 
Aleksey Vyazmikin:

Wenn der Expert Advisor nach der Öffnung des Balkens arbeitet, auch wenn er verzögert ist, ist es dann richtig, ihn mit Daten aus dem Kerzenschluss zu füttern, d.h. in die Zukunft zu schauen? Deshalb werden die frischesten Daten vor dieser Kerze verwendet, d. h. eine kleine Verzögerung, statt einer Vorwegnahme.


Woher kommt die Berechnung von 5 Ticks? Manchmal kommt es vor, dass ein Handel nicht innerhalb einer Minute abgeschlossen wird, dann verpasst man einen Balken, und deshalb habe ich den Vergleich für die Veränderung des OM-Volumens entfernt, damit die Daten sofort bei der Eröffnung einer neuen Kerze geschrieben werden. Vielleicht habe ich es vergessen, ich muss es mit Daten testen, ich hatte gestern keine und es ist Wochentag :(

Es wird eine Lücke geben, und ich sollte den Wert aus dem zweiten Balken neu schreiben. Aber meine Frage bleibt unbeantwortet: Wird die neue Bar-Bedingung erfüllt sein, wenn der Ball sich öffnet und einige Ticks vergehen, und erst dann wird sich der OI ändern?
 
Leider wird weder der erste noch der zweite Takt im normalen Zeitmodus aufgezeichnet. Beim Neukompilieren des Indikators wird die Historie geladen, aber nur bis zum dritten Takt, weder der zweite noch der erste werden aktualisiert, obwohl sie in der Datei vorhanden sind.
 
Mihail Marchukajtes:

Die Daten werden immer noch aus dem ersten Balken entnommen, obwohl der EA mit der Eröffnung des Balkens zu arbeiten beginnt. In meinem Fall ist es sogar ab dem zweiten Balken, aber das ist mein Fehler, weil ich nicht 30 Sekunden auf die Aktualisierung der Werte des ersten Balkens warten muss, der zweite wurde bereits berechnet, und das schon seit ziemlich langer Zeit. Aus diesem Grund ist es nicht so beängstigend, den ersten OI-Wert in den offenen Balken zu schreiben. Es stellt sich heraus, dass ich den aktuellen Wert in den Verlauf schreibe. Es gibt keinen Blick zurück. Und es spielt keine Rolle, wir nehmen es nicht von einer Kopie. Die Hauptsache ist, dass der Indikator sie richtig anzeigt. Sie haben in Ihrem Indikator eine zusätzliche Funktion zum Lesen einer Datei, die die Bedingung "True Date" enthält. Für das korrekte Laden des Verlaufs aus der Datei musste ich die folgende Zeile hinzufügen

Und der Indikator begann mit den Daten zu arbeiten, die pro Minute und pro Tick aufgezeichnet wurden, alles in einer Datei. Ich habe sogar überprüft, wie die verschiedenen Zeitrahmen aufgebaut sind, und alles hat gut gepasst, aber ich musste auch diese Zeile im Hauptteil ändern

Ich habe diese Zeile im Hauptteil geändert, ansonsten habe ich den EA auf den Chart gesetzt und auf die Eröffnung gewartet.

Hier ist ein Indikator und nicht danken :-)!!!! Nur ein Scherz mit vielen Dank. Wie wäre es mit 37 Pfund? Willst du Geld verdienen?

Wenn Sie keinen Null-Balken verwenden, können Sie natürlich eine Vorausschau machen. Ich habe hier eine angepasste Version erstellt, so wie ich mit den Daten arbeite.

Das einzige, was mich verwirrt, ist.

if (s>1)BufOI[i-1]=oi[s-1].oi; /// иначе всё бралось с минутой позже

Diese Ungleichheit darf nicht beachtet werden. Da der Zeitpunkt des ersten Ticks nicht unbedingt mit der Öffnungszeit der Kerze übereinstimmt. Speichern anstelle von Zeit aus Datei,

Arh_Time=StringToTime(str);

die Zeit auf die Minute genau aus der Variablen NewTime abschneiden.

Und was die Belohnung angeht - ich dachte, ich hätte sie bereits verdient :)


Mihail Marchukajtes:
Ja, es entsteht eine Lücke und Sie müssen den Wert aus dem zweiten Balken neu schreiben. Aber meine Frage bleibt unbeantwortet: Wird die Bedingung für einen neuen Balken erfüllt, wenn sich ein Ball öffnet und z.B. ein paar Ticks weiterläuft und dann der OI geändert wird?

Die Prüfung auf einen neuen Balken erfolgt nach einer Volumenänderung, so dass wir zu dem Teil des Codes gelangen sollten, in dem die Eingabe erfolgt.


Mihail Marchukajtes:
Leider werden weder der erste noch der zweite Takt im Realtime-Modus geschrieben. Wenn ich den Indikator neu kompiliere, wird der Verlauf geladen, aber nur bis zum dritten Balken, weder der zweite noch der erste werden aktualisiert, obwohl sie in der Datei enthalten sind.

Wo schreibt er nicht? Der Expert Advisor schreibt nicht? Probieren Sie die alte Version des EA aus, bei der er mehrmals pro Minute schreibt, und sehen Sie, ob der Indikator damit korrekt funktioniert.

 
Aleksey Vyazmikin:

Wenn Sie den Null-Balken nicht verwenden, können Sie natürlich eine Vorausschau machen. Ich habe hier mein eigenes Ding gemacht, so wie ich mit den Daten arbeite.

Nur ich bin verwirrt.

Diese Ungleichheit darf nicht beachtet werden. Da der Zeitpunkt des ersten Ticks nicht unbedingt mit der Öffnungszeit der Kerze übereinstimmt. Speichern anstelle von Zeit aus Datei,

die Zeit auf die Minute genau aus der Variablen NewTime abschneiden.

Und was die Belohnung angeht - ich dachte, ich hätte sie bereits verdient :)


Prüfen Sie, ob nach einer Volumenänderung ein neuer Balken vorhanden ist, also müssen Sie zu dem Teil des Codes gelangen, in dem das Schreiben stattfindet.


Wo steht es nicht geschrieben? Der EA schreibt nicht? Versuchen Sie die alte Version des EA, wo es schrieb mehrmals pro Minute, wird der Indikator korrekt mit ihm arbeiten.

Ich beschäftige mich mit dem EA jetzt, es hält den Wert der ersten Bar in der Datei aus irgendeinem Grund ändern. Ich habe das Gefühl, dass die neue Bar immer besser ist. Wenn ich es nicht sofort überprüft hätte, wäre ich gestolpert.

Und so weiter bei jeder Neukompilierung. Was ist HZ? Ich habe schon viele Dinge ausprobiert, manchmal lädt es, manchmal nicht...

 
Mihail Marchukajtes:

Jetzt bin ich mit dem Expert Advisor zu tun, hält es den Wert der ersten Bar in der Datei aus irgendeinem Grund zu ändern. Ich habe das Gefühl, dass die neue Bar immer dunkler ist. Ich habe es jetzt überprüft und es sieht so aus, wenn ich neu kompiliere.

Und so weiter bei jeder Neukompilierung. Was ist HZ? Ich habe viele Dinge ausprobiert - manchmal wird es geladen, manchmal nicht...

Mein EA schreibt Ihren EA überhaupt nicht - ich muss ihn ausprobieren. Ich habe es viele Male versucht, und manchmal funktioniert es nicht, manchmal funktioniert es einfach nicht.

 
Aleksey Vyazmikin:

Mein EA schreibt Ihren EA überhaupt nicht - ich muss es herausfinden. Oder schicken Sie mir bitte eine Arbeitsversion, die nur für Si geschrieben werden soll.

Sie müssen überall den aktuellen Terminkontrakt angeben. Natürlich funktioniert das in Splice nicht. Wenn ich versuche, eine Alternative zu verwenden, zeige ich die aktuelle Version des Indikators an, die beim Kompilieren nur den zweiten Balken lädt, während der erste Balken immer wechselt.

Dateien:
 

Alexey, ist es möglich, den Indikator dazu zu bringen, die Werte aus der Datei für den ersten Balken zu lesen, wenn ein neuer Balken erscheint, so dass eine möglichst vollständige Synchronisierung erreicht wird. Er wird nämlich nicht auf dem Chart stehen, sondern periodisch von Signal zu Signal aufgerufen... Das Problem ist, dass der EA MarketBook verwendet und der Indikator Daten von der Börse erhält. Ich denke, wir sollten die Marktbuchüberwachung verwenden, und der Indikator wird mit diesen Eingaben arbeiten. Gewinn!!!!!

Ich denke, die einzige Quelle für die Erlangung von OM sollte der EA sein, und die doppelte Beantragung bei der Vermittlungsstelle ist nicht akzeptabel, sonst machen wir uns einfach die Mühe zu verhandeln. Was meinen Sie dazu?

Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
Grund der Beschwerde: