Diskussion zum Artikel "Der MQL5 Assistent: Wie man ein Modul an Handelssignalen erzeugt" - Seite 4

 

Können Sie mir sagen, wie ich LongCondition und ShortCondition verwenden kann, um eine Position nicht nur zu öffnen, sondern auch zu schließen, ohne die Gegenposition zu öffnen? Zum Beispiel: Signalschwellenwert zum Öffnen = 30 und Signalschwellenwert zum Schließen = 70.

Wir möchten eine Long-Position eröffnen, wenn Bedingung 1 ausgeführt wird, und die Position schließen, wenn Bedingung 2 ausgeführt wird. Welche Werte sollen LongCondition und ShortCondition in diesem Fall zurückgeben?

Wenn es nicht ausreicht, die Rückgabewerte von LongCondition und ShortCondition zu kontrollieren, wie kann man es dann tun? Es wird davon ausgegangen, dass wir nur ein Signal verwenden.

Vielen Dank!

 

Hallo,

ich habe alle Schritte in dem Artikel befolgt, aber es hat nicht funktioniert.

Ich habe das Signal in den Dateien \include\expert\signal\mysignals\samplesignal.mqh gespeichert.

Aber es wird vom Meta-Editor nicht erkannt. Ich habe das Gleiche mit der angehängten Datei im Artikel versucht, keine Änderung...


Meine aktuelle Meta Editor Version ist 5.00 Build 567


Irgendwelche Ideen?


Danke Mario

 

wenn ich die Datei verwende, die Sie an den Artikel angehängt haben, ist etwas falsch.

Ich finde, der Kommentar über Typ sollte wie folgt lauten:

//| Type=SignalAdvanced                                          |

 
yankai0219:

wenn ich die Datei verwende, die Sie an den Artikel angehängt haben, ist etwas falsch.

Ich finde, der Kommentar über Typ sollte wie folgt lauten:

//| Type=SignalAdvanced                                          |

Sie können das in dem Artikel Erstellen Sie Ihren eigenen Handelsroboter in 6 Schritten lesen !
 

Hallo zusammen,

Ich habe das Signal aus diesem Artikel heruntergeladen und einen MQ5 mit dem Assistenten erstellt, aber der EA macht keine Trades. Irgendwelche Ideen?

Ich musste die Änderung in den obigen Kommentaren vornehmen, damit das Signal in der Liste angezeigt wird, abgesehen davon, dass es OK kompiliert wurde. Wenn ich den EA im Strategietester ausführe, tut sich allerdings nichts :(

EDIT: Nachdem ich Druckanweisungen in alle Funktionen der Klasse CSampleSignal und CExpertSignal eingefügt habe, scheint es so, als ob die geerbten Funktionen nicht von den CSampleSignal-Funktionen überschrieben werden.

d.h. in diesem Beispiel, anstatt diese auszuführen:

class CSampleSignal : public CExpertSignal
  {
	 bool CSampleSignal::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 bool CSampleSignal::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Die folgenden werden ausgeführt:

class CExpertSignal : public CExpertBase
  {
	 virtual bool     CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 virtual bool     CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Ergibt das einen Sinn? Die Funktionen der Elternklasse werden ausgeführt, während sie in der Kindklasse überschrieben werden ... Für jede Hilfe wäre ich sehr dankbar!!

 
trolley:

Hallo zusammen,

Ich habe das Signal aus diesem Artikel heruntergeladen und einen MQ5 mit dem Assistenten erstellt, aber der EA macht keine Trades. Irgendwelche Ideen?

Ich musste die Änderung in den obigen Kommentaren vornehmen, damit das Signal in der Liste angezeigt wird, abgesehen davon, dass es OK kompiliert wurde. Wenn ich den EA im Strategietester ausführe, tut sich allerdings nichts :(

EDIT: Nachdem ich Druckanweisungen in alle Funktionen der Klasse CSampleSignal und CExpertSignal eingefügt habe, scheint es so, als ob die geerbten Funktionen nicht von den CSampleSignal-Funktionen überschrieben werden.

d.h. in diesem Beispiel, anstatt diese auszuführen:

Die folgenden werden ausgeführt:

Ergibt das einen Sinn? Die Funktionen der Elternklasse werden ausgeführt, während sie in der Kindklasse überschrieben werden ... Für jede Hilfe wäre ich sehr dankbar!!

Hallo Trolley,

ich habe das gleiche Problem. Hast du eine Lösung oder eine Idee dafür gefunden?

Danke

 

Guten Tag!

bitte beraten Sie mich, wie ich eine Position in einem Expert Advisor, der auf der Basis von MQL5 Wizard geschrieben wurde und bei dem Positionen über folgende Funktionen geöffnet werden, erhöhen (aufstocken) kann

virtual int LongCondition();
virtual int ShortCondition();

Ich habe den Roboter nach den Empfehlungen im Artikel

https://www.mql5.com/de/articles/367 "Erstellen Sie einen Handelsroboter in 6 Schritten" und es funktioniert gut, aber versucht, die Positionsgröße zu beeinflussen (egal ob zu erhöhen oder zu verringern)

(egal ob erhöhen oder verringern) durch wiederholte Generierung der Bedingung in, zum Beispiel in

LongCondition();

führt zu nichts, die bereits offene Position wird nicht verändert, sie kann nur durch Ausführen der Close-Bedingung oder durch Auslösen von sl , tp gelöscht werden.

Ich mag den MQL5 Wizard, man kann einfach und schnell einen Multi-Indikator Expert Advisor "bauen", das sl Tracking Modul ändern, das Money Management Modul ändern.

Aber mein Versuch, einen Expert Advisor zu schreiben, der eine minimale Position öffnet, wenn eine Bedingung durch einen Indikator gebildet wird und die Position erhöht (füllt), wenn der Trend durch einen anderen Indikator bestätigt wird.

Ich bin auf das oben beschriebene Problem gestoßen - die bereits geöffnete Position ändert sich nicht, wenn das Signal, sie wieder zu öffnen, durch z.B. LongCondition() ausgegeben wird;

Ich danke Ihnen.

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
Die Datei aus dem Artikel ist nicht sichtbar in den Assistenten, die in der Betreffzeile ist, bitte sagen Sie mir, was zu justieren.
 
thejobber:
Die Datei aus dem Artikel ist nicht sichtbar in den Assistenten, die in der Betreffzeile ist, sagen Sie mir bitte, was zu zwicken.

In den Kommentaren müssen Sie die folgende Zeile ersetzen

//| Typ=Signal

durch

//|| Typ=SignalErweitert.

Danach begann mein Master, das Signal zu sehen.

 
Ich habe es heruntergeladen, mit dem Assistenten erstellt und versucht, es im Testprogramm auszuführen. Es funktioniert nicht. Es greift nicht einmal auf die CheckOpenLong/Short()-Methoden in Samplesignal zu. Sie werden in ExpertSignal aufgerufen, aber nicht in SampleSignal. Was kann ich sonst noch tun, um sie mit Sicherheit zu überschreiben?