Новая версия платформы MetaTrader 5 build 3800: ордера Book or Cancel, помощь AI при написании кода и расширенная поддержка ONNX - страница 23

 

Билд 3905



   MqlParam array_dst[];
   MqlParam array_src[];
   ArrayCopy(array_dst,array_src); // 'array_dst' - structures or classes containing objects are not allowed

Из справки:

Примечание

Если count<0 либо count>src_size-src_start, то копируется весь остаток массива. Массивы копируются слева направо. Для серийных массивов правильно переопределяется стартовая позиция с учетом копирования слева направо.

Если массивы разных типов, то при копировании производится попытка преобразования каждого элемента исходного массива к типу приемного массива. Строковый массив можно скопировать только в строковый массив. Массивы классов и структур, содержащих объекты, требующие инициализации, не копируются. Массив структур можно скопировать только в массив того же самого типа.

Почему не копирует, если явно массивы одного типа, и явно не запрещены для копирования массивы структур?
Документация по MQL5: Операции с массивами / ArrayCopy
Документация по MQL5: Операции с массивами / ArrayCopy
  • www.mql5.com
ArrayCopy - Операции с массивами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin #:

Почему не копирует, если явно массивы одного типа, и явно не запрещены для копирования массивы структур?

В этом случае ведь проблема не в несовместимости типов, а в том, что структура MqlParam не имеет точного размера из-за наличия члена string_value.

 
Ihor Herasko #:

В этом случае ведь проблема не в несовместимости типов, а в том, что структура MqlParam не имеет точного размера из-за наличия члена string_value.

   string array_dst[];
   string array_src[];
   ArrayCopy(array_dst,array_src); // OK

Массив-исходник MqlParam уже имеет точный размер же. Почему тогда массивы строковых типов копируются без проблем?

Впрочем, могу поэлементно скопировать - не проблема. Но интерес есть почему "нет"

 
How do I now calculate R2 for a vector, just for a vector with a balance curve, for example, that is when vector true is not needed?
 
Artyom Trishkin #:

Массив-исходник MqlParam уже имеет точный размер же. Почему тогда массивы строковых типов копируются без проблем?

Впрочем, могу поэлементно скопировать - не проблема. Но интерес есть почему "нет"

string ведь не составной объект, а MqlParam - составной. Я так понимаю, что в MQL еще не решили проблему копирования составных типов данных, состоящих из значений переменного размера. Возможно, в будущем решат, как и в C++. Ведь когда-то даже массивы структур с постоянным размером не копировались, приходилось перегружать оператор присваивания. Так что прогресс все равно есть.

 
David Perrot #:
How do I now calculate R2 for a vector, just for a vector with a balance curve, for example, that is when vector true is not needed?

Use vectorX.RegressionMetric(model, REGRESSION_R2)), where model can be obtained as vectorX.LinearRegression().

 
#property script_show_inputs
#property link "https://www.mql5.com/ru/forum/86386/page3216#comment_49148211"

void OnStart() {}

При запуске этого скрипта через GUI жму на ссылку


и не попадаю на соответствующий комментарий в этой ссылке

b3893, просьба исправить.

Строка для поиска: Uluchshenie 067.
Машинное обучение в трейдинге: теория, модели, практика и алготорговля - Создайте ряды баров, чтобы эти 100 стат Характеристик совпадали.
Машинное обучение в трейдинге: теория, модели, практика и алготорговля - Создайте ряды баров, чтобы эти 100 стат Характеристик совпадали.
  • 2023.09.05
  • www.mql5.com
автоматическим торговым системам и тестированию торговых стратегий. Думаю отличие в серийности или повторяемости подряд идущих баров тиков. В итоге несколько подряд рандомизаций создают просто прямую линию. Получал синтетические значения признаков из исходных
 

Как то так, исчезла подсветка

 

Ошибка орфографии в справке


 
Taras Slobodyanik #:
Билд 3815, функция iBarShift может возвращать номер бара за пределами "Max bars in chart"-1, но функции типа iTimes не видят этих баров.

тоже само с функцией: ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR);

при нажатии кнопки 'Home', функция возвращает бар больший чем  "Max bars in chart", и функция "CopyTime" не срабатывает, бары не копируются.