Erros, bugs, perguntas - página 2264

 

Por favor, ajudem-me, ainda não consigo perceber as razões.


Este código compila, por alguma razão desconhecida

class A {};

class B : public A
{
public:
  void f()
  {
    Print(__FUNCTION__);
  }
};

void OnStart()
{
  A a;
  
  ((B*)(&a)).f(); // OK
}

mas cai no momento da corrida. Pensei que era um bug de compilação - nada de especial.


Mas depois escrevi o código desta forma

#property script_show_inputs

input string FileName = "Alpari_GBPAUD.ZIP";

#include <Zip\Zip.mqh> // https://www.mql5.com/ru/articles/1971

void OnStart()
{
  CZip Zip;

  Zip.LoadZipFromFile(FileName, 0);

  uchar Bytes[];

  ((CZipFile*)Zip.ElementAt(0)).GetUnpackFile(Bytes);
  Print("UnZip - unpack size " + (string)ArraySize(Bytes) + " bytes.");  
}


Não só compila, como também é executado com sucesso! Devo ser muito burro algures, mas não consegui perceber porque funciona sem qualquer problema.

Infelizmente, não consegui localizá-lo, por isso o exemplo com o ZIP-bibble. E, muito provavelmente, seria uma chatice descobrir isso. Mas isso não importa.

 

O terminal (1881) falha na depuração se a variável estiver em formato binário

Reproduzir a animação para ver

Isto provavelmente só se aplica a variáveis sindicais

 
Nikolai Semko:

O terminal (1881) falha na depuração se a variável estiver em formato binário

Reproduzir a animação para ver

Isto provavelmente só se aplica a variáveis sindicais

Obrigado pela mensagem.

Fixou-o.
A reparação será incluída na próxima construção.

 
fxsaber:

Por favor, ajudem-me, ainda não consigo perceber as razões.


Este código compila, por alguma razão desconhecida

mas cai no momento da corrida. Eu pensei - bem, é um bug de compilação - nada de especial.

...

Está a tentar lançar um ponteiro para um objecto de tipo A para um ponteiro para um objecto de tipo B, o que é um erro óbvio, porque A não é herdado de B
 
Ilyas:
Está a tentar lançar um ponteiro para um objecto de tipo A para um ponteiro para um objecto de tipo B, o que é um erro óbvio uma vez que A não é herdado de B

Isto eu compreendo. Mas não é de todo claro porque é que a mesma acção no exemplo do ZIP-bibble funciona. É exactamente o mesmo fantasma ali.

ZS Descobri-o.

 

A luz de fundo apaga-se... depois reaparece


Arquivos anexados:
Error1.mqh  1 kb
 

Enfrentei tal problema ao testarresultados em quatro e cinco dígitos (especialmente em MT4 pequeno) em MT4. Os resultados são significativamente diferentes (o reconhecimento de 5 e 4 dígitos é implementado no Expert Advisor), pelo menos o número de negócios aumenta significativamente. Quem sabe ou sugeriu a razão? Talvez não dependa do sinal, mas do tipo de execução da ordem - normal e de mercado?

P.S. Em ambos os casos, as citações foram carregadas através do Tisckstory.


Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Boa tarde. Pode dizer-me se é possível alterar as definições de visualização do indicador a partir do código do Expert Advisor? Por exemplo, a cor ou espessura das linhas. Obrigado de antemão.
 
SuhanovDM94:
Olá, gostaria de partilhar convosco as minhas ideias sobre este tema. Sabe se pode alterar as definições de visualização do indicador a partir do código do Expert Advisor? Por exemplo, a cor ou espessura das linhas. Obrigado de antemão.

Pode, mas

  1. Apenas no momento da criação do indicador
  2. Apenas se a cor do indicador e as definições de linha estiverem incluídas nos parâmetros de entrada (um exemplo de tal indicador é oCustom Moving Average Inputs)

 
SuhanovDM94:
Olá. Sabe se pode alterar as definições de um indicador de visualização a partir do código de um Expert Advisor? Por exemplo, a cor ou espessura das linhas. Gostaria de vos agradecer antecipadamente.

Porque quereria mudar a cor e a espessura da EA? Não tem qualquer efeito no seu desempenho. Precisa dele para uma fotografia? Portanto, alterá-lo num modelo nas definições do indicador.