Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXIII): Handelsklassen - Verifikation der Parameter" - Seite 3

 
Alexander:
Hallo! Ich habe die neueste Version der Bibliothek und Expert Part_23 heruntergeladen, den visuellen Modus und den Marktmodus auf den Tester gelegt
Aufträge sind geöffnet, aber alle schwebenden Aufträge sind nicht, in das Journal schreibt "2019.10.27 10:13:32.157 2019.09.23 10:00:02 fehlgeschlagen verkaufen Stop-Limit 2,00 RTS-12.19 bei 135750 (135800) sl: 135900 tp: 135600 [Ungültiger Ablauf].
Börsensymbole, Broker Otkritie, Version 5.00 build 2190.
Auch. In früheren Artikeln, ich glaube in Teil 14 oder 15, haben Sie versprochen, Klassen für die Arbeit zusammen mit der Symbolsammlung zu erstellen.
mit dem Glas, aber aus irgendeinem Grund haben Sie nicht erstellt, und das sind die grundlegenden Bedürfnisse der Bibliothek zusammen mit Symbolen und Konten, und Sie haben bereits links

weit in die Verbesserungen der Bibliothek (Ressourcen, Töne usw.) hineingegangen, und ich glaube, Sie haben die grundlegenden Aufgaben übersehen.

Vielen Dank, die Bibliothek ist sehr notwendig.

Hallo. Die Arbeit mit dem Glas wird später implementiert werden - nach der Erstellung der Handelsklasse.

Ich denke, in diesem Teil der Bibliotheksbeschreibung gibt es eine Möglichkeit, automatisch korrekte Verfallswerte zu setzen:

CTrading::SetCorrectTypeExpiration(const ENUM_ORDER_TYPE_TIME type=ORDER_TIME_GTC,const string symbol=NULL);
CTrading::SetCorrectTypeFilling(const ENUM_ORDER_TYPE_FILLING type=ORDER_FILLING_FOK,const string symbol=NULL);

Wenn ja (ich erinnere mich leider nicht an diesen Teil), dann rufen Sie in OnInit() diese beiden Methoden mit den Werten im Kopf auf, und alle Handelsobjekte für jedes verwendete Symbol sollten die korrekten Werte für Fill und Expiry gesetzt werden.

Wenn nicht hier, dann warten Sie auf den nächsten Artikel zu kommen - es ist auf Check für eine Weile - es ist da.

 

In OnInit von Part23 Advisor habe ich 2 Zeilen geschrieben

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nichts hat geholfen, es wird das Gleiche ins Protokoll geschrieben.

 
Alexander:

In OnInit von Part23 advisor habe ich 2 Zeilen geschrieben

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nichts hat geholfen, es wird dasselbe ins Protokoll geschrieben.

Okay, ich werde es herausfinden. Danke!

 
Alexander:

In OnInit von Part23 advisor habe ich 2 Zeilen geschrieben

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nichts hat geholfen, es wird dasselbe ins Protokoll geschrieben.

Wo fügen Sie diese Zeilen ein?

Sie sollten in OnInit() nach der Erstellung der Liste der Arbeitssymbole eingefügt werden:

//--- Füllen des Arrays der verwendeten Symbole
   used_symbols=InpUsedSymbols;
   CreateUsedSymbolsArray((ENUM_SYMBOLS_MODE)used_symbols_mode,used_symbols,array_used_symbols);

//--- Einstellen des Typs der in der Symbolsammlung verwendeten Symbolliste
   engine.SetUsedSymbols(array_used_symbols);

//--- Hier müssen Sie den Handelsobjekten aller Symbole die korrekten Werte für die Ausführungs- und Verfallsarten zuweisen

//--- Отображение выбранного режима работы с коллекцией объектов-символов
   Print(engine.ModeSymbolsListDescription(),TextByLanguage(". Anzahl der verwendeten Zeichen: ",". The number of symbols used: "),engine.GetSymbolsCollectionTotal());
 
Ist niemandem aufgefallen, dass die Auftragsart StopLimit ist?
 
Алексей Тарабанов:
Hat denn niemand darauf geachtet, dass die Auftragsart StopLimit ist?

Ja, das ist mir nicht aufgefallen. Gibt es dafür eine andere Bezeichnung? Im Wesentlichen ist ein Stop-Limit-Auftrag ein Stop-Auftrag, der einen Limit-Auftrag auslöst. Sind die Bedingungen für diese Kombination nicht die gleichen wie für die getrennte Verwendung von Stop- und Limit-Orders?

 
Artyom Trishkin:

Ja, ich habe nicht darauf geachtet. Gibt es einen anderen Begriff dafür? Im Grunde ist ein Stop-Limit-Auftrag ein Stop-Auftrag, der einen Limit-Auftrag auslöst. Sind die Bedingungen für diese Kombination nicht dieselben wie für die getrennte Verwendung von Stop- und Limit-Aufträgen?

Die Limits sind unterschiedlich. Und der Timeout.

 
Алексей Тарабанов:

Die Grenzen sind unterschiedlich. Und die Zeitüberschreitung.

Wo steht das in der Zeichenspezifikation? Wie kann ich die erforderlichen Daten herausfinden?
 
Nirgendwo. Weder für die Entwickler noch für die Logik.
 
Alexander:

In OnInit von Part23 advisor habe ich 2 Zeilen geschrieben

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nichts hat geholfen, es wird dasselbe ins Protokoll geschrieben.

Generell habe ich CFDs auf dem Binary.com-Server überprüft. Es setzt Stop-Limit Pending Orders (klicken Sie, um das Video zu sehen):

Wie prüfe ich in Discover? Sollte ich ein Konto eröffnen?