Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 916

 
Zorian43:
Guten Abend zusammen, ich weiß nicht, ob ich im richtigen Thema schreibe, sorry, wenn ich im falschen bin. Als ich Metatrader 5 auf meinem Android-Gerät installierte, wurde automatisch ein Demokonto erstellt, mit dem ich jedes Mal verbunden wurde, wenn ich die App startete. Als ich ein anderes Konto, diesmal von meinem Broker, einrichten wollte, konnte ich das Passwort für das Demokonto nicht finden. Ich habe "Passwort zurücksetzen" gedrückt und kann mich danach nicht mehr mit dem Demokonto verbinden. Gibt es eine Möglichkeit, den Zugang zum Demokonto wiederherzustellen?
Nein. Eröffnen Sie ein neues Demokonto.
 

Hallo!

Können Sie mir bitte sagen, aus welchem Grund die Methode CAccountInfo::MarginCheck() die erforderliche Marge von Null im Testgerät zurückgeben kann? Sie gibt nur dann Null zurück, wenn sie für einen Limit-Kaufauftrag ORDER_TYPE_BUY_LIMIT aufgerufen wird.

Instrument Si-9.18 - Dollar-Futures der MICEX.

Im Testprojekt ergibt der nächste Aufruf des Testers nicht Null, sondern 90 - ein kleiner Wert, der ziemlich unplausibel aussieht:

ENUM_ORDER_TYPE     orderType   = NULL;
uint                orderVolume = 1;
double              orderPrice  = gvTick.last;
double marginRequired = 0;

orderType       = ORDER_TYPE_BUY_LIMIT;
marginRequired  = gnCAccountInfo.MarginCheck( gsIns, orderType, orderVolume, orderPrice);
Print("  Требуемая маржа ", marginRequired);
Log output: 2018.09.01 13:38:56.040 2018.06.13 12:10:00 Marge erforderlich 90.0
 
rel18:

Hallo!

Können Sie mir bitte sagen, warum die Methode CAccountInfo::MarginCheck() im Testgerät die erforderliche Marge von Null zurückgeben kann? Sie gibt nur dann Null zurück, wenn sie für einen limitierten Kaufauftrag ORDER_TYPE_BUY_LIMIT aufgerufen wird.

Instrument Si-9.18 - Dollar-Futures der MICEX.

Im Testprojekt ergibt der nächste Aufruf des Testers nicht Null, sondern 90 - ein kleiner Wert, der ziemlich unplausibel aussieht:

Ich vermute, weil nur

ORDER_TYPE_BUY

Markt Kaufauftrag

AUFTRAG_ART_VERKAUFEN

Markt Verkaufsauftrag

 
Vladimir Karputov:

Ich vermute, das liegt daran, dass nur

ORDER_TYPE_BUY

Markt Kaufauftrag

AUFTRAG_ART_VERKAUFEN

Markt Verkaufsauftrag

Hier ist das Ergebnis der Buy Limit Order im Tester für dasselbe Beispiel. Eine Marge von 90 % ist sehr gering. Ist das wirklich so?


Und hier haben wir eine Marge von Null im Tester:



Alle Geschichtstests werden mit einem echten Konto durchgeführt.
 

Indikator funktioniert nicht mehr, Hilfe zum Kompilieren
Ich danke Ihnen.

Dateien:
VP-Range-v6.mq5  44 kb
VP-v6.mq5  42 kb
 
rel18:

Hier ist das Ergebnis eines Limit-Kaufauftrags im Tester für dasselbe Beispiel. Eine Marge von 90 % ist sehr gering, funktioniert das so?


Vielleicht liegt es am Demokonto? Versuchen Sie es mit einem echten Konto beim selben Broker.

 
Aliaksei Karalkou:

Indikator funktioniert nicht mehr, Hilfe beim Kompilieren
Vielen Dank.

Seit dem Build 1861 gibt es eine eingebaute iBarShift-Funktion, sie kann nicht als benutzerdefinierte Funktion verwendet werden. Bitte benennen Sie die Funktion um.

 

