[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 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);
}
//+------------------------------------------------------------------+

o que está errado, por que nada está sendo acrescentado à matriz?
 
evgenio писал(а) >>
o que está errado, por que nada é acrescentado à matriz?

Onde está a definição de um tamanho de matriz?

 
Vinin >> :

Onde está a definição de um tamanho de matriz?

e se o tamanho da matriz não for conhecido antes, como ?

 
evgenio писал(а) >>

Se o tamanho da matriz não for conhecido de antemão, como?

Em seguida, é necessário tornar dinâmico e, se necessário, aumentar seu tamanho.

 
Vinin >> :

Em seguida, torná-la dinâmica e aumentar seu tamanho, se necessário.

você pode me dizer onde encontrá-lo?

 
encontrado
 
Olá novamente! Você pode me dizer como identificar o bilhete ou o número do item?
 
ArtY0m >> :
Olá novamente! Você pode me dizer como determinar o número do bilhete ou do item?

int OrderTicket( )

Devolve o número do bilhete para o pedido atualmente selecionado.
A ordem deve ser pré-selecionada usando a função OrderSelect().

 
Alex5757000 >> :

int OrderTicket( )

Devolve o número do bilhete para o pedido atualmente selecionado.
A ordem deve ser pré-selecionada usando OrderSelect().

E se o número não for conhecido. Só há tipo, lote, número mágico, moeda de posição... Também sabemos que esta ordem foi aberta primeiro neste número mágico.

 
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);
} 

Código para meu primeiro EA, trabalha em RCAI e Dem. O problema é que não move ordens, ou seja, pára... sempre jura por paradas erradas... Até encontrei outros códigos para mover paradas ... ainda o mesmo erro.

Obrigado de antemão.