Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
problème avec la position fermée
......
double cena=0 ;
statique int isCrossed = 0 ;
isCrossed = Crossed (k,d) ;
if(OrderSelect(ticket, SELECT_BY_POS))
{
c=OrderOpenPrice() ;
retour(0) ;
}
si (isCrossed>0)
{
cena=((c-Ask)*10000);
retour(0) ;
}
total = OrdersTotal() ;
si(total < 1)
{
si(isCrossed == 1)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 1000, cena,
cena , "EMA_CROSS", 12345, 0, Green) ;
}
....
if(isCrossed == 2)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 1000, cena,
cena, "EMA_CROSS", 12345, 0, Red) ;
......
en général l'EA ferme la position quand l'EMA traverse et en même temps ouvre une autre position.
les positions sont ouvertes mais elles ne veulent pas se fermer ;/
merci de m'aider
Est-il possible de fermer une position et d'en ouvrir une nouvelle au même tick ?
(...)
if(OrdersTotal()!=0) {
(...)
OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }
if(OrdersTotal()==0) {
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green); }
(...)
Dans cet exemple de code, la position courte sera fermée au premier tick, mais la position longue ne sera pas ouverte instantanément. Il faut un autre tick pour ouvrir la position longue.
Merci d'avance :-)
Oui, c'est possible. Il suffit de mettre la fonction RefreshRates() entre les opérateurs.
...... aidez-nous s'il vous plaît
On dirait bien : Je m'appelle Pietra. Quel est mon deuxième nom ?
C'est impossible de vous aider sans le code complet. Désolé.
Besoin d'aide pour le codage
Quelqu'un peut m'aider à coder MT4 pour connaître les prix d'ouverture maximum et minimum pour l'EA ? Il y a plusieurs ouvertures par un EA.
J'ai trouvé un code comme celui-ci, mais c'est pour connaître la première/dernière ouverture de transaction.
double GetLastBuyPrice(int Magic)
{
int total=OrdersTotal()-1 ;
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ;
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
return(OrderOpenPrice()) ;
}
}
return(10000) ;
}
Comment coder pour connaître l'ouverture de transaction la plus haute/la plus basse ?
Code
Quelqu'un peut m'aider sur le codage MT4 pour connaître les prix maximum et minimum d'ouverture pour l'EA ? Il y a quelques ouvertures par un EA.
J'ai trouvé un code comme celui-ci, mais c'est pour connaître la première/dernière ouverture de transaction.
Double opens[1000] = {0} ;
double maxopen = 0 ;
double minopen = 1000000 ;
// double GetLastBuyPrice(int Magic)
{
int total=OrdersTotal()-1 ;
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ;
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
opens[cnt] = OrderOpenPrice() ;
}
}
for ( cnt = 0 ; cnt <= total ; cnt ++ )
{
si ( opens[cnt] > maxopen ) maxopen = opens[cnt] ;
si ( opens[cnt] < minopen ) minopen = opens[cnt] ;
}
}
Comment coder pour connaître l'ouverture de transaction la plus élevée/la plus basse ?salut,
modifiez le code comme ci-dessus,
ce n'est pas une procédure à appeler depuis un autre ...,
mettez-la où vous voulez dans votre code EA.
OTR
Besoin d'aide pour créer un code permettant d'ouvrir plus d'une commande
Je n'ai pas réussi à ajouter un code pour ouvrir un deuxième ordre.
J'essaie d'ouvrir 2 ordres basés sur le même signal avec des niveaux de TP différents.
Voici mon code pour ouvrir le premier ordre :
toute aide est appréciée.
if(SlowSell<0 && FastSell<0 && PrevFastSell==0)
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red) ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre SellStop ouvert : ",OrderOpenPrice()) ;
}
else Print("Erreur lors de l'ouverture de l'ordre SellStop : ",GetLastError()) ;
retour(0) ;
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red) ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre SellStop ouvert : ",OrderOpenPrice()) ;
}
else Print("Erreur lors de l'ouverture de l'ordre SellStop : ",GetLastError()) ;
return(0) ;
}
Bonjour
J'ai besoin d'une aide simple pour le codage,
1) Couvrir une transaction à un certain nombre de pips.
2) Puis désactiver/suspendre tout autre trade...........
Je dois m'assurer qu'il n'y aura pas de nouvelle couverture car je fermerai manuellement la transaction couverte.
Je n'ai pas réussi à ajouter le code permettant d'ouvrir une deuxième commande.
J'essaie d'ouvrir 2 ordres basés sur le même signal avec des niveaux de TP différents.
Voici mon code pour ouvrir le premier ordre :
toute aide est appréciée.
if(SlowSell<0 && FastSell<0 && PrevFastSell==0)
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red) ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre SellStop ouvert : ",OrderOpenPrice()) ;
}
else Print("Erreur lors de l'ouverture de l'ordre SellStop : ",GetLastError()) ;
retour(0) ;
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red) ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre SellStop ouvert : ",OrderOpenPrice()) ;
}
else Print("Erreur lors de l'ouverture de l'ordre SellStop : ",GetLastError()) ;
retour(0) ;
}Remplacer le premier
return(0) ;
à
RefreshRates() ;