деревья и леса

 

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

Если конкретнее, то интересуют деревья (и леса) общего вида (не бинарные), с вершинами (и/или рёбрами) помеченными простыми структурами.

 

да еееесть ...

https://www.mql5.com/ru/forum/36549

Обсуждение статьи "Случайные леса предсказывают тренды"
Обсуждение статьи "Случайные леса предсказывают тренды"
  • 2014.09.29
  • www.mql5.com
Изначально, целью построения торговой системы является предсказание поведения некоторого рыночного инструмента, например, валютной пары.
 

Структурно - каждый элемент дерева должен иметь указания на вышестоящий элемент и нижестоящие.

Физически - массив структур, например. Указаниями выступают индексы массива.

 
Renat Akhtyamov:

да еееесть ...

https://www.mql5.com/ru/forum/36549

Это не структуры данных, это алгоритмы.

 
secret:

Структурно - каждый элемент дерева должен иметь указания на вышестоящий элемент и нижестоящие.

Физически - массив структур, например. Указаниями выступают индексы массива.

Ну да, один из вариантов. Но у нас же есть ещё ссылки и шаблоны - видел такой пример в статье про синтаксический анализатор (файл Prsr.mqh). Потому и интересуюсь, какой вариант лучше. 

Синтаксический анализ MQL средствами MQL
Синтаксический анализ MQL средствами MQL
  • www.mql5.com
Суть программирования заключается в формализации и автоматизации неких процессов с помощью языков общего или специального назначения. Торговая платформа MetaTrader позволяет применять программирование для решения самых разных задач трейдера, благодаря встроенному языку MQL. И обычно процесс программирования строится на анализе и обработке...
 
Aleksey Nikolayev:

Ну да, один из вариантов. Но у нас же есть ещё ссылки и шаблоны - видел такой пример в статье про синтаксический анализатор (файл Prsr.mqh). Потому и интересуюсь, какой вариант лучше. 

Там мозг можно свернуть) ООП обычно красивее, но медленнее.

Быстрее только указатели на память, но их в mql нет, насколько я понял.

 
secret:

Там мозг можно свернуть) ООП обычно красивее, но медленнее.

Быстрее только указатели на память, но их в mql нет, насколько я понял.

Тоже думаю больше про массив, но в случае активного изменения дерева (частого добавления и удаления веток) теряется эффективность либо по памяти, либо по времени. И внесение изменений в код может оказаться непростым делом.

 

В случае изменения дерева ссылки вообще не подойдут - они неизменяемы. Во всяком случае в языке C, вникать в mql-багофишки у меня нет желания :)

Aleksey Nikolayev:

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

Ну это нормальное явление, как правило код можно сделать оптимальным или по скорости, или по объему памяти, совместить это удается не всегда.

Лично я в mql подобные вещи делал на массивах, с внесением изменений проблем вроде не было.

 
Aleksey Nikolayev:

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

Если конкретнее, то интересуют деревья (и леса) общего вида (не бинарные), с вершинами (и/или рёбрами) помеченными простыми структурами.

тут друг спрашивает.... а для какой цели нужны деревья?  )))


сами деревья портировать в MQL не сложно , в СБ были CNode и CTree - кажется так назывались

на Хабре было, что почитать - гугл..



тут в общем, если исследовательская работа, то я бы посоветовал бы в сторону SQL подумать - все готово, останется только структуру БД продумать

если нужен тестер с быстрой оптимизацией, то... динамический массив с резервированием по максимальному размеру массива - 3-й параметр ArrayResize() - реально ускоряет, в оптимизаторе проверял

 
Igor Makanu:

тут друг спрашивает.... а для какой цели нужны деревья?  )))

Хочется как-то потоньше поисследовать фрактальную структуру цен, а фракталы - это всегда деревья (L-системы, например).

Igor Makanu:

сами деревья портировать в MQL не сложно , в СБ были CNode и CTree - кажется так назывались

на Хабре было, что почитать - гугл..

Они вроде бы для двоичных

Igor Makanu:

тут в общем, если исследовательская работа, то я бы посоветовал бы в сторону SQL подумать - все готово, останется только структуру БД продумать

если нужен тестер с быстрой оптимизацией, то... динамический массив с резервированием по максимальному размеру массива - 3-й параметр ArrayResize() - реально ускоряет, в оптимизаторе проверял

SQL - всё же для хранения, скорее. Для расчётов лучше с массивами, конечно. Просто подумал, что вдруг кто-то делал что-то подобное.

 
Aleksey Nikolayev:

Хочется как-то потоньше поисследовать фрактальную структуру цен, а фракталы - это всегда деревья (L-системы, например).

По стопам Гудылина?)

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