Comment coder ? - page 80

 
 

Masquage des stoploss

Quelqu'un peut-il indiquer comment masquer les stoploss et les trailing stops dans un EA ? (Je n'aime pas l'idée que les courtiers voient mes stoploss ou trailing stops, c'est comme une cible pour eux). Merci.

 
jturns23:
Quelqu'un peut-il me dire comment masquer les stoploss et les trailing stops dans un EA ? (Je n'aime pas l'idée que les courtiers voient mes stoploss ou trailing stops, c'est comme une cible pour eux). Merci.

Dans votre code, vous définissez simplement une valeur stop et une valeur cible.

Ensuite, après avoir placé une transaction, obtenez le prix auquel vous avez entré la transaction, puis, à chaque nouveau tick, vérifiez si votre stop ou votre cible a été atteint.

Si c'est le cas, demandez à l'EA d'exécuter la fonction OrderClose.

Personnellement, j'ai toujours un stop que le courtier peut voir, bien qu'il soit placé très loin de l'action du prix, à 50-100 pips. De cette façon, si le terminal tombe en panne pour une raison quelconque, vous êtes au moins protégé contre tout mouvement soudain.

A la vôtre,

Hiachiever

 
jturns23:
Quelqu'un pourrait-il me dire comment masquer les stoploss et les trailing stops dans un EA ? (Je n'aime pas l'idée que les courtiers voient mes stoploss ou trailing stops, c'est comme une cible pour eux). Merci.

Ce que vous cherchez à mettre en œuvre est le plus souvent appelé "soft-stops", où vous suivez dynamiquement le P&L, en fermant le(s) ordre(s) lorsque le(s) objectif(s) requis sont atteints - par opposition à la mise en place de "hards-stops", que le courtier peut voir et pointer...

Un hard-stop d'un certain degré est essentiel imo (pour le scénario "juste au cas où"...) mais même cela ne vous sauvera pas si vous avez un courtier complètement sans scrupules - comme Fxopen: -.

https://www.forex-tsd.com/forum/commercial-talks/9512-complaints-and-brokers-scam#comment_273270

 

une question difficile !

Chers tous

Je suis nouveau pour la programmation sur MT4. J'ai fini un code EA mais quand je l'ai testé, il y a eu quelques erreurs L'une d'entre elles est que mon code veut ouvrir 4 ordres presque en même temps et au même prix, mais mon EA ne peut parfois les ouvrir tous ensemble mais les autres situations sont que les ordres ont été ouverts un par un et à des prix différents.

Pensez-vous que je puisse résoudre ce problème en utilisant la méthode suivante

if(IsTradeAllowed()==false) Sleep(10000) ;

Pouvez-vous m'aider à résoudre ce problème ?

Merci d'avance !

 

C'est ma fonction pour fermer toutes les positions. Je pense que c'est très simple. Mais l'EA prend toujours beaucoup de temps pour fermer toutes les positions, ce qui signifie que le prix de fermeture peut varier.

Pouvez-vous m'aider à résoudre ce problème ?

Merci d'avance !

void close_all_position_now(int total_order)

{

int ticket=0 ;

double volume=0, prix=0 ;

for(int i=0;i<total_order;i++)

{

si(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)

pause ;

// OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;

si (OrderMagicNumber()==magic_number && OrderType()==0)

{

ticket=OrderTicket() ;

volume=OrderLots() ;

prix=Enchère ;

OrderClose(ticket,volume,price,slippage,CLR_NONE) ;

}

else if (OrderMagicNumber()==magic_number && OrderType()==1)

{

ticket=OrderTicket() ;

volume=OrderLots() ;

prix=Ask ;

OrderClose(ticket,volume,price, slippage,CLR_NONE) ;

}

else if(OrderMagicNumber()==magic_number && OrderType()>=2)

{

ticket=OrderTicket() ;

OrderDelete(ticket) ;

}

}

}

 
ys16:
... mais l'EA prend toujours beaucoup de temps pour fermer toutes les positions ce qui signifie que le prix de fermeture peut varier. ...}

Il n'y a que deux façons de fermer plusieurs positions au même prix :

