[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 17

 

Bonjour ! La question est la suivante : comment savoir si l'objet est supprimé manuellement si nous ne connaissons que la description de l'objet. Par exemple, un objet dont le nom est inconnu, le take profit est attaché à l'objet, si l'objet est supprimé, le take profit est supprimé, et nous ne connaissons pas le nom de l'objet. ....

Y a-t-il un moyen de changer le nom de l'objet ? ????

 

Je veux qu'il ouvre un ordre quand le signal arrive, quand le suivant arrive, et ainsi de suite, qu'il y ait des ordres ouverts ou non.

S'il vous plaît, dites-moi ce qui ne va pas !

 m0=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,0);
    m1=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,1);
    lwma=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,0);
    lwma1=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,1);
    sar=iSAR(NULL,0,step,maximum,0);
    sar1=iSAR(NULL,0,step,maximum,1);
//+------------------------------------------------------------------+
   
      Lots=NormalizeDouble(AccountFreeMargin(),0)*MaxRisk/1000;
     if(Lots<0.01) 
    return(Lot);
//--------------------------------------------------------------------
    balans=NormalizeDouble(AccountFreeMargin(),2);
//--------------------------------------------------------------------
   total=OrdersTotal();
   if(OrdersTotal()>=0)
     {
   x=1;
   x++;  
//==========================Медленный==================================
   if( m1>lwma1 && m0<lwma && balans>0 && total<x)
     {
     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Ask-tp*Point,"0",Magik,0,Red);
     }
   if(ticket>0)
     {
     Alert("Продажа №",ticket,"\n",Symbol());
     return(0);
     }
//-------------------------------------------------------------------- 
   if ( m1<lwma1 && m0>lwma && balans>0 && total<x)
    {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl*Point,Bid+tp*Point,"0",Magik,0,Blue);
     }
  if(ticket>0)
     {
      Alert("Покупка № ",ticket,"\n",Symbol());
      return(0);  
     }
//========================Быстрый=====================================
   
    if(sar1<Bid && sar>Ask && balans>0 && total<x)
      {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl1*Point,Ask-tp1*Point,"0",Magik1,0,Red); return;
      }
    if(ticket>0)
      {
      Alert("Продажа №",ticket,"\n",Symbol());
       return(0);
      }
//---------------------------------------------------------------------
  if(sar1>Ask && sar<Bid && balans>0 && total<x)
      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl1*Point,Bid+tp1*Point,"0",Magik1,0,Blue);
      }
   if(ticket>0)
     {
         Alert("Покупка №",ticket,"\n",Symbol());
         return(0);
        }
       }
 

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav") ; flagg=1 ; flag=0 ; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav") ; flag=1 ; flagg=0 ; }

Imprimer(flag,flagg) ;

Ma_1 - court
Ma_2 - long

lorsque Ma_1>Ma_2 émet un bip news.wav sans s'arrêter, et imprime 0 1 (i.e. flag=0 flagg=1)

mais comment se peut-il que lorsque flagg=1, la condition (Ma_1>Ma_2 && flagg==0) soit remplie et que {PlaySound("news.wav") passe ? ???

 
Bonjour à tous, J'ai besoin de refaire l'EA pour fermer toutes les positions après un certain pourcentage du montant initial du montant requit, par exemple, si aucun ordre n'est ouvert, par exemple, le requitty de 1000 et le % du requitty est fixé à 5%, donc il ferme toutes les positions avec requitty 1050, j'ai fait l'EA a enregistré une variable globale et qu'il avait cette valeur pour compter et fermer les positions mais l'EA ne veut pas fermer,Je l'ai fait ainsi, le solde augmente et je dois fermer certaines positions à 5% de 'Equity' mais ce n'est pas 1050 et parfois je dois attendre un peu plus, ou le prix change de direction et j'obtiens une perte au lieu d'un profit, s'il vous plaît aidez qui sait et a fait face à des changements globaux !! ! Merci beaucoup pour la réponse.
Dossiers :
 
Bonsoir ! Dites-moi si je comprends bien que dans
iStochastique
mode
Est-ce la ligne K ou D à laquelle je fais référence ? De plus, 0 est K et 1 est D ?
 

Et regardez une variante comme celle-ci, sans variables globales.

if(Profit>AccountEquity( )*koefitsientudaleniya){  
   int Total=OrdersTotal();
    for( i=OrdersTotal()-1;i>=0;i--){
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if(OrderSymbol() != Symbol()) continue; 
   if (OrderMagicNumber() != 450) continue;
   if(OrderType()==OP_SELL) {
  OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i,"  GetLastError()CloseOP_SELL ", GetLastError()  );}
   if(OrderType()==OP_BUY)  {
  OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i,"  GetLastError()CloseOP_BUY ", GetLastError()  );}}} и виличины, закрываем все ордера!
//----
 
 
Oui, il ne devrait pas y avoir de signaux avant de changer de moût ! !! En quelque sorte... Il faut probablement regarder le code entier ! Je ne sais pas, ça n'a pas l'air de se voir...
 
j'ai besoin que le conseiller se souvienne de la valeur eQuity lorsqu'il n'y a pas d'ordres ouverts, par exemple 1000 et comme je l'ai écrit %-5 la valeur eQuity est 1050 lorsque toutes les positions sont fermées, j'ai obtenu que certains ordres soient fermés et que le solde augmente mais que le profit soit négatif pour tous les ordres et que le conseiller attende jusqu'à ce que le profit soit + puis ferme toutes les positions.
 
lottamer:

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav") ; flagg=1 ; flag=0 ; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav") ; flag=1 ; flagg=0 ; }

Imprimer(flag,flagg) ;

Ma_1 - court
Ma_2 - long

lorsque Ma_1>Ma_2 émet un bip news.wav sans s'arrêter, et imprime 0 1 (i.e. flag=0 flagg=1)

mais comment se peut-il que lorsque flagg=1, la condition (Ma_1>Ma_2 && flagg==0) soit remplie et que {PlaySound("news.wav") passe ? ???


Imprimez l'état des drapeaux séparément pour chaque condition. Il en est ainsi parce que l'état du second drapeau n'est pas pris en compte dans les conditions.

P.S. Et il est plus pratique d'imprimerPrint("flag=",flag, "flagg=",flagg) pour éviter toute confusion ;

 

C'est comme ça que j'ai le robot dans la démo. Je ne me souviens pas en détail comment m'est venue l'idée de l'écrire.

if(Profit>AccountBalance()*koefitsientudaleniya){
int Total=OrdersTotal() ;
for( i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;
if(OrderSymbol() != Symbol()) continuez ;
if(OrderMagicNumber() != 450) continuez ;
if(OrderType()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i," GetLastError()CloseOP_SELL ", GetLastError() );}
si(OrderType()==OP_BUY) {
OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i," GetLastError()CloseOP_BUY ", GetLastError() );}}} // Si le bénéfice dépasse une valeur que nous avons spécifiée, nous fermerons tous les ordres !
//----

Ou laissons nos amis les plus âgés nous conseiller...

Raison: