Пожелания к MQL5 - страница 3

 
alexnau:
wellx:
Уже писал ранее, но все же повторю:
- callback функции по работе с самим терминалом
- обрыв/восстановление коннекта
- управление очередью из нескольких советников (мьютексы, крит. секции....)
- отладчик (хоть какой-либо)
- поддержка прямой нумерации баров (от старого к самому свежему) с оповещением о смене кол-ва баров
- создавать dll из функций MQL (поможет создавать библиотеки , что уменьшит общий код при большом кол-ве индикаторов)


решать проблемы с неопределенностью, врядли это улучшит обновленный MQL. Зачем какие-то оповещания, чтобы потом высчитывать номер текущего бара (нулевого)?!

Несмотря на "обратный отсчет" логика определения необходимого бара понятна и проста, по-моему.

Я не прошу сменить текущий вариант, а лишь добавить поддержку. Что это даст - не надо пересчитывать историю при каждом новом баре, надо только проверить изменение кол-ва баров. Как результат - уменьшение нагрузки на терминал. а подкачка вглубь не так часто происходит.
 
Количесвто баров можно и сейчас контролировать. Bars для этого и служит.
 
alexnau:
wellx:
- поддержка прямой нумерации баров (от старого к самому свежему) с оповещением о смене кол-ва баров


решать проблемы с неопределенностью, врядли это улучшит обновленный MQL. Зачем какие-то оповещания, чтобы потом высчитывать номер текущего бара (нулевого)?!

Несмотря на "обратный отсчет" логика определения необходимого бара понятна и проста, по-моему.


Это сведёт проблему поиска нужного бара в истории к указанию его "обратного" индекса и будет значительно экономнее.

Э-эх, былого энтузиазма и оптимизма нет :), ну да добавлю 5 копеек:

В тестере вместо режима "контрольные точки" добавить в режим "все тики" параметр "число запусков эксперта на бар". Режим "по ценам открытия" всё равно не отменять, т.к. для него используется более компактный fxt. Впрочем нет, его лучше заменить на режим "по ценам закрытия" :)

И повторюсь:

-Добавить связывание в init глобальных переменных с переменными программы.

-Делать для тестера exe файл.

-Добавить к индикаторным буферам-таймсериям обычные буферы(для каждого типа переменных) - для эффективного обмена данными с экспертом

 
Еще: добавить возможность тестирования заданного файла fxt с произвольным именем. К чему существующая сейчас жесткая связь между именем файла fxt и символом?
 
Вот мои пожелания к новой системе, которые пока приходят в голову (в порядке уменьшения):

Язык
----

Преобразование double в string с максимальной точностью (> 8)

Условная компиляция (#ifdef, #ifndef, #define, #undefine)

Возможность заменять ключевые слова при помощи #define (для условной компиляции). Значение м.б. пустым.
пример:
//#define EXTERN extern          // normal
#define EXTERN                       // contest
EXTERN int opt = 0;

Вложенные комментарии /* */
Не ANSI, но реализовано практически везде (и отключаемо). Позволяет быстро закомментировать большой кусок кода с нормальными текстовыми комментариями.

Структуры (обещано)

Многомер.массивы, лучшее дин.упр-е

Отладчик (обещано?)

События

Исключения

API

Указатели или аналог, для списков, деков, ...

Интерфейс к БД (SQL или ODBC). БД не должна быть сервером.

Inline функции

Function overload

Obfuscating (затруднение декомпиляции).
Шифрование строк с однократным дешифр. при инициализации эксперта, изменение code flow, перемешивание кода, не удалять неиспользуемый код,
добавлять мусорный код и данные...
управление всем этим при помощи #pragma


Терминал
--------
В настройках указывать программу или MQL скрипт с опциями (и метапеременными) для вызова перед (и после?) компиляции (для кастомного препроцессинга).


Редактор
--------
Операции Comment/uncomment (кнопкой и/или хоткеем)
 
1. Сделать тестер в отдельной проге (как редактор MQL и терминал).
2. Сделать более мощный генетический алгоритм (чтобы мог тестировать при количесве вариантов 10 в 20-й степени).
3. Ускорить процесс тестирования. (просто 15-30 часов ждать результат это просто убийственно!).
4. Ввести функцию переворота позиции (т.е. если есть позв бай лотом 5 простой функцией можно было переделать в селл 5 лотов).
Пока всё.
 

Еще по тетеру пожелание. Было бы хошо если можно будет задавать кроме периода оптимизации, период перекресной проверки найденых параметров. Данная фича немного спасасает от переподгонки торговой системы (или переобучении НС).

 
Хочу функцию. Входные данные - данные по оптимизации плюс диапазон возвращаемых значений. На выходе - естественно оптимизированные значения.
 
klot:

Еще по тетеру пожелание. Было бы хошо если можно будет задавать кроме периода оптимизации, период перекресной проверки найденых параметров. Данная фича немного спасасает от переподгонки торговой системы (или переобучении НС).

Вот это действительно надо.
 
Integer:
drknn:
Ну, у меня скромное предложение. Предлагаю ввести в язык функцию, которая будет возвращать номер ячейки массива, в которой лежит заданная величина (или в случае неуспеха возвращать минус единицу). А то приходится каждый раз организовывать цикл. Функция ArrayBsearch() - не подходит - возвращает не то, что нужно.

Значение вернутое этой функцией всеравно будете проверять на равенство -1, поэтому можно проверирить значение с индексом вернутым ArrayBsearch на равенство искомому значению. Не большая разница

Цитирую справку.

int ArrayBsearch(...) 
Возвращает индекс первого найденного элемента в первом измерении массива.
Если элемент с указанным значением в массиве отсутствует, функция вернет индекс ближайшего элемента (по значению).

Ну так вот, когда ищешь в массиве индекс не просто числа, а тикета ордера, то эта функция не подходит совсем - ну зачем мне индекс ближайшего похожего тикета, когда мне нужен именно вот такой тикет, и если его нет, то и ордера уже среди рыночных нет - он закрыт и его надо искать в истории! Когда работаешь с синхронно сдвигаемыми массивами, индекс - штука весьма существенная, и он должен быть либо точным, либо отсутствовать.


Причина обращения: