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

 

Bonne journée à tous. Quelqu'un a-t-il eu à faire face à l'affichage des indicateurs lors des tests en mode visuel ? Est-il possible de les cacher pendant les tests ? Je veux vraiment voir comment le chalut fonctionne, mais à cause de la grande quantité d'indicateurs, le graphique de visualisation est très petit et je dois arrêter et minimiser manuellement toutes les fenêtres d'indicateurs pendant chaque test. La documentation de https://www.mql5.com/ru/docs/runtime/testing#indicatorrelease indique que

Для того чтобы запретить показ индикатора на графике после завершения одиночного тестирования, используйте функцию IndicatorRelease() в обработчике OnDeinit().

Je ne trouve pas d'informations sur la manière de masquer les indicateurs pendant les tests.

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Программы MQL5 / Тестирование торговых стратегий - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
jommerbot:


Mais je n'ai pas trouvé d'informations sur ce qu'il faut faire si l'on veut cacher les indicateurs pendant les tests.

C'est parce qu'il n'y en a pas.

https://www.mql5.com/ru/search#!keyword=HideTestIndicators

 

Pouvez-vous me dire si un courtier peut savoir si un trader ou un robot est en train de trader (MT4) ? Plus tôt, il semblait qu'il ne pouvait pas, mais maintenant ? Il y a juste une condition dans l'un des concours de commerçants :

1.4 La concurrence est une compétition entre commerçants. Par conséquent, en particulier, les stratégies automatisées qui n'impliquent pas un humain (trader) pour prendre une décision basée sur la situation actuelle du marché ne sont pas autorisées.


Si j'utilise un conseiller expert, vont-ils me griller ou pas ?)

J'ai demandé à leur directeur, il a évité de répondre, comment ils peuvent déterminer qui fait du commerce.

 
Crucian:

Pouvez-vous me dire si un courtier peut savoir si un trader ou un robot est en train de trader (MT4) ? Plus tôt, il semblait qu'il ne pouvait pas, mais maintenant ? Il y a juste une condition dans l'un des concours de commerçants :

Si j'utilise un conseiller expert, vont-ils me griller ou pas ?)

On a demandé à leur directeur, il évite de répondre à la question de savoir comment ils peuvent savoir qui négocie.

J'ai vu de telles conditions sur des concours. Le courtier peut bloquer la fonction d'auto-trading dans la plateforme et l'EA peut ne pas démarrer pour vous.
 
papaklass:

Bien sûr qu'il peut.

S'il ne pouvait pas, il n'écrirait pas. :)

Il n'y a qu'un seul moyen de savoir si un ordre est passé par un EA - un nombre magique non nul.
 
stringo:
Il n'y a qu'un seul moyen de savoir si un ordre est passé par un EA - un nombre magique non nul.

Et si j'ai un magicien dans l'EA:

int mag=NULL ;

personne au DC ne sera en mesure de déterminer qu'il s'agit d'un EA ?

 
rosomah:

Et si j'ai un magicien dans mes EAs :

int mag=NULL ;

personne dans la société de courtage ne le reconnaîtra comme un EA ?

Doit probablement être défini int mag != NULL ; (non égal à 0).

Et quel mag doit être attribué à l'ordre ?

Il y en a ? Ce serait aussi un désastre.

 
Crucian:

Il faut probablement mettre int mag != NULL ; (non égal à 0).

Et quel mag doit être attribué à l'ordre ?

Il y en a ? Ce serait également un non-sens.

int mag != NULL ; -cette façon ne compilera pas dans le testeur.

int mag = NULL ; -cette méthode est facile à appliquer. Si nous le vérifions à travers l'alerte, il retournera "0".

int mag = EMPTY_VALUE; -cela fonctionne aussi. Ici, il renvoie"-2147483648".

Alert("mag=",mag) ;

Maintenant, je l'ai testé dans le testeur à MQL4 et MQL5. Cela fonctionne dans le testeur.

En ce qui concerne le code réel, la question de savoir ce que nous devrions faire pour qu'une société de courtage ne ressente pas le conseiller expert, du moins selon les paramètres entrants, reste ouverte pour moi. Bien sûr, nous pouvons le faire sans commandes partielles.

 
rosomah:

int mag != NULL ; -cela ne compile pas dans le testeur.

int mag = NULL ; -cela fonctionne facilement. Si vous le vérifiez avec les alertes, il retournera "0".

int mag = EMPTY_VALUE; -cela fonctionne aussi. Ici, il renvoie"-2147483648".

Alert("mag=",mag) ;

Maintenant, je l'ai essayé dans le testeur dans MQL4 et MQL5. Dans le testeur, c'est parti.

Quant au code réel, la question de savoir ce que nous devrions faire pour qu'une société de courtage ne ressente pas le conseiller expert, du moins selon les paramètres entrants, reste ouverte pour moi. Bien sûr, nous pouvons le faire sans utiliser de commandes.

NULL est un identifiant spécial utilisé lorsqu'on travaille avec des types de référence (pointeurs vers des objets). Integer (int) est un type significatif. Les types significatifs ne peuvent pas faire référence à quoi que ce soit, en particulier à un identifiant NULL, ils ne peuvent être transmis que par référence. Par conséquent, la comparaison d'un type significatif à un type de référence est incorrecte. De même, il est impossible d'assimiler un type significatif à un type de référence. La raison pour laquelle ce code est compilable est que le compilateur convertit implicitement NULL en un type significatif "0" et lui assimile ensuite la variable mag. La seule véritable solution consiste à comparer simplement le numéro magique d'une commande ou d'une transaction avec zéro. Si cette valeur est différente de zéro, nous pouvons conclure que cet ordre a été placé par l'EA :

ulong magic = HistoryOrderGetInteger(order_id, ORDER_MAGIC);

if(magic != 0)

   printf("Ордер выставлен экспертом");

else

   printf(Ордер выставлен вручную); 

 

où dois-je commencer ? Je viens juste de m'inscrire.

Raison: