[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 166

 

//+------------------------------------------------------------------+
//| nax.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"

//---- input parameters
extern int Fast_MACD=12;
extern int Slow_MACD=24;
extern int Signal_MACD=6;
double a,mas_1[];
int i=1;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
a=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,0),5);
if (a>0)
{
Print ("MACD выше 0 начинаю считывать бары");
while (NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5)>0)
{
mas_1[i]=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5);
Print (GetLastError());
i++;
}
Print ("В массив добавлено "+ArrayRange(mas_1,0)+" баров");
}
return(0);
}
//+------------------------------------------------------------------+

cosa c'è che non va, perché non viene aggiunto nulla all'array?
 
evgenio писал(а) >>
cosa c'è che non va, perché non viene aggiunto nulla all'array?

Dov'è la definizione di dimensione di un array?

 
Vinin >> :

Dov'è la definizione di dimensione di un array?

e se la dimensione dell'array non è nota prima, come?

 
evgenio писал(а) >>

Se la dimensione dell'array non è nota in anticipo, come?

Poi è necessario rendere dinamico e se necessario aumentare le sue dimensioni.

 
Vinin >> :

Allora rendetelo dinamico e aumentate le sue dimensioni se necessario.

potete dirmi dove trovarlo?

 
trovato
 
Ciao di nuovo! Potete dirmi come identificare il biglietto o il numero dell'articolo?
 
ArtY0m >> :
Ciao di nuovo! Potete dirmi per favore come determinare il numero del biglietto o dell'articolo?

int OrderTicket( )

Restituisce il numero del biglietto per l'ordine attualmente selezionato.
L'ordine deve essere preselezionato utilizzando la funzione OrderSelect().

 
Alex5757000 >> :

int OrderTicket( )

Restituisce il numero del biglietto per l'ordine attualmente selezionato.
L'ordine deve essere preselezionato usando OrderSelect().

E se il numero non è noto. C'è solo tipo, lotto, numero magico, posizione valuta... Sappiamo anche che questo ordine è stato aperto per primo da questo numero magico...

 
int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }
int start()
if (OrdersTotal()==0)
   {
      if (iRSI(NULL,0,14,PRICE_CLOSE,1)>71 && iDeMarker(NULL,0,13,1)>0.71)
      OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+0.001,Bid-0.01,"",666,0,Green);
      if (iRSI(NULL,0,14,PRICE_CLOSE,1)<29 && iDeMarker(NULL,0,13,1)<0.29)
      OrderSend(Symbol(),OP_BUY,lot,Ask,3,Bid-0.001,Bid+0.01,"",666,0,Blue);
   }
else
  
      for (int i=1; i<= OrdersTotal(); i++)
      {
        if (OrderSelect(i-1,SELECT_BY_POS)==true)
         {
            if(OrderType()==OP_SELL)
               {
               if ((OrderStopLoss()- 0.001) < Bid)
                  {
                   if (OrderStopLoss()>OrderOpenPrice()) {
                   OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Green);}
                   else
                   OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()-0.001),OrderTakeProfit(),Green);
                  }
               }
         }
         else
         {
             if(OrderType()==OP_BUY)
                {
                if ((OrderStopLoss()+0.001) < Bid)
                   {
                    if (OrderStopLoss()<OrderOpenPrice()){
                    OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Blue);}
                    else
                    OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()+0.001),OrderTakeProfit(),Blue);
                   }
                }  
         }        
   } 
return(0);
} 

Codice per il mio primo EA, funziona su RCAI e Dem. Il problema è che non sposta gli ordini, cioè gli stop... impreca sempre per gli stop sbagliati... Ho anche trovato altri codici per spostare gli arresti ... ancora lo stesso errore.

Grazie in anticipo.

Motivazione: