Fehler, Irrtümer, Fragen - Seite 1742
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
In der Hilfe heißt es:
In den Ausführungsmodi "By Market" und "Exchange" ist die Ausführungspolitik "Return" immer für alle Auftragsarten erlaubt. Die Zulässigkeit anderer Typen wird mit den Eigenschaften SYMBOL_FILLING_FOK und SYMBOL_FILLING_IOC überprüft.
Aber nicht immer. Auf Robo-Konten funktioniert "Return" also nicht, weder auf Pro- noch auf ECN-Konten.
In der Hilfe heißt es:
In den Ausführungsmodi "By Market" und "Exchange" ist die Ausführungspolitik "Return" für alle Auftragsarten immer erlaubt. Die Zulässigkeit anderer Typen wird mit den Eigenschaften SYMBOL_FILLING_FOK und SYMBOL_FILLING_IOC überprüft.
Aber nicht immer. Auf Robo-Konten funktioniert die "Rückgabe" also nicht, weder auf Pro- noch auf ECN-Konten.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
fxsaber, 2016.10.20 08:24
SB auf allen Handelsservern//| Get the property value "ORDER_TYPE_FILLING" |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling(void) const
{
return((ENUM_ORDER_TYPE_FILLING)OrderGetInteger(ORDER_TYPE_FILLING));
}
ALWAYS im Tester gibtENUM_ORDER_TYPE_FILLING::ORDER_FILLING_RETURN zurück.
Wenn Sie also in OrderModify über COrderInfo::TypeFilling() die Füllung einstellen, wird im gleichen RoboForexEU-MetaTrader 5 ein logischer Fehler [Unsupported filling mode] angezeigt. Dieser Fehler tritt jedoch nicht in MetaQuotes-Demo auf - falsch konfigurierter Server des Entwicklers?
In der Hilfe heißt es:
In den Ausführungsmodi "By Market" und "Exchange" ist die Ausführungspolitik "Return" für alle Auftragsarten immer erlaubt. Die Zulässigkeit anderer Typen wird mit den Eigenschaften SYMBOL_FILLING_FOK und SYMBOL_FILLING_IOC überprüft.
Aber nicht immer. Zum Beispiel funktioniert "Return" nicht auf Robo-Konten, weder auf Pro- noch auf ECN-Konten.
Ich habe den Verdacht, dass die "Return"-Einstellung bei allen Handelsservern voreingestellt ist (zumindest hat FxPro so geantwortet.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Befüllungsmodi auf Servern
Karputov Vladimir, 2016.10.14 19:18
Befüllungsmodus "Rücklauf":
Rückkehr
Kein Ausweis
Dieser Modus wird für Markt- (Kauf und Verkauf), Limit- und Stop-Limit-Aufträge und nur in den Modi "Market Execution" und "Exchange Execution" verwendet. Im Falle einer Teilausführung wird ein Markt- oder Limitauftrag mit einem Restvolumen nicht entfernt, sondern bleibt in Kraft.
Hier die Antwort des Maklerunternehmens zumModus "Rückgabe"
Unser MT5-Experte hat bei Metaquotes bestätigt, dass die Rendite standardmäßig verwendet wird, wenn Sie bei der Befüllung nichts auswählen.
)
Mit anderen Worten: Es handelt sich um eine Art Stummel.Es besteht der Verdacht, dass die Fülleinstellung "Return" die Standardeinstellung für alle Handelsserver ist (zumindest FxPro reagierte auf die gleiche Weise).
Mit anderen Worten: Es handelt sich um eine Art Stummel.In einigen Unternehmen (insbesondere MT5 hat vor kurzem begonnen) ist es notwendig, die Art der Füllung angeben - wenn Sie nicht angeben, wird es einen Fehler.
Obwohl der Server in Robo bei der "Return"-Prüfung "true" zurückgibt, funktioniert diese Art des Ausfüllens in der Tat nicht. Kurz gesagt, es ist ein totales Durcheinander mit diesen Füllungen.
{
public:
virtual int f()
{
Print(__FUNCSIG__);
return(0);
}
};
class B : public A
{
public:
virtual int f()
{
Print(__FUNCSIG__);
return(0);
}
};
void OnStart()
{
// A* b = new B;
B* b = new B;
((A*)b).f();
delete b;
}
Verstehe ich das richtig, dass, wenn virtual in descendant überschrieben wird, die Basis virtual nie erreicht werden kann? D.h. es gibt keine Möglichkeit, A::f von b aus aufzurufen.
Fast. In C++ ist der folgende Eintrag erlaubt:
b.A::f();
Aber das ist hier nicht möglich. Daher nur und ausschließlich per Krücke:
{
public:
virtual int f()
{
Print(__FUNCSIG__);
return(0);
}
int f1()
{
return A::f();
}
};
Fast. In C++ ist der folgende Eintrag erlaubt:
b.A::f();
Dann verstehe ich nicht, warum es in C++ funktioniert. Schließlich sollte eine überschriebene virtuelle Methode in der Tabelle der virtuellen Methoden vollständig überschrieben werden. Und von der Basis sollte keine Spur mehr zu finden sein.
Aber das ist hier nicht möglich. Deshalb ist es auch nur eine Krücke:
{
public:
virtual int f()
{
Print(__FUNCSIG__);
return(0);
}
int f1()
{
return A::f();
}
};
Schließlich sollte die überschriebene virtuelle Methode in der Tabelle der virtuellen Methoden vollständig überschrieben werden. Und von der Basismethode sollte keine Spur mehr zu sehen sein.
Wenn der Typ explizit angegeben wird, wird die Methode direkt aufgerufen, ohne die virtuelle Funktionstabelle zu verwenden.
Auf diese Weise kann sogar eine rein virtuelle Funktion aufgerufen werden, wenn sie einen Körper hat.
Then A* b = new B; wird nicht funktionieren.
In diesem Fall brauchen Sie eine andere Krücke - verschieben Sie die Funktionsinterna in der Basisklasse in eine nicht-virtuelle Methode und rufen Sie sie innerhalb der virtuellen Methode auf. Dann könnten wir explizit nicht-virtuelle Methoden von der Basisklasse und dem Erben aufrufen.
Wenn der Typ explizit angegeben wird, wird die Methode direkt aufgerufen, ohne die virtuelle Funktionstabelle zu verwenden.
Auch eine rein virtuelle Funktion kann auf diese Weise aufgerufen werden, wenn sie einen Körper hat.
In diesem Fall brauchen wir eine andere Krücke, die darin bestünde, die Funktionsinterna in eine nicht-virtuelle Methode in der Basisklasse zu verschieben und sie innerhalb der virtuellen Methode aufzurufen. Dann könnten Sie die nicht-virtuelle Methode sowohl von der Basis als auch vom Nachkommen explizit aufrufen.