Désolé, mais c'est définitivement dans les Annales. L'ignorance de la langue anglaise n'est pas une excuse.
Je ne sais pas quel est le spread de l'EURUSD sur le micro, honnêtement. Vous êtes probablement banni de ce forum. Ces salauds pensent toujours à quelque chose pour vous empêcher d'entrer.
Bonjour, s'il vous plaît, aidez-nous sur un point, je crois élémentaire.
int start() { OrderSend(Symbol(),OP_BUY,1,Ask,2,0,0) ; Alert(GetLastError()) ; return ; }
Le script ouvre un ordre au marché et tout est OK. Mais si je fixe une valeur de SL ou de TP, je reçois l'erreur "Wrong Stop".
int start() { OrderSend(Symbol(),OP_BUY,1,Ask,2,Bid-50*Point,Bid+50*Point) ; Alert(GetLastError()) ; return ; }
Ce code ne fonctionne plus. Qu'est-ce qu'il y a ? Je n'arrive pas à comprendre...
int start() { OrderSend(Symbol(),OP_BUY,1,Ask,2,1.31845,1.40000) ; Alert(GetLastError()) ; return ; }
Et cela ne fonctionne pas même si j'entre des valeurs numériques de stop et de profit. La distance minimale entre l'ordre et l'ordre stop est acceptable.
Chers professionnels ! J'ai une question. j'ai un EA, il trade selon plusieurs critères, comment faire pour qu'il modifie les ordres séparément ? par exemple, j'ai ouvert deux ordres d'achat par des signaux différents, un niveau de breakeven est de 90pp avec des incréments de 40pp, un autre est de 50pp avec des incréments de 50pp. je n'ai pas pu le faire. Comme je l'ai déjà essayé, j'ai vu combien de signaux j'ai obtenu, et je ne sais pas comment les utiliser. Merci d'avance !
Chers professionnels ! J'ai une question. j'ai un EA, il trade selon plusieurs critères, comment faire pour qu'il modifie les ordres séparément ? par exemple, j'ai ouvert deux ordres d'achat par des signaux différents, un niveau de breakeven est de 90pp avec des incréments de 40pp, un autre est de 50pp avec des incréments de 50pp. je n'ai pas pu le faire. Comme je l'ai déjà essayé, j'ai vu combien de signaux j'ai obtenu, et je ne sais pas comment les utiliser. j'ai déjà essayé et je n'ai aucune idée de comment l'utiliser.
-Il est possible d'ouvrir des trades par différents signaux avec différents numéros Magic.
-Il est possible de mettre des "marques" (par exemple, le même niveau de chalutage) dans le champ de commentaire lors de l'ouverture des transactions et de l'analyser ensuite
sans voir le code de votre question, je ne comprends pas très bien ce que vous voulez faire exactement séparément
for( int c=1 ; c<=OrdersTotal() ; c++) // Boucle d'ordres { OrderSelect(c-1,SELECT_BY_POS) ; // S'il y en a un autre // Analyse des ordres : if(OrderMagicNumber()<1000)
for(c=1 ; c<=OrdersTotal() ; c++) // Boucle d'ordres { OrderSelect(c-1,SELECT_BY_POS) ; // S'il y en a un autre // Analyse des ordres : if (OrderMagicNumber()>1000) if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) ) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ; return ; } if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ; return ; } si (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point)) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ; return ; } si (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ; return ; } return ; }
//-------------------------------------------------------------------- // Valeurs des ordres RefreshRates() ; // Rafraîchir les données Min_Lot=MarketInfo(Symb,MODE_MINLOT) ; // Min. lots Free =AccountFreeMargin() ; // Fonds libres One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Valeur d'un lot Step =MarketInfo(Symb,MODE_LOTSTEP) ; // Taille de changement d'étape
if (Lots > 0) // Si des lots sont définis, alors Lts =Lots ; // travaillez avec eux else // % de fonds gratuits Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// Pour ouvrir
if(Lts < Min_Lot) Lts=Min_Lot ; // Pas moins que le minimum if(Lts*One_Lot > Free) // Beaucoup plus cher que gratuit. { Alert(" Not enough money ", Lts," Lots") ; return ; // Exit start() } //--------------------------------------------------------------- 8 -- // Ouverture d'ordres
{ if (Total<2 && Opn_B==true && B==false) { // critère d'ouverture d'un ordre d'achat. Acheter RefreshRates() ; // Mise à jour des données SL=Bid - New_Stop(StopLoss)*Point ; // Calcul du SL ouvert. TP=Bid + New_Stop(TakeProfit)*Point ; // Calcul du TP ouvert. Alert("Tentative d'ouverture d'un achat. Attente de réponse...") ; Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,NULL,y);//Ouvrir l'achat if (Ticket > 0) // Cela a marché :) { Alert ("Opened Buy order ",Ticket) ; B=true ; S=false ; Y=OrderMagicNumber() ; R=1 ; return ; // Exit start() } if (Fun_Error(GetLastError())==1) // Gestion des erreurs continue ; // Réessayer // Quitter start() } if (Total<2 && Opn_S==true && S==false) // Ouvrir des ordres. none + { Sleep(10000) ; // ouvrir Vendre crit. Sell RefreshRates() ; // Mise à jour des données SL=Ask + New_Stop(StopLoss)*Point ; // Calcul du SL ouvert. TP=Ask - New_Stop(TakeProfit)*Point ; // Calcul du TP ouvert. Alert("Tentative d'ouverture de vente. Attente de réponse...") ; Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,NULL,y);//Ouvrir Sel if (Ticket > 0) // Cela a marché :) { Alert ("Sell order opened ",Ticket) ; S=true ; B=false ; Y=OrderMagicNumber() ; R=2 ; return ; // Sortie start() } if (Fun_Error(GetLastError())==1) // Gestion des erreurs continue ; // Réessayer // Quitter start() }
if (Total<2 && Opn_B1==true && B1==false) { RefreshRates() ; // Mettre à jour les données SL1=Bid - New_Stop1(StopLoss1)*Point ; // Calculer SL ouvert TP1=Bid + New_Stop1(TakeProfit1)*Point ; // Calcul du TP ouvert. Alert("Attempting to open Buy. Waiting for reply...") ; Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL1,TP1,NULL,x);//Ouverture de l'achat if (Ticket > 0) // Cela a marché :) { Alert ("Opened Buy order ",Ticket) ; B1=true ; S1=false ; X=OrderMagicNumber() ; Z=3 ; return ; // Exit start() } if (Fun_Error(GetLastError())==1) // Gestion des erreurs continue ; // Réessayer // Quitter start() } if (Total<2 && Opn_S1==true && S1==false) // Ouvrir des ordres. none + { Sleep(10000) ; // ouvrir Vendre crit. Sell RefreshRates() ; // Mise à jour des données SL1=Ask + New_Stop1(StopLoss1)*Point ; // Calcul du SL ouvert. TP1=Ask - New_Stop1(TakeProfit1)*Point ; // Calcul du TP ouvert. Alert("Tentative d'ouverture de vente. Attente de réponse...") ; Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL1,TP1,NULL,x);//Ouvrir le Sel if (Ticket > 0) // Cela a marché :) { Alert ("Sell order open ",Ticket) ; S1=true ; B1=false ; X=OrderMagicNumber() ; Z=4 ; return ; // Exit start() } if (Fun_Error(GetLastError())==1) // Traitement des erreurs continue ; // Réessayer // Exit start() } break ; // Exit while }
Joignez ces codes larges avec un fichier, ou au moins avec SRC (sélectionnable dans la barre d'édition supérieure), car il est fatigant de lire de telles lignes.
for( int c=1 ; c<=OrdersTotal() ; c++) // Boucle d'ordre { OrderSelect(c-1,SELECT_BY_POS) ; // S'il y a un suivant // Analyse des commandes : si(OrderMagicNumber()<1000) si(R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) ) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue) ; retour ; } si (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue) ; retour ; } Si (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point)) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue) ; retour ; } si (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue) ; retour ; } retour ; } //-------------------------------------------------------------------- // En principe, vous n'avez pas besoin d'écrire quoi que ce soit d'autre : il ne sera pas exécuté de toute façon.
for(c=1 ; c<=OrdersTotal() ; c++) // Boucle de commande
{ OrderSelect(c-1,SELECT_BY_POS) ; // S'il y a un suivant // Analyse des commandes : si (OrderMagicNumber()>1000) si (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) ) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ; retour ; }
si (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ; retour ; } si (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point)) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ; retour ; } si (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ; retour ; } retour ; // Mais "pour être sûr", il y a aussi une "photo test" ;) }
........ Rien d'autre ne compte .......
//
//-------------------------------------------------------------------- // Valeur de l'ordre
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Désolé, mais c'est définitivement dans les Annales. L'ignorance de la langue anglaise n'est pas une excuse.
Je ne sais pas quel est le spread de l'EURUSD sur le micro, honnêtement. Vous êtes probablement banni de ce forum. Ces salauds pensent toujours à quelque chose pour vous empêcher d'entrer.
Bonjour, s'il vous plaît, aidez-nous sur un point, je crois élémentaire.
int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,0,0) ;
Alert(GetLastError()) ;
return ;
}
Le script ouvre un ordre au marché et tout est OK. Mais si je fixe une valeur de SL ou de TP, je reçois l'erreur "Wrong Stop".
int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,Bid-50*Point,Bid+50*Point) ;
Alert(GetLastError()) ;
return ;
}
Ce code ne fonctionne plus. Qu'est-ce qu'il y a ? Je n'arrive pas à comprendre...
int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,1.31845,1.40000) ;
Alert(GetLastError()) ;
return ;
}
Et cela ne fonctionne pas même si j'entre des valeurs numériques de stop et de profit. La distance minimale entre l'ordre et l'ordre stop est acceptable.
Chers professionnels ! J'ai une question. j'ai un EA, il trade selon plusieurs critères, comment faire pour qu'il modifie les ordres séparément ? par exemple, j'ai ouvert deux ordres d'achat par des signaux différents, un niveau de breakeven est de 90pp avec des incréments de 40pp, un autre est de 50pp avec des incréments de 50pp. je n'ai pas pu le faire. Comme je l'ai déjà essayé, j'ai vu combien de signaux j'ai obtenu, et je ne sais pas comment les utiliser. Merci d'avance !
Chers professionnels ! J'ai une question. j'ai un EA, il trade selon plusieurs critères, comment faire pour qu'il modifie les ordres séparément ? par exemple, j'ai ouvert deux ordres d'achat par des signaux différents, un niveau de breakeven est de 90pp avec des incréments de 40pp, un autre est de 50pp avec des incréments de 50pp. je n'ai pas pu le faire. Comme je l'ai déjà essayé, j'ai vu combien de signaux j'ai obtenu, et je ne sais pas comment les utiliser. j'ai déjà essayé et je n'ai aucune idée de comment l'utiliser.
-Il est possible d'ouvrir des trades par différents signaux avec différents numéros Magic.
-Il est possible de mettre des "marques" (par exemple, le même niveau de chalutage) dans le champ de commentaire lors de l'ouverture des transactions et de l'analyser ensuite
sans voir le code de votre question, je ne comprends pas très bien ce que vous voulez faire exactement séparément
le code est approximativement le suivant :
for( int c=1 ; c<=OrdersTotal() ; c++) // Boucle d'ordres
{
OrderSelect(c-1,SELECT_BY_POS) ; // S'il y en a un autre
// Analyse des ordres :
if(OrderMagicNumber()<1000)
if (R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue) ;
return ;
}
si (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue) ;
return ;
}
Si (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue) ;
return ;
}
Si (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue) ;
return ;
}
retour ;
}
//--------------------------------------------------------------------
for(c=1 ; c<=OrdersTotal() ; c++) // Boucle d'ordres
{
OrderSelect(c-1,SELECT_BY_POS) ; // S'il y en a un autre
// Analyse des ordres :
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
return ;
}
if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
return ;
}
si (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
return ;
}
si (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
return ;
}
return ;
}
//--------------------------------------------------------------------
// Valeurs des ordres
RefreshRates() ; // Rafraîchir les données
Min_Lot=MarketInfo(Symb,MODE_MINLOT) ; // Min. lots
Free =AccountFreeMargin() ; // Fonds libres
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Valeur d'un lot
Step =MarketInfo(Symb,MODE_LOTSTEP) ; // Taille de changement d'étape
if (Lots > 0) // Si des lots sont définis, alors
Lts =Lots ; // travaillez avec eux
else // % de fonds gratuits
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// Pour ouvrir
if(Lts < Min_Lot) Lts=Min_Lot ; // Pas moins que le minimum
if(Lts*One_Lot > Free) // Beaucoup plus cher que gratuit.
{
Alert(" Not enough money ", Lts," Lots") ;
return ; // Exit start()
}
//--------------------------------------------------------------- 8 --
// Ouverture d'ordres
{
if (Total<2 && Opn_B==true && B==false)
{
// critère d'ouverture d'un ordre d'achat. Acheter
RefreshRates() ; // Mise à jour des données
SL=Bid - New_Stop(StopLoss)*Point ; // Calcul du SL ouvert.
TP=Bid + New_Stop(TakeProfit)*Point ; // Calcul du TP ouvert.
Alert("Tentative d'ouverture d'un achat. Attente de réponse...") ;
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,NULL,y);//Ouvrir l'achat
if (Ticket > 0) // Cela a marché :)
{
Alert ("Opened Buy order ",Ticket) ;
B=true ;
S=false ;
Y=OrderMagicNumber() ;
R=1 ;
return ; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Gestion des erreurs
continue ; // Réessayer
// Quitter start()
}
if (Total<2 && Opn_S==true && S==false) // Ouvrir des ordres. none +
{
Sleep(10000) ; // ouvrir Vendre crit. Sell
RefreshRates() ; // Mise à jour des données
SL=Ask + New_Stop(StopLoss)*Point ; // Calcul du SL ouvert.
TP=Ask - New_Stop(TakeProfit)*Point ; // Calcul du TP ouvert.
Alert("Tentative d'ouverture de vente. Attente de réponse...") ;
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,NULL,y);//Ouvrir Sel
if (Ticket > 0) // Cela a marché :)
{
Alert ("Sell order opened ",Ticket) ;
S=true ;
B=false ;
Y=OrderMagicNumber() ;
R=2 ;
return ; // Sortie start()
}
if (Fun_Error(GetLastError())==1) // Gestion des erreurs
continue ; // Réessayer
// Quitter start()
}
if (Total<2 && Opn_B1==true && B1==false)
{
RefreshRates() ; // Mettre à jour les données
SL1=Bid - New_Stop1(StopLoss1)*Point ; // Calculer SL ouvert
TP1=Bid + New_Stop1(TakeProfit1)*Point ; // Calcul du TP ouvert.
Alert("Attempting to open Buy. Waiting for reply...") ;
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL1,TP1,NULL,x);//Ouverture de l'achat
if (Ticket > 0) // Cela a marché :)
{
Alert ("Opened Buy order ",Ticket) ;
B1=true ;
S1=false ;
X=OrderMagicNumber() ;
Z=3 ;
return ; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Gestion des erreurs
continue ; // Réessayer
// Quitter start()
}
if (Total<2 && Opn_S1==true && S1==false) // Ouvrir des ordres. none +
{
Sleep(10000) ; // ouvrir Vendre crit. Sell
RefreshRates() ; // Mise à jour des données
SL1=Ask + New_Stop1(StopLoss1)*Point ; // Calcul du SL ouvert.
TP1=Ask - New_Stop1(TakeProfit1)*Point ; // Calcul du TP ouvert.
Alert("Tentative d'ouverture de vente. Attente de réponse...") ;
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL1,TP1,NULL,x);//Ouvrir le Sel
if (Ticket > 0) // Cela a marché :)
{
Alert ("Sell order open ",Ticket) ;
S1=true ;
B1=false ;
X=OrderMagicNumber() ;
Z=4 ;
return ; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Traitement des erreurs
continue ; // Réessayer
// Exit start()
}
break ; // Exit while
}
le code est quelque chose comme ceci :
le code est approximativement le suivant :
for( int c=1 ; c<=OrdersTotal() ; c++) // Boucle d'ordre
{
OrderSelect(c-1,SELECT_BY_POS) ; // S'il y a un suivant
// Analyse des commandes :
si(OrderMagicNumber()<1000)
si(R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue) ;
retour ;
}
si (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue) ;
retour ;
}
Si (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue) ;
retour ;
}
si (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue) ;
retour ;
}
retour ;
}
//--------------------------------------------------------------------
// En principe, vous n'avez pas besoin d'écrire quoi que ce soit d'autre : il ne sera pas exécuté de toute façon.
for(c=1 ; c<=OrdersTotal() ; c++) // Boucle de commande
{
OrderSelect(c-1,SELECT_BY_POS) ; // S'il y a un suivant
// Analyse des commandes :
si (OrderMagicNumber()>1000)
si (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
retour ;
}
si (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
retour ;
}
si (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
retour ;
}
si (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue) ;
retour ;
}
retour ; // Mais "pour être sûr", il y a aussi une "photo test" ;)
}
........ Rien d'autre ne compte .......
//
//--------------------------------------------------------------------
// Valeur de l'ordre