парни очень нужна консультация программиста на С++
суть: не могу разобраться с векторами (((
пишу ДЛЛ пока для МТ4
дан двумерный ДИНАМИЧЕСКИЙ массив баров.
необходимо этот массив передать в ДЛЛ.
в С++ как таковое отсутствует понятие ДИНАМИЧЕСКОГО массива ((( поэтому через вектора…
но информация слишком скудная в нете…
не могу понять как вектор двумерного массива инициализировать в классе, как в отдельной функции добавлять в него новые элементы, и как из другой функции читать..
Crazy Trading, инициализировать надо в конструкторе, а для добавления/удаления элементов — в классе сделать функции-обёртки, в которые будешь передавать элемент для добавления или индекс для удаления
Тунеядец, вектор как раз подойдет… так как он динамически расширяется, а вот в втоем примере во первых мало баров… надо как минимум 100 000 для КАЖДОГО таймфрейма, ну и инструментов не одна сотня ))
Что есть «вектор» в с++ — не знаю:)
есть след варианты решения:
1. статические массивы 4 байта(дабл) * 4(хай, лоу, опен, клозе) * 100000 (баров) * 100(инстурментов) = 160 000 000 = 160 мбайт вроде? если я не ошибся делай так — самый быстрый и простой вариант
2. динамические массивы — хранится в памяти куском, при каждом изменении размера выделяет кусок целиком. Забудь…
3. списки… вариантов реализации масса, в делфи сделано более менее удобно…
4 байта(дабл) * 6(время открытия, хай, лоу, опен, клозе, объем) * 100000 (баров) * 100(инстурментов) * 9 таймфреймов = 2 160 000 000 (2 гига)
также к каждому таймфрейму создается 2 искусственных таймфрейма… тоесть к тому что есть прибавляем еще 4 гига (((
но это всего лишь ДАННЫЕ!!!
теперь для каждого имея на по 3 таймфрейма необходимо создать один с пересчитанными значениями…
тоесть если есть 5 минутки и мы создали еще 2 искусственных, то пересчитав эти три таймфрейма, мы получим еще один массив, тоесть еще 2 гига… итого 6 гигов (((
Crazy Trading, ты по другому проблему не решишь — либо упрешься в физический потолок либо в быстродействие. Если реально есть необходимость в хранение такой тучи данных (а скорее всего ее нет:) то варианты:
1. статика со сдвигами памяти (не нужные данные убираем на их месть двигаем необходимые, в конец дописываем новые) — вряд ли ты будешь заглядывать на 5и минутках в прошлый год например
2. списки, но тут конечно можешь и 16гигов в комп воткнуть но потолок все рано будет
3. хранить все в базе данных быстрой
ну есть еще наколхозить решений, в зависимости от твоих потребностей.
если хочешь динамически выделять массивы — попробуй метров на сто массив выделить и перекроить — увидишь сколько это по времени занимает…
xTestero, спасибо… тоже об этом уже думал…
пока пришел к следующему решению:
2 массива с искусственными таймфреймами мне необходимы чтобы делать свои рассчеты, после которых эти данные в этих массивах не нужны, а это повторюсь 4 гига памяти… поэтому эти данные храниться не будут. при создании нового искусственного бара будет сразу происходить необходимый пересчет без занесения этого бара в массив.
Кросс-курс AUD/JPY провел прошлую неделю в узком диапазоне. Пара тестировала серией свечных доджи пробитую линию поддержки восходящего канала (проходящую через точки 1 и 2), а также уровень...
Если вы ещё не участвовали — сейчас самое время. Условия участия:
— купить от 100 акций $MGKL в период до 30 апреля
— написать пост в Пульсе с тикером $MGKL
— подписаться на профиль...
Свежие идеи ПИФ Alenka Capital - опять перетрясли портфель, а с начала года доходность упала с +11% до +6% . Подглядываем за Элвисом вместе
Продолжаем серию ежемесячных постов с отслеживанием покупок/продаж профессиональными управляющими. Особенно теми, кто управляет МИЛЛИАРДАМИ рублей в акциях. Зачем? Посмотреть, как думают профи —...
Русснефть: полицейский разворот прибыли в нефтянке - все видно в 1-м квартале по РСБУ
Русснефть — не самый интересный актив на просторах российского нефтегаза. Мутный мажоритарий, не платит дивиденды, но многих привлекает график, где котировка иногда делает маршрут от 100 до 300...
Бекас, говорят ага, за вольнодумство, но за другое — в контрах конкретных он с тогдашним Верховным оказался — раз, очень надо было кого-то убить революционным террористам — два. Ну в управлении реп...
Элитку содержат приватизаторы. Они в неоплатном долгу перед властьимущими
Абрамович был близок к «семье» — ближнему окружению Ельцина, в которое входили его дочь Татьяна Дьяченко, зять Валентин Ю...
Если конечно, там не иная логика — одновременно со снижением ставки ЦБ резко ослабить рубль и по хаям раздать испуганному плебсу валюту, таким образом стерилизовав внушительную часть денежной ма...
Дома я сразу принялась читать. Вскоре пришёл Отто. Я как раз хохотала над очередным бездарным восхвалением Сталина. Отто спросил, что я читаю. Я рассказала.
— Но это страшная дрянь, невозможно читат...
Егор Кожемякин, Алиев это пуп земли?) Через пару лет в Айзере закончится нефть, и тогда они начнут сами её активно покупать. Сейчас Айзер это нефть и помидоры, они ничего из себя не представляют. И...
Дух Анкориджа, это для них вопрос существования, а не технической исправности скважин. Им пох… они и остров сожгут, если надо будет.
Надо понимать психологию народа, страны.
Это не Венесуэла, к...
в конструкторе инициализируй приватный вектор:
www.cprogramming.com/tutorial/constructor_destructor_ordering.html — это про конструкторы
ну и соответственно, сделай public-функции для управления этим вектором
и нигде нет банального решения простой задачи:
в классе tf должен быть вектор двумерного массива.
как его инициализировать и как к нему обращаться?
мне не понятен синтаксис инициализации
double[,] candles = new double[10,30000]; не подойдёт?
есть след варианты решения:
1. статические массивы 4 байта(дабл) * 4(хай, лоу, опен, клозе) * 100000 (баров) * 100(инстурментов) = 160 000 000 = 160 мбайт вроде? если я не ошибся делай так — самый быстрый и простой вариант
2. динамические массивы — хранится в памяти куском, при каждом изменении размера выделяет кусок целиком. Забудь…
3. списки… вариантов реализации масса, в делфи сделано более менее удобно…
4 байта(дабл) * 6(время открытия, хай, лоу, опен, клозе, объем) * 100000 (баров) * 100(инстурментов) * 9 таймфреймов = 2 160 000 000 (2 гига)
также к каждому таймфрейму создается 2 искусственных таймфрейма… тоесть к тому что есть прибавляем еще 4 гига (((
но это всего лишь ДАННЫЕ!!!
теперь для каждого имея на по 3 таймфрейма необходимо создать один с пересчитанными значениями…
тоесть если есть 5 минутки и мы создали еще 2 искусственных, то пересчитав эти три таймфрейма, мы получим еще один массив, тоесть еще 2 гига… итого 6 гигов (((
1. статика со сдвигами памяти (не нужные данные убираем на их месть двигаем необходимые, в конец дописываем новые) — вряд ли ты будешь заглядывать на 5и минутках в прошлый год например
2. списки, но тут конечно можешь и 16гигов в комп воткнуть но потолок все рано будет
3. хранить все в базе данных быстрой
ну есть еще наколхозить решений, в зависимости от твоих потребностей.
если хочешь динамически выделять массивы — попробуй метров на сто массив выделить и перекроить — увидишь сколько это по времени занимает…
пока пришел к следующему решению:
2 массива с искусственными таймфреймами мне необходимы чтобы делать свои рассчеты, после которых эти данные в этих массивах не нужны, а это повторюсь 4 гига памяти… поэтому эти данные храниться не будут. при создании нового искусственного бара будет сразу происходить необходимый пересчет без занесения этого бара в массив.