[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 638

 
aumentare il limite dell'orizzonte temporale privato superiore/corrente +1.
 
Così, mio fratello ha giocato qualche partita in carri armati finora. Gli ordini non si cancellano, almeno è andata un po' meglio. Ora il codice è, cioè, ho tamponato entrambi, e ho aggiunto i=OrdersTotal()-1; questa linea nel ciclo in teoria dovrebbe obispechit la sua continuazione fino a quando tutto non viene ucciso, ma questo non è successo. Qui:
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);
         } } }
        
NON L'ORDINE RIMOSSO NON LASCIA CHE IL NUOVO ORDINE SIA!!! aiuto!!!
 
//+------------------------------------------------------------------+
//|  Удаляет рыночные и отложенные ордера.                           |
//|  Как отдельные по тикету, так и по фильтру в цикле поиска        |
//|  Фильтры по магику,типу,символу. Если вызвать с символом "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);}
 
Descrizione delle squadre: https://www.mql5.com/ru/forum/137651/page3
 
Wow, quante linee! Grazie!!!!
 
Signori esperti, vi prego di consigliarmi come caricare una buona cronologia delle quotazioni sul terminale. Per il test del mio primo robot è necessario. Le quotazioni per EUR-USD sono a 4 cifre.
 
Sancho77:

Ho provato in entrambi i modi:

Ancora nessuna reazione.




Funziona);
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:
Signori esperti, vi prego di consigliarmi come caricare una buona cronologia delle quotazioni sul terminale. Per il test del mio primo robot è necessario. Le quotazioni per EUR-USD sono a 4 cifre.
Se vuoi giocare nel tester, scarica la storia da MetaQuotes attraverso F2. Per il successo delle operazioni in tempo reale hai bisogno di quotazioni dal server della tua società di intermediazione. Se la vostra società di intermediazione non ha tale servizio "Quote Archive" (può essere su alcuni siti web di società di intermediazione), la storia deve essere raccolta in una modalità in tempo reale - è un'informazione strategica. Questo è uno strumento automatico per raccogliere le citazioni.
 

Buona giornata a tutti!

Domanda sulla funzione iMAOnArray(array[], totale, periodo, ma_shift, ma_method, shift)

Puoi dirmi se array[] deve essere un array di buffer o può essere qualsiasi? Il problema è che quando

Creo e inizializzo un array in un programma, questa funzione non funziona. Ma quando lego tramiteSetIndexBuffer

... tutto funziona come dovrebbe.

 
r772ra:

Funziona));
Grazie mille! Ha funzionato davvero, ma era strano, stavo sempre testando su M15, ma poi ho deciso di provarlo su H1 ed è apparso il segnale. Poi sono tornato a M15 - ha funzionato)))