Questions d'un "mannequin - page 141

 
Yedelkin:

Le problème semble être autre.

La valeur "3" ne revient en aucun cas :) Après tout, les énumérations sont numérotées à partir de zéro.

Utiliser la fonction EnumToString pour sortir les valeurs de l'énumération
 
Dans MQL5, les valeurs des périodes de type PERIOD_M1 ... PERIOD_MN1 sont des valeurs de type entier ? Je veux les comparer en utilisant l'opérateur de commutation. Par exemple, si l'expression est correcte :
input ENUM_TIMEFRAMES Period_code=PERIOD_H4;
int result; string big;

switch (Period_code)
{
case PERIOD_H4: { result=1; big="data 1"; break; }
case PERIOD_D1: { result=2; big="data 2"; break; }
}
 

Rosh:

Yedelkin:

Le problème semble être ailleurs.

La valeur "3" ne revient en aucun cas :) Parce que les énumérations sont numérotées à partir de zéro.

Utilisez la fonction EnumToString pour afficher les valeurs des énumérations.

Ce qui est étrange, c'est que cette suggestion n'est pas apparue plus tôt, lorsque l'auteur du sujet local indiquait que ses résultats étaient"retours 3". OK, descendons sur le chemin de l'invincibilité.

T-G:

Retourne 3 - c'est-à-dire SYMBOL_TRADE_EXECUTION_MARKET.

En suivant les conseils de Roche, nous écrivons une simple vérification (en utilisant EnumToString) :

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

Et qu'est-ce qu'on voit ? - Ce que nous voyons, c'est que le numéro "3" ne correspond pas à SYMBOL_TRADE_EXECUTION_MARKET. Nous revenons donc à https://www.mql5.com/ru/forum/3775/page143#comment_192116

 
Paladin80:
Dans MQL5, les valeurs des périodes de type PERIOD_M1 ... PERIOD_MN1 sont des valeurs de type entier ? Je veux les comparer en utilisant l'opérateur de commutation. Par exemple, l'expression :
ENUM_TIMEFRAMES est un enum(Référence MQL5 / Contrôle d'état / Période). Enumerations est un type de données entier(Référence MQL5 / Notions de base du langage / Types de données / Types entiers / Enumerations ).
 
Bonjour, pouvez-vous me dire comment vérifier si un achat ou une vente a été clôturé aujourd'hui pour un instrument particulier ?
 
T-G:
Bonjour, pouvez-vous me dire comment vérifier si les achats et les ventes pour un certain instrument ont été fermés aujourd'hui ?

Si personne ne veut poster le code prêt, essayez de l'écrire vous-même. L'approche la plus simple est probablement la suivante : sélectionnez l'historique des transactions pour un jour particulier(HistorySelect) et essayez de rechercher dans l'historique les transactions qui font référence au symbole sélectionné.

DEAL_SYMBOL

Nom du symbole pour lequel l'accord a été conclu

chaîne de caractères

puis vérifier

HEURE DE LA TRANSACTION

Temps de transaction

datetime

и

DEAL_ENTRY_OUT

Sortie du marché

S'il y a eu plusieurs positions de clôture pour un symbole au cours de la journée, vous pouvez également obtenir l'heure de chaque transaction et la traiter selon l'algorithme de l'auteur.

 
Yedelkin:

Ce qui est étrange, c'est que cette suggestion n'a pas été faite plus tôt, lorsque l'auteur du sujet local indiquait que ses résultats étaient"retours 3". OK, descendons sur le chemin de l'invincibilité.

En suivant les conseils de Roche, nous écrivons une simple vérification (en utilisant EnumToString) :

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

Et qu'est-ce qu'on voit ? - Ce que nous voyons, c'est que le numéro "3" ne correspond en aucune façon à SYMBOL_TRADE_EXECUTION_MARKET. Nous retournons donc à https://www.mql5.com/ru/forum/3775/page143#comment_192116.

Que pensez-vous de ça ? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));
T-G:

Retourne 3 - c'est-à-dire SYMBOL_TRADE_EXECUTION_MARKET

3 est SYMBOL_TRADE_EXECUTION_EXCHANGE logiquement.

Vous feriez mieux de nous dire ce que nous essayons d'échanger et où... :)

 
Interesting:

Que pensez-vous de ça ? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));

Eh bien, c'est la même chose. Seulement sous un autre angle. Le numéro "3" et la valeur de l'énumération"SYMBOL_TRADE_EXECUTION_MARKET" ne sont pas du toutliés. La seule différence réside dans la relation de précédence.

Intéressant:

3 est SYMBOL_TRADE_EXECUTION_EXCHANGE logiquement.

Ce n'est pas si "logique", mais c'est comme ça pour le moment.

 
Yedelkin:

Eh bien, c'est la même chose. Seulement sous un angle différent. Le nombre "3" et la valeur de l'énumération"SYMBOL_TRADE_EXECUTION_MARKET" ne sont enaucun cas liés. La seule différence réside dans la relation de précédence.

Ce n'est pas si "logique", mais c'est comme ça pour le moment.

Il est logique que nous ayons une exécution en bourse(SYMBOL_TRADE_EXECUTION_EXCHANGE) et donc pas de TP/SL.
 
Interesting:
C'est donc logique, nous avons une exécution en bourse(SYMBOL_TRADE_EXECUTION_EXCHANGE) et donc pas de TP/SL
Je ne m'y retrouve pas. Où est-il indiqué dans le manuel de référence qu'une demande d'exécution en bourse ne doit pas contenir de TP/SL ?