[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 340

 
Merci à tous. Il semble avoir travaillé à partir de rien.
 
smogsam >> :

Bonjour.

Comment puis-je savoir si le SL ou le TP est déclenché. Par exemple, si un ordre est clôturé le

SL ou TP, exécutez untel ou untel. Je n'ai pas trouvé cette fonction.

Il n'y a pas de fonctions standard, mais vous pouvez ajouter des signaux dans la fenêtre du terminal (son, fichier, courrier).

Si vous utilisez un EA, vous pouvez ajouter à la fois un signal et une alerte et ......

 
Et alors ? J'ai besoin d'un expert.
 

Une dernière question. Si(OrdersTotal()==0) ce... si le nombre d'ordres ouverts est égal à zéro... alors comment sera-t-il...si le nombre d'ordres ouverts POUR LE JOUR est de zéro.

N'y a-t-il pas quelque chose comme OrdersDayTotal ?

 
smogsam >> :
Et alors ? J'ai besoin d'être dans un expert.

Eh bien, comme quoi

"Si vous utilisez un EA, vous pouvez ajouter à la fois un signal et une alerte et ....."

"..." Ça peut aller jusqu'à l'arrêt du PC.

 
future >> :

Une dernière question. Si (OrdersTotal()==0) ce... si le nombre d'ordres ouverts est égal à zéro... Si le nombre d'ordres ouverts POUR LA JOURNEE est égal à zéro, que se passe-t-il ?

N'y a-t-il pas quelque chose comme OrdersDayTotal ?

Supposons qu'un ordre d'achat est ouvert, puis que nous clôturons un ordre d'achat sur un signal de vente, ou qu'un ordre d'achat est ouvert, puis que nous passons à l'échelle sur un signal d'achat.

Type de commande()

Voir l'aide

Référence MQL4 - Fonctions de trading - OrderType

OrderOpenTime( )
 

Apparemment, aucun des pros ne travaille avec Dd.

Peut-être que quelqu'un sait comment entrer en contact avec mamadu ? il est l'auteur de l'article,

sur lequel j'ai posé des questions partout sur Internet (en vain). C'est Dmitriy.

 
smogsam >> :

Bonjour.

Comment puis-je savoir si le SL ou le TP est déclenché. Par exemple, si un ordre est clôturé à

SL ou TP, exécutez ceci ou cela. Je n'ai pas trouvé cette fonction.

J'utilise le schéma suivant.

//Déterminer si la transaction précédente s'est terminée par un profit ou une perte.
//------------------------------------------------------------------------------------------------------------------------------------------------
si (OrderSelect(Tic_Verh,SELECT_BY_TICKET)==true)
{
if (OrderComment()=="[sl]")_SL[0]=-1;
if (OrderComment()=="[tp]")_SL[0]=1;
}
si (OrderSelect(Tic_Niz,SELECT_BY_TICKET)==true)
{
if (OrderComment()=="[sl]")_SL[0]=-1;
if (OrderComment()=="[tp]")_SL[0]=1;
}
Les variables de type INT sont marquées en rouge, elles contiennent les numéros des TIC lors de l'ouverture d'une position.

La variable _SL[0] est déclarée comme un tableau unidimensionnel d'un élément, c'est-à-dire int _SL[1].

 

J'ouvre un ordre d'achat à un moment donné, si le prix dévie de moins de 10 pips, un ordre de vente doit être ouvert.
Le premier ordre s'ouvre à l'achat et lorsque le prix dévie vers le niveau bas, l'ordre de vente n'est pas ouvert. Si le marché monte de 10 pips, la fonction de fermeture de l'ordre n'est pas lancée.
voici une partie du code


.......................
.......................


bool opb1=true ;
bool ops1=true ;
int start()
{

int Cur_Hour=Hour() ; // Heure du serveur en heures
double Time_Cls=9.25 ;
double Cur_Min=Minute() ;
double Cur_time=Cur_Hour + Cur_Min*0.01 ; // Heure actuelle


if (Cur_time>=Time_Cls)

{
if (opb1==true){

double bid =MarketInfo("EURUSD",MODE_BID) ;
double ask =MarketInfo("EURUSD",MODE_ASK) ;
double point =MarketInfo("EURUSD",MODE_POINT) ;
double bid1 =bid+50*Point ;
double ask1=ask-50*Point ;
double bid2=bid ;
double ask2=ask-100*Point ;


OrderSend(Symbol(),OP_BUY,0.1,Ask,50,Bid-400*Point,Bid+200*Point) ;
Alert (GetLastError()) ;

opb1=false;}

if(MarketInfo("EURUSD",MODE_BID)>= bid1)


{
Close_All(0) ; //clôture la fonction d'achat
return(0) ;
}
if(MarketInfo("EURUSD",MODE_ASK)<=ask1)

{
ask =MarketInfo("EURUSD",MODE_ASK) ; //
bid =MarketInfo("EURUSD",MODE_BID) ; //
point =MarketInfo("EURUSD",MODE_POINT);//
if (ops1==true){
OrderSend(Symbol(),OP_SELL,0.3,Bid,50,Ask+400*Point,Ask-200*Point) ;
Alert (GetLastError()) ;
ops1=false;}
if(MarketInfo("EURUSD",MODE_ASK)<=ask2)
{
Close_All(1);// fermer la fonction de vente
Close_All(0) ;
return(0) ;
}
ou peut-être que je règle mal la condition d'ouverture ?

 

J'ouvre un ordre d'achat à un moment donné, si le prix dévie de 10 pips plus bas, un ordre de vente doit être ouvert.
Le premier ordre s'ouvre à l'achat et lorsque le prix dévie vers le niveau bas, l'ordre de vente n'est pas ouvert. Si le marché monte de 10 pips, la fonction de fermeture de l'ordre n'est pas lancée.
voici une partie du code


.......................
.......................


bool opb1=true ;
bool ops1=true ;
int start()
{

int Cur_Hour=Hour() ; // Heure du serveur en heures
double Time_Cls=9.25 ;
double Cur_Min=Minute() ;
double Cur_time=Cur_Hour + Cur_Min*0.01 ; // Heure actuelle


if (Cur_time>=Time_Cls)

{
if (opb1==true){

double bid =MarketInfo("EURUSD",MODE_BID) ;
double ask =MarketInfo("EURUSD",MODE_ASK) ;
double point =MarketInfo("EURUSD",MODE_POINT) ;
double bid1 =bid+50*Point ;
double ask1=ask-50*Point ;
double bid2=bid ;
double ask2=ask-100*Point ;


OrderSend(Symbol(),OP_BUY,0.1,Ask,50,Bid-400*Point,Bid+200*Point) ;
Alert (GetLastError()) ;

opb1=false;}

if(MarketInfo("EURUSD",MODE_BID)>= bid1)


{
Close_All(0) ; //clôture la fonction d'achat
return(0) ;
}
if(MarketInfo("EURUSD",MODE_ASK)<=ask1)

{
ask =MarketInfo("EURUSD",MODE_ASK) ; //
bid =MarketInfo("EURUSD",MODE_BID) ; //
point =MarketInfo("EURUSD",MODE_POINT);//
if (ops1==true){
OrderSend(Symbol(),OP_SELL,0.3,Bid,50,Ask+400*Point,Ask-200*Point) ;
Alert (GetLastError()) ;
ops1=false;}
if(MarketInfo("EURUSD",MODE_ASK)<=ask2)
{
Close_All(1);// fermer la fonction de vente
Close_All(0) ;
return(0) ;
}
ou peut-être que je règle mal la condition d'ouverture ?