Erros, bugs, perguntas - página 2910

 
AlexInRush:

Olá a todos!

Poderia dizer-me como depurar um robô que negoceia numa pilha de encomendas em Forts? Existe alguma ferramenta para reproduzir o histórico da taça ou trabalhar com dados reais no modo de emulação de execução? Não consigo pensar em nada a não ser em depurá-lo numa conta real usando impressão e comentário, o que por vezes não é barato :(

Há um no mercado. A kodobase parece não ter nenhuma.

 
Stanislav Korotky:

Há alguns no mercado. Acho que não há nenhum na kodobase.

Boa tarde, Stanislav.

Li a descrição da Biblioteca de História do OrderBook. Se entendi correctamente, quando ligo esta biblioteca ao robô, posso substituir os eventos regulares da taça por eventos do emulador. Ao reproduzir a estratégia no testador, a transmissão do histórico do canal será sincronizada com o histórico do tick do testador. Por conseguinte, a emulação da execução será baseada no histórico do testador de carraças. Se bem entendi,parece que era isto que eu procurava. Obrigado, vou tentar!

 
AlexInRush:

Boa tarde, Stanislav.

Li a descrição da Biblioteca de História do OrderBook. Se entendi correctamente, quando ligo esta biblioteca ao meu robô, posso substituir os eventos do testador por eventos do emulador. Ao reproduzir a estratégia no testador, a transmissão do histórico do canal será sincronizada com o histórico do tick do testador. Por conseguinte, a emulação da execução será baseada no histórico do testador de carraças. Se bem entendi,parece que era isto que eu procurava. Obrigado, vou tentar!

Não se pode mencionar ou discutir produtos no fórum. Perguntas sobre o produto, por favor escrevam-me pessoalmente.

 

Descobri uma coisa estranha ao criar um recurso gráfico! Uma e a mesma variante de código escrita em MQL5 funciona perfeitamente, e em MQL4 não funciona de todo! Tudo é absolutamente o mesmo e parece simples:

    string path="::Images\\AAA.bmp";
    string path1="\\Images\\AAA.bmp";

    if(!ResourceCreate(path,path1))
     {
      Print(__FUNCTION__+", Error="+string(GetLastError()));
      return(false);
     }

Como resultado, quando se instala o indicador no gráfico do Metatrader 4, temos

Onde está o problema?

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
//| Expert initialization function                                   |                                                                                       ); "Внимание! %s: Попробуем добавить индикатор MACD(%s/%s) на график %s/%s. Получим ошибку 4114"                         subwindow...
 
Nikolay Kositsin:

Descobri uma coisa estranha ao criar um recurso gráfico! Uma e a mesma variante de código escrita em MQL5 funciona perfeitamente, e em MQL4 não funciona de todo! Tudo é absolutamente o mesmo e parece simples:

Como resultado, quando se instala o indicador no gráfico do Metatrader 4, temos

Onde está o problema?

Sim, não funciona em MT4.
Mas funciona tanto para o MT5 como para o MT4 com esta construção mais curta:

#resource  "\\Images\\AAA.bmp"
string path="::Images\\AAA.bmp";

uint bmp[], w,h;
ResourceReadImage(path,bmp,w,h);

Arquivos anexados:
Morph.mq4  9 kb
iCanvas.mqh  49 kb
Images.zip  731 kb
 
Nikolai Semko:

Sim, não funciona em MT4.
Mas funciona tanto para MT5 como para MT4 com este desenho mais curto:


Agradeço-vos, mas infelizmente, tal construção apenas carrega imagens na compilação, enquanto eu tenho de a carregar num ficheiro compilado no trabalho. Então a função ResourceCreate() na MQL4 não funciona de forma alguma? Talvez, os programadores simplesmente se tenham esquecido de adicionar o código para ele na agenda ocupada?

Документация по MQL5: Общие функции / ResourceCreate
Документация по MQL5: Общие функции / ResourceCreate
  • www.mql5.com
[in]  Относительный путь к файлу, содержащему данные для ресурса. Если путь начинается с обратной косой черты "\" (пишется "\\"), то файл ищется относительно папки Если второй вариант функции вызывается для...
 
Comentários não relacionados com este tópico foram transferidos para "Perguntas dos principiantes do MQL4 MT4 MetaTrader 4".
 
Nikolay Kositsin:

Obrigado, mas infelizmente, tal construção apenas carrega imagens em tempo de compilação, enquanto deve ser carregada para o ficheiro compilado em tempo de execução. Então a função ResourceCreate() na MQL4 não funciona de forma alguma? Talvez, os programadores simplesmente se tenham esquecido de adicionar um código para ele no tumulto dos acontecimentos?

Talvez.
Fixaram recentemente a ResourceReadImage.
 
Não há mensagem de erro:
class B {
enum E { function };
        void function() {} //нормально ???
        void g() { function(); }
};

mas é assim que as coisas são:

class A {
public:
        void function() {}
};
class B : public A {
enum E { function };
        void g() { function(); } //Error: ')' - expression expected
};

Qual é a diferença fundamental?

 
compilar falha com operador ternário
compilar falha com operador ternário ?

interface A{};
class B:public A{};
class C:public A{};
void OnStart(void)
  {
   A* x=(true)? new B : new C; //invalid cast operation
  }


alguma sugestão?
porquê?