Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Диапазон отображаемых данных Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
znt



Зарегистрирован: 04.02.2016
Сообщения: 13

СообщениеДобавлено: Чт Фев 04, 2016 2:12 pm Ответить с цитатой Вернуться к началу

Возможно глупый вопрос, но не нашел в хэлпе, как настроить в Amibroker диапазон загружаемых по инструменту данных.
Что-то типа, “First Date” - “Last Date”, как это реализовано в TradeStation или Omega.
Amibroker каждый раз загружает все доступные в базе данные, что не всегда нужно - лишнее время загрузки, расход памяти, еще и расчет индикаторов по всей длине диапазона.
Пока что, единственный способ решить проблему, это клонировать базу и обрезать ненужное.
Но это тоже не совсем удобно - лишние телодвижения и дополнительное место на диске.
Может, есть еще какие-нибудь варианты?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Фев 15, 2016 12:26 pm Ответить с цитатой Вернуться к началу

В настройках базы есть опция Number of bars сколько "свечек" хранить в базе. Если плагин данных написан правильно, то эта опция работает.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
znt



Зарегистрирован: 04.02.2016
Сообщения: 13

СообщениеДобавлено: Пн Фев 15, 2016 2:32 pm Ответить с цитатой Вернуться к началу

«Number of bars» определяет сколько "свечек" «правильно» написанный плагин может записать в вашу базу.
Т. е. если «Number of bars» – 1 000, а в базе 500, то он допишет ещё 500, а остаток отбросит, или будет удалять начальные "свечки", чтобы освободить место под конечные, если он очень «правильный» и в нем есть такая опция.

Если переключатель «Local data storage» установлен в «Enable», то «Number of bars» количество "свечек", в вашей базе не регулирует.
Т. е. если «Number of bars» – 1 000, в базе может быть и 1 000 000, и больше (сколько максимально, не знаю, не проверял).

Если переключатель «Local data storage» установить в «Disable», а количество "свечек" в базе превышает «Number of bars», то в момент запуска плагина Ami обрежет вашу базу, причем, по умолчанию, обрежет хвост, а не начало.

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

По уму надо сразу делать с базой данных (MS SQL Server, MySQL, или что-нибудь подобное), потому что Ami под строку в своей базе выделяет 40 байт (и изменить это нельзя, по крайне мере – я не знаю, как).
A если работать с тиками, то нужно только 16 (DateTime, Price, Volume), т.е. 60 % просто не используется (это относится и к месту на диске, и к памяти).
И уже из этой базы формировать "свечки" с нужным интервалом (временным или объемным), и записывать в базу Ami.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Фев 15, 2016 3:46 pm Ответить с цитатой Вернуться к началу

По моему все проще. Заведи 2 базы. Одна длинная для истории и одна короткая для скорости.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
znt



Зарегистрирован: 04.02.2016
Сообщения: 13

СообщениеДобавлено: Пн Фев 15, 2016 6:24 pm Ответить с цитатой Вернуться к началу

000 писал(а):
По моему все проще. Заведи 2 базы.

Это вариант из первой записи поста, он не подходит по двум причинам:

1. Если надо протестировать интервал какой-то части диапазона.
Здесь без новой базы – никак.

2. Уже сейчас на МБ оборот по Si доходит до 1 800 000 тиков в день.
Если работать с тиковой базой (а для серьезной МТС это необходимо - имхо), то для Ami это почти 70 Мбайт памяти за день по одному инструменту!!!
Если не сжимать данные с каким-то интервалом, то никакой памяти не хватит (либо это будет очень не дёшево).
А для дополнительных параметров характеризующих свечу (средневзвешенная цена - например) в Ami есть поля, под которые в любом случае (надо это, или не надо) выделяется память.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Фев 15, 2016 6:41 pm Ответить с цитатой Вернуться к началу

Не понял сразу, что речь о тиковой базе. Тогда все понятно. Пожалуй в таком случае только если писать свой датаплагин.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
yser



Зарегистрирован: 30.11.2011
Сообщения: 76

СообщениеДобавлено: Пн Фев 15, 2016 9:33 pm Ответить с цитатой Вернуться к началу

znt писал(а):
По уму надо сразу делать с базой данных (MS SQL Server, MySQL, или что-нибудь подобное), потому что Ami под строку в своей базе выделяет 40 байт (и изменить это нельзя, по крайне мере – я не знаю, как).
A если работать с тиками, то нужно только 16 (DateTime, Price, Volume), т.е. 60 % просто не используется (это относится и к месту на диске, и к памяти).
И уже из этой базы формировать "свечки" с нужным интервалом (временным или объемным), и записывать в базу Ami.


в ami есть дата плагин "ODBC/SQL Universal plugin", можно подключиться к любой базе данных (mssql и т.п.) а в настройках плагина есть возможность вручную задать sql запрос для выборки данных - это дает широкие возможности, например можно в условие задать любой период выборки данных.
Посмотреть профиль Отправить личное сообщение
znt



Зарегистрирован: 04.02.2016
Сообщения: 13

СообщениеДобавлено: Вт Фев 16, 2016 11:52 am Ответить с цитатой Вернуться к началу

znt писал(а):
По уму надо сразу делать с базой данных (MS SQL Server, MySQL, или что-нибудь подобное)...

Очередную глупость озвучил, не подумавши – зачем мне SQL, если котировки – обычная отсортированная матрица?
Надо просто решить, как эффективнее уменьшить размер хранимых файлов.
Может, кто подскажет, алгоритм кодировки файлов базы данных Ami есть в открытом доступе или это закрытая информация?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Фев 16, 2016 3:57 pm Ответить с цитатой Вернуться к началу

Я не встречал.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Ср Фев 17, 2016 7:20 am Ответить с цитатой Вернуться к началу

Да как же не встречал? Структура баров подробно описана в ADK. В файлах истории эти самые бары и записаны, только в начале ещё шапка с названием символа, датой обновления, количеством баров... Я уже не помню точно, из чего ещё она состоит, но в шестнадцатиричном редакторе её структуру замечательно видно. Я когда-то давно делал парсинг амишной базы сторонней программкой, никаких сложностей не было.
Посмотреть профиль Отправить личное сообщение ICQ Number
znt



Зарегистрирован: 04.02.2016
Сообщения: 13

СообщениеДобавлено: Чт Фев 18, 2016 1:02 pm Ответить с цитатой Вернуться к началу

znt писал(а):
Т. е. если «Number of bars» – 1 000, в базе может быть и 1 000 000, и больше...

Пропустил:
Если Number of bars – 1 000, а в базе 2 000 и Local data storage - Enable, то и для плагина, Number of bars – 2 000, т. е. максимальное число.
znt писал(а):
Если переключатель «Local data storage» установить в «Disable», а количество "свечек" в базе превышает «Number of bars», то в момент запуска плагина Ami обрежет вашу базу, причем, по умолчанию, обрежет хвост, а не начало.

Здесь по другому:
Если переключатель Local data storage установить в Disable, Ami очищает только кеш (не затрагивая базу данных) и всё дальнейшее действо (до Local data storage - Enable или Data source - local database) касается только кеша и зависит от подключенного плагина.

Mechanic писал(а):
Структура баров подробно описана в ADK. В файлах истории эти самые бары и записаны, только в начале ещё шапка с названием символа, датой обновления, количеством баров...

Посмотрел – так и есть (шестнадцатеричный бинарник):
Служебный блок (1 184 байта) + по 40 байт на строку котировок (ADK - struct Quotation) + ещё 4 служебных байта.
Я почему-то думал, что здесь что-то особенное (типа .xpo Омеги).
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen