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



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

СообщениеДобавлено: Пн Июл 20, 2015 1:38 am Ответить с цитатой Вернуться к началу

Привет всем!
Насколько я понял, в AFL нет средств для создания своих массивов произвольной длины и для работы с ними (в отличие от большинства универсальных языков программирования).
Какие есть способы обойти это недоразумение (и есть ли они вообще)?
То есть, что делать, если по логике алгоритма нужно создать и затем использовать массив из ЛЮБОГО заданного количества элементов, каждый из которых имеет одинаковый тип (числовой или строковый или еще какой-то)?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Июл 20, 2015 1:41 am Ответить с цитатой Вернуться к началу

Можно использовать жабу или вб скрипт.

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



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

СообщениеДобавлено: Пн Июл 20, 2015 1:45 am Ответить с цитатой Вернуться к началу

000 писал(а):
Можно использовать жабу или вб скрипт.

Жабу - это Java?
К сожалению, я с обоими этими средствами практически не знаком. Да и в документации настоятельно рекомендуется по возможности к ним не прибегать, там сказано, что их использование не лучшим образом сказывается на производительности и потеряло актуальность в связи с появлением в AFL управляющих операторов типа if -else, while и т.п.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Июл 20, 2015 2:05 am Ответить с цитатой Вернуться к началу

тогда никак.
Дело в том, что AFL очень сильно привязан к массиву данных и все массивы AFL одномерные и имеют длинну равную длинне истории исследуемого тикера. т.е. короче можно, длиннее нельзя.

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



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

СообщениеДобавлено: Вт Июл 21, 2015 4:15 am Ответить с цитатой Вернуться к началу

I'm sorry I don't speak Russian (Google translate) but your conclusions are all wrong.

You can use VarSet VarGet
You can use Matrix() function
You can use Osaka plugin
For sparse data you can use SparseCompress() SparseExpand()
Посмотреть профиль Отправить личное сообщение
AlexLan73



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

СообщениеДобавлено: Вт Июл 21, 2015 7:58 am Ответить с цитатой Вернуться к началу

Подробней пожалуйста про

You can use Matrix() function
You can use Osaka plugin
For sparse data you can use SparseCompress() SparseExpand()
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Вт Июл 21, 2015 3:47 pm Ответить с цитатой Вернуться к началу

look up AB documentation.
look up AB devlog
look up osaka pluigin documentation.

What do you wanna do specifically?
Example...
Посмотреть профиль Отправить личное сообщение
AlexLan73



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

СообщениеДобавлено: Вт Июл 21, 2015 6:00 pm Ответить с цитатой Вернуться к началу

Пример пожалуйста Smile
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Вт Июл 21, 2015 11:27 pm Ответить с цитатой Вернуться к началу

Yeah so what example do you need. There are endless.
The question is what do you wanna do?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Июл 21, 2015 11:33 pm Ответить с цитатой Вернуться к началу

Function VarSet VarGet give the array equal to the length of the history of the Ticker. This method is not suitable.

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



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

СообщениеДобавлено: Ср Июл 22, 2015 12:29 am Ответить с цитатой Вернуться к началу

000 писал(а):
Function VarSet VarGet give the array equal to the length of the history of the Ticker. This method is not suitable.


Osaka and Matrix function dimensions can exceed Barcount.
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Ср Июл 22, 2015 12:34 am Ответить с цитатой Вернуться к началу

What do you guys even wanna achieve? So far not a single described practicable example.
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Ср Июл 22, 2015 12:47 am Ответить с цитатой Вернуться к началу

as for varset varget

https://groups.yahoo.com/neo/groups/amibroker/conversations/topics/86446
https://groups.yahoo.com/neo/groups/amibroker/conversations/messages/136552

T. Janeczko писал(а):
In this second example, single row represents "normal" AFL array,
but you can store a number of rows (arrays) in a set of rows making
it array of the array.

Multi-dimensional arrays by nature are always mapped in one way
or another into linear (single-dimension) computer memory. Whenever
this mapping is done by means of multiple dynamic variables explicitely
like in the example above, or by the pointer manipulation (as in C),
or by another subscript - is pretty cosmetic issue and does not really matter.
Dynamic variables (VarGet/VarSet) and arrays are basically orthogonal concepts,
with only one difference, while arrays allow only NUMERIC subscripts,
dynamic variables allow free text subscripts (it is form of map or hash table - and internally
implemented as hash table), which actually is more flexible, not less as some may think.

Best regards,
Tomasz Janeczko
amibroker.com
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Ср Июл 22, 2015 12:55 am Ответить с цитатой Вернуться к началу

matrix functions & sparsecompress/expand -> AmiBroker 6.00 http://www.amibroker.com/devlog/wp-content/uploads/2015/06/readme6000.html
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Ср Июл 22, 2015 1:00 am Ответить с цитатой Вернуться к началу

Osaka 32-bit
http://www.amibroker.org/3rdparty/OSAKA_105s.zip

Osaka 64-bit
http://www.amibroker.com/members/bin/OSAKA.dll
http://www.amibroker.com/members/bin/OSAKA_106_SRC_x64.zip
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen