Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий - страница 39

 

Работая над автоматизацией оптимизации и Frame-режимом понял, что к функции ParameterSetRange очень нужны функции int ParametersTotal() и string GetParameterName(int index) для перебора параметров.

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

Уверен, что необходимость этих функций очевидна и не надумана. И легко реализуется.

 
Edgar:

Работая над автоматизацией оптимизации и Frame-режимом понял, что к функции ParameterSetRange очень нужны функции int ParametersTotal() и string GetParameterName(int index) для перебора параметров.

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

Уверен, что необходимость этих функций очевидна и не надумана. И легко реализуется.

Вы можете их сами написать.

 

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

template<typename T>
void f(T&[], T) {}

void f(char&[], char) {} // Функция является подходящей

void OnStart()
{
  char arr[];
  f(arr, 0); // template parameter ambiguous, could be 'char' or 'int'
}
 
Alexey Navoykov:

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

Без этой ошибки можно очень долго искать причину, почему код не работает, как задумал.

 
fxsaber:

Вы можете их сами написать.

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

Я не требую аврально добавить новые возможности. Это предложение в роадмап. А, учитывая простоту выведения уже имеющейся в терминале возможности в API - куда-то близко к началу списка.

 
Edgar:

читать и парсить служебные файлы, к тому же в недоступной папке, через системный линк -  это костыли.

Можно сделать так, чтобы  и для Маркета подходило.

 
fxsaber:

Без этой ошибки можно очень долго искать причину, почему код не работает, как задумал.

Как задумал - это как-раз вторая функция.  Для того и делалась перегрузка.
 
Alexey Navoykov:
Как задумал - это как-раз вторая функция.  Для того и делается перегрузка.
f(arr, (char)0);
 
fxsaber:
Задача перегрузок - именно в том, чтобы избежать явных преобразований.  Вообще явными приведениями лучше не злоупотреблять, они то как-раз и таят в себе источник трудноуловимых ошибок.
 
Alexey Navoykov:
Задача перегрузок - именно в том, чтобы избежать явных преобразований.  Вообще явными приведениями лучше не злоупотреблять, они то как-раз и таят в себе источник трудноуловимых ошибок.
f(arr, 321);