Questions des débutants MQL5 MT5 MetaTrader 5 - page 916

 
Zorian43:
Bonsoir à tous ! Je ne sais pas si j'écris dans le bon sujet, désolé si je suis dans le mauvais. Lorsque j'ai installé Metatrader 5 sur mon Android, un compte de démonstration a été créé automatiquement et j'y étais connecté à chaque fois que je lançais l'application. Lorsque j'ai voulu connecter un autre compte, cette fois de mon courtier, je n'ai pas trouvé le mot de passe du compte de démonstration. J'ai appuyé sur "réinitialiser le mot de passe" et je ne peux plus me connecter au compte de démonstration après cela. Y a-t-il un moyen de restaurer l'accès au compte de démonstration ?
Non. Ouvrez un nouveau compte de démonstration.
 

Bonjour !

Pourriez-vous me dire pour quelle raison la méthode CAccountInfo::MarginCheck() peut retourner la marge requise de zéro dans le testeur ? Elle ne renvoie zéro que si elle est appelée pour un ordre d'achat à cours limité ORDER_TYPE_BUY_LIMIT.

Instrument Si-9.18 - contrats à terme sur le dollar du MICEX.

Dans le projet de test, l'appel suivant dans le testeur ne donne pas zéro, mais 90 - une petite valeur, qui semble assez peu plausible :

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);
Sortie du journal : 2018.09.01 13:38:56.040 2018.06.13 12:10:00 Marge requise 90.0
 
rel18:

Bonjour !

Pouvez-vous me dire pourquoi la méthode CAccountInfo::MarginCheck() peut retourner la marge requise de zéro dans le testeur ? Elle ne renvoie zéro que si elle est appelée pour un ordre d'achat à cours limité ORDER_TYPE_BUY_LIMIT.

Instrument Si-9.18 - contrats à terme sur le dollar du MICEX.

Dans le projet de test, l'appel suivant dans le testeur ne donne pas zéro, mais 90 - une petite valeur, qui semble assez peu plausible :

Je pense que parce que seulement

ORDER_TYPE_BUY

Marché Ordre d'achat

TYPE_DE_COMMANDE_VENTE

Marché Ordre de vente

 
Vladimir Karputov:

Je pense que c'est parce que seulement

ORDER_TYPE_BUY

Marché Ordre d'achat

TYPE_DE_COMMANDE_VENTE

Marché Ordre de vente

Voici le résultat de l'ordre limite d'achat dans le testeur pour le même exemple. Une marge de 90 est très faible. Est-ce vraiment le cas ?


Et ici, nous avons une marge de zéro dans le testeur :



Tous les tests d'historique sont effectués avec un compte réel.
 

L'indicateur a cessé de fonctionner, aide à la compilation
Merci.

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

Voici le résultat d'un ordre d'achat limité dans le testeur pour le même exemple. Une marge de 90 est très faible, c'est comme ça que ça marche ?


Peut-être que c'est le compte de démonstration ? Essayez-le sur un compte réel avec le même courtier.

 
Aliaksei Karalkou:

L'indicateur ne fonctionne plus, aidez-nous à compiler
Merci.

Depuis la version 1861, il y a une fonction iBarShift intégrée, elle ne peut pas être utilisée comme une fonction personnalisée. Veuillez renommer la fonction.

 

Bonjour, veuillez m'aider dans cette tâche. Il existe une valeur de type String au format"PERIOD_M1""PERIOD_M2""PERIOD_M3", etc. Nous devons remplacer ces valeurs par des valeurs de type ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 respectivement, etc.

Dans l'EXEMPLE ci-dessous, tout serait parfait, mais nous ne pouvons pas utiliser une variable de type chaîne de caractères dans l'instruction switch, que devons-nous faire ? Vous pourriez simplement utiliser une construction if....else, mais je pense qu'il existe des moyens plus élégants. Des suggestions ? Merci !

//+------------------------------------------------------------------+
//| Преобразует строку в таймфрейм                                   |
//+------------------------------------------------------------------+
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:

Bonjour, veuillez m'aider dans cette tâche. Il existe une valeur de type String au format"PERIOD_M1""PERIOD_M2""PERIOD_M3", etc. Nous devons remplacer ces valeurs par des valeurs de type ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 respectivement, etc.

Dans l'EXEMPLE ci-dessous, tout serait parfait, mais nous ne pouvons pas utiliser une variable de type chaîne de caractères dans l'instruction switch, que devons-nous faire ? Vous pourriez simplement utiliser une construction if....else, mais je pense qu'il existe des moyens plus élégants. Des suggestions ? Merci !

Utilisez la construction if()

 
Tango_X:

Bonjour, veuillez m'aider dans cette tâche. Il existe une valeur de type String au format"PERIOD_M1""PERIOD_M2""PERIOD_M3", etc. Nous devons remplacer ces valeurs par des valeurs de type ENUM_TIMEFRAMES - PERIOD_M1, PERIOD_M2, PERIOD_M3 respectivement, etc.

Dans l'EXEMPLE ci-dessous, tout serait parfait, mais nous ne pouvons pas utiliser une variable de type chaîne de caractères dans l'instruction switch, que devons-nous faire ? Vous pourriez simplement utiliser une construction if....else, mais je pense qu'il existe des moyens plus élégants. Des suggestions ? Merci !

//+------------------------------------------------------------------+
//| Преобразует строку в таймфрейм                                   |
//+------------------------------------------------------------------+
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
     );
  }
//+------------------------------------------------------------------+