Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1103

 
MIKHAIL VINOGRADOV:

Salutations !

Je ne peux pas clôturer des ordres opposés de différents lots en utilisant CTrade.PositionCloseBy(ticket1,ticket2).

ResultRetCode() - Je reçois l'erreur 10035.

Quelle en est la raison ?

10035

TRADE_RETCODE_INVALID_ORDER

Type d'ordre invalide ou interdit


Faites attention à ce que vous faites là.

 

Est-ce que je comprends bien - la fonction SetIndexBuffer est nécessaire pour lier le(s) tampon(s) à une construction graphique spécifique, ET POUR NUMÉROTER L'ACCÈS À CES TAMPONS À TRAVERS iCustom ?

Ainsi, par exemple, si je crée un tableau pour les prix élevés, il suffit de le déclarer sans liaison via SetIndexBuffer et en ...

#property indicator_buffers

... ... on peut l'ignorer.

En outre, avec SetIndexBuffer, vous pouvez lier des tableaux de type double uniquement, alors que les tableaux de type datetime et autres ne le peuvent pas.


Je ne comprends pas tout à fait ce point (ou je l'ai compris), et maintenant j'ai une idée - je veux le clarifier...

 
Alexandr Sokolov:

Est-ce que je comprends bien - la fonction SetIndexBuffer est nécessaire pour lier le(s) tampon(s) à une construction graphique spécifique, ET POUR NUMÉROTER L'ACCÈS À CES TAMPONS À TRAVERS iCustom ?

Ainsi, par exemple, si je crée un tableau pour les prix élevés, il suffit de le déclarer sans liaison via SetIndexBuffer et en ...

... ... on peut l'ignorer.

En outre, avec SetIndexBuffer, vous pouvez lier des tableaux de type double uniquement, alors que les tableaux de type datetime et autres ne le peuvent pas.


Je ne comprends pas tout à fait ce point (ou je l'ai compris), et maintenant j'ai une idée - je veux le clarifier...

Ce n'est pas une construction, c'est un ensemble de données. Par conséquent, je ne pense pas que cela fonctionnera de cette façon. Bien que je ne l'ai pas vérifié.

Quant au type de date, vous pouvez l'écrire en double et l'appliquer de force lors de la lecture.

 
Happy:

Bonjour.

Question. Dans le testeur, à l'interface côté jour (lorsque la ligne du jour suivant passe), le programme aurait dû placer un ordre en attente. L'ordre en attente qui était déjà présent et que le prix a touché, a été ouvert mais l'instruction d'ouvrir un autreordre en attente a été ignorée par le système pour une raison quelconque. Cela peut-il également se produire dans un compte réel où les instructions du robot sont simplement ignorées et où l'action requise n'est donc pas exécutée ?


Et une autre question. J'utilise un testeur de stratégie, mais j'ai été très troublé par le fait qu'il passe une semaine environ dans la visualisation et affiche ensuite le message suivant

177564 événements tick (447 barres, 7888506 états de barre) traités en 0:17:42.694 (temps total 0:17:48.217)

177564 événements tick (447 barres, 7888506 états de barre) traités à 0:17:42.694 (temps total 0:17:48.217)

Je ne comprends pas, il est trop occupé pour continuer à faire des tests ? Ou bien il est si attentionné et s'inquiète des ressources de mon ordinateur ? Je ne vois pas de messages d'erreur. Il s'arrête simplement de lui-même. Bien que j'aie fixé la date non pas à 7 jours, mais à 7 mois. J'aimerais voir l'ensemble du parcours de test du début à la fin.

Quelle religion ne lui permet pas de faire un test visuel, par exemple pendant un an ou plusieurs années ? Et vous pouvez voir visuellement comment votre programme a fonctionné au cours de l'année précédente, par exemple.


Et une dernière question. (Bien qu'elle puisse rester sans réponse)) ) Comment se peut-il que le testeur 2 tours fonctionne comme il le devrait, et juste avant l'inscription susmentionnée sur le jour ignore tout simplement toutes les instructions. Comment est-il possible que le programme ait fonctionné correctement pendant plusieurs tours (il a ouvert des ordres puis les a fermés), et puis, boum, il ignore tout. Il ne s'ouvre ni ne se ferme. Est-ce à cause de la fin d'une période d'essai ou y a-t-il d'autres raisons ?

 
les graphiques brent et wti sur l'écran principal du site ftm sont différents des cotations elles-mêmes dans mon compte personnel. Des idées ? Je suis sûr que la gestion des graphiques, en particulier des graphiques "pétrole", a lieu dans la "cuisine" de ftm. Il n'y a pas d'explication. La preuve est dans la photo ; en même temps, les prix dans mon cabinet personnel diffèrent en sens inverse des prix réels et sont toujours négatifs pour le commerçant. Ça sent l'arnaque...
 
Yevhenii Levchenko:

........... Mais à un certain moment, il doit déterminer s'il a fermé sa propre transaction ou si c'est quelqu'un d'autre qui est entré et l'a fermée.....

Écrivez sans ambiguïté, demandez-vous comment prescrire ou comment utiliser une évaluation environnementale sans modification ?

 
comment puis-je gérer l'erreur 4403 ?
 

  • Bonjour !

    Je voulais utiliser l'indicateur A/D pour mon EA, mais pas dans sa forme pure, sa moyenne mobile.

    C'est pourquoi j'ai inventé des fonctions :

    //+------------------------------------------------------------------+

    //| Fonction A/D |

    //+------------------------------------------------------------------+

    double A_D(ENUM_TIMEFRAMES tf, int shift)

    {

    double res=0;



    res=iAD(NULL,tf, shift);



    renvoyer la ressource;





    }



    //+------------------------------------------------------------------+

    //| Fonction A/D |

    //+------------------------------------------------------------------+

    double A_D_moving(ENUM_TIMEFRAMES tf, int period)

    {

    double res=0;

    double a[];





    for(int i=period ; i>=1 ; i--)

    {

    a[i]= A_D(tf, i);

    }



    for(int i=period ; i>=1 ; i--)

    {

    res=iMAOnArray(a,0,period,0,MODE_SMA,0);

    }



    renvoyer la ressource;





    }

    Mais lors des tests, il est devenu évident que A_D_moving() est bogué dans cette révision, car il y a une erreur critique lors de l'exécution du test.

    S'il vous plaît qui peut aider :

    L'écriture de A_D_moving() est-elle correcte ? S'il y a des erreurs, veuillez les indiquer...

    Merci !


 
AurelianoV:

Veuillez insérer le code correctement :


 
Artyom Trishkin:

Veuillez insérer le code correctement :


Désolé1

/+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D(ENUM_TIMEFRAMES tf, int shift)
  {
   double res=0;
   res=iAD(NULL,tf, shift);
   return res;
  }

//+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D_moving(ENUM_TIMEFRAMES tf, int period)
  {
   double res=0;
   double a[];
   
   for(int i=period; i>=1; i--)
     {
      a[i]= A_D(tf, i);
     }
   for(int i=period; i>=1; i--)
     {
      res=iMAOnArray(a,0,period,0,MODE_SMA,0);
     }
   return res;
  }


désolé