Erros, bugs, perguntas - página 1549

 
comp:

Compreendido, obrigado. Infelizmente, esta solução funcionará apenas em Expert Advisor (no qual o cálculo deve ser interrompido). Não vai funcionar no indicador, porque chamar o indicador no gráfico não cria uma fila paralela de gráficos, entra na mesma fila de eventos, não mesmo para um gráfico específico, mas para TODOS os gráficos deste símbolo.

Como empurrar o indicador como recurso MQ5 em vez de recurso EX5?

Não pode. Além disso, não se pode tentar editar o código (texto do programa) de outro programa.
 

Rapazes! Qual poderá ser o problema? Fiz uma encomenda

m_trade.SellLimit(1,Ask+40,_Symbol,0,0,ORDER_TIME_GTC,0,")

Está a ser preparado. E....ao mesmo ritmo é eliminado. Há apenas uma(já) linha(s) na EA! Este aqui! Ou seja, não é a minha EA que apaga a encomenda. Qual é o problema?

 
Karputov Vladimir:
Não pode. Especialmente não se pode tentar editar o código em si (o texto do programa) a partir de outro programa.

Pode levar EX5 como uma matriz no código. Criar um ficheiro EX5 na caixa de areia e ligá-lo como um recurso.

Exactamente porquê tanta chatice, quando seria mais lógico fazer o mesmo, se pudesse ligar os recursos MQ5 de uma só vez.

 
comp:

Pode transportar EX5 como uma matriz no código. Criar um ficheiro EX5 na caixa de areia e ligá-lo como um recurso.

Porquê tanta chatice, quando seria mais lógico fazer a mesma coisa, se se pudesse ligar imediatamente os recursos do MQ5.

Tomem como garantidas as regras existentes, em vez de exigirem a implementação dos vossos próprios desejos.
 
Karputov Vladimir:
Tomem como certas as regras existentes, em vez de exigirem a implementação dos vossos próprios desejos.
Onde vê as exigências?!
 

comp:

se fosse possível ligar o recurso MQ5 de uma só vez.

e qual é o objectivo para além do interesse académico?
 
o_O:
E qual é o objectivo para além do interesse académico?

De facto, os criadores proibiram esta

comp:

Posso levar EX5 como uma matriz no meu código. Criar um ficheiro EX5 numa caixa de areia e ligá-lo como um recurso.

Mas não é essa a questão, é claro. Eu gostaria de fazer um IsChanged() universal e ligá-lo através de #include.

Não quero carregar comigo o indicador de paralelismo EX5-file. Não sei que tipo de coisas podem ser colocadas nele. Se o MQ5 é uma fonte aberta, tem outra atitude.

 
Se o "indicador é demasiado lento" nunca aparece no registo durante a execução do indicador, é possível dizer que o indicador não congelou?
 
comp:
Se o "indicador é demasiado lento" nunca apareceu no registo durante a execução do indicador, podemos confirmar que o indicador não está pendurado?

Ninguém pode dar uma garantia de 100% em qualquer lugar :) . Se o indicador na fila de mensagens colocar pelo menos algo, faz sentido testá-lo no mercado rápido.

Adicionado. Se o indicador colocar pelo menos algo na fila de mensagens, então, para além de testar no mercado rápido, faz sentido executar vários indicadores no terminal.

 
Karputov Vladimir:

Ninguém pode dar uma garantia de 100% em qualquer lugar :) . Se o indicador na fila de mensagens colocar pelo menos algo, faz sentido testá-lo no mercado rápido.

Adicionado. Se o indicador colocar pelo menos algo na fila de mensagens, então, para além de testar no mercado rápido, faz sentido executar vários indicadores no terminal.

O mercado rápido pode ser emulado através de uma chamada de FullOnCalculate()

#define  TIMESERIES(X)                                                  \
   ::ArraySetAsSeries(X, TRUE);                                        \
   Size = ::MathMin(Copy##X(::Symbol(), ::Period(), 0, bars, X), Size);  

int FullOnCalculate( const int Prev_Calculated = 0 )
{
  int Spread[];
  long RealVolume[];
  
  int Size = INT_MAX;
  
  #ifdef __MQL4__
    const int bars = ::Bars;
  #endif

  #ifdef __MQL5__
    const int bars = ::Bars(::Symbol(), ::Period());
  #endif

   TIMESERIES(Spread)
  TIMESERIES(RealVolume)
  
  #ifdef __MQL4__
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, Volume, Spread));
  #endif
  
  #ifdef __MQL5__
    datetime Time[];
    double Open[];
    double High[];
    double Low[];
    double Close[];
    long TickVolume[];

    TIMESERIES(Time)
    TIMESERIES(Open)
    TIMESERIES(High)
    TIMESERIES(Low)
    TIMESERIES(Close)
    TIMESERIES(TickVolume)
  
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, TickVolume, Spread));
  #endif
}

o modelo do evento - de forma semelhante. A pergunta era sobre outra coisa

comp:
Se durante a execução de um indicador não houve "indicador é demasiado lento" no seu registo, podemos concluir que o indicador não congelou?

O pretérito em termos de ensino da língua russa.

Razão: