Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 10

 
Alexey Volchanskiy:
Gibt es eine Möglichkeit, die abgesicherte Marge zu berechnen?
Ich denke, Sie können alles über Symbolfunktionen berechnen.
 
fxsaber:
Danke für den Tipp! In der Wildnis ist es SymbolInfoMarginRate. Jetzt sieht es also so aus
// Размер свободных средств, необходимых для открытия 1 лота на покупку
double GetMarginRequired( const string Symb )
{
}

Wir müssen uns darüber im Klaren sein, dass es bei MT5 sehr unterschiedliche Margin-Anforderungen in verschiedenen Richtungen geben kann. D.h. eine einzige MT4-Variante kann nicht funktionieren. Auf dem Forex ist dies natürlich nicht der Fall. Aber Sie müssen daran denken. Daher sollten Sie ihn im Allgemeinen wie folgt schreiben
// Альтернатива OrderCalcMargin
bool MyOrderCalcMargin( const ENUM_ORDER_TYPE action, const string symbol, const double volume, const double price, double &margin )
{
}

Herzlichen Dank! Es funktioniert jetzt überall ohne Probleme.

Ich frage mich, ob die Funktion"MyOrderCalcMargin" noch im Handel ist, und wenn ja, wie man sie zumindest im Tester handeln kann.)

 
fxsaber:
Ich denke, man kann alles über Symbolfunktionen berechnen.
Leider arbeiten die Symbolfunktionen schief

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

fxsaber, 2017.02.28 10:48

Metaquotes-Demo, USD-Konto, RTS-3.17.

TickValue gibt den falschen Wert an - in Rubel, nicht in der Kontowährung (USD).

FxPro-ECN. Die Symbole GOLD und GOLDEURO haben den gleichen TickValue. Obwohl sie natürlich in EURUSD-Zeiten anders sein sollten.

 
fxsaber:

MT5-Streich auf FIBOGroup-MT5 Server SGDJPY

In dieser Situation berechnet MyOrderCalcMargin korrekt, während der reguläre OrderCalcMargin dies nicht tut!


Die normale Funktion zählt gemäß der in den Einstellungen des Instruments angegebenen Kontraktspezifikation - mit der Margin-Währung NOK, bzw. für ein Lot werden 1000 NOK genommen.

Wahrscheinlich zählen Sie den Namen des Währungspaares SGDJPY als geteilt - Sie erhalten 1000 SGD für ein Lot.

Das Problem liegt also in der fehlerhaften Vertragsspezifizierung auf Seiten des Maklers. Bitte wenden Sie sich an den Broker des entsprechenden Servers.

 
fxsaber:

D.h. um alle OrderSend mit der Handelsumgebung zu synchronisieren und Fallstricke zu vermeiden, genügt es, den angegebenen Quellcode als mqh-Datei zu erstellen und entsprechende #include in Ihre Programme einzubauen.

Du kannst aufhören, mit dem Tamburin zu tanzen.

SD sagte mir, dass ab dem nächsten Build OrderSend() richtig funktionieren wird:)

 
MQ Alexander:

Die reguläre Funktion zählt entsprechend der in den Instrumenteneinstellungen angegebenen Kontraktspezifikation - bei der Margin-Währung NOK also für ein Lot 1000 NOK.

In Ihrem Fall muss es sich um einen Split des Währungspaares SGDJPY handeln - für ein Lot werden 1000 SGD berechnet.

Das Problem liegt also in der fehlerhaften Vertragsspezifizierung auf Seiten des Maklers. Wenden Sie sich an den Broker des entsprechenden Servers.

Der MT5 verfügt über einen internen versteckten Mechanismus, der jede beliebige Währung in die Kontowährung umrechnen kann. In diesem Fall rechnet OrderCalcMargin 1000 NOK in die entsprechende USD-Zahl um und gibt sie aus.

Bitte öffnen Sie diesen Mechanismus. Zum Beispiel,

double CurrencyExchange( const string Currency ); // возвращает курс валюты Currency к валюте счета