1) Elles ont le même TP (ou SL).

2) Ouvrir une position opposée avec une taille correspondant au nombre total de lots que vous voulez fermer. Plus tard, vous pourrez faire quelques CloseBy().

Ouvrir plusieurs positions au même prix est le même problème : ou vous utilisez des pendants, ou vous ouvrez seulement une position du total des lots, et vous gérez éventuellement des fermetures partielles.

 
Michel:
Il n'y a que deux façons de fermer plusieurs positions au même prix :

1) Ils ont le même TP (ou SL).

2) Ouvrez une position opposée avec une taille correspondant au total des lots que vous voulez fermer. Plus tard, vous pourrez faire des CloseBy().

Ouvrir plusieurs positions au même prix est le même problème : soit vous utilisez des pendants, soit vous n'ouvrez qu'une seule position sur le total des lots, et vous gérez éventuellement des clôtures partielles.

Cher Michel,

Je vous remercie beaucoup. Qu'en est-il du coût ? Dois-je payer pour le spread des positions opposées ?

Quelle est la raison pour laquelle l'EA ne peut pas fermer toutes les positions dans un temps très court ? Est-ce parce que les ordres de fermeture ont besoin de temps pour être exécutés ?

Parfois, les 3 positions peuvent être fermées après un changement de prix, mais parfois seule une position peut être fermée.

Avez-vous des ressources liées à la programmation MQL4? Je ne connaissais pas l'échelle de temps pour exécuter l'EA.

Je connais bien la programmation en C car je suis ingénieur, mais mon EA ne peut pas exécuter complètement ce que j'ai programmé.

Qu'en est-il de

OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;

if(OrderMagicNumber()==magic_number && OrderType()==OP_BUY)

Pensez-vous que ce type de fonction prend beaucoup de temps pour s'exécuter, ce qui est plus long que chaque cycle de l'EA.

 
ys16:
Cher Michel,

Merci beaucoup. Qu'en est-il du coût ? Dois-je payer pour le spread des positions opposées ?

Quelle est la raison pour laquelle l'EA ne peut pas fermer toutes les positions dans un délai très court ? Est-ce parce que les ordres de fermeture ont besoin d'un certain temps pour être exécutés ?

Parfois, les 3 positions peuvent être fermées après un changement de prix, mais parfois seule une position peut être fermée.

Avez-vous des ressources liées à la programmation MQL4 ? Je ne connaissais pas l'échelle de temps pour exécuter l'EA.

Je connais bien la programmation en C car je suis ingénieur, mais mon EA ne peut pas exécuter complètement ce que j'ai programmé.

Qu'en est-il de

OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;

if(OrderMagicNumber()==magic_number && OrderType()==OP_BUY)

Pensez-vous que ce type de fonction prend beaucoup de temps pour s'exécuter, ce qui est plus long que chaque cycle de l'EA ?

De nombreux courtiers autorisent une "couverture complète", ce qui signifie que la marge utilisée est calculée sur la différence entre les positions longues et les positions courtes. Par conséquent, il n'y a pas de marge utilisée pour une position entièrement couverte, et vous pouvez fermer les deux (l'une par l'autre) sans spread supplémentaire. Vous ne dépensez donc qu'un seul spread si vous fermez une position normalement ou en ouvrant une position opposée.

En ce qui concerne le temps, le temps d'exécution du code est très rapide et n'a rien à voir avec le temps du dealing desk du courtier.

 

expert sur le graphique hors ligne

Bonjour,

J'essaie d'utiliser un EA sur un graphique hors ligne (par exemple comme celui créé par period_converter). Ils ne reçoivent pas de ticks ce qui nécessite d'utiliser la boucle while() à l'intérieur. Cependant, après quelques minutes, le graphique hors ligne affiche "Waiting for update" et n'est plus mis à jour. Je soupçonne qu'il s'agit d'une sorte de blocage, car lorsque j'ouvre un autre graphique hors ligne, il est mis à jour correctement, et lorsque je le ferme, le graphique original est OK pendant un certain temps jusqu'au prochain blocage "Waiting for update".

Est-ce que je fais quelque chose de mal ou est-ce un problème de MT4 ?