Erros, bugs, perguntas - página 2650

 
Pode dizer-me onde está o bug, em MQL4 ou MQL5?
struct A
{
  static const int Array[];
};

static const int A::Array[] = {0};

struct B : public A
{  
  int i[sizeof(B::Array)]; // MQL5 - ok, MQL4 - ok.
  int j[sizeof(A::Array)]; // MQL5 - ok, MQL4 - error.
};
Cadeia de pesquisa: Oshibka 004.
 
fxsaber:

Poderia também analisar este problema?


O moderador estava a actualizar à mão, a meu pedido. Mas não posso perguntar todas as vezes. A máquina não passa.

Corrigido.

 
Anton:

Corrigido.

Estou a ver, obrigado.

 
Andrey Khatimlianskii:

Sobre os carrapatos de todas as ferramentas utilizadas.


aqui está o meu código para verificar se há novos carrapatos:

void OnTimer()
  {
//+------------------------------------------------------------------+
// Перебор всех символов, которые указаны в внешних переменных
// Recursion of all symbols that are specified in external variables
//+------------------------------------------------------------------+
   string SymbolToTick="";
   for(int si=0; si<12; si++)
     {
      if(si==0)
         SymbolToTick=PAIR1;
      if(si==1)
         SymbolToTick=PAIR2;
      if(si==2)
         SymbolToTick=PAIR3;
      if(si==3)
         SymbolToTick=PAIR4;
      if(si==4)
         SymbolToTick=PAIR5;
      if(si==5)
         SymbolToTick=PAIR6;
      if(si==6)
         SymbolToTick=PAIR7;
      if(si==7)
         SymbolToTick=PAIR8;
      if(si==8)
         SymbolToTick=PAIR9;
      if(si==9)
         SymbolToTick=PAIR10;
      if(si==10)
         SymbolToTick=PAIR11;
      if(si==11)
         SymbolToTick=PAIR12;
     
      if(SymbolToTick=="" && si==0)
        {
         SymbolToTick=Symbol();
        }
      if(SymbolToTick=="")
         continue;
      //|#############################################################################################+
      // проверяем текущий Бид Аск
      MqlTick last_tickSymbol;
      SymbolInfoTick(SymbolToTick,last_tickSymbol);
      double currentBid=last_tickSymbol.bid;
      double currentAsk=last_tickSymbol.ask;

      //|#############################################################################################+
      // Если тик изменился, запускаем тик этого символа
      if(currentBid!=LastBid[si] || currentAsk!=LastAsk[si])
        {
         // Запускаем исполнение тика
         OnTickSymbol(si,SymbolToTick);
         LastBid[si]=currentBid;
         LastAsk[si]=currentAsk;
         TicksAllNumbers[si]++;
        }
      //|#############################################################################################+
     }
  }


Criou uma matriz para testes com o número de carraças contadas.


Testando dois pares EURUSD GBPUSD

Realização de um teste em GBPUSD:

2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Realização de um teste no EURUSD:

2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Os carrapatos parecem ser os mesmos. ... ... ... por isso devo ter perdido algo em algum lugar.....

Obrigado, vou continuar a cavar.



DECISÃO: _Dígito estava no código, devo tê-lo adicionado ao ambiente..... sem olhar.

não há necessidade de comentar :-)

 
Anton:

Mova o ficheiro mql5pack-ico.zip em arquivo para a pasta.

Movi este ficheiro para a pasta MQL5/Scripts. Não ajudou. Depois mudou-a para a pasta MQL5/Files - também não ajudou.

Provavelmente não compreendo do que se trata.

 
Stanislav Korotky:

Transferiu-o para a pasta MQL5/Scripts. Não ajudou.

Fixo.

 

Konstantin Gruzdev

O senhor é um autor interessante, o mais interessante aqui. fez uma pergunta a Vladislav, também estou interessado na multicurrency, pois há nuances sobre a nova barra e sobre a inaplicabilidade de todas as barras necessárias

 
a questão das múltiplas moedas ainda está suspensa, MQ não quer dar sinais por alguma razão, prefiro que os programadores se encham de problemas de timing e espionagem. isto não deve durar muito tempo.
 
Vladislav Andruschenko:
Através do temporizador sim,
Maior probabilidade de aumentar a frequência do temporizador ......
Falta-lhe um certo número de carraças. É por isso que há uma diferença nos resultados. A diferença é muito pequena. Mas basta saltar 1 carrapato e tudo é virado de cabeça para baixo.

Não é um facto que a frequência irá melhorar os resultados, mas irá definitivamente abrandar a velocidade dos testes. Os eventos temporais não são perfeitos, haverá quase sempre um erro. Mesmo num temporizador vazio, pode ver o erro. Se houver cálculos dentro da função do temporizador, a margem de erro é susceptível de ser maior. Carregar o computador com tarefas de terceiros também pode afectar o temporizador. Há uma hipótese de nem todos os sinais de abrir/fechar/modificar serem atingidos ao mesmo tempo e com os mesmos carrapatos.

Vale a pena mencionar que fiz todas estas observações há um par de anos atrás sobre um pesado instrumento multimoedas que utiliza quase 30 instrumentos simultaneamente. Os resultados só coincidiram quando o temporizador estava desligado. Presumo que não tenha mudado muito agora.

 
Fast235:

Konstantin Gruzdev

O senhor é um autor interessante, o mais interessante aqui. fez uma pergunta a Vladislav, também estou interessado na multicurrency, pois há nuances sobre a nova barra e sobre a inaplicabilidade de todas as barras necessárias

Ok. Responder acima.