Ошибки, баги, вопросы - страница 2184

Vitaly Muzichenko
9909
Vitaly Muzichenko  

В мт4 передаётся без проблем.

Как передать массив в мт5?

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]) { }
A100
1873
A100  
Vitaly Muzichenko

Как передать массив в мт5?

В С++ это выглядело бы примерно так:

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

Ошибка при выполнении

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

Результат:   0

Ожидалось: 1

Vitaly Muzichenko
9909
Vitaly Muzichenko  
A100:

В С++ это выглядело бы примерно так:

А в mql5 как?

A100
1873
A100  
Vitaly Muzichenko:

А в mql5 как?

Нет подобного механизма

A100
1873
A100  

Непонятно

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
}

В первом случае - нормально, во втором - ошибка при компиляции. А какая разница?  

A100
1873
A100  

Ключевые слова неправильно работают в препроцессоре

//#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
}

Результат:   1

Ожидалось: 2

A100
1873
A100  
Vladimir Karputov:

Об этой ошибке знают и исправляют. Сам жду.

Что то долго исправляют https://www.mql5.com/ru/forum/216476/page7#comment_5834235 

Там было

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

Здесь

#include <Trade/Trade.mqh>
class Entry {};
а сама заявка #1660355 по сути была уже больше года назад https://www.mql5.com/ru/forum/1111/page1797#comment_4042334
Предложение для удобства использования MetaEditor
Предложение для удобства использования MetaEditor
  • 2017.09.29
  • www.mql5.com
Здравствуйте. Хотел бы предложить разработчикам сделать в MetaEditor стандартизировать отступы при написание кода, как это сделано в VisualStudio...
fxsaber
10290
fxsaber  

Предлагаю в OnTesterInit дать возможность указания основного символа тестирования

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");
}
fxsaber
10290
fxsaber  

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

В отличие от двух предыдущих, данный режим оптимизации позволяет испытать советника с одинаковыми входными параметрами, но на различных символах. При каждом проходе оптимизации изменяется только основной символ тестирования советника, иными словами, символ графика, к которому был бы прикреплен советник.

Оптимизация проходит только на тех символах, которые в текущий момент выбраны в окне "Обзор рынка". Таким образом, регулируя набор выбранных символов, можно управлять оптимизацией.

  • Следует учитывать, что закачка необходимых ценовых данных с сервера может занимать продолжительное время. Однако замедление процесса оптимизации в результате закачки данных происходит только при первом ее запуске на символе, в последующем докачиваются лишь недостающие данные.
  • При оптимизации по символам используются текущие значения входных параметров, указанные в колонке "Значение".


Сильно не хватает режима Оптимизации, когда идет последовательный перебор символов из Обзора рынка и в каждом идет Оптимизация входных параметров.

Такой режим очень востребован, когда ищешь подходящий символ для ТС. И особенно актуален на фоне существования кастомных символов - создаешь различные кастомные символы и смотришь в Оптимизаторе их свойства.

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