Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 930

 
ascerdfg:
Será possível?

substituir por:

Porque não? Claro que pode.

 
double Open[3];

int Ind_Handle;

int OnInit()
  {
      Ind_Handle=iCustom(_Symbol,_Period,"Pop"); // Pop.ex5
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Не удалось получить хендл индикатора");
         return(INIT_FAILED);
        }
   
   return(INIT_SUCCEEDED);
  }


void OnTick()
  {
 
      CopyBuffer(Ind_Handle,0,1,1,Open);
      Print("Open0 ",Open[0]);
  }

Impressões: "Open0 1.797693134862316e+308".

Embora eu tenha alterado tanto o número de célula tampão indicador como o índice.

Sei com certeza que há um número inteiro no indicador. Porque é que imprime desta forma?

 
ascerdfg:

Impressões: "Open0 1.797693134862316e+308".

Embora eu tenha alterado tanto o número de célula tampão indicador como o índice.

Sei com certeza que há um número inteiro no indicador. Porque é que imprime desta forma?

Ou tornar o ArraySetAsSeries verdadeiro após a declaração do array ou declarar array com tamanho 1
 
void OnTick()
  {
     int i;
     double price=.5;
     double Open[];
      ArraySetAsSeries(Open,true);

      Print("Кол-во ",BarsCalculated(Ind_Handle));
      Print("хэндл ",Ind_Handle);
      CopyBuffer(Ind_Handle,0,0,100,Open);
                 
      
    for(i=0; i<100; i++)
    {
        if(Open[i]!=EMPTY_VALUE)
        {
            price=Open[i];
            break;
        }
    }
           
      Print(price);
  }
Não funciona, escreve 0,5 o tempo todo. Parece que está sempre a amortecer com o número máximo.
 
ascerdfg:
Não ajuda, escreve a toda a hora 0,5. Acontece sempre o tampão com o número máximo.

Se quiser uma resposta precisa, faça a pergunta correctamente: forneça o código do indicador e o código do Conselheiro Especialista. Agora não é claro O QUE, QUEM e ONDE :)

 

Rohr - indicador

rrr - conselheiro

Arquivos anexados:
Pop.mq5  38 kb
ppp.mq5  4 kb
 
ascerdfg:

Ror - indicador

rrr - EA

Reescrever o indicador - em primeiro lugar, verificar para STOP WORDS, em segundo lugar, simplificá-lo tanto quanto possível - por exemplo, introduzir o número igual ao número da barra actual no buffer do indicador.

O que recebemos: array[0]=0.0, array[1]=1.0 e assim por diante. Isto irá MUITO, MUITO simplificar o processo de compreensão da recepção de dados a partir do indicador. Terceiro - deixar apenas um tampão indicador.

 

Pode por favor dizer-me como especificar explicitamente o símbolo actualizado nesta função? Por exemplo EURUSD.m

//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates(void)
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      Print("RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);
//---
   return(true);
  }
//+------------------------------------------------------------------+
 

Boa tarde!

Sabe como construir um indicador para o Mercado?

Tenho um ficheiro com extensão .mq5 e alguns incluem ficheiros com extensão .mqh.

Tanto quanto sei, não pode anexar .mqh ao ficheiro .mqh através dos recursos, devo realmente converter tudo num ficheiro manualmente?

E se houver uma nova versão :? É uma loucura +))))

Obrigado.

 
EgorKim:

Pode por favor dizer-me como especificar explicitamente o símbolo actualizado nesta função? Por exemplo EURUSD.m

Uma pergunta complementar: "Porque precisa de especificar o símbolo explicitamente aqui?

Se utilizar esta função, deve atribuir um símbolo a m_symbol no OnInit:

   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);
   RefreshRates();

Neste caso, se executar o Consultor Especialista no símbolo "EURUSD.m" para m_symbol será automaticamente definido para "EURUSD.m".