Mein Ansatz. Der Kern ist der Motor. - Seite 80

 
Александр:

Ist Ihr Beitrag als Antrag auf Teilnahme an der Umsetzung zu werten?

Ich habe mir diesen Thread auch angeschaut, aber Sie scheinen meinen vorherigen Beitrag nicht aufmerksam gelesen zu haben.

Wenn durch Freiberuflichkeit, dann bitte. Wie hoch ist das Budget? Wann hatten Sie den Eindruck, dass ich unaufmerksam lese?

 
Dmitry Fedoseev:

Wenn durch Freiberuflichkeit, dann bitte. Wie hoch ist das Budget? Wann dachten Sie, ich würde nicht aufmerksam lesen?

Ich werde davon absehen, eine freiberufliche Tätigkeit vorzuschlagen.

Ich werde mich hier nicht weiter darum kümmern:

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Mein Ansatz. Kern - Motor.

Alexander, 2018.12.16 16:12

Meine Kenntnisse in MQL und Programmierung im Allgemeinen sind recht bescheiden. ....

...Wenn es eine Möglichkeit gibt, die Ergebnisse zu beschleunigen, ohne zu tief in den Prozess einzudringen, warum sollte man sie nicht nutzen?

 

Beispiel für eine benutzerdefinierte Animation, die vom EA im Engine-Fenster gezeichnet wird:

Kontrollcode in der EA:

void OnTimer()
  { 
   static int q1,a,b; 
   //------------------------------------
   if(!a)LOAD_CANVAS_Last_10_bars(); 
   //---------------------------------
   if(!b) q1++;
   if(q1 == 200)b = 1;
   if(b)q1--;
   if(!q1)b = 0;  
   //------------- 
   ELLIPSE(q1,q1,q1+q1*2,q1+q1,clrBlue);          
   //------------------------------------
  }

Hinzufügen von 14 Zeichenfunktionen aus der CCanvas-Klasse zum Zeichenblock der Engine. Diese Funktionen werden vom Expert Advisor aufgerufen. Dazu wurden die Wrapper-Funktionen für die Zeichenfunktionen in die Datei Connection_Properties.mqh eingefügt

Sie können Kreise, Rechtecke, Dreiecke, Bögen, Ellipsen und Linien zeichnen.

Bevor wir die Zeichenfunktionen aufrufen, müssen wir angeben, auf welcher Leinwand sie zeichnen sollen (z. B.LOAD_CANVAS_Last_10_bars();).

Die Technologie befindet sich noch im Anfangsstadium. Sobald ich es debuggen werde, werde ich ein fertiges Beispiel posten.

 
Александр:

Guten Tag.

Ich versuche, eine Symbolleiste für die Steuerung des Ein- und Ausschaltens von Handelsfunktionen meiner eigenen Produktion zu erstellen und einige Parameter entsprechend anzupassen.

Bei der Implementierung des Panels im Code des Expert Advisors bin ich auf die Unmöglichkeit gestoßen, das Panel zu aktivieren/deaktivieren, da das ChartEvent-Ereignis im Strategy Tester fehlt.

Oder die Unmöglichkeit, Aufträge zu öffnen, wenn das Panel im Code des Indikators implementiert ist.

Diskussion hier: https://www.mql5.com/ru/forum/294890

Peter bot mir seine Hilfe bei der Entwicklung des Panels an, was ich nicht ablehnen konnte.

Das Panel sieht also wie folgt aus

oder so, wenn alle Tasten gedrückt sind:

unter jeder Schaltfläche ihre Parameter, die entweder mit den Pfeilen nach oben/unten oder durch Bearbeiten des Eingabefeldes geändert werden können.

Für die Schaltflächen "Jetzt" lautet der Wert .Locking(false); für alle anderen Schaltflächen .Locking(true);

Für die Schaltfläche "Nachlauf" fügen Sie einen weiteren Parameter (Schalter) mit den Werten Alle/Einzelne hinzu.

Darüber hinaus müssen wir eine Dropdown-Liste mit der Auswahl des Zeitrahmens und ein Fenster mit der Liste der offenen Aufträge für das aktuelle Symbol mit Angabe des Gewinns jedes Auftrags (einschließlich des Swaps) und einem Kreuz vor jedem Auftrag hinzufügen, um ihn zu schließen.

Peter, ist diese Beschreibung ausreichend für Ihr TOR?

Hier ist das Panel.

Bitte nehmen Sie Anpassungen am Erscheinungsbild vor und erklären Sie, wo genau der Schalter "Alle/Einzelne" zu platzieren ist, und auch die Veröffentlichungsliste mit Zeitrahmen (ich nehme an, oben in der Mitte).

