[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 892
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
Bonjour ! Je n'arrive pas à comprendre ce qui ne va pas avec ? ???. Ne modifie pas l'ordre de marché
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits) ; // calculer le stop pour les positions d'achat//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits) ; // calculer le profit pour les positions d'achat//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) // calcul du stop pour les positions de vente//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits) ;
//================================================== ==================//
int total=OrdersTotal() ;
int n=0 ;
for (int i=total-1 ; i>=0 ; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++ ;
}}
if ( total == 1 )
{
for (int k=total-1 ; k>=0 ; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET)
Alert("l'ordre est", k) ;
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue) ;
Alert("error", GetLastError()) ;
}}}}
return(0);}
QUEL EST LE PROBLÈME ? AIDEZ-NOUS S'IL VOUS PLAÎT ........... ?????
Toute question d'un nouvel arrivant, afin de ne pas encombrer le forum. Ne laissez pas les professionnels passer à côté de vous. Pas sans toi.
Toute question de débutant, afin de ne pas encombrer le forum. Ne laissez pas les professionnels passer à côté de vous. C'est nulle part sans toi.
Désolé, je ne comprends pas quel est le problème. Je pense que je n'ai jamais rempli la condition while, parce que si je mets Comment à l'intérieur de la boucle, cela ne se reflète pas. De plus, au-dessus de la boucle, j'ai la variable B égale à la valeur normale attendue, comme 0,0011, mais si je la multiplie par Point, cela donne 0 !!!!.
int start()
{
double A,B,C ;A=Close[1];B=Close[Bars] ;
C=A-B ;Comment("Valeur de la différencei ", B*Point) ;
while (B*Point >Swing)
{ Comment("Valeur de la différence ", B) ;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red) ;
Alert("Value ", B) ;
Comment("Value differencei ",B) ;
//----
//----
return(0) ;
}
Je ne suis pas sûr, mais la bonne façon de faire serait de
int start()
{
double A,B,C ;A=Close[1];B=Close[bars] ; Que signifie Close[bars] ; ? ??? Fermer [séquence de numéros de barre à l'envers, sans courant]
clôture de la bougie précédente [1]. clôture de la bougie précédente [2].
B=(A-B)*Point ; Comment("Valeur de la différence ", B) ; B sera égal à la clôture de la bougie précédente moins la clôture de la bougie que vous avez définie dans B= close [....].]
while (B > B) et très probablement pas while a si la condition
{ Comment("Value Difference ", B) ;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green) ;
}
while (0-B<Round) et très probablement pas while une condition if
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red) ;
}
Alert("Valeur ",B) ;
Comment("Valeur differencei ",B) ;
//----
//----
return(0) ;
}
Peut être faux.....
Il y a beaucoup d'erreurs dans votre code ...... que voulez-vous faire quel résultat ??? Il ne devrait pas y avoir de lettres russes...
Vous ne pouvez pas avoir C dans la feuille de calcul parce que C a un nombre en mémoire comme 1.23456.
0-B serait un nombre négatif....
et il est préférable de calculer le bénéfice et la perte comme suit
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits) ; // calculer le stop pour les positions d'achat//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits) ; // calculer le profit pour les positions d'achat//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) // calculer le stop pour les positions de vente//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits) ; // calculer le profit pour les positions de vente///
Désolé, je ne comprends pas quel est le problème. Je pense que je n'ai jamais rempli la condition while, parce que si je mets Comment à l'intérieur de la boucle, cela ne se reflète pas. De plus, au-dessus de la boucle, j'ai la variable B égale à la valeur normale attendue, comme 0,0011, mais si je la multiplie par Point, cela donne 0 !!!!.
int start()
{
double A,B,C ;A=Close[1];B=Close[Bars] ;
C=A-B ;Comment("Valeur de la différencei ", B*Point) ;
while (B*Point >Swing)
{ Comment("Valeur de la différence ", B) ;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red) ;
Alert("Value ", B) ;
Comment("Value differencei ",B) ;
//----
//----
return(0) ;
}
Et vous prétendez qu'il faut multiplier la différence entre A et B par Point ?
Les valeurs de A et B sont des nombres réels. En multipliant leur différence par Point, vous augmentez encore le nombre de décimales. Si vous avez besoin d'obtenir un nombre entier pour le comparer à un nombre entier "étalé", vous devez plutôt diviser par Point.