Fehler, Irrtümer, Fragen - Seite 1453

 
Vladislav Andruschenko:

Die Tabelle zeigt jedoch die folgenden Werte:

Füllen oder töten

SYMBOL_FUELLUNG_FOK

1

Diese Richtlinie bedeutet, dass ein Geschäft nur mit dem angegebenen Volumen durchgeführt werden kann. Wenn die erforderliche Menge eines Finanzinstruments derzeit nicht auf dem Markt verfügbar ist, wird der Auftrag nicht ausgeführt. Das benötigte Volumen kann durch verschiedene Angebote, die derzeit auf dem Markt verfügbar sind, abgedeckt werden.

Sofort oder Abbrechen

SYMBOL_FUELLUNG_IOC

2

In diesem Fall erklärt sich ein Händler bereit, ein Geschäft mit dem auf dem Markt maximal verfügbaren Volumen innerhalb des im Auftrag angegebenen Volumens auszuführen. Falls der Auftrag nicht vollständig ausgeführt werden kann, wird das verfügbare Volumen des Auftrags ausgeführt, und das restliche Volumen wird storniert. Die Möglichkeit, IOC-Aufträge zu verwenden, wird auf dem Handelsserver festgelegt.

Rückkehr

Keine Kennung

Diese Politik wird nur für Marktaufträge (Kauf und Verkauf), Limit- und Stop-Limit-Aufträge und nur für die Symbole mit Markt- oder Börsenausführung verwendet. Im Falle einer Teilfüllung wird ein Markt- oder Limitauftrag mit Restvolumen nicht gelöscht, sondern weiterverarbeitet.

Aber da muss es eine Datenverwechslung geben!

Sie haben nicht die ganze Hilfe gelesen.

Sie können für jedes Symbol mehr als einen Modus durch eine Kombination von Flags einstellen. Die Kombination der Flaggen wird durch eine logische ODER-Verknüpfung (|) ausgedrückt , z. B.SYMBOL_FÜLLUNG_FOK|SYMBOL_FÜLLUNG_IOC. Um zu prüfen, ob ein bestimmter Modus für ein Instrument zulässig ist, muss das Ergebnis der logischen UND-Verknüpfung (&) mit dem Modus-Flag verglichen werden.

 

Bei Symbolen bedeutet die Eigenschaft SYMBOL_FILLING_MODE eine Kombination von Flags, d.h. sie beschreibt, welche Füllmodi beim Handel mit diesem Symbol zulässig sind.

Haben Sie versucht, die Prüfung wie in der Dokumentation beschrieben durchzuführen?

В режимах исполнения "По запросу" и "Немедленный" для рыночных ордеров всегда используется политика заполнения Все/Ничего, а для лимитных ордеров - режим "Вернуть". В данном случае, при от отсылке ордеров функциями OrderSend или OrderSendAsync тип заполнения для них можно не указывать.

In den Ausführungsmodi "Nach Markt" und "Börse" ist die Ausführungspolitik "Rückgabe" immer für alle Auftragsarten erlaubt. Die Zulässigkeit der anderen Auftragsarten kann mit den Eigenschaften SYMBOL_FILLING_FOK und SYMBOL_FILLING_IOC überprüft werden.

Beispiel:

//+------------------------------------------------------------------+
//| prüft die Zulässigkeit des angegebenen Füllmodus |
//+------------------------------------------------------------------+
bool IsFillingTypeAllowed(string symbol,int fill_type)
{
//--- Ermittelt den Wert der Eigenschaft, die den Füllmodus beschreibt
int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- gibt true zurück, wenn der Modus fill_type aktiviert ist
return((filling&fill_type)==fill_type);
}


 
Rashid Umarov:

Bei Symbolen bedeutet die Eigenschaft SYMBOL_FILLING_MODE eine Kombination von Flags, d.h. sie beschreibt, welche Füllmodi beim Handel mit diesem Symbol zulässig sind.

Haben Sie versucht, die Prüfung wie in der Dokumentation beschrieben durchzuführen?


Die folgende Lösung hat funktioniert

         switch((int)SymbolInfoInteger(Symbol(), SYMBOL_FILLING_MODE))
   {
   case SYMBOL_FILLING_FOK:
      request.type_filling=ORDER_FILLING_FOK;
      break;
   case SYMBOL_FILLING_IOC:
      request.type_filling=ORDER_FILLING_IOC;
      break;
   default:
      request.type_filling=ORDER_FILLING_RETURN;
   }
 
Vladislav Andruschenko:

diese Lösung hat geholfen

Wenn Sie die Hilfe genauer lesen, werden Sie feststellen, dass der Fall, in dem beide Modi verfügbar sind, nicht behandelt wird - der Wert von SymbolInfoInteger ist dann(SYMBOL_FILLING_FOK | SYMBOL_FILLING_IOC).
 

Und Sie können es auf dem "RoboForex-MetaTrader 5" Server mit diesem Code überprüfen:

