Errori, bug, domande - pagina 2816

 
fxsaber:

Mi ricordo che quando ero in questo argomento, c'erano molte sfumature. Qualcosa si è mostrato giusto o sbagliato, a seconda della funzione OnTester*. Provate a chiamarlo in diverse funzioni On.

Cosa intendi per diverso? Ne ho bisogno in OnTesterInit - non ci sono altre opzioni.

 
Stanislav Korotky:

Cosa intendi per diverso? Ne ho bisogno in OnTesterInit - non ci sono altre opzioni.

Forum sul trading, sistemi di trading automatico e test di strategia

Bug, bug, domande

fxsaber, 2017.08.15 17:49

ParameterGetRange non funziona in 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:

Questo conferma solo il mio caso di test: l'impostazione di un parametro in MQL non ha alcun effetto sulla sua successiva lettura in OnTesterInit. Negli altri gestori, è troppo tardi per regolare qualcosa, poiché i passaggi sono determinati dalle impostazioni iniziali.

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

Il 2° #import non è chiuso, ma l'errore è sul 1° - quindi la posizione dell'errore reale è mostrata in modo errato - mi ci è voluto molto tempo per capire cosa fosse sbagliato

 
Errore di compilazione:
class A {};
class B {
public:
    static A a;
} b;  //Error: unresolved static variable 'B::a'
A B::a;
void OnStart() {}
 
I commenti non relativi a questo argomento sono stati spostati in "Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione su algoritmi e codici".
 

Funzione:

CopyTicksRange(_Symbol, _ticks, COPY_TICKS_ALL);

in modalità di generazione di tick restituisce un massimo di 131072 tick. È un bug, una caratteristica, la documentazione dice qualcosa al riguardo?

In modalità real ticks, non c'è questa limitazione.

 
I commenti non relativi a questo argomento sono stati spostati in "Domande dai principianti di MQL4 MT4 MetaTrader 4".
 
Il comportamento attuale è corretto quando l'Expert Advisor in modalità frame sul grafico del Terminale viene eseguito con i parametri di input predefiniti piuttosto che con quelli impostati nella scheda Parametro del Tester?
 
È possibile proteggere il grafico dai cambiamenti di timeframe e simbolo?