Diskussion zum Artikel "Beschränkungen und Überprüfungen in Expert Advisors"

 

Neuer Artikel Beschränkungen und Überprüfungen in Expert Advisors :

Darf dieses Symbol montags gehandelt werden? Ist genug Geld vorhanden, um die Position zu öffnen? Wie groß ist der Verlust, wenn Stop Loss ausgelöst wird? Wie kann die Anzahl ausstehender Aufträge begrenzt werden? Wurde die Handelstätigkeit beim aktuellen oder beim vorherigen Bar ausgeführt? Wenn ein Handelsroboter diese Arten von Überprüfungen nicht durchführen kann, kann jede mögliche Handelsstrategie zu Verlusten führen. Dieser Beitrag beinhaltet Beispiele für Überprüfungen, die in jedem Expert Advisor nützlich sind.

Meldungen des Scripts CheckVolumeValue.mq5, das die Korrektheit des Volumens prüft.

Autor: MetaQuotes Software Corp.

 

nützlicher Artikel

 
Ich stimme zu, eine Menge nützlicher Dinge... Bitte, halten Sie es nicht für schwierig, bitte erklären Sie das Konzept der "Trading Session" und "Quotation Session".
 

Soweit ich weiß, unterscheidet sich eine Handelssitzung von einer Kurssitzung dadurch, dass man bereits Aufträge erteilen kann.

aber die Notierungen sind noch nicht im Gange, d.h. es findet kein Handel statt, aber es können Aufträge erteilt werden.

Nun, es ist klar, dass die Notierungen laufen, was bedeutet, dass der Handel mit diesem Instrument bereits stattfindet.


korrigieren Sie mich, wenn ich falsch liege

 
In der Handelssitzung können Sie handeln, in der Notierungssitzung werden die Preise wie in der Handelssitzung empfangen, aber Sie können nicht handeln.
 
Rosh:
In der Handelssitzung können Sie handeln, in der Kurssitzung kommen die Preise wie in der Handelssitzung herein, aber Sie können nicht handeln.

Vielen Dank, das macht Sinn.
 
Aufgrund einer Änderung in der MQL5-Sprache sollte nun das maximal zulässige kumulative Volumen pro Symbol auf diese Weise ermittelt werden:
//--- Ermitteln der Zeichenbegrenzung für das Volumen
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

Diealte Variante war so, und sie sollte nicht mehr verwendet werden:

//--- Ermitteln der Zeichenbegrenzung für das Volumen
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);


Der Artikel wurde korrigiert und der neue Code von Check_Order_And_Volume_Limits.mq5 Expert Advisor wurde beigefügt.

 

Aufgrund von Änderungen in MQL5 kann das maximal zulässige Gesamtvolumen für ein Symbol nun wie folgt ermittelt werden:

//--- Symbolbegrenzung für Volumen abrufen
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

Verwenden Sie nicht die alte Variante! Sie war wie folgt:

//--- Symbolbegrenzung für Volumen abrufen
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);
Der Artikel wurde korrigiert und der neue Expertencode Check_Order_And_Volume_Limits.mq5 wurde angehängt.
 

(Baujahr 306)

void OnStart()
{
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);
}

Kompilierfehler:

'SYMBOL_VOLUME_LIMIT' - nicht deklarierter Bezeichner test.mq5 4 46
'SymbolInfoDouble' - keine der Überladungen kann auf den Funktionsaufruf test.mq5 4 20 angewendet werden

 

Zitat aus dem Artikel:"Um die Eröffnungszeit des letzten Balkens zu erhalten, können Sie die Funktion SeriesInfoInteger() verwenden, der der Name des Symbols, der Zeitrahmen und die Eigenschaft SERIES_LASTBAR_DATE übergeben werden müssen".

In einer früheren Version des Referenzbuchs gab es ein Beispiel für die Ermittlung der Öffnungszeit des letzten Balkens mit der Funktion CopyTime, etwa so:

datetime lastbar_time[1];

CopyTime(Symbol(),0,0,1,lastbar_time);

Frage: Welche der beiden Optionen zur Ermittlung der letzten Bar-Open-Time ist im Hinblick auf die Geschwindigkeit der Informationsbeschaffung und die Effizienz der Nutzung vorzuziehen?

 
Yedelkin:

Zitat aus dem Artikel:"Um die Öffnungszeit des letzten Balkens zu ermitteln, können Sie die Funktion SeriesInfoInteger() verwenden, der der Name des Symbols, der Zeitrahmen und die Eigenschaft SERIES_LASTBAR_DATE übergeben werden müssen."

In einer früheren Version des Referenzhandbuchs gab es ein Beispiel für die Ermittlung der Öffnungszeit des letzten Balkens mit der Funktion CopyTime, etwa so:

Frage: Welche dieser beiden Optionen zur Ermittlung der letzten Öffnungszeit des Balkens ist im Hinblick auf die Geschwindigkeit der Informationsbeschaffung und die Effizienz der Nutzung vorzuziehen?

Sie sollten zeitlich gleichwertig sein, aber die Option SERIES_LASTBAR_DATE mit sieht besser aus.