conseiller expert - questions diverses - page 35

 

#sparam - Ouvrir

Je viens d'attraper ces différentes méthodes " sparam " dans mon code principal.
J'essaie maintenant de choisir une méthode parmi elles, mais j'ai du mal à en choisir une, même si j'ai fait des recherches à ce sujet dans la documentation de mql4.

Q : Quelle méthode est la bonne, et pourquoi, s'il vous plaît ?

Merci d'avance.

// # 1
if(sparam==button)
{
  // here code
}

// # 2
if(id==CHARTEVENT_OBJECT_CLICK && sparam==button)
{
  // here code
}

// # 3 ( was 2 I just forgot to change )
if(id==CHARTEVENT_OBJECT_CLICK)
{
  if(sparam==button)
    {
     // here code
    }
}
 

#Le numéro 1 est généralement placé dans l'événement de clic, ce qui vous donnerait la même chose que le numéro 2 et aussi la même chose que l'autre numéro 2.

 
#sparam - Fermé

Marco vd Heijden:

#Le numéro 1 est généralement placé dans l'événement de clic, ce qui vous donnerait la même chose que le numéro 2. Et aussi la même chose que l'autre numéro 2.

Merci beaucoup plus.

 

#Delete Order Objects / OnTrade() - Open

Les 2 dernières heures j'ai passé mon temps à rechercher la fonction OnTrade(), finalement je sais que la fonction ne fonctionne pas dans MT4. ( s'il vous plaît quelqu'un dit : vous avez tort qu'il fonctionne )

Donc, le prix n'atteindra pas les niveaux de Stop Loss et Take Profit dans chaque ticks, chaque secondes, chaque minutes comme habituellement (si j'ai raison).
J'essaie donc de supprimer les objets #Ticket lorsque le prix atteint les niveaux de Stop Loss et Take Profit.
Je sais que je peux mettre " My_OrderObjectsDelete() " dans OnTimer() et OnTick() - j'essaie de trouver une fonction comme OnTrade().

J'ai besoin d'un conseil pour savoir où je peux mettre " My_OrderObjectsDelete() ", s'il vous plaît.

Merci d'avance.

 
Il est un peu difficile pour moi de comprendre ce que vous voulez.

Dans mt4, si un ordre ouvert a atteint STP ou TGT, vous le trouvez dans l'historique des ordres. Donc si vous ne pouvez plus le trouver dans les OrdersTotal() vérifiez la liste des OrdersHistoryTotal().

Mais que se passe-t-il si vous suivez les STP et TGT à nouveau Bid et Ask et que vous vérifiez les ordres seulement si ces vérifications ont réussi - peu importe où vous les avez placés dans InTick() ou OnTimer().
 
Carl Schreiber:
C'est un peu difficile pour moi de comprendre ce que vous voulez.
Dans mt4 si un ordre ouvert a atteint STP ou TGT vous le trouvez dans l'historique des ordres. Donc si vous ne pouvez plus le trouver dans les OrdersTotal() vérifiez la liste des OrdersHistoryTotal().
Mais qu'en est-il si vous suivez STP et TGT à nouveau Bid et Ask et que vous vérifiez les ordres seulement si ces vérifications ont réussi - peu importe où vous les avez placés dans InTick() ou OnTimer().

Je pense que vous m'avez bien compris, merci pour votre commentaire.

Mais ma préoccupation est la suivante : je ne voudrais pas que cette partie du code s'exécute continuellement, car l'indicateur de prix ne devrait pas atteindre à chaque ticks mes niveaux de Stop Loss et Take Profit.

(Je sais déjà comment supprimer ces objets après la fermeture de la commande - vous pouvez également consulter ce commentaire - le nom de la fonction est " deleteobjs() " - #238).

 

#Delete Order Objects / OnTrade() - Fermé

Je vais mettre ma fonction soit OnTick() soit OnTimer().

 

#StringLen - Ouvrir

Je continue à faire des recherches sur ce problème, mais je ne trouve aucun forum similaire, ni rien d'autre.

J'essaie de compter le nombre de chiffres. Le code ci-dessous me donne des résultats différents, s'il vous plaît aidez-moi.

Bid_Len = StringLen( IntegerToString( change_to_points( Bid ) ) );

// Results
// EURUSD = 1.23456 > 123456
// NZDUSD = 0.12345 > 12345
Merci d'avance.
 
Max Enrik:

#StringLen - Ouvrir

Je continue à faire des recherches sur ce problème, mais je ne trouve aucun forum similaire, ni rien d'autre.

J'essaie de compter le nombre de chiffres. Le code ci-dessous me donne des résultats différents, s'il vous plaît aidez-moi.

Bid_Len = StringLen( IntegerToString( change_to_points( Bid ) ) );

// Results
// EURUSD = 1.23456 > 123456
// NZDUSD = 0.12345 > 12345
Merci d'avance.
Pouvez-vous expliquer davantage ce que vous essayez de faire ici ?
 
honest_knave:
S'il vous plaît, pouvez-vous expliquer davantage ce que vous essayez de faire ici ?

Merci pour votre réponse rapide.

L'image ci-dessous montre ce que je veux faire.

StringLen-1

(juste fait rapidement)

J'espère que cela vous aidera à me comprendre plus clairement.

// 2eme fois édité

J'espère que cela peut être plus utile.

StringLen - explain - 1