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

 
User_mt5:

Pouvez-vous me dire comment comprendre cela ?

Le prix a varié plusieurs fois sur ces ordres, a fini par monter, mais aucun des ordres n'est jamais devenu une position. Pourquoi ?

Si cela est écrit quelque part, veuillez me donner un lien.


Il n'y avait pas assez de lots pour exécuter l'ordre.

Pour autant que je sache, et je m'y connais un peu en la matière, il faut mettre des limiteurs bien au-dessus du prix actuel.

 
Vladislav Andruschenko:

Il n'y avait pas assez de lots pour exécuter l'ordre.

Je suppose que oui, aussi. Mais quelle est la suite ? Nous ne pouvons pas supprimer ou modifier la commande. Donc, ils vont rester accrochés là pour toujours ?
Je ne comprends pas ce que cela signifie lorsqu'il n'y a pas assez de lots sur la démo.

Vladislav Andruschenko:

pour autant que je sache, et me connaissant un peu sur le sujet, il faut mettre des limiteurs bien au-dessus du prix actuel.

Non, ce n'est pas correct. Vous pouvez passer un ordre n'importe où dans les limites actuelles. Il existe une limite StopLevel. Autrement dit, vous ne pouvez pas placer l'ordre plus près du prix que la valeur de StopLevel.

Mais si le serveur l'accepte, cela signifie que tout est OK.

 
User_mt5:

Je le pense aussi. Mais que devons-nous faire ensuite ? Nous ne pouvons pas supprimer ou modifier la commande. Donc, ils vont rester accrochés là pour toujours ?
Et nous ne comprenons pas vraiment ce que cela signifie lorsqu'il n'y a pas assez de lots sur la démo.

Non, c'est incorrect. Vous pouvez passer un ordre n'importe où dans les limites actuelles. Il existe une limite StopLevel. Autrement dit, vous ne pouvez pas placer l'ordre plus près du prix que la valeur StopLevel.

Mais si le serveur l'accepte, cela signifie que tout est OK.


C'est un peu différent dans l'échange.

 
Vladislav Andruschenko:

c'est un peu différent à la bourse...

Vlad, quel échange ? Vous pouvez voir quelle démo de l'entreprise est ouverte...

 
Alexey Viktorov:

Vlad, quel échange ? Vous pouvez voir quelle démo de l'entreprise est ouverte...


Je voulais dire les futurs. Non, je suis confus. Ne faites pas attention à moi. Je suis sous traitement.

 
Alexey Viktorov:

Vlad, quel échange ? Vous pouvez voir quelle démo de l'entreprise est ouverte... ?

Pourriez-vous expliquer le contenu de ce commentaire, car je suis novice en la matière.
Au fait, j'ai appuyé sur le bouton "Acheter", l'ordre n'a pas été exécuté, mais il était affiché comme... en attente dans la fenêtre de la boîte à outils, mais pas sur le graphique.
 
User_mt5:
Pourriez-vous expliquer le contenu de ce commentaire, car je suis novice dans ce domaine.
Au fait, j'ai appuyé sur le bouton Acheter, l'ordre n'a pas été exécuté, mais il apparaît comme... en attente dans la fenêtre des instruments, mais pas sur le graphique.
Qu'y a-t-il à expliquer ? Dans la capture d'écran, vous pouvez voir le numéro de compte et le nom du courtier qui n'a rien à voir avec l'échange.
 
Alexey Viktorov:
Qu'y a-t-il à expliquer ? Dans la capture d'écran, vous pouvez voir le numéro de compte et le nom d'un courtier qui n'a rien à voir avec l'échange.

Je ne comprends pas.

Si ce courtier ne me laisse pas négocier sur ce symbole, alors pourquoi l'a-t-il inclus dans la liste des symboles de la démo ?
Et si oui, comment devons-nous comprendre la situation actuelle des commandes ?

Et si l'ordre a été exécuté partiellement (cela peut arriver sur 5 symboles), qu'advient-il alors de l'ordre restant ?
Doit-il être fermé ou vivre jusqu'à ce qu'il soit fermé manuellement ou jusqu'à ce qu'il soit exécuté ?
Si cela est écrit quelque part, je serais très reconnaissant d'avoir un lien.

 
User_mt5:

Je ne comprends pas...

Si ce courtier ne me laisse pas négocier sur ce symbole, alors pourquoi l'a-t-il inclus dans la liste des symboles de la démo ?
Et si c'est le cas, comment devons-nous comprendre l'état actuel des commandes ?

Et si l'ordre a été exécuté partiellement (cela peut arriver sur 5 symboles), qu'advient-il alors de l'ordre restant ?
Doit-il être fermé ou vivre jusqu'à ce qu'il soit fermé manuellement ou jusqu'à ce qu'il soit exécuté ?
Si cela est écrit quelque part, je serais très reconnaissant d'avoir un lien.

N'essayez pas de m'entraîner dans une discussion sur le fonctionnement des bureaux. D'autant que j'ai rompu toute relation avec celui-ci il y a de nombreuses années et que je ne sais rien à son sujet.

 
Vladimir Karputov:

Un algorithme approximatif :

  1. Nous créons deux poignées dans OnInit() (pour l'indicateur de moyenne mobile rapide et lent ).
  2. Dans OnTick() (il est recommandé de ne travailler que sur une nouvelle barre, pas sur chaque tick) déclarez deux tableaux - l'un d'eux copiera plus tard les valeurs de la MA rapide, le second tableau copiera les données de la MA lente.
  3. Copiez par exemple 100 dernières valeurs (c'est-à-dire que nous devons copier les données de l'index "0" et du numéro "100") de la MA lente et de la MA rapide dans ces tableaux.
  4. Nous inversons les tableaux de sorte que l'indice 0 dans les tableaux corresponde à la barre la plus à droite sur le graphique.
  5. Maintenant, il nous suffit de boucler de "0" à "100-1" dans les deux tableaux et de rechercher l'intersection. Lorsque nous trouvons l'intersection, la valeur de la variable de la boucle sera le numéro de la barre.
Remarque : cet algorithme ne tient pas compte des contrôles ou des protections contre les erreurs.

Merci, comment puis-je écrire la boucle pour trouver le numéro de la barre qui croise les deux MAs lorsque les deux premières étapes de l'algorithme sont terminées et qu'il y a des valeurs des deux MAs sur la première barre ?

   MA1_1=iMAGet(handle_iMA_1, 1);      // значение 1-й МА

   MA2_1=iMAGet(handle_iMA_2, 1);      // значение 2-й МА

/

double iMAGet(const int handle,const int index)
  {
   double MA[];
   ArraySetAsSeries(MA,true);
//--- reset error code 
   ResetLastError();
//--- fill a part of the iMABuffer array with values from the indicator buffer that has 0 index 
   if(CopyBuffer(handle,0,0,index+1,MA)<0)
     {
      //--- if the copying fails, tell the error code 
      PrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
      //--- quit with zero result - it means that the indicator is considered as not calculated 
      return(0.0);
     }
   return(MA[index]);
  }

.