Alexey Navoykov / Публикации
Коды
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