Erros, bugs, perguntas - página 2153

 
Há uma entrada no Optimiser's Journal em russo
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
 
Andrii Djola:

Como é que sei a que horas o símbolo forex fecha?

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Características da linguagem mql5, dicas e truques

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);
}

Usando

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

Um insecto muito desagradável com caracteres personalizados. O histórico das personagens personalizadas pode desaparecer completamente.

Houve várias dúzias de horas de Optimize sobre as carraças reais do carácter personalizado. Ninguém se aproximou do computador e não fez nada.

Após 15 horas de Optimização, vieram ver os resultados. Não é possível utilizar o item do menu "Run Single Test" em qualquer corrida - o testador inicia e termina imediatamente.

O diário de bordo é

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

Verificou-se que as carraças de todos os caracteres personalizados foram eliminadas.

 
Após a optimização, este ficheiro de texto
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
ocupa 1GB. 7z comprime-o por um factor de 100. Porquê uma forma tão ineficiente de armazenar a cache?
 

Se utilizar a exportação de XML

350.000 passes são escritos para um ficheiro XML de 320 MB. Isto abre automaticamente o ficheiro XML por alguma razão. Tenho o Bloco de Notas a tentar fazer isto, que pende quando se lê tais monstros. Por favor, avisar antecipadamente qual será o tamanho aproximado do ficheiro ao seleccionar o menu XML e quais poderão ser as consequências ao abri-lo mais tarde.

 

Erro durante a compilação

nenhum fragmento de código pode ainda ser seleccionado

 
fxsaber:

Se utiliza a exportação de XML

350.000 passes são escritos para um ficheiro XML de 320 MB. Isto abre automaticamente o ficheiro XML por alguma razão. Tenho o Bloco de Notas a tentar fazer isto, que pende quando se lê tais monstros. Por favor, ao seleccionar o menu XML, informe antecipadamente qual será o tamanho aproximado do ficheiro e quais serão as consequências quando o abrir mais.

Concordo, mas não é necessário avisar, é necessário proibir a abertura do ficheiro, e o utilizador decidirá como o abrir

 

Erro durante a compilação

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

Caso contrário:

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

Está bem. Que diferença é que isso faz?

 

Erro de compilação

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:

Durante várias dezenas de horas houve uma optimização por carraças reais do símbolo personalizado. Ninguém se aproximou do computador e não fez nada.

Após 15 horas de Optimização, vim ver os resultados. Não é possível utilizar o item do menu "Run Single Test" em qualquer passagem - o testador inicia e termina imediatamente.

O diário de bordo é

Verificou-se que os carrapatos de todos os símbolos personalizados foram removidos.

Reproduzível. Necessidade de executar o Tester/Optimizer. Esperar algumas horas após o seu término. Tenho exactamente 10 horas depois todas as carraças de caracteres personalizados são apagadas.