Коды

TesterEquity для MetaTrader 4

Строит график эквити по результатам тестирования советника

ExpertWindowResize для MetaTrader 4

Позволяет увеличивать размеры окон с параметрами советников для удобства работы

ChartBuilder для MetaTrader 4

Позволяет легко строить любые синтетические графики с участием любого количества торговых интрументов. Достаточно лишь задать формулу

HistoryBarsEditor для MetaTrader 4

Лёгкое редактирование истории котировок прямо на графике с помощью мыши

DeleteSpike для MetaTrader 4

Удаление нерыночных котировок парой щелчков мыши

Форум

Проблемы автовалидации продукта в маркете

Автовалидация индикатора завершилась с ошибкой, вызванной какими-то проблемами на стороне сервера: test on EURUSD,M30 (netting) not synchronized with trade server И что теперь делать? Как запустить повторную автовалидацию

Баг компилятора: ambiguous call to overloaded function with the same parameters (шаблоны с указателями)

Ошибка компилятора. Не может определиться между шаблонами, хотя неоднозначности тут нет. В верхнем шаблоне указатель a должен быть неконстантным. В C++ всё работает. template < typename T> void set(T*&a, T*b) { a=b; } template < typename T> void set( const T*&a, const T*b) { a=b; } // Должен

Предложение - кастинг структур от базовых к производным

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

Баг компилятора: неверный приоритет кастинга

Ошибка компилятора. В приведённом коде он не может определиться между даун-кастом (который всегда разрешён неявно), и ап-кастом (который вообще недопустим в неявном виде в других языках). Если уж в MQL по какой-то причине разрешают неявный ап-каст (что само по себе ошибка), то он хотя бы должен

Недоработки компилятора в неявном операторе копирования

Хочу обратить внимание разработчиков, что нынешняя реализация неявного оператора копирования в MQL сделана некорректно. Рассмотрим две ситуации. 1. class NonCopyable { private : void operator =( const NonCopyable&); }; class A : public NonCopyable { }; void OnInit () { A a; a=a; // Нет

Баг компилятора - ошибка передачи указателей в шаблоны

Билд 1966, 64 бит. Компилятор некорректно воспринимает шаблон, заданный в такой форме: template < typename T> void f(T const &) { } либо template < typename T> void f(T const &[]) { } В такие шаблоны невозможно передать указатели, ни в каком виде: template < typename T> void f(T const &) { }

Баг компилятора в шаблоне: template parameter ambiguous

Билд 1966, 64 бит. В данном примере компилятор выдаёт ошибку о неоднозначности, хотя тут всё однозначно, ведь массив long[] не может преобразовываться в int[]. template < typename T> void f(T&[], T) { } void OnInit () { long arr[]; int a; f(arr, a); // template parameter ambiguous, could be

Баг компилятора: not actual parameters count for macro

Билд 1966, 64 бит. Ошибка в макросах: void F( int , int ) { } #define M(a) F(a, 0 ) #define F(a) M(a) void OnInit () { F( 1 ); // 'F' - not actual parameters count for macro } В C++ работает корректно

Баг компилятора. Не учитывает константность возвращаемого значения в операторах.

Билд 1966, 64 бита. Компилятор не учитывает константность возвращаемого значения в операторах. struct A { char _a; A() { } A( const A&) { } const A operator =( const A&) { return this ; } const A f() { return this ; } }; void OnInit() { A a; (a=a)=a; // Нет ошибки

Баг компилятора при параметре шаблона = void*

Ошибка компилятора. Билд 1961, 64 бит. template < typename T> class A { }; A< void *> a; // '<' - cannot to apply function