Comment créer un tableau de nombres magiques ?

 

Est-il possible de créer un tableau de nombres magiques ?

ex. Je vais faire 5 commandes et chaque commande a un numéro magique unique.

int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green) 
Au lieu de 12345, peut-être OrderMagic [x][0] pour chaque nouvelle commande passée ? Comment faire ?

Ensuite, lors de la fermeture, je vais passer par chaque commande et fermer la commande spécifique avec son numéro magique unique ?

for (int i=0; i<OrdersTotal(); i+=1)
{
           if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
           {
                     if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == 12345)

Au lieu de 12345, comment puis-je passer par chaque numéro magique unique dans le tableau ?

Merci d'avance !

 

Est-il possible de créer un tableau de nombres magiques ?

oui

ex. Je vais faire 5 commandes et chaque commande a un numéro magique unique.

int magicArray = { 1, 3, 5, 7, 9 } ;

if(OrderMagicNumber() == magicArray[3]) { // cela fait référence à 7 dans cet exemple

 
phy:

Est-il possible de créer un tableau de nombres magiques ?

oui

ex. Je vais faire 5 commandes et chaque commande a un numéro magique unique.

int magicArray = { 1, 3, 5, 7, 9 } ;

if(OrderMagicNumber() == magicArray[3]) { // cela fait référence à 7 dans cet exemple


Merci !

Comment puis-je envoyer par OrderSend chaque nouvelle commande avec un tableau de numéros magiques unique ? Cela fonctionnera-t-il de cette façon ? magicArray[x] au lieu de 12345 ?

OrderSend est dans une fonction et non dans une boucle. Comment saurait-il comment attribuer un nouveau numéro magique à chaque nouvelle commande ? Est-ce qu'il suffit d'ajouter x++ après OrderSend ?

Dois-je initialiser un tableau global ?

Comment faire un tableau dynamique, car je ne sais pas combien de commandes il y aura au final ?

int  magicArray[x];

...
int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",magicArray[x],0,Green);
x++;
 

Pourquoi voulez-vous attribuer à chaque ordre un numéro magique différent ? Les numéros magiques sont destinés à regrouper des transactions qui vont ensemble et le but est d'avoir un numéro magique pour plusieurs transactions (qui vont ensemble).

Vous ne devez pas les utiliser pour des choses pour lesquelles ils ne sont pas prévus. D'autres EA les utilisent pour identifier leurs propres transactions. Nous avons récemment eu un fil de discussion ici où un EA dont l'auteur a essayé d'être super intelligent et a abusé de la magie pour une sorte de compteur a commencé à interférer avec les trades d'autres EA et a produit une perte de 5000 dollars en une seule nuit pour la victime innocente qui a acheté cet EA en entrant dans un open-close-open-close-"combat" sur le même trade. L'EA a silencieusement commencé à changer le nombre magique qui lui a été attribué sans raison évidente et sans préavis jusqu'à ce que le conflit se produise. Un numéro magique est censé rester constant !

Si vous avez besoin d'un numéro unique pour *chaque* transaction, utilisez simplement le numéro de ticket.

 
7bit:

Pourquoi voulez-vous attribuer à chaque ordre un numéro magique différent ? Les numéros magiques sont destinés à regrouper des transactions qui vont ensemble et le but est d'avoir un numéro magique pour plusieurs transactions (qui vont ensemble).

Vous ne devez pas les utiliser pour des choses pour lesquelles ils ne sont pas prévus. D'autres EA les utilisent pour identifier leurs propres transactions. Nous avons récemment eu un fil de discussion ici où un EA dont l'auteur a essayé d'être super intelligent et a abusé de la magie pour une sorte de compteur a commencé à interférer avec les trades d'autres EA et a produit une perte de 5000 dollars en une seule nuit pour la victime innocente qui a acheté cet EA en entrant dans un open-close-open-close-"combat" sur le même trade. L'EA a silencieusement commencé à changer le nombre magique qui lui a été attribué sans raison évidente et sans préavis jusqu'à ce que le conflit se produise. Un numéro magique est censé rester constant !

Si vous avez besoin d'un numéro unique pour *chaque* transaction, utilisez simplement le numéro de ticket.



Merci, c'est exactement ce dont j'ai besoin pour regrouper mes ordres qui vont ensemble.

int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green)
&   ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green);
J'ouvre dans 2 paires, je voudrais ouvrir 2 paires puis fermer 2 paires. Avoir un numéro magique unique pourrait m'aider à ouvrir et fermer les 2 paires correspondantes. Je ne veux pas fermer la mauvaise paire.
 
Idée : vous pourriez utiliser toujours le même numéro magique comme d'habitude pour le rendre compatible avec tout ce qui utilise des numéros magiques, mais aussi le combiner avec la chaîne de commentaire en incluant un numéro dans le commentaire qui est unique pour chaque paire de transactions. Vous pourriez alors trouver l'autre transaction de chaque paire de transactions en recherchant simplement une transaction avec le même nombre magique et le même commentaire.
 
7bit:
Idée : vous pourriez utiliser le même numéro magique que d'habitude pour le rendre compatible avec tout ce qui utilise des numéros magiques, mais aussi le combiner avec la chaîne de commentaire en incluant un numéro dans le commentaire qui est unique pour chaque paire de transactions. Vous pourriez alors trouver l'autre transaction de chaque paire de transactions en recherchant simplement une transaction avec le même nombre magique et le même commentaire.

Merci !

En fait, j'ai besoin d'une étiquette unique pour chaque commande (2 paires chacune) et pour pouvoir les fermer en même temps.

Je ne veux pas fermer la mauvaise paire.

Si ce n'est pas un numéro magique, comment puis-je ajouter ce commentaire unique à chaque commande ?

Aurais-je besoin d'une sorte de tableau dynamique ?

 

Il y a beaucoup de combinaisons que vous pouvez utiliser

par exemple si vous les ouvrez à une minute différente vous pouvez utiliser

OrderMagicNumber() == Minute();

Et si vous les ouvrez dans une heure différente vous pouvez utiliser

OrderMagicNumber() == Hour();

Ou si vous les ouvrez à un TM différent vous pouvez utiliser

OrderMagicNumber() == Period();
 
qjol:

Il y a beaucoup de combinaisons que vous pouvez utiliser

par exemple si vous les ouvrez à une minute différente vous pouvez utiliser

Et si vous les ouvrez dans une heure différente vous pouvez utiliser

Ou si vous les ouvrez à un TM différent vous pouvez utiliser

Veuillez ne pas recommander de telles absurdités. Le nombre magique n'est pas destiné à stocker des valeurs qui sont déjà contenues dans l'ordre lui-même.
 
qjol:

Il y a beaucoup de combinaisons que vous pouvez utiliser

par exemple si vous les ouvrez à une minute différente vous pouvez utiliser

Et si vous les ouvrez dans une heure différente vous pouvez utiliser

Ou si vous les ouvrez à un TM différent, vous pouvez l'utiliser.



Merci ! mais si j'ai des ordres passés à la même minute ou dans le même laps de temps, il peut fermer le mauvais ordre. J'ai besoin d'une étiquette unique, comme un numéro magique.

J'ai besoin de savoir comment attribuer un nouveau numéro magique à chaque nouvel ordre puis comparer tous les ordres pour les retrouver à la clôture.

 
veuillez décrire grossièrement ce que votre EA va faire. combien de types d'ordres différents doivent être gérés séparément? Peut-être que votre problème n'en est pas un du tout si nous savons ce que vous essayez réellement de réaliser.