//+------------------------------------------------------------------+
//|                                                 Info_FILLING.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property description "Варианты исполнения ордера по объему"
#include<Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
// Все/Ничего     SYMBOL_FILLING_FOK   1
// Все/Частично   SYMBOL_FILLING_IOC   2
// Вернуть        Идентификатор отсутствует
   Print("Все/Ничего: ",IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_FOK));
   Print("Все/Частично: ",IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_IOC));
   Print("Вернуть: ",IsFillingTypeAllowed(Symbol(),NULL));

   CTrade oTrade;
   switch((int)SymbolInfoInteger(Symbol(),SYMBOL_FILLING_MODE))
     {
      case SYMBOL_FILLING_FOK:
         Print("ORDER_FILLING_FOK");
         break;
      case SYMBOL_FILLING_IOC:
         Print("ORDER_FILLING_IOC");
         break;
      default:
         Print("ORDER_FILLING_RETURN");
     }
  }
//+------------------------------------------------------------------+ 
//| проверяет разрешенность указанного режима заполнения             | 
//+------------------------------------------------------------------+ 
bool IsFillingTypeAllowed(string symbol,int fill_type)
  {
//--- получим значение свойства, описывающего режим заполнения 
   int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- вернем true, если режим fill_type разрешен 
   return((filling&fill_type)==fill_type);
  }
//+------------------------------------------------------------------+

Und das Ergebnis des Wechsels:

2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Все/Ничего: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Все/Частично: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Вернуть: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      ORDER_FILLING_RETURN


Sie sehen, dass die Schaltervariante uns nicht die Wahrheit sagt. Aber hier ist ein Beispiel aus der Dokumentation, das uns ein vollständiges Bild vermittelt.

 

Was ist das Problem mit

MarketInfo(Symbol(),MODE_MARGININIT) und SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL)

Warum werden Nullen zurückgegeben? ?????

 
Vladimir Pastushak:

Was ist das Problem mit

MarketInfo(Symbol(),MODE_MARGININIT) und SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL)

Warum werden Nullen zurückgegeben? ??????

Ich warte seit sechs Monaten auf einen Helpdesk zu einem Problem mit der Berechnung der Gewinnspanne. Die Informationen im Helpdesk stimmen nicht mit den Informationen auf der Website überein die Informationen im Helpdesk und auf der Website stimmen nicht mit den tatsächlichen Informationen überein.

Berechnung der Sicherheiten

Fehler,MetaTrader 5 MQL5,Eröffnet,Gestartet: 2015.07.13 16:23,#1259415

Hier ist ein Beispiel aus der MQL5-Hilfe:

SYMBOL_CALC_MODE_FOREX

Forex-Modus - Gewinn- und Margenberechnung für Forex

Marge:Lose*Vertragsgröße/Verwendung

Dies ist eine Formel für die Berechnung eines Terminkurses. Der umgekehrte Kurs wird für das Kreuz und der dritte für das Kreuz unterschiedlich sein. Die Website hat den gleichen Fehler.

Unabhängig davon, welchen Markttyp Sie wählen, sind die Formeln ziemlich fragwürdig...

Und ich habe heute festgestellt, dass MarketInfo(Symbol(),MODE_MARGININIT) und SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL) Nullen zurückgeben.

Aber auf dieser Ressource gibt es auch seltsame Schriften, https://metaquotes5.wordpress.com/2012/08/ soweit ich weiß, ist es MetaQuotes Blog.

What are Expert Magic Numbers?
  • 2012.08.11
  • skebanga
  • metaquotes5.wordpress.com
Expert magic numbers are ids given to a particular expert advisor. Care should be taken to ensure the ids are unique. This is because the magic number is used by the MetaTrader back end to know which expert advisor to send information to. For example, when a trade notification is...
 
Es gibt überall Feinde. Niemand will uns, außer unseren Frauen am Zahltag.
 
Алексей Тарабанов:
Es gibt überall Feinde. Niemand braucht uns außer unseren Frauen am Zahltag.

Grüße Alexey

Wenn Sie den Indikator iPulsar auf MT5 umschreiben können, schreiben Sie ihn bitte in der Codebasis um

Dankeschön


 

Hallo Kollegen!

Entschuldigung, ich habe den Hauptthread durcheinander gebracht, bevor ich diesen hier gesehen habe.

Bitte beraten Sie, wie dieses Problem zu lösen: MT5 Expert Advisor auf FORTS hält zeigt Fehler 10022: "Invalidorder expiry date in request" bei der Platzierung BAY_STOP oder SELL_STOP Aufträge.

Das Verfallsdatum ist für mich nicht wichtig, aber ich kann keine Parameter finden, die den Auftrag einfach einstellen. Im Devisenhandel haben wir ein solches Problem nicht. Mein Broker ist OPEN. Der Fehler tritt im Prüfgerät auf.


Grund der Beschwerde: