Erros, bugs, perguntas - página 2184

 

Transfere para o mt4 sem qualquer problema.

Como transfiro uma matriz para o mt5?

void OnTick()
 {
  int m[][2];
  Array(m);

  int k[][3];
  Array(k); // 'k' - parameter conversion not allowed
 }

template<typename T>
void Array(T& arr[][2]) { }
 
Vitaly Muzichenko

Como se passa um array em mt5?

Em C++ pareceria algo como isto

template<typename T, int n>
void Array(T arr[][n]) {}
 

Erro durante a execução

struct A {
        A() : i( 1 ) {}
        int i;
};
struct B : A {};
void OnStart()
{
        B b;
        Print( b.i );
}

Resultado: 0

Espera-se: 1

 
A100:

Em C++ teria um aspecto semelhante a este:

Mas em mql5 como?

 
Vitaly Muzichenko:

Que tal em mql5?

Não existe tal mecanismo

 

Mal compreendido .

struct String {};
String f1() { String s; return s; }
string f2() { string s; return s; }
void   g1( String& ) {}
void   g2( string& ) {}
void OnStart()
{
        g1(f1()); //нормально
        g2(f2()); //Error: 'f2' - parameter passed as reference, variable expected
}

No primeiro caso está bem, no segundo é um erro de compilação. Qual é a diferença?

 

As palavras-chave não funcionam correctamente no pré-processador

//#define struct class 
struct A {
#ifdef struct
public:
        void f( A* ) {} //Error ???
#else
        void f( A& ) {}
#endif
};
//#define string String 
void OnStart()
{
#ifdef string
        Print( 1 );
#else
        Print( 2 );
#endif
}

Resultado: 1

Previsto: 2

 
Vladimir Karputov:

Este erro é conhecido e está a ser corrigido. Eu próprio estou à espera.

Está a demorar muito tempo a arranjar https://www.mql5.com/ru/forum/216476/page7#comment_5834235

Ali estava ela.

#include <Controls\WndContainer.mqh>
class Rect {};

Aqui

#include <Trade/Trade.mqh>
class Entry {};
e a aplicação em si #1660355 já foi, de facto, há mais de um ano https://www.mql5.com/ru/forum/1111/page1797#comment_4042334
Предложение для удобства использования MetaEditor
Предложение для удобства использования MetaEditor
  • 2017.09.29
  • www.mql5.com
Здравствуйте. Хотел бы предложить разработчикам сделать в MetaEditor стандартизировать отступы при написание кода, как это сделано в VisualStudio...
 

Sugiro que o OnTesterInit permita que o símbolo principal do teste seja especificado

enum ENUM_TESTER_INFO_STRING
{
  TESTER_SYMBOL;
};

string TesterInfoString( const ENUM_TESTER_INFO_STRING property_id );
bool TesterSetString( const ENUM_TESTER_INFO_STRING property_id, const string property_value );

void OnTesterInit()
{
  TesterSetString(TESTER_SYMBOL, "EURUSD");
}
 

Все символы, выбранные в окне "Обзор рынка"

Ao contrário dos dois anteriores, este modo de optimização permite testar a EA com os mesmosparâmetros de entrada, mas em símbolos diferentes. Em cada aprovação de optimização, apenaso símbolo principal doteste EA é alterado, por outras palavras, o símbolo gráfico ao qual a EA seria anexada.

A optimização é realizada apenas nos símbolos que são actualmente seleccionados na janela"Market Watch". Desta forma, pode gerir a optimização ajustando o conjunto de símbolos seleccionados.

  • É favor notar que o descarregamento dos dados de preços requeridos do servidor pode demorar muito tempo. Contudo, a lentidão do processo de optimização como resultado do descarregamento de dados ocorre apenas quando este é lançado pela primeira vez num símbolo, subsequentemente apenas os dados em falta são descarregados.
  • Os valores actuaisdos parâmetros de entrada especificados na coluna "Valor" são utilizados durante a optimização dos símbolos.


Falta muito o modo Optimização, quando há uma enumeração sequencial de símbolos do Market Watch e em cada um deles há uma Optimização dos parâmetros de entrada.

Este modo é muito útil quando se procura o símbolo apropriado para TS. E é especialmente relevante quando existem símbolos personalizados - criam-se diferentes símbolos personalizados e observam-se as suas propriedades no Optimizer.

Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...