Errori, bug, domande - pagina 2153

 
C'è una voce nel Diario dell'ottimizzatore in russo
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
 
Andrii Djola:

Come faccio a sapere a che ora chiudono le contrattazioni dei simboli forex?

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

Caratteristiche del linguaggio mql5, consigli e trucchi

fxsaber, 2017.02.25 16:39

ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
  MqlDateTime sTime = {0};

  ::TimeToStruct(time, sTime);

  return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}

// true - находимся в торговой сессии
bool SessionTrade( const string Symb )
{
  datetime TimeNow = ::TimeTradeServer();

  const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);

  TimeNow %= 24 * 60 * 60;

  bool Res = false;
  datetime From, To;

  for (int i = 0; (!Res) && ::SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));

  return(Res);
}

// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( const string Symb )
{
  MqlTick Tick;

  return(::SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) /* &&
         ((ENUM_SYMBOL_TRADE_MODE)::SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) */
) : false);
}

Utilizzando

if (OrderCheck(Request, CheckResult) && SymbolTrade(Request.symbol))
  OrderSend(Request, Result);
 
fxsaber:

Un bug molto spiacevole con i personaggi personalizzati. La storia dei tick dei personaggi personalizzati può scomparire completamente.

Ci sono state diverse decine di ore di Optimize sui tic reali del personaggio personalizzato. Nessuno si è avvicinato al computer e non ha fatto nulla.

Dopo 15 ore di ottimizzazione è venuto a vedere i risultati. L'utilizzo della voce di menu "Run Single Test" in qualsiasi corsa non è possibile - il tester inizia e finisce immediatamente.

Il registro è

2018.03.03 15:48:04.696 Tester  file cache used 3010 times
2018.03.03 15:48:04.698 Tester  optimization finished, total passes 352000
2018.03.03 15:48:04.708 Statistics      optimization done in 41 hours 32 minutes 37 seconds
2018.03.03 15:48:04.708 Statistics      local 348990 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2018.03.03 15:48:04.708 Core 1  connection closed
2018.03.03 15:48:04.709 Core 2  connection closed
2018.03.03 15:48:04.710 Core 3  connection closed
2018.03.03 15:48:04.710 Core 4  connection closed
2018.03.03 15:48:04.711 Core 5  connection closed
2018.03.03 15:48:04.711 Core 6  connection closed
2018.03.03 15:48:04.712 Core 7  connection closed
2018.03.03 15:48:04.714 Core 8  connection closed
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
2018.03.04 08:26:30.933 Tester  single pass 297022 started
2018.03.04 08:26:31.000 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 08:27:36.409 Tester  single pass 297022 started
2018.03.04 08:27:36.491 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 14:05:10.940 Tester  single pass 297022 started
2018.03.04 14:05:11.007 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00

Ho scoperto che i tic di tutti i personaggi personalizzati sono stati cancellati.

 
Dopo l'ottimizzazione, questo file di testo
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
occupa 1GB. 7z lo comprime di un fattore 100. Perché un modo così inefficiente di memorizzare la cache?
 

Se si usa l'esportazione XML

350.000 passaggi sono scritti in un file XML di 320 MB. Questo apre automaticamente il file XML per qualche motivo. Ho Notepad che cerca di fare questo, che si blocca quando legge tali mostri. Si prega di avvertire in anticipo quale sarà la dimensione approssimativa del file quando si seleziona il menu XML e quali potrebbero essere le conseguenze quando lo si apre ulteriormente.

 

Errore durante la compilazione

nessun frammento di codice può ancora essere selezionato

 
fxsaber:

Se si usa l'esportazione XML

350.000 passaggi sono scritti in un file XML di 320 MB. Questo apre automaticamente il file XML per qualche motivo. Ho Notepad che cerca di fare questo, che si blocca quando legge tali mostri. Per favore, quando selezionate il menu XML, dite in anticipo quale sarà la dimensione approssimativa del file e quali saranno le conseguenze quando lo aprirete ulteriormente.

Sono d'accordo, ma non è necessario avvertire, è necessario vietare l'apertura del file, e l'utente deciderà come aprirlo

 

Errore durante la compilazione

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; } //Error: '<' - cannot to apply function template

Altrimenti:

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; }
class B {};

Va bene. Che differenza fa?

 

Errore di compilazione

template<typename T>
struct A { T    *t; };
struct B { void *b; };
void OnStart()
{
        A<void> a; //Error: 'void' - expression of 'void' type is illegal
        B       b; //номально
} 
 
fxsaber:

Per diverse decine di ore c'è stata l'ottimizzazione per ticchettii reali del simbolo personalizzato. Nessuno si è avvicinato al computer e non ha fatto nulla.

Dopo 15 ore di ottimizzazione sono venuto a vedere i risultati. Usare la voce di menu "Run Single Test" su qualsiasi passaggio non è possibile - il tester inizia e finisce immediatamente.

Il registro è

Ho scoperto che i tick di tutti i simboli personalizzati sono stati rimossi.

Riproducibile. È necessario eseguire Tester/Optimizer. Aspettate qualche ora dopo che è finito. Ho esattamente 10 ore dopo che tutte le zecche personalizzate dei personaggi sono state cancellate.