Questions d'un "mannequin - page 146

 
alph:

Bonjour !

Ici, je l'ai sculpté, ajusté pour le GBPUSD M30.

J'aimerais également avoir un avis, un commentaire et un conseil.

Merci d'avance.

Peut-être :

Slipage=20 ; // Dérapage

Inclure dans :

if(_Digits==4 || _Digits==2)
{
STP = STP/10 ;
TKP = TKP/10 ;

}

C'est trop gros pour 4 chiffres.

Je l'ai essayé sur 2 sociétés de courtage et n'ai pas réussi à obtenir un résultat positif.

Peut-être que l'heure du serveur est différente de la mienne.

Quelle société de courtage utilisez-vous ?

 
pusheax:


Tu as raison, je n'y avais même pas pensé.

RFC DC

Heure du serveur MSC-3

 
alph:

Bonjour !

Ici, je l'ai sculpté, ajusté pour le GBPUSD M30.

J'aimerais également avoir un avis, un commentaire et un conseil.

Merci d'avance.

J'y ai jeté un coup d'œil rapide. Voici un aperçu.

1.

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(true);
   }

Les dernières et avant-dernières lignes sont confuses. Quel que soit le résultat de l'opérateur if(), il renvoie vrai. Quel est alors le sens de cette condition ? Il en est de même dans timeOntrade2().

2. Lorsqu'il utilise la fonction OrderSend(), le programmeur ne vérifie ni son succès ni le code de retour result.retcode. Jusqu'à présent, cela se présente comme suit : si une demande d'échange est envoyée, l'affaire est la même :) Personne ne se soucie de savoir si cela a fonctionné ou non.

 

 alph:

3. si OnInit() ne parvient pas à obtenir au moins une poignée d'indicateur, pourquoi ne pas simplement décharger le programme ?

 
Yedelkin:

J'ai jeté un coup d'oeil autour de moi. Voici un aperçu.

1.

Les dernières et avant-dernières lignes sont confuses. Quel que soit le résultat de l'opérateur if(), il renvoie vrai. Quel est alors le sens de cette condition ? Il en est de même dans timeOntrade2().

2. Lorsqu'il utilise la fonction OrderSend(), le programmeur ne vérifie ni son succès ni le code de retour result.retcode. Jusqu'à présent, cela se présente comme suit : si une demande d'échange est envoyée, l'affaire est la même :) Personne ne se soucie de savoir si cela a fonctionné ou non.

C'est pourquoi je demande un avis et des conseils. Je ne comprends pas tout à fait les processus de mql, mais les transactions sont ouvertes de cette façon et au bon moment. Lorsque j'ai essayé avec une seule période, cela n'a pas fonctionné.
 
Yedelkin:

3. si OnInit() ne parvient pas à obtenir au moins un indicateur, pourquoi ne pas simplement décharger le programme ?

La méthode est fiable, mais pas toujours efficace. A mon avis, il est correct de corriger toutes les erreurs et défauts d'initialisation, si possible.
 
Yedelkin:

3. si OnInit() ne parvient pas à obtenir au moins une poignée d'indicateur, pourquoi ne pas simplement décharger le programme ?

Pouvez-vous me dire comment ?
 
alph:
C'est pourquoi je demande un avis et des conseils. Je ne comprends pas tout à fait les processus mql, mais de cette façon, les transactions sont ouvertes, et au bon moment. Lorsque j'ai essayé avec une seule période, j'ai échoué.

Oui, c'est une "opinion et un conseil" ! :) Je ne dis pas que le code est un fiasco, je dis qu'il y a des doutes. N'hésitez pas à écrire ce que vous voulez coder - ils vous aideront ici.

À propos de la fonction OrderSend(): consultez sa description. La variable result contient la réponse du serveur. Elle doit être analysée. Chacun l'analyse à sa façon. Veuillez demander, si quelque chose n'est pas clair.

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 

alph:

Yedelkin : 3. Si OnInit() ne parvient pas à obtenir au moins un handle d'indicateur, pourquoi ne pas simplement décharger le programme ?

S'il vous plaît, dites-moi comment faire.

Regardez la description de OnInit(). Il indique que si la fonction int OnInit() renvoie un code de retour non nul, cela signifie que l'initialisation n'a pas réussi, ce qui génère l'événementDeinit avec le code REASON_INITFAILED de la raison de la désinitialisation. En d'autres termes, si OnInit() ne parvient pas à recevoir un handle d'indicateur, écrivez return(-100) et l'expert terminera son travail. (La valeur "-100" est conditionnelle ; toute valeur non nulle est suffisante).

 
Yedelkin:

Oui, c'est une "opinion et un conseil" ! :) Je ne dis pas que le code est un échec, je dis qu'il y a des doutes. N'hésitez pas à écrire ce que vous voulez coder - ils vous aideront ici.

À propos de la fonction OrderSend(): consultez sa description. La variable result contient la réponse du serveur. Elle doit être analysée. Chacun l'analyse à sa façon. N'hésitez pas à demander si quelque chose n'est pas clair.

Si le prix clôture en dessous de la moyenne mobile, et que le Momentum est en dessous de la moyenne - nous ouvrons la transaction pour vendre. Pour acheter au contraire.

"Je n'ai aucune idée de ce qu'il faut faire avec ce genre de code. Merci pour les conseils.