Hallo! Bitte helfen Sie mir bei dieser Aufgabe. Es liegt ein Wert vom Typ String im Format"PERIOD_M1""PERIOD_M2""PERIOD_M3" usw. vor. Wir müssen diese Werte durch Werte des Typs ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 usw. - ersetzen.

Im folgenden BEISPIEL wäre alles in Ordnung, aber wir können keine String-Variable in der switch-Anweisung verwenden. Was sollen wir tun? Sie könnten einfach eine if....else-Konstruktion verwenden, aber ich denke, es gibt elegantere Möglichkeiten. Irgendwelche Vorschläge? Danke!

//+------------------------------------------------------------------+
//| Преобразует строку в таймфрейм                                   |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES StringToTimeframe(string timeframe)
  {
   ENUM_TIMEFRAMES tfr=Period();
   switch(timeframe) 
     {
      case "M1"  : tfr=PERIOD_M5;  break;
      case "M2"  : tfr=PERIOD_M6;  break;
      case "M3"  : tfr=PERIOD_M5;  break;
      }
//---
   return(tfr);
  }
 
Tango_X:

Hallo! Bitte helfen Sie mir bei dieser Aufgabe. Es liegt ein Wert vom Typ String im Format"PERIOD_M1""PERIOD_M2""PERIOD_M3" usw. vor. Wir müssen diese Werte durch Werte des Typs ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 usw. - ersetzen.

Im folgenden BEISPIEL wäre alles in Ordnung, aber wir können keine String-Variable in der switch-Anweisung verwenden. Was sollen wir tun? Sie könnten einfach eine if....else-Konstruktion verwenden, aber ich denke, es gibt elegantere Möglichkeiten. Irgendwelche Vorschläge? Danke!

Verwenden Sie die if()-Konstruktion

 
Tango_X:

Hallo! Bitte helfen Sie mir bei dieser Aufgabe. Es liegt ein Wert vom Typ String im Format"PERIOD_M1""PERIOD_M2""PERIOD_M3" usw. vor. Wir müssen diese Werte durch Werte des Typs ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 usw. - ersetzen.

Im folgenden BEISPIEL wäre alles in Ordnung, aber wir können keine String-Variable in der switch-Anweisung verwenden. Was sollen wir tun? Sie könnten einfach eine if....else-Konstruktion verwenden, aber ich denke, es gibt elegantere Möglichkeiten. Irgendwelche Vorschläge? Danke!

//+------------------------------------------------------------------+
//| Преобразует строку в таймфрейм                                   |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES StringToTimeframe(string timeframe)
  {
   return
     (
      timeframe == "M1"   ?  PERIOD_M1  :
      timeframe == "M2"   ?  PERIOD_M2  :
      timeframe == "M3"   ?  PERIOD_M3  :
      timeframe == "M4"   ?  PERIOD_M4  :
      timeframe == "M5"   ?  PERIOD_M5  :
      timeframe == "M6"   ?  PERIOD_M6  :
      timeframe == "M10"  ?  PERIOD_M10 :
      timeframe == "M12"  ?  PERIOD_M12 :
      timeframe == "M15"  ?  PERIOD_M15 :
      timeframe == "M20"  ?  PERIOD_M20 :
      timeframe == "M30"  ?  PERIOD_M30 :
      timeframe == "H1"   ?  PERIOD_H1  :
      timeframe == "H2"   ?  PERIOD_H2  :
      timeframe == "H3"   ?  PERIOD_H3  :
      timeframe == "H4"   ?  PERIOD_H4  :
      timeframe == "H6"   ?  PERIOD_H6  :
      timeframe == "H8"   ?  PERIOD_H8  :
      timeframe == "H12"  ?  PERIOD_H12 :
      timeframe == "D1"   ?  PERIOD_D1  :
      timeframe == "W1"   ?  PERIOD_W1  :
      timeframe == "MN1"  ?  PERIOD_MN1 : 
      PERIOD_CURRENT
     );
  }
//+------------------------------------------------------------------+