Knöpfe gedrückt:


 

Was den Handel mit dem Tester angeht, so löse ich dieses Problem gerade. Ich möchte die Kommunikation zwischen dem EA und dem Motor komplett neu gestalten. Die Umsetzung erfolgt durch "Kommunikationsobjekte" (MT-Objekte, deren Stringbeschreibung für die Datenübertragung zwischen Programmen verwendet wird).

Dies kann ein schneller und vielseitiger Kommunikationsweg für die normale Kommunikation und für die Kommunikation im Testmodus des EA sein.

Der derzeitige Ansatz zur Kommunikation überlastet die OnChartEvent()-Ereigniswarteschlange. Das Senden und Empfangen von Nachrichten zwischen dem EA und der Engine verzögert sich, wenn zu viele Ereignisse vorliegen, was visuell erkennbar ist. Die Kommunikation über MT-Objekte sollte dieses Problem beseitigen, da der Empfang und das Senden von Nachrichten außerhalb der OnChartEvent()-Ereigniswarteschlange erfolgt.

Theoretisch sollte das funktionieren...

 
Реter Konow:

Hier ist das Panel.

Bitte nehmen Sie Korrekturen am Erscheinungsbild vor und erklären Sie, wo genau der Schalter "Alle/Einzelne" und die Zeitrahmenliste (ich vermute oben in der Mitte) platziert werden sollen.

Ich denke, es wäre besser, wenn das Panel die gesamte Breite des Arbeitsbereichs einnehmen würde (dann gäbe es mehr Platz für die Liste der Aufträge).

Die Bearbeitungsfelder mit den Bezeichnungen Lot, Profit und neben den Schaltflächen "Jetzt" sollten Hundertstel (Format 0,00) haben.

Ich habe experimentiert und bin zu dem Schluss gekommen, dass es besser wäre, das Feld mit der Liste der Zeitrahmen durch Label und zwei Schaltflächen ("-" und "+") zu ersetzen. Auf der Höhe der obersten Tastenreihe platzieren. Etikett in der Mitte, "-"-Taste links, "+"-Taste rechts vom Etikett. Unten wird Platz für eine Liste der offenen Aufträge sein.

Platzieren Sie die Schalter "Alle/Einzelne" unter den Schaltflächen "Nachlauf" auf der Höhe der Beschriftung "Gewinn".

Dies ist meine Vision, aber soweit ich es verstanden habe, nachdem ich das Forum gelesen und Ihre Arbeit gesehen habe, haben Sie den Wunsch und die Fähigkeit zu zeichnen, also werde ich mich Ihren Vorschlägen nicht widersetzen.

 
Александр:

1. Ich denke, es wäre besser, wenn das Panel die gesamte Breite des Arbeitsbereichs einnehmen würde (dann gäbe es mehr Platz für die Liste der Aufträge).

2. Die Bearbeitungsfelder mit den Bezeichnungen Lot, Profit und neben den Schaltflächen "Jetzt" sollten Hundertstel (Format 0,00) haben.

3. Ich habe experimentiert und bin zu dem Schluss gekommen, dass es besser ist, das Feld mit der Liste der Zeitrahmen durch Label und zwei Schaltflächen ("-" und "+") zu ersetzen. Auf der Höhe der obersten Tastenreihe platzieren. Etikett in der Mitte, "-"-Taste links, "+"-Taste rechts vom Etikett. Darunter wird Platz für die Liste der offenen Aufträge sein.

4. Platzieren Sie die Schalter Alle/Einzelne unter den Schaltflächen für die Nachlaufzeit auf der Ebene des Gewinnetiketts.

5. dies ist meine Vision, aber ich habe verstanden, dass, nach dem Lesen des Forums und beobachten Sie Ihre Arbeit, Sie haben das Talent und die Fähigkeit zu zeichnen, so werde ich nicht gegen Ihre Vorschläge.

1. d.h. das Panel automatisch an die Breite des Diagramms anpassen? Oder nur auf die Breite des Diagramms?

2. Wird gemacht.

3. ich verstehe das nicht ganz. Sie meinen, die Zeiträume sollen im Eingabefeld mit +/- Tasten eingestellt werden? Und sollten wir nicht ein separates Fenster mit der Liste der Aufträge erstellen? Alles auf der Tafel?

4. Der Schalter könnte eine einfache Taste sein, die den Text ändert, wenn sie gedrückt wird?

5. Fügen Sie grafische Elemente hinzu.

(Ein kleiner Schieber könnte zu einem Schalter umfunktioniert werden. Der Schieberegler würde nach rechts/links gehen)

 
Реter Konow:

