Erros, bugs, perguntas - página 2816

 
fxsaber:

Lembro-me de que quando me debrucei sobre este assunto, havia muitas nuances. Alguma coisa se mostrou certa ou errada, dependendo da função OnTester*. Tente chamá-lo em diferentes funções.

O que quer dizer com diferente? Preciso dele no OnTesterInit - não há outras opções.

 
Stanislav Korotky:

O que quer dizer com diferente? Preciso dele no OnTesterInit - nenhuma outra opção.

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Insectos, insectos, perguntas

fxsaber, 2017.08.15 17:49

ParameterGetRange não funciona no OnTesterInit.
sinput int Range = 5;

#define  PRINT(A) Print(#A + " = " + (string)(A));

void PrintParameter( const string Name, const string From )
{
  PRINT(From)
  
  bool Enable;
  long Value, Start, Step, Stop;
  
  if (ParameterGetRange(Name, Enable, Value, Start, Step, Stop))
  {
    PRINT(Start)
    PRINT(Step)
    PRINT(Stop)
    PRINT(Value)
    PRINT(Enable)
  }   
}

void OnTesterInit()
{
  ParameterSetRange("Range", true, 5, 1, 2, 3); // Задали ненулевыми все значения
  
  PrintParameter("Range", __FUNCTION__); // Возвращает одни нули
}

void OnTesterDeinit()
{
  PrintParameter("Range", __FUNCTION__); // Работает нормально
  
  ChartClose();
}

void OnTesterPass()
{
  PrintParameter("Range", __FUNCTION__); // Работает нормально
}

int OnInit()
{
  uchar Data[];
  
  FrameAdd(NULL, 0, 0, Data);
  
  return(INIT_FAILED);
}
 
fxsaber:

Isto apenas confirma o meu caso de teste: a definição de um parâmetro em MQL não tem qualquer efeito na sua leitura subsequente no OnTesterInit. Nos outros manipuladores, é demasiado tarde para ajustar qualquer coisa, uma vez que os passes são determinados pelas configurações iniciais.

 
Shortcoming
#import "z.ex5" //(1) Error: '#import' - #import was not closed
#import
/*
.
.
.
*/
#import "z.ex5" //(2)

O 2º #importância não está fechado, mas o erro está no 1º - portanto a localização do erro real é mostrada incorrectamente - demorei muito tempo a descobrir o que estava errado

 
Erro de compilação:
class A {};
class B {
public:
    static A a;
} b;  //Error: unresolved static variable 'B::a'
A B::a;
void OnStart() {}
 
Comentários não relacionados com este tópico foram movidos para"Quaisquer perguntas de novatos sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos".
 

Função:

CopyTicksRange(_Symbol, _ticks, COPY_TICKS_ALL);

em modo de geração de carrapatos retorna um máximo de 131072 carrapatos. Será isto um bug, uma característica, a documentação diz alguma coisa sobre isto?

No modo de carraças reais, não existe tal limitação.

 
Comentários não relacionados com este tópico foram transferidos para "Perguntas dos principiantes do MQL4 MT4 MetaTrader 4".
 
O comportamento actual é correcto quando o Expert Advisor em modo frame na tabela Terminal é executado com os parâmetros de entrada predefinidos em vez dos definidos no separador Tester Parameter?
 
É possível proteger o gráfico contra alterações de tempo e símbolos?