J'ai demandé le code qui trouve le prix ouvert le plus élevé. Est-ce le cas ? En présence d'un slippage ?
Que pensez-vous que cela signifie ?
Je vous ai demandé de montrer le code qui teste si l'offre est 10 pips au-dessus de la dernière ouverture. Pourquoi ouvrir une vente quand le marché est 10 points au-dessus de n'importe quel ordre (pas le plus haut).
et aussi vérifier cette condition que j'ai ajoutée si j'ai raison..............
double highest_open_price=0;
int highest_Ticket=-1;
for(int pos=OrdersTotal()-1; pos>=0; pos--)
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
&& OrderMagicNumber()==0// my magic number
&& OrderSymbol()==Symbol() // and my pair.
&& OrderOpenPrice()>=highest_open_price)
{
highest_open_price=OrderOpenPrice();
highest_Ticket=OrderTicket();
}
RefreshRates();
if (Bid>=highest_open_price+10*Point)
highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);
}
S'il vous plaît, ne postez pas de code avec un } errant
cela prête à confusion
Essayez votre EA dans le testeur de stratégie et vous verrez si vous avez raison ou non.
maintenant regardez comment j'ai calculé mes pips depuis que le haut est obtenu, j'ai raison ..........
double highest_open_price=0;
int highest_Ticket=-1;
for(int pos=OrdersTotal()-1; pos>=0; pos--)
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
&& OrderMagicNumber()==0// my magic number
&& OrderSymbol()==Symbol() // and my pair.
&& OrderOpenPrice()>=highest_open_price)
{
highest_open_price=OrderOpenPrice();
highest_Ticket=OrderTicket();
}
int look_pips=0;
for(pos=OrdersTotal()-1; pos>=0; pos--)
highest_open_price=MathAbs(High[pos]-Low[pos])/Point; //pips levels of the barif (Bid>=highest_open_price && look_pips >=my_pips)
Print("The last price movement more than ",my_pips);
RefreshRates();
highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);
rappelez-vous que mes pips sont ajoutés dans extern double my_pips =10 ; et que je n'ai pas non plus calculé pour correspondre aux courtiers à 5 chiffres, je le ferai plus tard.
Je n'ai aucune idée de ce que vous essayez de faire.
Vous obtenez la valeur dehighest_open_price dans la première boucle.
Ensuite, vous parcourez à nouveau les ordres et vous lui donnez une valeur différente.
pourquoi ?????
Je suis désolé, c'est une erreur, j'étais sur le point de le réécrire avant de voir votre post. J'ai juste travaillé dessus pour le changer en valeur tick......
maintenant j'utilise la valeur tick pour calculer les pips.....
double highest_open_price=0;
int highest_Ticket=-1;
for(int pos=OrdersTotal()-1; pos>=0; pos--)
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
&& OrderMagicNumber()==0// my magic number
&& OrderSymbol()==Symbol() // and my pair.
&& OrderOpenPrice()>=highest_open_price)
{
highest_open_price=OrderOpenPrice();
highest_Ticket=OrderTicket();
}
double tickvalue = (MarketInfo(Symbol(),MODE_TICKVALUE));
if(Digits == 5 || Digits == 3){
tickvalue = tickvalue*10;
}
if (Bid>=highest_open_price + tickvalue*10)
Print("The last price movement more than ",tickvalue);
RefreshRates();
highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);
now to add my comment on this tick value. one thing i know is -----10pips is a movement of price upward or down to definite number point stored while 10tick
is count of moving price without storing number
else 10tick can complete in 1 candle far below pips. while 10pips can complete in more than 20bars/candle or even 1bar/candle.
conclusion i dont think i got it right?
please point me through
in addition double MYPIP= MarketInfo(Symbol(), MODE_DIGITS); can it work on this case to get pip
maintenant j'ai joint le code ensemble le plus haut est obtenu les pips sont obtenus....
J'ai fait un back-test mais le résultat ne correspondait pas au code. Pourquoi ?
je dois encore ajouter au code ou est-ce parce que le marché a été fermé...merci
ou faut-il considérer le double PipDecimal = (MarketInfo(Symbol(),MODE_DIGITS)) ;.
double highest_open_price=0;
int highest_Ticket=-1;
for(int pos=OrdersTotal()-1; pos>=0; pos--)
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
&& OrderMagicNumber()==0// my magic number
&& OrderSymbol()==Symbol() // and my pair.
&& OrderOpenPrice()>=highest_open_price)
{
highest_open_price=OrderOpenPrice();
highest_Ticket=OrderTicket();
}
double PipDecimal=Point;
if(Digits == 5 || Digits == 3)
PipDecimal = PipDecimal*10;
if (Bid>=highest_open_price + PipDecimal *10)
Print("The last price movement more than ",PipDecimal);
RefreshRates();
highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);
if (Bid>=highest_open_price + PipDecimal *10)
{
Print("The last price movement more than ",PipDecimal);
RefreshRates();
highest_Ticket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",0,0,Red);
}
Sans les accolades, une nouvelle transaction sera ouverte à chaque tic-tac.
GumRai: Sans les accolades, une nouvelle transaction sera ouverte à chaque tick.
c'est génial ! ça a bien marché... parfaitement repéré.
mais le seul problème est que pendant le deuxième ordre, il continue à ouvrir plusieurs ordres après que le premier ordre ait été ouvert avec succès...
s'il vous plaît, y a-t-il quelque chose que j'ai mal fait ?
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.
Oui, je veux 10 pips.
et aussi vérifier cette condition que j'ai ajoutée si j'ai raison..............
S'il vous plaît, ne postez pas de code avec un } errant
cela prête à confusion
Essayez votre EA dans le testeur de stratégie et vous verrez si vous avez raison ou non.
} -- WHRoeder l'a signalé et je l'ai corrigé, merci de l'avoir noté.
Je pense que WHRoeder: a raison sur le point et les pips, maintenant que le haut est atteint, je pense que les pips devraient être considérés.
maintenant regardez comment j'ai calculé mes pips depuis que le haut est obtenu, j'ai raison ..........
rappelez-vous que mes pips sont ajoutés dans extern double my_pips =10 ; et que je n'ai pas non plus calculé pour correspondre aux courtiers à 5 chiffres, je le ferai plus tard.Je n'ai aucune idée de ce que vous essayez de faire.
Vous obtenez la valeur dehighest_open_price dans la première boucle.
Ensuite, vous parcourez à nouveau les commandes en boucle et vous lui donnez une valeur différente.
pourquoi ?????
Je n'ai aucune idée de ce que vous essayez de faire.
Vous obtenez la valeur dehighest_open_price dans la première boucle.
Ensuite, vous parcourez à nouveau les ordres et vous lui donnez une valeur différente.
pourquoi ?????
Je suis désolé, c'est une erreur, j'étais sur le point de le réécrire avant de voir votre post. J'ai juste travaillé dessus pour le changer en valeur tick......
maintenant j'utilise la valeur tick pour calculer les pips.....
Merci pour vos corrections, j'apprécie.
maintenant j'ai joint le code ensemble le plus haut est obtenu les pips sont obtenus....
J'ai fait un back-test mais le résultat ne correspondait pas au code. Pourquoi ?
je dois encore ajouter au code ou est-ce parce que le marché a été fermé...merci
ou faut-il considérer le double PipDecimal = (MarketInfo(Symbol(),MODE_DIGITS)) ;.
Sans les accolades, une nouvelle transaction sera ouverte à chaque tick.
c'est génial ! ça a bien marché... parfaitement repéré.
mais le seul problème est que pendant le deuxième ordre, il continue à ouvrir plusieurs ordres après que le premier ordre ait été ouvert avec succès...
s'il vous plaît, y a-t-il quelque chose que j'ai mal fait ?