Was den Handel mit dem Tester angeht, so löse ich dieses Problem gerade. Ich möchte die Kommunikation zwischen dem EA und dem Motor komplett neu gestalten. Die Umsetzung erfolgt durch "Kommunikationsobjekte" (MT-Objekte, deren Stringbeschreibung für die Datenübertragung zwischen Programmen verwendet wird).

Dies kann ein schneller und vielseitiger Kommunikationsweg für die normale Kommunikation und für die Kommunikation im Testmodus des EA sein.

Der derzeitige Ansatz zur Kommunikation überlastet die OnChartEvent()-Ereigniswarteschlange. Das Senden und Empfangen von Nachrichten zwischen dem EA und der Engine verzögert sich, wenn zu viele Ereignisse vorliegen, was visuell erkennbar ist. Die Kommunikation über MT-Objekte sollte dieses Problem beseitigen, da der Empfang und das Senden von Nachrichten außerhalb der OnChartEvent()-Ereigniswarteschlange erfolgt.

Theoretisch sollte es funktionieren...

Ich bin mir nicht sicher, ob ich den Punkt richtig verstehe.

Verstehe ich richtig, dass Sie die Kommunikation zwischen dem EA und dem Panel im Testmodus durch OnChartEvent()-Ereignisse implementieren werden?

Wenn ja, sind die Erfolgschancen nicht sehr hoch, da die Ereignisse OnChartEvent() für den EA im Tester nicht erzeugt werden (nur für den Indikator).

https://www.mql5.com/ru/forum/294890/page4#comment_9914750 hier wurde vorgeschlagen, OnChartEvent() Ereignisse durch OnTick() Ereignisse zu ersetzen.

Ich habe es versucht, aber alle zusammengesetzten Objekte (SpinEdit, ComboBox und andere) funktionieren nicht mehr. Die einzige Methode, die es erlaubt, Variablenwerte im Button.Pressed()-Tester zu ändern und nur für eigenständige Buttons (Buttons, die nicht in ein komplexes Objekt wie SpinEdit eingebunden sind)

SimplePanel проблема при переключении таймфрейма
SimplePanel проблема при переключении таймфрейма
  • 2018.12.16
  • www.mql5.com
В составе стандартного пакета MT4 имеется пример создания панели управления "Simple Panel...
 
Александр:

Ich bin mir nicht sicher, ob ich den Punkt richtig verstehe.

Verstehe ich das richtig, dass Sie die Kommunikation zwischen dem EA und dem Panel im Testmodus über die Ereignisse OnChartEvent() realisieren werden?

Wenn ja, sind die Erfolgschancen nicht sehr hoch, da die Ereignisse OnChartEvent() für den EA im Tester nicht erzeugt werden (nur für den Indikator).

https://www.mql5.com/ru/forum/294890/page4#comment_9914750 hier wurde vorgeschlagen, OnChartEvent() Ereignisse durch OnTick() Ereignisse zu ersetzen.

Ich habe es versucht, aber alle zusammengesetzten Objekte (SpinEdit, ComboBox und andere) funktionieren nicht mehr. Die einzige Methode, die es erlaubt, Variablenwerte im Button.Pressed()-Tester zu ändern und nur für eigenständige Buttons (Buttons, die nicht in ein komplexes Objekt wie SpinEdit eingebunden sind)

Das ist eine lange Erklärung. Aber vertrauen Sie meiner Erfahrung. Die Kommunikationsmethode wird funktionieren.

Das Panel wird auf einer regelmäßigen Karte dargestellt. Der Expert Advisor im Testgerät. Das Panel wird den Expert Advisor im Strategy Tester finden, MT-Objekte erstellen und über deren Beschreibung mit dem EA "kommunizieren".

Die Funktion OnChartEvent() wirkt auf das normale Diagramm. Im Testgerät ist das nicht der Fall. Die Synchronisierung der Parameterwerte wird dadurch jedoch nicht verhindert.

Ich bin sicher, es wird funktionieren.

Es wird nur eine Woche dauern.

 
Реter Konow:

Das ist eine lange Erklärung. Aber vertrauen Sie meiner Erfahrung. Die Kommunikationsmethode wird funktionieren.

Das Panel wird auf einer normalen Karte dargestellt. Der Expert Advisor im Testgerät. Das Panel wird den Expert Advisor im Strategy Tester finden, MT-Objekte erstellen und über deren Beschreibung mit dem EA "kommunizieren".

Die Funktion OnChartEvent() wirkt auf das normale Diagramm. Im Testgerät ist das nicht der Fall. Die Synchronisierung der Parameterwerte wird dadurch jedoch nicht verhindert.

Ich bin sicher, es wird funktionieren.

Es wird nur eine Woche dauern.

Es wird nicht funktionieren.