Diese Wechselkurse sind zu 100% im Terminal verfügbar, da OrderCalcMargin sie berechnet. Ihre Arbeit macht sich besonders auf den MetaQuotes-Demo USD-Konten bemerkbar, wenn Sie FORTS-Symbole nehmen - ihre Margin-Währung ist in RUR.

Dies ist besonders wichtig wegen des TickValue-Chips/der Wanze

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

fxsaber, 2017.02.28 10:48

Metaquotes-Demo, USD-Konto, RTS-3.17.

TickValue gibt den falschen Wert an - in Rubel, nicht in der Kontowährung (USD).

FxPro-ECN. Die Symbole GOLD und GOLDEURO haben den gleichen TickValue. Obwohl sie natürlich in EURUSD-Zeiten anders sein sollten.

 
Hallo! Ich lese gerade die Dokumentation:
OrdersTotal

Возвращает количество действующих ордеров.

int  OrdersTotal();

Возвращаемое значение

Значение типа int.

Примечание

Не следует путать между собой действующие отложенные ордера и позиции, которые также отображаются на вкладке "Торговля" в панели "Инструменты". Ордер – это распоряжение на проведение торговой операции, а позиция является результатом одной или нескольких сделок.

При "неттинговом" учете позиций (ACCOUNT_MARGIN_MODE_RETAIL_NETTING и ACCOUNT_MARGIN_MODE_EXCHANGE) по каждому символу в любой момент времени может быть открыта только одна позиция, которая является результатом одной или более сделок. Не следует путать между собой позиции и действующие отложенные ордера, которые также отображаются на вкладке "Торговля" в панели "Инструменты".

При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.

Смотри также

OrderSelect(), OrderGetTicket(), Свойства ордеров
Und wo finde ich die Dechiffrierung des Begriffs"aktive Aufträge"?
"Aktive schwebende Aufträge" und NICHT aktive schwebende Aufträge, was sind sie?
 
Leo59:
Hallo, ich lese gerade die Dokumentation:
OrdersTotal

Возвращает количество действующих ордеров.

int  OrdersTotal();

Возвращаемое значение

Значение типа int.

Примечание

Не следует путать между собой действующие отложенные ордера и позиции, которые также отображаются на вкладке "Торговля" в панели "Инструменты". Ордер – это распоряжение на проведение торговой операции, а позиция является результатом одной или нескольких сделок.

При "неттинговом" учете позиций (ACCOUNT_MARGIN_MODE_RETAIL_NETTING и ACCOUNT_MARGIN_MODE_EXCHANGE) по каждому символу в любой момент времени может быть открыта только одна позиция, которая является результатом одной или более сделок. Не следует путать между собой позиции и действующие отложенные ордера, которые также отображаются на вкладке "Торговля" в панели "Инструменты".

При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.

Смотри также

OrderSelect(), OrderGetTicket(), Свойства ордеров
Und wo finde ich die Dechiffrierung des Begriffs"aktive Aufträge"?
"gültige schwebende Aufträge" und NICHT gültige schwebende Aufträge, was sind sie?

Schwebende Aufträge - bystop, sellstop, bylimit und bystop.

Positionen - kaufen und verkaufen.

Nicht aktiv - gelöschte Aufträge und geschlossene Positionen.

 
Vitaly Muzichenko:

Schwebende Aufträge - bystop, sellstop, bylimit und bystop.

Positionen - kaufen und verkaufen.

Nicht aktiv - gelöschte Aufträge und geschlossene Positionen.

Vitaly Muzichenko: Vielen Dank!
Da ein Auftrag ein Auftrag zur Durchführung einer Handelsoperation ist, können nur schwebende Aufträge als "aktive Aufträge" betrachtet werden, während Kauf- und Verkaufspositionen keine Aufträge zur Durchführung einer Handelsoperation sind. Oder "übersehe" ich etwas?
 
Aktive Aufträge - Handelsaufträge, die zur Ausführung oder Stornierung anstehen, mit Ausnahme von TP/SL- und MarginCall-Aufträgen. Aktive Aufträge können KAUFEN und VERKAUFEN sein.