[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 638

 
augmenter la limite de l'intervalle de temps supérieur/courant privé +1.
 
Donc, mon frère a joué quelques parties dans les chars jusqu'à présent. Les commandes ne s'effacent pas, au moins ça s'est un peu amélioré. Maintenant le code est, à savoir, j'ai tamponné les deux, et j'ai ajouté i=OrdersTotal()-1 ; cette ligne dans la boucle en théorie devrait obispechit sa continuation jusqu'à ce que tout n'est pas tué, mais cela ne s'est pas produit. Ici :
if(Summaprofita()>=Profit_v_balans )
        {
         for(int i=OrdersTotal()-1;i>=0;i--)
           {
              bool error=true;
            OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
            
            if( magic==OrderMagicNumber( ) && OrderSymbol()==Symbol())
              {
              
                 OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE); error=false;
                           Sleep(1000);
             OrderDelete(OrderTicket());error=false;
             
              if(OrderType()==OP_BUY)
              {
               OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
               
              }
            if(OrderType()==OP_SELL)
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
               
              }
              i=OrdersTotal()-1;
            Sleep(1000);
         } } }
        
PAS L'ORDRE SUPPRIMÉ NE LAISSE PAS L'ORDRE NOUVEAU ÊTRE ! !! A l'aide ! !!
 
//+------------------------------------------------------------------+
//|  Удаляет рыночные и отложенные ордера.                           |
//|  Как отдельные по тикету, так и по фильтру в цикле поиска        |
//|  Фильтры по магику,типу,символу. Если вызвать с символом "All" - |
//|  То удалит все, подобно функции DeleteAll()                      |
//+------------------------------------------------------------------+
bool OrdClose(int magik  = -1,
              int type   = -1,//=10 удаление всех рыночных; =11 удаление всех отложенных 
              int ticket = -1,
           string symb   = "",
           double cLot   = -1      
              ){int   digit = MarketInfo(Symbol(),MODE_DIGITS);double lot;
//+------------------------------------------------------------------+
   if(cLot==0){return;}
   if(symb==""){symb=Symbol();}
   int slip = MarketInfo(symb,MODE_SPREAD);
   double ltstp = MarketInfo(Symbol(),MODE_LOTSTEP);
   if(ltstp == 0.1){int ltdg = 1;}
   if(ltstp == 0.01){   ltdg = 2;} 
   if(ticket>0){
      GetLastError();
      RefreshRates();
      if(OrderSelect(ticket,SELECT_BY_TICKET)){
         if(OrderCloseTime()!=0){return;}
         if(OrderType()<2){
                lot = OrderLots();
                if(cLot>0){
                        lot = NormalizeDouble(cLot,ltdg);
                        if(lot>OrderLots()){lot=OrderLots();}
                        if(lot<MarketInfo(Symbol(),MODE_MINLOT)){lot=MarketInfo(Symbol(),MODE_MINLOT);}
                }
            if(!OrderClose(OrderTicket(),
                                     lot,
       NormalizeDouble(OrderClosePrice(),MarketInfo(symb,MODE_DIGITS)),
                                    slip,
                                   Green
                          )
            ){
               Print(GetLastError());
               return(false);              
            }else{
               Print("Order "+GetNameOP(OrderType())+" closed");
               return(true);
            }                          
         }else{
            if(!OrderDelete(OrderTicket(),GetOrdCl(type))){
               Print(GetLastError());
               return(false);              
            }else{
               Print("Order "+GetNameOP(OrderType())+" closed");
               return(true);
            }
         }
      }
   }else{
//+------------------------------------------------------------------+
   for(int i=OrdersTotal()-1;i>=0;i--){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderCloseTime()!=0){continue;}
         if(symb!="All"){
            if(OrderSymbol()!=symb){continue;}
            if(type>=0&&type<6){if(OrderType()!=type){continue;}}
            if(type==10){if(OrderType()>1){continue;}}
            if(type==11){if(OrderType()<2){continue;}}
            if(magik>0){if(OrderMagicNumber()!=magik){continue;}}
         }
         if(OrderType()<2){
                lot = OrderLots();
                if(cLot>0){
                        lot = NormalizeDouble(cLot,ltdg);
                        if(lot>OrderLots()){lot=OrderLots();}
                        if(lot<MarketInfo(Symbol(),MODE_MINLOT)){lot=MarketInfo(Symbol(),MODE_MINLOT);}
                }
                Print("Close ",type,"  ",OrderType());
            if(!OrderClose(OrderTicket(),
                                     lot,
       NormalizeDouble(OrderClosePrice(),MarketInfo(symb,MODE_DIGITS)),
                                    slip,
                                   Green
                          )
            ){
               Print(GetLastError());
               return(false);              
            }else{
               Print("Order "+GetNameOP(OrderType())+" closed");
            }                          
         }else{
            if(!OrderDelete(OrderTicket(),GetOrdCl(type))){
               Print(GetLastError());
               return(false);              
            }else{
               Print("Order "+GetNameOP(OrderType())+" closed");
            }
         }
      }
   }          
//-----+
}   
return(true);}
 
Description des équipes :https://www.mql5.com/ru/forum/137651/page3
 
Wow, tant de lignes ! Merci !!!!
 
Messieurs les experts, veuillez m'indiquer comment télécharger un bon historique de devis dans le terminal. Pour le test de mon premier robot est nécessaire. Les cotations pour EUR-USD sont en 4 chiffres.
 
Sancho77:

J'ai essayé les deux façons :

Toujours pas de réaction.




Cela fonctionne) ;
int start()
  {
//----
     Comment("Signal = ",Signal());       
//----
   return(0);
  }
//+------------------------------------------------------------------+

  int Signal()
  {
  double dn_stop_1 = iCustom(NULL,0,"NRTR_ATR_STOP",ATR,Coeficient,0,1); // синий, снизу
  double up_stop_1 = iCustom(NULL,0,"NRTR_ATR_STOP",ATR,Coeficient,1,1); // красный, сверху
              
   if (dn_stop_1!=0.0) return(1);
   if (up_stop_1!=0.0) return(-1);
   
   return(0);
   } 
 
Myth63:
Messieurs les experts, veuillez m'indiquer comment télécharger un bon historique de devis dans le terminal. Pour le test de mon premier robot est nécessaire. Les cotations pour l'EUR-USD sont en 4 chiffres.
Si vous voulez jouer dans le testeur, téléchargez l'historique de MetaQuotes via F2. Pour réussir vos opérations en temps réel, vous avez besoin des cotations du serveur de votre société de courtage. Si votre société de courtage ne dispose pas d'un tel service "Quote Archive" (il peut se trouver sur le site web de certaines sociétés de courtage), l'historique doit être collecté en temps réel - il s'agit d'informations stratégiques. Il s ' agit d'un outil automatique de collecte de devis.
 

Bonne journée à tous !

Question sur la fonction iMAOnArray(array[], total, période, ma_shift, ma_method, shift)

Pouvez-vous me dire si le tableau[] doit être un tableau tampon ou peut être quelconque ? Le problème est que lorsque

Je crée et initialise un tableau dans un programme, cette fonction ne fonctionne pas. Mais quand je lie viaSetIndexBuffer

... tout fonctionne comme il se doit.

 
r772ra:

Cela fonctionne)) ;
Merci beaucoup ! Cela a vraiment fonctionné, mais c'était bizarre, je testais toujours sur M15, mais ensuite j'ai décidé de l'essayer sur H1 et le signal est apparu. Puis je suis revenu à la M15 - ça a marché))))