Библиотеки: ArrayEx

 

ArrayEx:

Библиотека реализует 3 основных функции работы с двумерными массивами: сортировка, группировка, выборка - по множественным критериям.

Author: Андрей

 

ЕЕЕЕМАЕ........

 
basile:

ЕЕЕЕМАЕ........

Это должно означать что-то типа "Нифига! Дайте две" ?

 

Спасибо, нужная библиотека.

Если можно, поясните пож-ста, что означает: значения в колонке нормализованы одинаково.

 
zigan:

Спасибо, нужная библиотека.

Если можно, поясните пож-ста, что означает: значения в колонке нормализованы одинаково.

Вообще, для безошибочного сравнения значений типа double оба сравниваемых значения должны быть нормализованы при помощи функции NormalizeDouble(data, digits). Поэтому при заполнении массива следует избегать выражений типа a[2][3]=1/3; особенно это касается например расчетных значений цены - что-то типа Close[0]+(Close[0]-Close[1]) * 1.618. Подобные выражения нужно нормализовывать - NormalizeDouble( Close[0]+(Close[0]-Close[1]) * 1.618, Digits). Рассматривая массив как базу данных, необходимо обеспечить в одной колонке данные одинаковой размерности - только int, только date, только double c фиксированной точностью. Хотя выполнение алгоритмов от этого не пострадает, смешение в одной колонке разных сущностей (например дата и цена) - не имеет смысла.

 
Работает!, то что надо))) спасибо автору. Не много напрягает нумерация колонок по абсолютному значению начинается с 1 (!), удобней было бы с нуля.
 
Ivan Kornilov:
 Не много напрягает нумерация колонок по абсолютному значению начинается с 1 (!), удобней было бы с нуля.

... в любом случае, замечательная библиотека! thanks a lot!.. жаль, что только для простых типов... не уверена, что смогу её доделать под string array или на template-functions -- возможно ли это? (если кто знает)... наверно на string array, вообще не переделать, т.к. нужно выравнивание по памяти?..

в принципе, автор об этом и написал:

Андрей:

 необходимо обеспечить в одной колонке данные одинаковой размерности - только int, только date, только double c фиксированной точностью

вопросы снимаются) благодарность остаётся)

P.S.

уже  встречаются и др спосбы сортировки

ArrayEx
ArrayEx
  • www.mql5.com
Библиотека реализует 3 основных функции работы с двумерными массивами: сортировка, группировка, выборка - по множественным критериям.
 
JeeyCi:

... в любом случае, замечательная библиотека! thanks a lot!.. жаль, что только для простых типов... не уверена, что смогу её доделать под string array или на template-functions -- возможно ли это? (если кто знает)... наверно на string array, вообще не переделать, т.к. нужно выравнивание по памяти?..

в принципе, автор об этом и написал:

вопросы снимаются) благодарность остаётся)

P.S.

уже  встречаются и др спосбы сортировки

Стандартная библа перекрывает же уже эту.  стринги там хоть в 10-ти мерный массив делайте.

 
Aleksey Mavrin:

Стандартная библа перекрывает же уже эту.  стринги там хоть в 10-ти мерный массив делайте.

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

P.S. я на MQL4, а MQL5 вроде уже даже многопоточен может быть...

 
Aleksey Mavrin:

Стандартная библа перекрывает же уже эту.  стринги там хоть в 10-ти мерный массив делайте.

ну, не совсем стандартная (stdlib), но всё-таки родная - здесь указали - #include <Arrays\ArrayObj.mqh>  - содержит QuickSort и InsertSort (но есть свои нюансы)

p.s.

вобщем, standardlibrary (правда MQL5) - Aleksey Mavrin, спасибо вам -  поняла, что мне не индюков и экспертов надо искать на форуме, а изучить имеющиеся классы и можно, даже наследуясь от них, создавать свои удобные абстракции(классы), помещать их в свою библиотеку, чтобы использовать создаваемые ими объекты в своей работе, своих скриптах, индюках и экспертах -- воистину, библиотека - это сила, а уже имеющаяся библиотека (.mqh-файл) - это удобная отправная точка...

p.p.s.

но всё-равно пока склоняюсь к тому, что тип данных string удобнее обрабатывать в dll, например на C++ или др, хоть и не часто это надо...

Documentation on MQL5: Standard Library
Documentation on MQL5: Standard Library
  • www.mql5.com
Standard Library - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
JeeyCi #:

 - но я пока такой шедевр не могу изобрести (надо с указателями ещё по-лучше познакомиться)) 

хотя уже всё есть - а ведь надо было только Компаратор переопределить в наследнике от public CObject

p.s. или здесь

Array of Struct Sort using standard LIbrary
Array of Struct Sort using standard LIbrary
  • 2017.06.10
  • www.mql5.com
Hello, is there a way to sort a struct based on an element inside it? If i need to sort out a struct like based on Symbolname...
Причина обращения: